docs: UML diagrams replaced to plantuml generated SVGs

This commit is contained in:
Mateusz Pusz
2021-10-20 10:52:57 +02:00
parent 8fccfd2d68
commit 1525101555
8 changed files with 388 additions and 71 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

90
docs/_static/img/concepts.svg vendored Normal file
View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="480px" preserveAspectRatio="none" style="width:767px;height:480px;background:#FCFCFC;" version="1.1" viewBox="0 0 767 480" width="767px" zoomAndPan="magnify"><defs/><g><!--MD5=[393655ea98b8cc7762ecac08ac25a8bc]
entity Unit--><a href="../../framework/units.html" target="_top" title="../../framework/units.html" xlink:actuate="onRequest" xlink:href="../../framework/units.html" xlink:show="new" xlink:title="../../framework/units.html" xlink:type="simple"><rect fill="#FCFCFC" height="46.2969" style="stroke:#000000;stroke-width:1.5;" width="69" x="278.7708" y="7"/><path d="M301.7708,7 L301.7708,12 L294.7708,19 L278.7708,19 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="29" x="293.7708" y="39.9951">Unit</text></a><!--MD5=[203769626a5b736eb6e04c0d5326ab96]
entity Dimension--><a href="../../framework/dimensions.html" target="_top" title="../../framework/dimensions.html" xlink:actuate="onRequest" xlink:href="../../framework/dimensions.html" xlink:show="new" xlink:title="../../framework/dimensions.html" xlink:type="simple"><rect fill="#FCFCFC" height="46.2969" style="stroke:#000000;stroke-width:1.5;" width="116" x="255.2708" y="113"/><path d="M293.9374,113 L293.9374,118 L286.9374,125 L255.2708,125 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="76" x="270.2708" y="145.9951">Dimension</text></a><!--MD5=[ea03bdbd065578ac5244a06dd30cb289]
class kind--><a href="../../framework/quantity_kinds.html#kind-creation" target="_top" title="../../framework/quantity_kinds.html#kind-creation" xlink:actuate="onRequest" xlink:href="../../framework/quantity_kinds.html#kind-creation" xlink:show="new" xlink:title="../../framework/quantity_kinds.html#kind-creation" xlink:type="simple"><rect codeLine="15" fill="#F8F8F8" height="23.9688" id="kind" style="stroke:#383838;stroke-width:1.5;" width="99" x="263.7708" y="229.5"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="26" x="266.7708" y="245.6387">kind</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="65" x="300.7708" y="226.5"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="63" x="301.7708" y="238.6387">Dimension</text></a><!--MD5=[687e1f7389fc36adbc8b00efbcc9e77a]
class point_kind--><a href="../../framework/quantity_kinds.html#quantity-point-kinds" target="_top" title="../../framework/quantity_kinds.html#quantity-point-kinds" xlink:actuate="onRequest" xlink:href="../../framework/quantity_kinds.html#quantity-point-kinds" xlink:show="new" xlink:title="../../framework/quantity_kinds.html#quantity-point-kinds" xlink:type="simple"><rect codeLine="16" fill="#F8F8F8" height="23.9688" id="point_kind" style="stroke:#383838;stroke-width:1.5;" width="174" x="226.2708" y="334.5"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="63" x="229.2708" y="350.6387">point_kind</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="103" x="300.2708" y="331.5"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="101" x="301.2708" y="343.6387">Kind, PointOrigin</text></a><!--MD5=[9db4689932f79289c10697e18a3c06c1]
class point_origin--><a href="../../framework/quantity_points.html#point-origins" target="_top" title="../../framework/quantity_points.html#point-origins" xlink:actuate="onRequest" xlink:href="../../framework/quantity_points.html#point-origins" xlink:show="new" xlink:title="../../framework/quantity_points.html#point-origins" xlink:type="simple"><rect codeLine="17" fill="#F8F8F8" height="23.9688" id="point_origin" style="stroke:#383838;stroke-width:1.5;" width="144" x="398.2708" y="229.5"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="71" x="401.2708" y="245.6387">point_origin</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="65" x="480.2708" y="226.5"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="63" x="481.2708" y="238.6387">Dimension</text></a><!--MD5=[da1b011f603b1fa92adce02fc4bac354]
class quantity--><a href="../../framework/quantities.html" target="_top" title="../../framework/quantities.html" xlink:actuate="onRequest" xlink:href="../../framework/quantities.html" xlink:show="new" xlink:title="../../framework/quantities.html" xlink:type="simple"><rect codeLine="19" fill="#F8F8F8" height="44.7734" id="quantity" style="stroke:#383838;stroke-width:1.5;" width="184" x="44.2708" y="219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="47" x="47.2708" y="235.1387">quantity</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="129" x="102.2708" y="216"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="127" x="103.2708" y="228.1387">Dimension, Unit, Rep</text><line style="stroke:#383838;stroke-width:1.5;" x1="45.2708" x2="227.2708" y1="242.9688" y2="242.9688"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="75" x="50.2708" y="257.1792">rep number()</text></a><!--MD5=[18fbdc711d33f9ff282e1f4c30c050e6]
class quantity_point--><a href="../../framework/quantity_points.html#construction" target="_top" title="../../framework/quantity_points.html#construction" xlink:actuate="onRequest" xlink:href="../../framework/quantity_points.html#construction" xlink:show="new" xlink:title="../../framework/quantity_points.html#construction" xlink:type="simple"><rect codeLine="22" fill="#F8F8F8" height="44.7734" id="quantity_point" style="stroke:#383838;stroke-width:1.5;" width="223" x="435.7708" y="324"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="83" x="438.7708" y="340.1387">quantity_point</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="132" x="529.7708" y="321"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="130" x="530.7708" y="333.1387">PointOrigin, Unit, Rep</text><line style="stroke:#383838;stroke-width:1.5;" x1="436.7708" x2="657.7708" y1="347.9688" y2="347.9688"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="102" x="441.7708" y="362.1792">quantity relative()</text></a><!--MD5=[5b6ab379e9f247363b208f7c72246136]
class quantity_kind--><a href="../../framework/quantity_kinds.html#construction" target="_top" title="../../framework/quantity_kinds.html#construction" xlink:actuate="onRequest" xlink:href="../../framework/quantity_kinds.html#construction" xlink:show="new" xlink:title="../../framework/quantity_kinds.html#construction" xlink:type="simple"><rect codeLine="25" fill="#F8F8F8" height="44.7734" id="quantity_kind" style="stroke:#383838;stroke-width:1.5;" width="179" x="11.7708" y="324"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="78" x="14.7708" y="340.1387">quantity_kind</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="93" x="100.7708" y="321"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="91" x="101.7708" y="333.1387">Kind, Unit, Rep</text><line style="stroke:#383838;stroke-width:1.5;" x1="12.7708" x2="189.7708" y1="347.9688" y2="347.9688"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="107" x="17.7708" y="362.1792">quantity common()</text></a><!--MD5=[6d322596e71f19471be4dbdd0c5e34a1]
class quantity_point_kind--><a href="../../framework/quantity_kinds.html#quantity-point-kinds" target="_top" title="../../framework/quantity_kinds.html#quantity-point-kinds" xlink:actuate="onRequest" xlink:href="../../framework/quantity_kinds.html#quantity-point-kinds" xlink:show="new" xlink:title="../../framework/quantity_kinds.html#quantity-point-kinds" xlink:type="simple"><rect codeLine="28" fill="#F8F8F8" height="44.7734" id="quantity_point_kind" style="stroke:#383838;stroke-width:1.5;" width="245" x="190.7708" y="429"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="114" x="193.7708" y="445.1387">quantity_point_kind</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="123" x="315.7708" y="426"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="121" x="316.7708" y="438.1387">PointKind, Unit, Rep</text><line style="stroke:#383838;stroke-width:1.5;" x1="191.7708" x2="434.7708" y1="452.9688" y2="452.9688"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="131" x="196.7708" y="467.1792">quantity_kind relative()</text></a><!--MD5=[cc29d0a880a167f6baed24f1904eef31]
reverse link Unit to Dimension--><path d="M313.2708,58.192 C313.2708,75.262 313.2708,96.989 313.2708,112.976 " fill="none" id="Unit-backto-Dimension" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="313.2708,53.056,309.2708,62.056,313.2708,58.056,317.2708,62.056,313.2708,53.056" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[938fbe2dd92cfaa6c1f931bb0ae258ca]
reverse link Dimension to quantity--><path codeLine="35" d="M270.9818,161.728 C241.2248,179.129 201.7788,202.195 173.2688,218.866 " fill="none" id="Dimension-backto-quantity" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="275.2998,159.203,265.5115,160.2942,270.9838,161.7274,269.5506,167.1997,275.2998,159.203" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[bee66a849faef228461d183c7c2b4cfa]
reverse link Unit to quantity--><path codeLine="36" d="M288.0908,57.122 C273.0308,73.001 253.6918,93.845 237.2708,113 C206.2098,149.233 172.1428,193.192 152.5748,218.886 " fill="none" id="Unit-backto-quantity" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="291.8238,53.196,282.7236,56.9625,288.3786,56.8197,288.5215,62.4747,291.8238,53.196" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[3a9a7d659d84d4d69119865bf616ec7b]
reverse link Dimension to kind--><path codeLine="38" d="M313.2708,164.448 C313.2708,185.726 313.2708,214.096 313.2708,229.468 " fill="none" id="Dimension-backto-kind" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="313.2708,159.203,309.2708,168.203,313.2708,164.203,317.2708,168.203,313.2708,159.203" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[bfd9f66cccecd12126a31dbc36f06fa1]
reverse link Dimension to point_origin--><path codeLine="39" d="M351.2628,162.046 C383.8728,183.543 429.3288,213.509 453.5368,229.468 " fill="none" id="Dimension-backto-point_origin" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="346.9508,159.203,352.2639,167.4958,351.1255,161.9547,356.6666,160.8163,346.9508,159.203" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[884274b25ffd0963428e84bc13b4c425]
reverse link point_origin to point_kind--><path codeLine="40" d="M449.0338,256.433 C417.6048,277.051 359.3218,315.289 330.4278,334.244 " fill="none" id="point_origin-backto-point_kind" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="453.4688,253.523,443.7494,255.1148,449.288,256.2654,448.1373,261.804,453.4688,253.523" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[64d3938500287e266277878e76d1e405]
reverse link kind to point_kind--><path codeLine="41" d="M313.2708,258.784 C313.2708,279.846 313.2708,315.988 313.2708,334.244 " fill="none" id="kind-backto-point_kind" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="313.2708,253.523,309.2708,262.523,313.2708,258.523,317.2708,262.523,313.2708,253.523" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[5081f38fcc529f1ef3b646e81463f34b]
reverse link Unit to quantity_point--><path codeLine="43" d="M352.7568,47.321 C410.5688,73.661 516.0588,131.591 559.2708,219 C575.8908,252.619 565.1458,297.372 556.0508,323.646 " fill="none" id="Unit-backto-quantity_point" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="347.9968,45.175,354.5568,52.5212,352.5547,47.2304,357.8455,45.2284,347.9968,45.175" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[b46aa03dbf6a6455ec3cf429353e2837]
reverse link point_origin to quantity_point--><path codeLine="44" d="M481.6398,257.708 C494.7018,275.18 516.2348,303.984 531.0528,323.806 " fill="none" id="point_origin-backto-quantity_point" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="478.5108,253.523,480.6948,263.1266,481.5041,257.528,487.1028,258.3372,478.5108,253.523" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[4824db4e5b398e43184a581563085055]
link quantity to quantity_point--><path codeLine="45" d="M222.1798,264.029 C288.3078,280.602 379.7758,303.524 448.8478,320.834 " fill="none" id="quantity-to-quantity_point" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="#383838" points="461.4738,323.999,456.626,318.6605,449.8337,321.0821,454.6814,326.4206,461.4738,323.999" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[74957ebb672a7864a9d02af05eca2972]
reverse link Unit to quantity_kind--><path codeLine="47" d="M273.6338,43.209 C208.1278,65.788 79.2612,120.941 26.2708,219 C6,256.511 44.0927,298.914 73.0291,323.864 " fill="none" id="Unit-backto-quantity_kind" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="278.6218,41.51,268.8128,40.6242,273.8886,43.1215,271.3913,48.1973,278.6218,41.51" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[e3ab090e29bc3b12098d9541d55ccea1]
reverse link kind to quantity_kind--><path codeLine="48" d="M285.9788,255.76 C250.5558,272.97 188.2768,303.228 145.9228,323.806 " fill="none" id="kind-backto-quantity_kind" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="290.5828,253.523,280.7397,253.8596,286.0858,255.7086,284.2367,261.0548,290.5828,253.523" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[c1804ecabd485ae0f6f9feb5d83c0cf7]
link quantity to quantity_kind--><path codeLine="49" d="M128.8478,264.344 C124.2078,277.999 118.1338,295.875 112.8668,311.373 " fill="none" id="quantity-to-quantity_kind" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="#383838" points="108.6827,323.688,114.4004,319.294,112.5436,312.3261,106.8258,316.7201,108.6827,323.688" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[1c06a9b4b040907e78fcd4106e213b1b]
reverse link Unit to quantity_point_kind--><path codeLine="51" d="M352.9958,40.246 C396.4098,51.809 466.4148,74.866 516.2708,113 C622.8428,194.514 760.1118,264.248 676.2708,369 C646.3538,406.3789 529.3518,427.7971 436.1598,439.2051 " fill="none" id="Unit-backto-quantity_point_kind" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="348.0978,38.96,355.7865,45.1149,352.9338,40.2301,357.8186,37.3773,348.0978,38.96" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[b8374cb9995b962fc42ed235ba0c6e64]
reverse link point_kind to quantity_point_kind--><path codeLine="52" d="M313.2708,363.606 C313.2708,381.154 313.2708,409.3202 313.2708,428.8058 " fill="none" id="point_kind-backto-quantity_point_kind" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="313.2708,358.523,309.2708,367.523,313.2708,363.523,317.2708,367.523,313.2708,358.523" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[cdb229abe92fd1672bac6bf302be0a95]
link quantity_kind to quantity_point_kind--><path codeLine="53" d="M145.7128,369.092 C178.0788,384.8172 222.1628,406.2352 256.9888,423.1556 " fill="none" id="quantity_kind-to-quantity_point_kind" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="#383838" points="268.8868,428.9363,265.2382,422.7163,258.0934,423.692,261.742,429.9119,268.8868,428.9363" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[ebd3a02a2b6625c708aecf09e5c9942b]
@startuml
skinparam monochrome true
skinparam shadowing false
skinparam backgroundColor #fcfcfc
hide circle
hide members
show class methods
package Unit <<Frame>> [[../../framework/units.html]] {
}
package Dimension <<Frame>> [[../../framework/dimensions.html]] {
}
abstract kind<Dimension> [[../../framework/quantity_kinds.html#kind-creation]]
abstract point_kind<Kind, PointOrigin> [[../../framework/quantity_kinds.html#quantity-point-kinds]]
abstract point_origin<Dimension> [[../../framework/quantity_points.html#point-origins]]
class quantity<Dimension, Unit, Rep> [[../../framework/quantities.html]] {
rep number()
}
class quantity_point<PointOrigin, Unit, Rep> [[../../framework/quantity_points.html#construction]] {
quantity relative()
}
class quantity_kind<Kind, Unit, Rep> [[../../framework/quantity_kinds.html#construction]] {
quantity common()
}
class quantity_point_kind<PointKind, Unit, Rep> [[../../framework/quantity_kinds.html#quantity-point-kinds]] {
quantity_kind relative()
}
Unit <.. Dimension
Dimension <.. quantity
Unit <.. quantity
Dimension <.. kind
Dimension <.. point_origin
point_origin <.. point_kind
kind <.. point_kind
Unit <.. quantity_point
point_origin <.. quantity_point
quantity - -* quantity_point
Unit <.. quantity_kind
kind <.. quantity_kind
quantity - -* quantity_kind
Unit <.. quantity_point_kind
point_kind <.. quantity_point_kind
quantity_kind - -* quantity_point_kind
@enduml
PlantUML version 1.2021.12(Tue Oct 05 16:01:58 UTC 2021)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>

After

Width:  |  Height:  |  Size: 18 KiB

35
docs/_static/img/dimensions.svg vendored Normal file
View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="256px" preserveAspectRatio="none" style="width:271px;height:256px;background:#FCFCFC;" version="1.1" viewBox="0 0 271 256" width="271px" zoomAndPan="magnify"><defs/><g><!--MD5=[3235af1cc77a6acc457ea7021772201c]
cluster Dimension--><rect fill="#FCFCFC" height="243" style="stroke:#000000;stroke-width:1.5;" width="258" x="7" y="7"/><path d="M101,7 L101,16.2969 L91,26.2969 L7,26.2969 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="84" x="10" y="20.9951">Dimension</text><!--MD5=[418e3bda8d8c8b7ad8dc503f3566e869]
class base_dimension--><a href="../../framework/units.html" target="_top" title="../../framework/units.html" xlink:actuate="onRequest" xlink:href="../../framework/units.html" xlink:show="new" xlink:title="../../framework/units.html" xlink:type="simple"><rect codeLine="9" fill="#F8F8F8" height="23.9688" id="base_dimension" style="stroke:#383838;stroke-width:1.5;" width="184" x="44" y="42"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="96" x="47" y="58.1387">base_dimension</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="80" x="151" y="39"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="78" x="152" y="51.1387">Symbol, Unit</text></a><!--MD5=[68f31181282be310d7d3efc1882b33d4]
class exponent--><a href="../../framework/dimensions.html#derived-dimensions" target="_top" title="../../framework/dimensions.html#derived-dimensions" xlink:actuate="onRequest" xlink:href="../../framework/dimensions.html#derived-dimensions" xlink:show="new" xlink:title="../../framework/dimensions.html#derived-dimensions" xlink:type="simple"><rect codeLine="10" fill="#F8F8F8" height="23.9688" id="exponent" style="stroke:#383838;stroke-width:1.5;" width="199" x="36.5" y="126"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="57" x="39.5" y="142.1387">exponent</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="134" x="104.5" y="123"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="132" x="105.5" y="135.1387">Dimension, Num, Den</text></a><!--MD5=[21e724ef10c67d921f6b3fcb22c06f35]
class derived_dimension--><a href="../../framework/dimensions.html#derived-dimensions" target="_top" title="../../framework/dimensions.html#derived-dimensions" xlink:actuate="onRequest" xlink:href="../../framework/dimensions.html#derived-dimensions" xlink:show="new" xlink:title="../../framework/dimensions.html#derived-dimensions" xlink:type="simple"><rect codeLine="11" fill="#F8F8F8" height="23.9688" id="derived_dimension" style="stroke:#383838;stroke-width:1.5;" width="226" x="23" y="210"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="113" x="26" y="226.1387">derived_dimension</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="105" x="147" y="207"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="103" x="148" y="219.1387">Unit, Exponent...</text></a><!--MD5=[a178719c9c6142e046a1431351c96a28]
reverse link base_dimension to exponent--><path codeLine="13" d="M136,71.197 C136,87.356 136,111.751 136,125.854 " fill="none" id="base_dimension-backto-exponent" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="136,66.059,132,75.059,136,71.059,140,75.059,136,66.059" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[cd03d9c68e1638ad57e35f0e1135acfc]
reverse link exponent to derived_dimension--><path codeLine="14" d="M125.605,155.197 C122.073,171.3561 122.514,195.7514 126.928,209.8544 " fill="none" id="exponent-backto-derived_dimension" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="126.955,150.059,120.8001,157.7477,125.6849,154.895,128.5377,159.7799,126.955,150.059" style="stroke:#383838;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="24" x="94.2358" y="198.8513">0..n</text><!--MD5=[1f4f10499975d495bfeb71f1fbda2882]
link exponent to derived_dimension--><path codeLine="15" d="M145.577,150.059 C150.268,164.12 150.752,188.5106 147.03,204.7039 " fill="none" id="exponent-to-derived_dimension" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="145.606,209.8544,151.859,202.2452,146.938,205.0351,144.1481,200.1141,145.606,209.8544" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[da6c529a5f75ef54a9908f22b56975b6]
@startuml
skinparam monochrome true
skinparam shadowing false
skinparam backgroundColor #fcfcfc
hide members
hide circle
package Dimension <<Frame>> {
abstract base_dimension<Symbol, Unit> [[../../framework/units.html]]
abstract exponent<Dimension, Num, Den> [[../../framework/dimensions.html#derived-dimensions]]
abstract derived_dimension<Unit, Exponent...> [[../../framework/dimensions.html#derived-dimensions]]
base_dimension <.. exponent
exponent <.. "0..n" derived_dimension
exponent ..> derived_dimension
}
@enduml
PlantUML version 1.2021.12(Tue Oct 05 16:01:58 UTC 2021)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

122
docs/_static/img/units.svg vendored Normal file
View File

@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="619px" preserveAspectRatio="none" style="width:678px;height:619px;background:#FCFCFC;" version="1.1" viewBox="0 0 678 619" width="678px" zoomAndPan="magnify"><defs/><g><!--MD5=[197a77df23d290968e58c76a2239d979]
cluster Unit--><a href="../../framework/units.html" target="_top" title="../../framework/units.html" xlink:actuate="onRequest" xlink:href="../../framework/units.html" xlink:show="new" xlink:title="../../framework/units.html" xlink:type="simple"><rect fill="#FCFCFC" height="606" style="stroke:#000000;stroke-width:1.5;" width="665" x="7" y="7"/><path d="M51,7 L51,16.2969 L41,26.2969 L7,26.2969 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="34" x="10" y="20.9951">Unit</text></a><!--MD5=[fe9c23f38d3f164e458ed7686471f90d]
class prefix_family--><a href="../../framework/units.html#prefixed-unit" target="_top" title="../../framework/units.html#prefixed-unit" xlink:actuate="onRequest" xlink:href="../../framework/units.html#prefixed-unit" xlink:show="new" xlink:title="../../framework/units.html#prefixed-unit" xlink:type="simple"><rect codeLine="11" fill="#F8F8F8" height="23.9688" id="prefix_family" style="stroke:#383838;stroke-width:1.5;" width="82" x="65" y="72"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="76" x="68" y="88.1387">prefix_family</text></a><!--MD5=[2c438ee281b14598fe4adbd039a51ed9]
class no_prefix--><a href="../../framework/units.html#named-scaled-units" target="_top" title="../../framework/units.html#named-scaled-units" xlink:actuate="onRequest" xlink:href="../../framework/units.html#named-scaled-units" xlink:show="new" xlink:title="../../framework/units.html#named-scaled-units" xlink:type="simple"><rect codeLine="12" fill="#F8F8F8" height="23.9688" id="no_prefix" style="stroke:#383838;stroke-width:1.5;" width="61" x="422" y="101"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="55" x="425" y="117.1387">no_prefix</text></a><!--MD5=[8ec8902a0493db0501cc5ae48138d755]
class prefix--><a href="../../framework/units.html#prefixed-unit" target="_top" title="../../framework/units.html#prefixed-unit" xlink:actuate="onRequest" xlink:href="../../framework/units.html#prefixed-unit" xlink:show="new" xlink:title="../../framework/units.html#prefixed-unit" xlink:type="simple"><rect codeLine="13" fill="#F8F8F8" height="23.9688" id="prefix" style="stroke:#383838;stroke-width:1.5;" width="207" x="349" y="42"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="34" x="352" y="58.1387">prefix</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="165" x="394" y="39"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="163" x="395" y="51.1387">PrefixFamily, Symbol, Ratio</text></a><!--MD5=[124cbcdfdb408a63d08476bd52d3bb38]
class scaled_unit--><rect codeLine="26" fill="#F8F8F8" height="23.9688" id="scaled_unit" style="stroke:#383838;stroke-width:1.5;" width="166" x="23" y="367"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="68" x="26" y="383.1387">scaled_unit</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="90" x="102" y="364"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="88" x="103" y="376.1387">UnitRatio, Unit</text><!--MD5=[c262fc293e71d96455ecd38c5cba51e9]
class prefixed_alias_unit--><a href="../../framework/units.html#aliased-units" target="_top" title="../../framework/units.html#aliased-units" xlink:actuate="onRequest" xlink:href="../../framework/units.html#aliased-units" xlink:show="new" xlink:title="../../framework/units.html#aliased-units" xlink:type="simple"><rect codeLine="28" fill="#F8F8F8" height="23.9688" id="prefixed_alias_unit" style="stroke:#383838;stroke-width:1.5;" width="247" x="329" y="573"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="111" x="332" y="589.1387">prefixed_alias_unit</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="128" x="451" y="570"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="126" x="452" y="582.1387">Unit, Prefix, AliasUnit</text></a><!--MD5=[80b1f1fe027b66c9bd530ac9502a064a]
class alias_unit--><a href="../../framework/units.html#aliased-units" target="_top" title="../../framework/units.html#aliased-units" xlink:actuate="onRequest" xlink:href="../../framework/units.html#aliased-units" xlink:show="new" xlink:title="../../framework/units.html#aliased-units" xlink:type="simple"><rect codeLine="29" fill="#F8F8F8" height="23.9688" id="alias_unit" style="stroke:#383838;stroke-width:1.5;" width="224" x="340.5" y="514"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="56" x="343.5" y="530.1387">alias_unit</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="160" x="407.5" y="511"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="158" x="408.5" y="523.1387">Unit, Symbol, PrefixFamily</text></a><!--MD5=[a28d6ca64d3db0c31a0f1e5dbad7ee82]
class named_derived_unit--><a href="../../framework/units.html#derived-scaled-units" target="_top" title="../../framework/units.html#derived-scaled-units" xlink:actuate="onRequest" xlink:href="../../framework/units.html#derived-scaled-units" xlink:show="new" xlink:title="../../framework/units.html#derived-scaled-units" xlink:type="simple"><rect codeLine="30" fill="#F8F8F8" height="23.9688" id="named_derived_unit" style="stroke:#383838;stroke-width:1.5;" width="407" x="249" y="455"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="123" x="252" y="471.1387">named_derived_unit</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="276" x="383" y="452"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="274" x="384" y="464.1387">Dimension, Symbol, PrefixFamily, Unit, Unit...</text></a><!--MD5=[21a38f8b465de3a6a580896bb83abf03]
class derived_unit--><a href="../../framework/units.html#derived-scaled-units" target="_top" title="../../framework/units.html#derived-scaled-units" xlink:actuate="onRequest" xlink:href="../../framework/units.html#derived-scaled-units" xlink:show="new" xlink:title="../../framework/units.html#derived-scaled-units" xlink:type="simple"><rect codeLine="31" fill="#F8F8F8" height="23.9688" id="derived_unit" style="stroke:#383838;stroke-width:1.5;" width="226" x="339.5" y="396"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="75" x="342.5" y="412.1387">derived_unit</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="143" x="425.5" y="393"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="141" x="426.5" y="405.1387">Dimension, Unit, Unit...</text></a><!--MD5=[002996a525ad7ee43e1a2ae0bbb7adb6]
class prefixed_unit--><a href="../../framework/units.html#prefixed-unit" target="_top" title="../../framework/units.html#prefixed-unit" xlink:actuate="onRequest" xlink:href="../../framework/units.html#prefixed-unit" xlink:show="new" xlink:title="../../framework/units.html#prefixed-unit" xlink:type="simple"><rect codeLine="32" fill="#F8F8F8" height="23.9688" id="prefixed_unit" style="stroke:#383838;stroke-width:1.5;" width="155" x="375" y="337"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="79" x="378" y="353.1387">prefixed_unit</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="68" x="465" y="334"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="66" x="466" y="346.1387">Prefix, Unit</text></a><!--MD5=[3a0c8cf47fc662100af5bce8b7f7e204]
class named_scaled_unit--><a href="../../framework/units.html#named-scaled-units" target="_top" title="../../framework/units.html#named-scaled-units" xlink:actuate="onRequest" xlink:href="../../framework/units.html#named-scaled-units" xlink:show="new" xlink:title="../../framework/units.html#named-scaled-units" xlink:type="simple"><rect codeLine="33" fill="#F8F8F8" height="23.9688" id="named_scaled_unit" style="stroke:#383838;stroke-width:1.5;" width="322" x="291.5" y="278"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="116" x="294.5" y="294.1387">named_scaled_unit</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="198" x="418.5" y="275"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="196" x="419.5" y="287.1387">Symbol, PrefixFamily, Ratio, Unit</text></a><!--MD5=[5e57872b30d77ee0da3206dd3d117986]
class named_unit--><a href="../../framework/units.html#base-units" target="_top" title="../../framework/units.html#base-units" xlink:actuate="onRequest" xlink:href="../../framework/units.html#base-units" xlink:show="new" xlink:title="../../framework/units.html#base-units" xlink:type="simple"><rect codeLine="34" fill="#F8F8F8" height="23.9688" id="named_unit" style="stroke:#383838;stroke-width:1.5;" width="207" x="349" y="219"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="72" x="352" y="235.1387">named_unit</text><rect fill="#FCFCFC" height="15.9688" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="127" x="432" y="216"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="125" x="433" y="228.1387">Symbol, PrefixFamily</text></a><!--MD5=[71453aad0c321cc4e5ffc62c5a278467]
class unit--><a href="../../framework/units.html#derived-unnamed-units" target="_top" title="../../framework/units.html#derived-unnamed-units" xlink:actuate="onRequest" xlink:href="../../framework/units.html#derived-unnamed-units" xlink:show="new" xlink:title="../../framework/units.html#derived-unnamed-units" xlink:type="simple"><rect codeLine="35" fill="#F8F8F8" height="23.9688" id="unit" style="stroke:#383838;stroke-width:1.5;" width="30" x="437.5" y="160"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="24" x="440.5" y="176.1387">unit</text></a><!--MD5=[d5573293cc2f3397d55e23fbd852731b]
reverse link prefix_family to no_prefix--><path codeLine="15" d="M167.21,89.068 C241.552,95.327 365.078,105.725 421.603,110.483 " fill="none" id="prefix_family-backto-no_prefix" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="none" points="166.535,96.037,147.193,87.383,167.709,82.086,166.535,96.037" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[a9e0649862d8c9099c6cf94917b5c4f3]
reverse link prefix_family to prefix--><path codeLine="16" d="M152.197,80.064 C201.883,75.737 283.334,68.644 348.732,62.949 " fill="none" id="prefix_family-backto-prefix" style="stroke:#383838;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#383838" points="147.193,80.5,156.5065,83.703,152.1741,80.0656,155.8115,75.7332,147.193,80.5" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[f28f95aa1567536fda19ae5fa7526b9f]
reverse link scaled_unit to unit--><path codeLine="37" d="M121.677,348.907 C143.37,307.974 188.09,235.861 249,201 C311.726,165.099 402.687,167.95 437.358,170.629 " fill="none" id="scaled_unit-backto-unit" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="none" points="127.857,352.199,112.578,366.881,115.366,345.876,127.857,352.199" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[d10f3427b03caf67d8b4e569e5f4936e]
reverse link scaled_unit to named_unit--><path codeLine="38" d="M130.613,351.798 C156.605,323.813 201.102,281.383 249,260 C279.89,246.21 315.826,238.667 348.778,234.632 " fill="none" id="scaled_unit-backto-named_unit" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="none" points="135.822,356.473,117.258,366.689,125.4,347.126,135.822,356.473" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[c4573f7b87c3262f7d3adc92106a39ed]
reverse link scaled_unit to named_scaled_unit--><path codeLine="39" d="M148.735,357.996 C176.499,344.874 214.14,328.686 249,319 C275.263,311.703 303.979,306.175 331.318,302.01 " fill="none" id="scaled_unit-backto-named_scaled_unit" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="none" points="151.495,364.437,130.445,366.872,145.382,351.842,151.495,364.437" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[65b74da07c0359a7bcc888d9c9b6e7d5]
reverse link scaled_unit to prefixed_unit--><path codeLine="40" d="M209.206,370.1 C262.255,365.48 325.987,359.93 374.771,355.682 " fill="none" id="scaled_unit-backto-prefixed_unit" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="none" points="209.611,377.091,189.079,371.852,208.396,363.144,209.611,377.091" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[29a2e6b65a8256359df6b41e4d3b7c7c]
reverse link scaled_unit to derived_unit--><path codeLine="41" d="M209.24,387.607 C250.204,391.055 297.536,395.039 339.433,398.566 " fill="none" id="scaled_unit-backto-derived_unit" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="none" points="208.421,394.562,189.079,385.909,209.595,380.612,208.421,394.562" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[70b39df7ba7c3deccddaa8e432f196b0]
reverse link scaled_unit to named_derived_unit--><path codeLine="42" d="M149.575,399.543 C177.302,412.126 214.589,427.572 249,437 C277.193,444.724 308.173,450.582 337.239,454.975 " fill="none" id="scaled_unit-backto-named_derived_unit" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="none" points="146.43,405.801,131.253,391.014,152.338,393.109,146.43,405.801" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[19d99332ae619b76851ceaa34f4e9014]
reverse link scaled_unit to alias_unit--><path codeLine="43" d="M131.097,406.082 C157.237,433.557 201.619,474.947 249,496 C277.337,508.591 309.881,516.084 340.472,520.492 " fill="none" id="scaled_unit-backto-alias_unit" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="none" points="125.691,410.543,117.316,391.079,136.001,401.072,125.691,410.543" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[a61d68e6008f4d1392d92030b50774f1]
reverse link scaled_unit to prefixed_alias_unit--><path codeLine="44" d="M121.723,408.926 C143.469,449.631 188.251,521.342 249,556 C273.061,569.7274 301.259,577.7818 328.839,582.3459 " fill="none" id="scaled_unit-backto-prefixed_alias_unit" style="stroke:#383838;stroke-width:1.0;"/><polygon fill="none" points="115.457,412.048,112.598,391.052,127.926,405.682,115.457,412.048" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[0d042b3ffad7c4747f62a95996e464a5]
@startuml
skinparam monochrome true
skinparam shadowing false
skinparam backgroundColor #fcfcfc
hide members
hide circle
left to right direction
package Unit <<Frame>> [[../../framework/units.html]] {
abstract prefix_family [[../../framework/units.html#prefixed-unit]]
abstract no_prefix [[../../framework/units.html#named-scaled-units]]
abstract prefix<PrefixFamily, Symbol, Ratio> [[../../framework/units.html#prefixed-unit]]
prefix_family <|- - no_prefix
prefix_family <.. prefix
' prefix_family <.. named_unit
' prefix_family <.. named_scaled_unit
' prefix_family <.. named_derived_unit
' prefix_family <.. alias_unit
' prefix <.. prefixed_unit
' prefix <.. prefixed_alias_unit
abstract scaled_unit<UnitRatio, Unit>
abstract prefixed_alias_unit<Unit, Prefix, AliasUnit> [[../../framework/units.html#aliased-units]]
abstract alias_unit<Unit, Symbol, PrefixFamily> [[../../framework/units.html#aliased-units]]
abstract named_derived_unit<Dimension, Symbol, PrefixFamily, Unit, Unit...> [[../../framework/units.html#derived-scaled-units]]
abstract derived_unit<Dimension, Unit, Unit...> [[../../framework/units.html#derived-scaled-units]]
abstract prefixed_unit<Prefix, Unit> [[../../framework/units.html#prefixed-unit]]
abstract named_scaled_unit<Symbol, PrefixFamily, Ratio, Unit> [[../../framework/units.html#named-scaled-units]]
abstract named_unit<Symbol, PrefixFamily> [[../../framework/units.html#base-units]]
abstract unit [[../../framework/units.html#derived-unnamed-units]]
scaled_unit <|- - unit
scaled_unit <|- - named_unit
scaled_unit <|- - named_scaled_unit
scaled_unit <|- - prefixed_unit
scaled_unit <|- - derived_unit
scaled_unit <|- - named_derived_unit
scaled_unit <|- - alias_unit
scaled_unit <|- - prefixed_alias_unit
}
@enduml
@startuml
skinparam monochrome true
skinparam shadowing false
skinparam backgroundColor #fcfcfc
hide members
hide circle
left to right direction
package Unit <<Frame>> [[../../framework/units.html]] {
abstract prefix_family [[../../framework/units.html#prefixed-unit]]
abstract no_prefix [[../../framework/units.html#named-scaled-units]]
abstract prefix<PrefixFamily, Symbol, Ratio> [[../../framework/units.html#prefixed-unit]]
prefix_family <|- - no_prefix
prefix_family <.. prefix
abstract scaled_unit<UnitRatio, Unit>
abstract prefixed_alias_unit<Unit, Prefix, AliasUnit> [[../../framework/units.html#aliased-units]]
abstract alias_unit<Unit, Symbol, PrefixFamily> [[../../framework/units.html#aliased-units]]
abstract named_derived_unit<Dimension, Symbol, PrefixFamily, Unit, Unit...> [[../../framework/units.html#derived-scaled-units]]
abstract derived_unit<Dimension, Unit, Unit...> [[../../framework/units.html#derived-scaled-units]]
abstract prefixed_unit<Prefix, Unit> [[../../framework/units.html#prefixed-unit]]
abstract named_scaled_unit<Symbol, PrefixFamily, Ratio, Unit> [[../../framework/units.html#named-scaled-units]]
abstract named_unit<Symbol, PrefixFamily> [[../../framework/units.html#base-units]]
abstract unit [[../../framework/units.html#derived-unnamed-units]]
scaled_unit <|- - unit
scaled_unit <|- - named_unit
scaled_unit <|- - named_scaled_unit
scaled_unit <|- - prefixed_unit
scaled_unit <|- - derived_unit
scaled_unit <|- - named_derived_unit
scaled_unit <|- - alias_unit
scaled_unit <|- - prefixed_alias_unit
}
@enduml
PlantUML version 1.2021.12(Tue Oct 05 16:01:58 UTC 2021)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -6,50 +6,71 @@ Basic Concepts
The most important concepts in the library are `Unit`, `Dimension`,
`Quantity`, `QuantityPoint`, `QuantityKind`, and `QuantityPointKind`:
.. image:: /_static/img/concepts.png
:align: center
.. raw:: html
<object data="/_static/img/concepts.svg" type="image/svg+xml" class="align-center" style="max-width: 100%;"></object>
..
http://www.nomnoml.com
https://www.planttext.com
@startuml
[<abstract>Dimension|
[base_dimension<Symbol, Unit>]<-[exponent<Dimension, Num, Den>]
[derived_dimension<Child, Unit, Exponent...>]<-[exponent<Dimension, Num, Den>]
[exponent<Dimension, Num, Den>]<-[derived_dimension<Child, Unit, Exponent...>]
]
skinparam monochrome true
skinparam shadowing false
skinparam backgroundColor #fcfcfc
[<abstract>Quantity|
[quantity<Dimension, Unit, Rep>]
]
hide circle
hide members
show class methods
[<abstract>QuantityPoint|
[quantity_point<PointOrigin, Unit, Rep>]
]
package Unit <<Frame>> [[../../framework/units.html]] {
}
[<abstract>QuantityKind|
[quantity_kind<Kind, Unit, Rep>]
]
package Dimension <<Frame>> [[../../framework/dimensions.html]] {
}
[<abstract>QuantityPointKind|
[quantity_point_kind<PointKind, Unit, Rep>]
]
abstract kind<Dimension> [[../../framework/quantity_kinds.html#kind-creation]]
abstract point_kind<Kind, PointOrigin> [[../../framework/quantity_kinds.html#quantity-point-kinds]]
abstract point_origin<Dimension> [[../../framework/quantity_points.html#point-origins]]
[<abstract>Unit]<-[Dimension]
[Dimension]<-[Quantity]
[Unit]<-[Quantity]
[Quantity]<-[QuantityPoint]
class quantity<Dimension, Unit, Rep> [[../../framework/quantities.html]] {
rep number()
}
class quantity_point<PointOrigin, Unit, Rep> [[../../framework/quantity_points.html#construction]] {
quantity relative()
}
class quantity_kind<Kind, Unit, Rep> [[../../framework/quantity_kinds.html#construction]] {
quantity common()
}
class quantity_point_kind<PointKind, Unit, Rep> [[../../framework/quantity_kinds.html#quantity-point-kinds]] {
quantity_kind relative()
}
[<abstract>PointOrigin]<-[QuantityPoint]
[Dimension]<-[PointOrigin]
[PointOrigin]<-[PointKind]
[<abstract>Kind]<-[QuantityKind]
[Dimension]<-[Kind]
[Quantity]<-[QuantityKind]
Unit <.. Dimension
[<abstract>PointKind]<-[QuantityPointKind]
[Kind]<-[PointKind]
[QuantityKind]<-[QuantityPointKind]
Dimension <.. quantity
Unit <.. quantity
Dimension <.. kind
Dimension <.. point_origin
point_origin <.. point_kind
kind <.. point_kind
Unit <.. quantity_point
point_origin <.. quantity_point
quantity --* quantity_point
Unit <.. quantity_kind
kind <.. quantity_kind
quantity --* quantity_kind
Unit <.. quantity_point_kind
point_kind <.. quantity_point_kind
quantity_kind --* quantity_point_kind
@enduml
`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

View File

@@ -8,6 +8,14 @@ In the previous chapter we briefly introduced the notion of a physical
Length, time, speed, area, energy are only a few examples of physical
dimensions.
.. raw:: html
<object data="/_static/img/dimensions.svg" type="image/svg+xml" class="align-center" style="max-width: 100%;"></object>
..
https://www.planttext.com
Base Dimensions
---------------

View File

@@ -15,6 +15,85 @@ Base quantities are expressed in terms of :term:`base units <base unit>`
in terms of :term:`derived units <derived unit>`.
Class Hierarchy
---------------
All of the described here class templates to produce unit types inherit from some instance
of a `scaled_unit` class template:
.. raw:: html
<object data="/_static/img/units.svg" type="image/svg+xml" class="align-center" style="max-width: 100%;"></object>
..
https://www.planttext.com
@startuml
skinparam monochrome true
skinparam shadowing false
skinparam backgroundColor #fcfcfc
hide members
hide circle
left to right direction
package Unit <<Frame>> [[../../framework/units.html]] {
abstract prefix_family [[../../framework/units.html#prefixed-unit]]
abstract no_prefix [[../../framework/units.html#named-scaled-units]]
abstract prefix<PrefixFamily, Symbol, Ratio> [[../../framework/units.html#prefixed-unit]]
prefix_family <|-- no_prefix
prefix_family <.. prefix
' prefix_family <.. named_unit
' prefix_family <.. named_scaled_unit
' prefix_family <.. named_derived_unit
' prefix_family <.. alias_unit
' prefix <.. prefixed_unit
' prefix <.. prefixed_alias_unit
abstract scaled_unit<UnitRatio, Unit>
abstract prefixed_alias_unit<Unit, Prefix, AliasUnit> [[../../framework/units.html#aliased-units]]
abstract alias_unit<Unit, Symbol, PrefixFamily> [[../../framework/units.html#aliased-units]]
abstract named_derived_unit<Dimension, Symbol, PrefixFamily, Unit, Unit...> [[../../framework/units.html#derived-scaled-units]]
abstract derived_unit<Dimension, Unit, Unit...> [[../../framework/units.html#derived-scaled-units]]
abstract prefixed_unit<Prefix, Unit> [[../../framework/units.html#prefixed-unit]]
abstract named_scaled_unit<Symbol, PrefixFamily, Ratio, Unit> [[../../framework/units.html#named-scaled-units]]
abstract named_unit<Symbol, PrefixFamily> [[../../framework/units.html#base-units]]
abstract unit [[../../framework/units.html#derived-unnamed-units]]
scaled_unit <|-- unit
scaled_unit <|-- named_unit
scaled_unit <|-- named_scaled_unit
scaled_unit <|-- prefixed_unit
scaled_unit <|-- derived_unit
scaled_unit <|-- named_derived_unit
scaled_unit <|-- alias_unit
scaled_unit <|-- prefixed_alias_unit
}
@enduml
`scaled_unit` is a class template used exclusively by the library's framework
and user should not instantiate it by him/her-self. However the user can sometimes
observe this type in case an unit/dimension conversion expression will end up with an
unknown/undefined unit type like in the below example::
using namespace units::isq::si::references;
Length auto l = 100 * (km / h) * (10 * s);
The type of ``l`` above will be
``si::length<scaled_unit<ratio(1, 36, 1), si::metre>, long double>``. This is caused
by the fact that the library does not define a unit of a length quantity that has the
ratio ``10/36`` of a ``si::metre``. If such a unit was predefined we would see its concrete
type here instead.
Base Units
----------
@@ -359,44 +438,6 @@ class template::
}
Class Hierarchy
---------------
All of the above class templates to produce unit types inherit from some instance
of a `scaled_unit` class template:
.. image:: /_static/img/units.png
:align: center
..
http://www.nomnoml.com
#direction: right
[scaled_unit<UnitRatio, Unit>]<:-[unit<Child>]
[scaled_unit<UnitRatio, Unit>]<:-[named_unit<Child, Symbol, PrefixFamily>]
[scaled_unit<UnitRatio, Unit>]<:-[named_scaled_unit<Child, Symbol, PrefixFamily, Ratio, Unit>]
[scaled_unit<UnitRatio, Unit>]<:-[prefixed_unit<Child, Prefix, Unit>]
[scaled_unit<UnitRatio, Unit>]<:-[derived_unit<Child, Dimension, Unit, Unit...>]
[scaled_unit<UnitRatio, Unit>]<:-[named_derived_unit<Child, Dimension, Symbol, PrefixFamily, Unit, Unit...>]
[scaled_unit<UnitRatio, Unit>]<:-[alias_unit<Unit, Symbol, PrefixFamily>]
[scaled_unit<UnitRatio, Unit>]<:-[prefixed_alias_unit<Unit, Prefix, AliasUnit>]
`scaled_unit` is a class template used exclusively by the library's framework
and user should not instantiate it by him/her-self. However the user can sometimes
observe this type in case an unit/dimension conversion expression will end up with an
unknown/undefined unit type like in the below example::
using namespace units::isq::si::references;
Length auto l = 100 * (km / h) * (10 * s);
The type of ``l`` above will be
``si::length<scaled_unit<ratio(1, 36, 1), si::metre>, long double>``. This is caused
by the fact that the library does not define a unit of a length quantity that has the
ratio ``10/36`` of a ``si::metre``. If such a unit was predefined we would see its concrete
type here instead.
.. seealso::
To learn more about unknown units please refer to the