qxLib
distance.h
Go to the documentation of this file.
1 /**
2 
3  @file distance.h
4  @author Khrapov
5  @date 24.09.2025
6  @copyright © Nick Khrapov, 2025. All right reserved.
7 
8 **/
9 #pragma once
10 
11 #include <qx/math/common.h>
12 #include <qx/math/units/base.h>
13 
14 namespace qx::units
15 {
16 
17 enum class distance
18 {
19  // metric (SI)
20  nanometers = -9, // 10^-9 meters
21  micrometers = -6, // 10^-6 meters
22  millimeters = -3, // 10^-3 meters
23  centimeters = -2, // 10^-2 meters
24  decimeters = -1, // 10^-1 meters
25  meters = 0,
26  decameters = 1, // 10^1 meters
27  hectometers = 2, // 10^2 meters
28  kilometers = 3, // 10^3 meters
29  megameters = 6, // 10^6 meters
30  gigameters = 9, // 10^9 meters
31  terameters = 12, // 10^12 meters
32  petameters = 15, // 10^15 meters
33 
34  _last_metric,
35 
36  // imperial
37  mils, // 0.0000254 meters, 0.001 inch
38  inches, // 0.0254 meters
39  hands, // 0.1016 meters, 4 inches
40  links, // 0.201168 meters, 7.92 inches
41  feet, // 0.3048 meters, 12 inches
42  yards, // 0.9144 meters, 3 feet
43  rods, // 5.0292 meters, 5.5 yards
44  chains, // 20.1168 meters, 4 rods
45  furlongs, // 201.168 meters, 10 chains
46  miles, // 1609.344 meters, 8 furlongs
47  leagues, // 4828.032 meters, 3 miles
48 
49  // sea units
50  fathoms, // 1.8288 meters, 2 yards
51  cables, // 185.2 meters, ~100 fathoms
52  nautical_miles, // 1852.0 meters, 10 cables
53 
54  // astronomical units
55  astronomical_units, // 149597870700 meters
56  light_years, // 9460730472580800 meters
57  parsecs, // 30856775814913673 meters
58 };
59 
60 } // namespace qx::units
61