57 template <
class T>
static T Sqrt(T val) {
return sqrt(val);}
59 template <
class T>
static T
Abs(T val) {
return fabs(val);}
60 static int Abs(
int val) {
if (val>0)
return val;
else return -val;}
61 template <
class T>
static T
Sin(T val) {
return sin(val);}
62 template <
class T>
static T
Cos(T val) {
return cos(val);}
63 template <
class T>
static T
Tan(T val) {
return tan(val);}
69 template <
class T>
static T
Squared(T val) {
return val*val;}
71 template <
class T>
static int NumDigits(T val);
72 template <
class T>
static double GetNormalizedValueRespectingLength(T val);
75 static bool isEqual(
int32 lhs,
int32 rhs,
int32 tolerance=std::numeric_limits<int32>::epsilon());
77 static bool isEqual(
uint32 lhs,
uint32 rhs,
uint32 tolerance=std::numeric_limits<uint32>::epsilon());
78 static bool isEqual(
float32 lhs,
float32 rhs,
float32 tolerance=std::numeric_limits<float32>::epsilon());
79 static bool isEqual(
float64 lhs,
float64 rhs,
float64 tolerance=std::numeric_limits<float64>::epsilon());
84 static float32 unitRandom32(
void);
86 static float64 unitRandom64(
void);
88 static int rangeRandom(
int iLow,
int iHigh);
91 static bool randomBool(
void);
98 template <
class T>
static T clamp(T val, T minval, T maxval);
106 template <
class T>
static DtVector3<T> toCartesian(T thetaDegrees, T phiDegrees,
bool flipYZ);
109 template <
class T>
static bool linePlaneIntersection(
const DtVector3<T>& linePoint1,
const DtVector3<T>& linePoint2,
115 template <
class T>
static bool isFinite(T n);
117 template <
class T>
static T Min(T lhs, T rhs);
118 template <
class T>
static T Max(T lhs, T rhs);
121 static double fractional(
double val);
126 static unsigned int tilelog2(
unsigned int x);
130 static T rpmToRadiansPerSec(T rpm);
134 static T radiansPerSecToRpm(T radiansPerSec);
138 template <
class T>
static T
positiveInfinity(
void) {
return std::numeric_limits<T>::max();}
139 template <
class T>
static T
negativeInfinity(
void) {
return std::numeric_limits<T>::min();}
156 Assert(minval <= maxval &&
"Invalid clamp range");
157 return std::max(std::min(val, maxval), minval);
193 T theta = toRadians(thetaDegrees);
194 T phi = toRadians(phiDegrees);
203 T temp = vPosition.
y;
204 vPosition.
y = vPosition.
z;
230 intersect = (lineDir * w) + linePoint1;
248 double normalizedValue = (
double)(val)/(
double)(std::numeric_limits<T>::max());
249 return normalizedValue;
256 && (n != +std::numeric_limits<T>::infinity())
257 && (n != -std::numeric_limits<T>::infinity())
296 return (radiansPerSec / (2.0f *
DtMath::PI)) * 60.0f;
static T clamp(T val, T minval, T maxval)
Clamping routines.
Definition: DtMath.h:154
static const float32 PI
Definition: DtMath.h:142
static T Sin(T val)
Definition: DtMath.h:61
DtRadians(float32 fVal)
Definition: DtMath.h:41
static T Squared(T val)
Definition: DtMath.h:69
virtual ~DtRadians()
Definition: DtMath.h:42
T x
Definition: DtVector4.h:95
float32 myVal
Definition: DtMath.h:48
static const float32 PI_BY_3
Definition: DtMath.h:144
static double GetNormalizedValueRespectingLength(T val)
Definition: DtMath.h:246
static T Cos(T val)
Definition: DtMath.h:62
static const float32 PI_BY_6
Definition: DtMath.h:146
DtDegrees(float32 fVal)
Definition: DtMath.h:28
T dotProduct(const DtVector3 &rhs) const
get the dot product of this vector and rhs
Definition: DtVector3.h:265
float32 val() const
Definition: DtMath.h:43
static T negativeInfinity(void)
Definition: DtMath.h:139
static T radiansPerSecToRpm(T radiansPerSec)
radians per sec to rpm
Definition: DtMath.h:294
static const float32 PI_BY_4
Definition: DtMath.h:145
static bool isFinite(T n)
Definition: DtMath.h:253
T y
Definition: DtVector2.h:101
T z
Definition: DtVector3.h:132
static const float32 TWO_PI
Definition: DtMath.h:141
static int NumDigits(T val)
Definition: DtMath.h:235
T x
Definition: DtVector3.h:132
DtDegrees()
Definition: DtMath.h:34
static bool linePlaneIntersection(const DtVector3< T > &linePoint1, const DtVector3< T > &linePoint2, const DtVector3< T > &planePoint, const DtVector3< T > &planeNormal, DtVector3< T > &intersect, float &w)
Basic intersections.
Definition: DtMath.h:212
static const float32 m_fConvertToDegrees
Definition: DtMath.h:149
4 dimensional vector
Definition: DtMath.h:22
static T Tan(T val)
Definition: DtMath.h:63
static DtVector3< T > toCartesian(T thetaDegrees, T phiDegrees, bool flipYZ)
Definition: DtMath.h:191
static int Abs(int val)
Definition: DtMath.h:60
float float32
Definition: DtCommonTypes.h:33
T z
Definition: DtVector4.h:95
static T Max(T lhs, T rhs)
Definition: DtMath.h:275
static const float32 PI_BY_2
Definition: DtMath.h:143
T w
Definition: DtVector4.h:95
T y
Definition: DtVector3.h:132
static T positiveInfinity(void)
Definition: DtMath.h:138
DtRadians()
Definition: DtMath.h:47
Math utilities.
Definition: DtMath.h:53
virtual ~DtDegrees()
Definition: DtMath.h:29
void normalize(void)
normalize this vector in place
Definition: DtVector3.h:164
2 dimensional vector
Definition: DtMath.h:21
unsigned int uint32
Definition: DtCommonTypes.h:28
static T rpmToRadiansPerSec(T rpm)
rpm to radians per sec
Definition: DtMath.h:288
#define DT_DLL_VRVGRAPHICSUTILS
Definition: vrvGraphicsUtils.h:18
float32 myVal
Definition: DtMath.h:35
T x
Definition: DtVector2.h:101
static T Min(T lhs, T rhs)
Definition: DtMath.h:262
float32 val() const
Definition: DtMath.h:30
T y
Definition: DtVector4.h:95
static const float32 Gravity
Definition: DtMath.h:147
static const float32 m_fConvertToRadians
Definition: DtMath.h:148
static T Abs(T val)
Definition: DtMath.h:59
2 dimensional vector
Definition: DtMath.h:20
#define Assert(exp)
Definition: DtAssert.h:25