docs: Basic concepts embraced with examples

This commit is contained in:
Mateusz Pusz
2021-03-05 11:31:46 +01:00
parent a22600c8e3
commit 65e383a506

View File

@@ -49,18 +49,25 @@ The most important concepts in the library are `Unit`, `Dimension`,
`Unit` is a basic building block of the library. Every dimension works with
a concrete hierarchy of units. Such hierarchy defines a reference unit and
often a few scaled versions of it.
often a few scaled versions of it. Examples: ``second``, ``metre``, ``kilometre_per_hour``.
`Dimension` concept matches a dimension of either a base or derived quantity.
`base_dimension` is instantiated with a unique symbol identifier and a base
unit. `derived_dimension` is a list of exponents of either base or other
derived dimensions.
derived dimensions. Examples: ``si::dim_time``, ``si::dim_length``, ``si::dim_speed``.
`Quantity` is a concrete amount of a unit for a specified dimension with a
specific representation.
specific representation. Examples: ``quantity<si::dim_time, si::second, int>``,
``si::length<si::metre, int>``, ``si::speed<si::kilometre_per_hour>``.
`QuantityPoint` is an absolute `Quantity` with respect to some origin.
Examples: timestamp (as opposed to duration), absolute temperature
(as opposed to temperature difference).
`QuantityKind` is a `Quantity` with more specific usage.
`QuantityKind` is a `Quantity` with more specific usage. Examples:
distance (``horizonal_kind``) and height (``vertical_kind``) are different kinds
of a length quantity.
`QuantityPointKind` is an absolute `QuantityKind` with respect to some origin.
Examples: altitude is a quantity point of ``vertical_kind`` (as opposed to
height).