aboutsummaryrefslogtreecommitdiff
path: root/dep/g3dlite/include/G3D/units.h
blob: 694576f3d255332459efba4dcdba7644d5610c7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/**
 \file G3D/units.h

 \maintainer Morgan McGuire, http://graphics.cs.williams.edu

 \created 2009-08-21
 \edited  2011-07-08
 */
#ifndef G3D_units_h
#define G3D_units_h

#include "G3D/platform.h"

namespace G3D {
/** Use <code>using namespace G3D::units;</code> to include all units
 into your program.  The units system is specifically designed not to
 be general but to support commonly used units efficiently and
 clearly.  See http://en.wikipedia.org/wiki/SI_prefix for interesting facts
 about SI/metric units and full definitions.*/
namespace units {

/** 1e-9 m */
inline float nanometers() {
    return 1e-9f;
}

/** 1e-6 m */
inline float micrometers() {
    return 1e-6f;
}

/** 0.001 m */
inline float millimeters() {
    return 0.001f;
}

/** 0.01 m */
inline float centimeters() {
    return 0.01f;
}

/** SI base unit of distance measure. */
inline float meters() {
    return 1.0f;
}

/** 1000 m */
inline float kilometers() {
    return 1000.0f;
}

/** 0.0254 m */
inline float inches() {
    return 0.0254f;
}

/** 0.3048 m */
inline float feet() {
    return 0.3048f;
}

/** 0.9144 m */
inline float yards() {
    return 0.9144f;
}

/** 1609.344 m */
inline float miles() {
    return 1609.344f;
}

/////////////////////////////////////////////////////////////

/** SI base unit of angular measure. */
inline float radians() {
    return 1.0f;
}

/** pi/180 */
inline float degrees() {
    return 0.0174532925f;
}

//////////////////////////////////////////////////////////////

/** 1e-9 s */
inline float nanoseconds() {
    return 1e-9f;
}

/** 1e-3 s */
inline float milliseconds() {
    return 1e-3f;
}

/** Base unit of time */
inline float seconds() {
    return 1.0;
}

/** 60 s */
inline float minutes() {
    return 60.0f;
}

/** 3600 s */
inline float hours() {
    return 3600.0f;
}

/** 86400 s */
inline float days() {
    return 86400.0f;
}

/**  31556926 s */
inline float years() {
    return 31556926.0f;
}

///////////////////////////////////////////

/** SI unit of mass */
inline float kilograms() {
    return 1.0f;
}

///////////////////////////////////////////

/** 1 kg m / s^2 */
inline float newtons() {
    return 1.0f;
}

///////////////////////////////////////////

/** SI unit of power: W = J/s*/
inline float watts() {
    return 1.0;
}

/** SI unit of energy: J = N*m */
inline float joules() {
    return 1.0;
}

/** Unit of solid angle measure.  A sphere subtends 4 * pi sr. */
inline float steradians() {
    return 1.0;
}


} // units
} // G3D

#endif