Merge branch 'master' into blub/cmd_unset
[divverent/darkplaces.git] / snd_3dras_typedefs.h
1 // This file defines a few "basis measurement" types that extern program will need.
2 #ifndef Typedefs_h
3 #define Typedefs_h
4 #include <stdint.h>
5                                     ///To address a location in a file.
6 typedef unsigned int                FilePosition;
7                                     ///This will express an Amount of something.
8 typedef uint64_t                    Amount;
9                                     /// Index expresses an address in a certain array of data.
10 typedef uint64_t                    Index;
11                                     /// A signed index, to access things that can be access before 0
12 typedef  int64_t                    SignedIndex;
13                                     ///The depth at witch we are tracing.
14 typedef unsigned int                TraceDepth;
15                                     ///The type of a Location (as in a messurement ... from 0)
16 typedef  int64_t                    Location;
17                                     ///The type of a Location on a texture
18 typedef float                       TextureLocation;
19                                     ///The type of a Distance
20 typedef float                       Distance;
21                                     ///The type of a Scalar type for use in: Normal3D, Dot product, Direction3D, ...
22 typedef float                       Scalar;
23                                     ///Howmuch of something ?
24 typedef float                       Ratio;
25                                     ///The type of a an EulerAngle for use in: EulerAngle2D, EulerAngle3D, ...
26 typedef float                       EulerAngle;
27                                     ///The type that detemens the size of 1 Location. Expressed in meters/Location.
28 typedef float                       Scale;
29                                     ///The frequency of something.
30 typedef float                       Frequency;
31                                     ///The wavelength of a frequency
32 typedef Distance                    WaveLength;
33                                     /// Howmany samples we take per secod
34 typedef float                       SampleRate;
35                                     /// The type in witch we will express a SoundSample.
36 typedef float                       Sample;
37                                     /// The type that express the speed of sound (meter/second).
38 typedef float                       SoundSpeed;
39                                     /// The type that that express 1 Time. As in a small step. Note in the feature this will be a class. To make it ring.
40 typedef unsigned int                Time;
41 typedef float                       Duration;
42 //typedef StrongType <unsigned int>   Time;  // Example of a strong typecheck
43                                     /// The amplitude of the SoundPower. This for export to an AudioOutputDevice.
44 typedef float                       SoundVolume;
45                                     /// How mutch power per square meter is received per meter (Watt/Meter^2)
46 typedef float                       SoundIntensity;
47                                     /// An expression of the power of sound source (Watt)
48 typedef float                       SoundPower; // W, The power of the sound source
50 typedef float                       LightIntensity;
51 typedef float                       LightPower;
52 typedef float                       Brightness;
53 typedef float                       Gamma;
54 typedef float                       Color;
55 typedef float                       RefractionIndex;
56 typedef unsigned int                Resolution;
57 #endif