fbxsdk/core/math/fbxmath.h File Reference

fbxmath.h File Reference
+ This reference page is linked to from the following overview topics:

Classes

class  FbxEuler
 

Macros

#define FBXSDK_PI   3.1415926535897932384626433832795028841971693993751
 PI mathematic constant. More...
 
#define FBXSDK_PI_DIV_2   1.5707963267948966192313216916397514420985846996875
 PI divided by 2. More...
 
#define FBXSDK_PI_DIV_180   0.017453292519943295769236907684886127134428718885417
 PI divived by 180. More...
 
#define FBXSDK_180_DIV_PI   57.295779513082320876798154814105170332405472466565
 180 divided by PI More...
 
#define FBXSDK_1_DIV_LN2   1.4426950408889634073599246810018921374266459541530
 1 divided by LogN2 More...
 
#define FBXSDK_DEG_TO_RAD   FBXSDK_PI_DIV_180
 Degree to Radian. More...
 
#define FBXSDK_RAD_TO_DEG   FBXSDK_180_DIV_PI
 Radian to Degree. More...
 
#define FBXSDK_IN_TO_CM   2.54
 Inch to Centimeter. More...
 
#define FBXSDK_MM_TO_CM   0.1
 Millimeter to Centimeter. More...
 
#define FBXSDK_CM_TO_IN   0.393700787
 Centimeter to Inch. More...
 
#define FBXSDK_IN_TO_MM   25.4
 Inch to Millimeter. More...
 
#define FBXSDK_MM_TO_IN   0.0393700787
 Millimeter to Inch. More...
 
#define FBXSDK_FT_TO_M   0.3048
 Feet to Meter. More...
 
#define FBXSDK_M_TO_FT   3.2808399
 Meter to Feet. More...
 
#define FBXSDK_YD_TO_FT   3
 Yard to Feet. More...
 
#define FBXSDK_FT_TO_YD   0.333333333
 Feet to Yard. More...
 
#define FBXSDK_KM_TO_MILE   0.621371192
 Kilometer to Mile. More...
 
#define FBXSDK_MILE_TO_KM   1.609344
 Mile to Kilometer. More...
 
#define FBXSDK_YD_TO_M   0.9144
 Yard to Meter. More...
 
#define FBXSDK_M_TO_YD   1.0936133
 Meter to Yard. More...
 
#define FBXSDK_EULER_DEGENERATE   (16.0*FBXSDK_FLOAT_EPSILON)
 Euler degenerate threshold. More...
 
#define EFbxRotationOrder   FbxEuler::EOrder
 Rotation order flags. More...
 
#define eEulerXYZ   FbxEuler::eOrderXYZ
 
#define eEulerXZY   FbxEuler::eOrderXZY
 
#define eEulerYZX   FbxEuler::eOrderYZX
 
#define eEulerYXZ   FbxEuler::eOrderYXZ
 
#define eEulerZXY   FbxEuler::eOrderZXY
 
#define eEulerZYX   FbxEuler::eOrderZYX
 
#define eSphericXYZ   FbxEuler::eOrderSphericXYZ
 

Enumerations

enum  EFbxQuatInterpMode {
  eQuatInterpOff, eQuatInterpClassic, eQuatInterpSlerp, eQuatInterpCubic,
  eQuatInterpTangentDependent, eQuatInterpCount
}
 Quaternion interpolation modes. More...
 

Functions

float FbxFloor (const float x)
 
double FbxFloor (const double x)
 
float FbxCeil (const float x)
 
double FbxCeil (const double x)
 
template<class T >
FbxSign (const T x)
 
template<class T >
FbxRound (const T x)
 
FbxUChar FbxAbs (const FbxUChar x)
 
FbxUShort FbxAbs (const FbxUShort x)
 
FbxUInt FbxAbs (const FbxUInt x)
 
FbxULong FbxAbs (const FbxULong x)
 
FbxULongLong FbxAbs (const FbxULongLong x)
 
FbxFloat FbxAbs (const FbxFloat x)
 
FbxDouble FbxAbs (const FbxDouble x)
 
template<class T >
FbxAbs (const T x)
 
template<class T >
FbxClamp (const T value, const T min, const T max)
 
template<class T >
bool FbxEqual (const T x, const T y, const T e=(T) FBXSDK_TOLERANCE)
 
bool FbxEqual (const FbxDouble2 &x, const FbxDouble2 &y, const double e=FBXSDK_TOLERANCE)
 
bool FbxEqual (const FbxDouble3 &x, const FbxDouble3 &y, const double e=FBXSDK_TOLERANCE)
 
bool FbxEqual (const FbxDouble4 &x, const FbxDouble4 &y, const double e=FBXSDK_TOLERANCE)
 
bool FbxEqual (const FbxDouble4x4 &x, const FbxDouble4x4 &y, const double e=FBXSDK_TOLERANCE)
 
bool FbxEqual (const FbxVector2 &x, const FbxVector2 &y, const double e=FBXSDK_TOLERANCE)
 
bool FbxEqual (const FbxVector4 &x, const FbxVector4 &y, const double e=FBXSDK_TOLERANCE)
 
bool FbxEqual (const FbxMatrix &x, const FbxMatrix &y, const double e=FBXSDK_TOLERANCE)
 
bool FbxEqual (const FbxAMatrix &x, const FbxAMatrix &y, const double e=FBXSDK_TOLERANCE)
 
FbxDouble FbxMod (const FbxFloat x, FbxFloat &i)
 
FbxDouble FbxMod (const FbxDouble x, FbxDouble &i)
 
FbxDouble FbxMod (const FbxFloat x)
 
FbxDouble FbxMod (const FbxDouble x)
 
template<class T >
FbxReciprocal (const T x)
 
double FbxSqrt (const double x)
 
float FbxSqrt (const float x)
 
template<class T >
FbxSqrt (const T x)
 
float FbxExp (const float x)
 
double FbxExp (const double x)
 
float FbxLog (const float x)
 
double FbxLog (const double x)
 
template<class T >
FbxPow (const T x, const T y)
 
template<class T >
FbxLog2 (const T x)
 
float FbxSin (const float x)
 
double FbxSin (const double x)
 
float FbxCos (const float x)
 
double FbxCos (const double x)
 
float FbxTan (const float x)
 
double FbxTan (const double x)
 
template<class T >
FbxSinCos (const T x, T *y)
 
template<class T >
FbxSinCosd (const T x, T *y)
 
float FbxASin (const float x)
 
double FbxASin (const double x)
 
template<class T >
FbxASind (const T x)
 
float FbxACos (const float x)
 
double FbxACos (const double x)
 
template<class T >
FbxACosd (const T x)
 
float FbxATan (const float x)
 
double FbxATan (const double x)
 
template<class T >
FbxATand (const T x)
 
float FbxATan (const float y, const float x)
 
double FbxATan (const double y, const double x)
 
template<class T >
FbxATand (const T y, const T x)
 
template<class T >
FbxNorm (const T x, const T y)
 
template<class T >
FbxNorm (const T x, const T y, const T z)
 
template<class T >
FbxNorm (const T w, const T x, const T y, const T z)
 
template<class T >
FbxHypot (const T x, const T y)
 
template<class T >
FbxHypot (const T x, const T y, const T z)
 
template<class T >
FbxHypot (const T w, const T x, const T y, const T z)
 
FbxVector4 FbxRejection (const FbxVector4 &a, const FbxVector4 &b)
 
template<class T >
int FbxBitCount (const T x)
 
template<class T >
void FbxFixInfinite (T &x)
 
template<class T >
FbxExp (const T x)
 
template<class T >
FbxLog (const T x)
 
template<class T >
FbxSin (const T x)
 
template<class T >
FbxCos (const T x)
 
template<class T >
FbxASin (const T x)
 
template<class T >
FbxACos (const T x)
 
template<class T >
FbxATan (const T x)
 
template<class T >
FbxATan (const T y, const T x)
 

Variables

FBXSDK_DLL const FbxDouble FbxIdentityMatrix [4][4]
 
FBXSDK_DLL const FbxVector4 FbxZeroVector4
 

Macro Definition Documentation

#define FBXSDK_PI   3.1415926535897932384626433832795028841971693993751

PI mathematic constant.

Definition at line 42 of file fbxmath.h.

#define FBXSDK_PI_DIV_2   1.5707963267948966192313216916397514420985846996875

PI divided by 2.

Definition at line 43 of file fbxmath.h.

#define FBXSDK_PI_DIV_180   0.017453292519943295769236907684886127134428718885417

PI divived by 180.

+ Examples:

Definition at line 44 of file fbxmath.h.

#define FBXSDK_180_DIV_PI   57.295779513082320876798154814105170332405472466565

180 divided by PI

+ Examples:

Definition at line 45 of file fbxmath.h.

#define FBXSDK_1_DIV_LN2   1.4426950408889634073599246810018921374266459541530

1 divided by LogN2

Definition at line 46 of file fbxmath.h.

#define FBXSDK_DEG_TO_RAD   FBXSDK_PI_DIV_180

Degree to Radian.

Definition at line 50 of file fbxmath.h.

#define FBXSDK_RAD_TO_DEG   FBXSDK_180_DIV_PI

Radian to Degree.

Definition at line 51 of file fbxmath.h.

#define FBXSDK_IN_TO_CM   2.54

Inch to Centimeter.

Definition at line 52 of file fbxmath.h.

#define FBXSDK_MM_TO_CM   0.1

Millimeter to Centimeter.

Definition at line 53 of file fbxmath.h.

#define FBXSDK_CM_TO_IN   0.393700787

Centimeter to Inch.

Definition at line 54 of file fbxmath.h.

#define FBXSDK_IN_TO_MM   25.4

Inch to Millimeter.

Definition at line 55 of file fbxmath.h.

#define FBXSDK_MM_TO_IN   0.0393700787

Millimeter to Inch.

Definition at line 56 of file fbxmath.h.

#define FBXSDK_FT_TO_M   0.3048

Feet to Meter.

Definition at line 57 of file fbxmath.h.

#define FBXSDK_M_TO_FT   3.2808399

Meter to Feet.

Definition at line 58 of file fbxmath.h.

#define FBXSDK_YD_TO_FT   3

Yard to Feet.

Definition at line 59 of file fbxmath.h.

#define FBXSDK_FT_TO_YD   0.333333333

Feet to Yard.

Definition at line 60 of file fbxmath.h.

#define FBXSDK_KM_TO_MILE   0.621371192

Kilometer to Mile.

Definition at line 61 of file fbxmath.h.

#define FBXSDK_MILE_TO_KM   1.609344

Mile to Kilometer.

Definition at line 62 of file fbxmath.h.

#define FBXSDK_YD_TO_M   0.9144

Yard to Meter.

Definition at line 63 of file fbxmath.h.

#define FBXSDK_M_TO_YD   1.0936133

Meter to Yard.

Definition at line 64 of file fbxmath.h.

#define FBXSDK_EULER_DEGENERATE   (16.0*FBXSDK_FLOAT_EPSILON)

Euler degenerate threshold.

Definition at line 68 of file fbxmath.h.

#define EFbxRotationOrder   FbxEuler::EOrder

Rotation order flags.

Each rotate order produces a different end orientation. For example, if the rotation order for an object is set to XYZ, the object first rotates about its X-axis, then its Y-axis, and finally its Z-axis.

+ Examples:

Definition at line 98 of file fbxmath.h.

#define eEulerXYZ   FbxEuler::eOrderXYZ
+ Examples:

Definition at line 99 of file fbxmath.h.

#define eEulerXZY   FbxEuler::eOrderXZY
+ Examples:

Definition at line 100 of file fbxmath.h.

#define eEulerYZX   FbxEuler::eOrderYZX
+ Examples:

Definition at line 101 of file fbxmath.h.

#define eEulerYXZ   FbxEuler::eOrderYXZ
+ Examples:

Definition at line 102 of file fbxmath.h.

#define eEulerZXY   FbxEuler::eOrderZXY
+ Examples:

Definition at line 103 of file fbxmath.h.

#define eEulerZYX   FbxEuler::eOrderZYX
+ Examples:

Definition at line 104 of file fbxmath.h.

#define eSphericXYZ   FbxEuler::eOrderSphericXYZ
+ Examples:

Definition at line 105 of file fbxmath.h.

Enumeration Type Documentation

Quaternion interpolation modes.

Enumerator
eQuatInterpOff 

Do not evaluate using quaternion interpolation.

eQuatInterpClassic 

Legacy quaternion interpolation mode.

eQuatInterpSlerp 

Spherical linear interpolation.

eQuatInterpCubic 

Cubic interpolation.

eQuatInterpTangentDependent 

Mix between Slerp and cubic interpolation, depending on the specified tangents for each key.

eQuatInterpCount 

Number of quaternion interpolation modes.

Mark the end of this enum.

Definition at line 110 of file fbxmath.h.

111 {
118 };
Mix between Slerp and cubic interpolation, depending on the specified tangents for each key...
Definition: fbxmath.h:116
Spherical linear interpolation.
Definition: fbxmath.h:114
Do not evaluate using quaternion interpolation.
Definition: fbxmath.h:112
Cubic interpolation.
Definition: fbxmath.h:115
Legacy quaternion interpolation mode.
Definition: fbxmath.h:113
Number of quaternion interpolation modes.
Definition: fbxmath.h:117

Function Documentation

float FbxFloor ( const float  x)
inline

Definition at line 123 of file fbxmath.h.

124 {
125  return float(floor(x));
126 }
double FbxFloor ( const double  x)
inline

Definition at line 128 of file fbxmath.h.

129 {
130  return floor(x);
131 }
float FbxCeil ( const float  x)
inline

Definition at line 133 of file fbxmath.h.

134 {
135  return float(ceil(x));
136 }
double FbxCeil ( const double  x)
inline

Definition at line 138 of file fbxmath.h.

139 {
140  return ceil(x);
141 }
T FbxSign ( const T  x)
inline

Definition at line 143 of file fbxmath.h.

144 {
145  return (x < 0) ? T(-1) : T(1);
146 }
T FbxRound ( const T  x)
inline

Definition at line 148 of file fbxmath.h.

149 {
150  T y = FbxFloor(x);
151  return (x - y < T(0.5)) ? y : y + T(1);
152 }
float FbxFloor(const float x)
Definition: fbxmath.h:123
FbxUChar FbxAbs ( const FbxUChar  x)
inline

Definition at line 154 of file fbxmath.h.

155 {
156  return x;
157 }
FbxUShort FbxAbs ( const FbxUShort  x)
inline

Definition at line 159 of file fbxmath.h.

160 {
161  return x;
162 }
FbxUInt FbxAbs ( const FbxUInt  x)
inline

Definition at line 164 of file fbxmath.h.

165 {
166  return x;
167 }
FbxULong FbxAbs ( const FbxULong  x)
inline

Definition at line 170 of file fbxmath.h.

171  {
172  return x;
173  }
FbxULongLong FbxAbs ( const FbxULongLong  x)
inline

Definition at line 176 of file fbxmath.h.

177 {
178  return x;
179 }
FbxFloat FbxAbs ( const FbxFloat  x)
inline

Definition at line 181 of file fbxmath.h.

182 {
183  return fabs(x);
184 }
FbxDouble FbxAbs ( const FbxDouble  x)
inline

Definition at line 186 of file fbxmath.h.

187 {
188  return fabs(x);
189 }
T FbxAbs ( const T  x)
inline

Definition at line 191 of file fbxmath.h.

192 {
193  return (x >= 0) ? x : ((x > FbxMin(x)) ? -x : FbxMax(x));
194 }
const FbxChar FbxMin(const FbxChar)
Definition: fbxtypes.h:154
const FbxChar FbxMax(const FbxChar)
Definition: fbxtypes.h:165
T FbxClamp ( const T  value,
const T  min,
const T  max 
)
inline

Definition at line 196 of file fbxmath.h.

197 {
198  return (value < min) ? min : ((value > max) ? max : value);
199 }
bool FbxEqual ( const T  x,
const T  y,
const T  e = (T)FBXSDK_TOLERANCE 
)
inline

Definition at line 201 of file fbxmath.h.

202 {
203  return FbxAbs(x - y) <= e;
204 }
FbxUChar FbxAbs(const FbxUChar x)
Definition: fbxmath.h:154
bool FbxEqual ( const FbxDouble2 x,
const FbxDouble2 y,
const double  e = FBXSDK_TOLERANCE 
)
inline

Definition at line 206 of file fbxmath.h.

207 {
208  return ( FbxEqual(x.mData[0], y.mData[0], e) && FbxEqual(x.mData[1], y.mData[1], e) );
209 }
bool FbxEqual(const T x, const T y, const T e=(T) FBXSDK_TOLERANCE)
Definition: fbxmath.h:201
bool FbxEqual ( const FbxDouble3 x,
const FbxDouble3 y,
const double  e = FBXSDK_TOLERANCE 
)
inline

Definition at line 211 of file fbxmath.h.

212 {
213  return ( FbxEqual(x.mData[0], y.mData[0], e) && FbxEqual(x.mData[1], y.mData[1], e) && FbxEqual(x.mData[2], y.mData[2], e) );
214 }
bool FbxEqual(const T x, const T y, const T e=(T) FBXSDK_TOLERANCE)
Definition: fbxmath.h:201
bool FbxEqual ( const FbxDouble4 x,
const FbxDouble4 y,
const double  e = FBXSDK_TOLERANCE 
)
inline

Definition at line 216 of file fbxmath.h.

217 {
218  return ( FbxEqual(x.mData[0], y.mData[0], e) && FbxEqual(x.mData[1], y.mData[1], e) && FbxEqual(x.mData[2], y.mData[2], e) && FbxEqual(x.mData[3], y.mData[3], e) );
219 }
bool FbxEqual(const T x, const T y, const T e=(T) FBXSDK_TOLERANCE)
Definition: fbxmath.h:201
bool FbxEqual ( const FbxDouble4x4 x,
const FbxDouble4x4 y,
const double  e = FBXSDK_TOLERANCE 
)
inline

Definition at line 221 of file fbxmath.h.

222 {
223  return ( FbxEqual(x[0], y[0], e) && FbxEqual(x[1], y[1], e) && FbxEqual(x[2], y[2], e) && FbxEqual(x[3], y[3], e) );
224 }
bool FbxEqual(const T x, const T y, const T e=(T) FBXSDK_TOLERANCE)
Definition: fbxmath.h:201
bool FbxEqual ( const FbxVector2 x,
const FbxVector2 y,
const double  e = FBXSDK_TOLERANCE 
)
inline

Definition at line 226 of file fbxmath.h.

227 {
228  return ( FbxEqual(x.mData[0], y.mData[0], e) && FbxEqual(x.mData[1], y.mData[1], e) );
229 }
bool FbxEqual(const T x, const T y, const T e=(T) FBXSDK_TOLERANCE)
Definition: fbxmath.h:201
bool FbxEqual ( const FbxVector4 x,
const FbxVector4 y,
const double  e = FBXSDK_TOLERANCE 
)
inline

Definition at line 231 of file fbxmath.h.

232 {
233  return ( FbxEqual(x.mData[0], y.mData[0], e) && FbxEqual(x.mData[1], y.mData[1], e) && FbxEqual(x.mData[2], y.mData[2], e) && FbxEqual(x.mData[3], y.mData[3], e) );
234 }
bool FbxEqual(const T x, const T y, const T e=(T) FBXSDK_TOLERANCE)
Definition: fbxmath.h:201
bool FbxEqual ( const FbxMatrix x,
const FbxMatrix y,
const double  e = FBXSDK_TOLERANCE 
)
inline

Definition at line 236 of file fbxmath.h.

237 {
238  return ( FbxEqual(x[0], y[0], e) && FbxEqual(x[1], y[1], e) && FbxEqual(x[2], y[2], e) && FbxEqual(x[3], y[3], e) );
239 }
bool FbxEqual(const T x, const T y, const T e=(T) FBXSDK_TOLERANCE)
Definition: fbxmath.h:201
bool FbxEqual ( const FbxAMatrix x,
const FbxAMatrix y,
const double  e = FBXSDK_TOLERANCE 
)
inline

Definition at line 241 of file fbxmath.h.

242 {
243  return ( FbxEqual(x[0], y[0], e) && FbxEqual(x[1], y[1], e) && FbxEqual(x[2], y[2], e) && FbxEqual(x[3], y[3], e) );
244 }
bool FbxEqual(const T x, const T y, const T e=(T) FBXSDK_TOLERANCE)
Definition: fbxmath.h:201
FbxDouble FbxMod ( const FbxFloat  x,
FbxFloat i 
)
inline

Definition at line 246 of file fbxmath.h.

247 {
248  return modff(x, &i);
249 }
FbxDouble FbxMod ( const FbxDouble  x,
FbxDouble i 
)
inline

Definition at line 251 of file fbxmath.h.

252 {
253  return modf(x, &i);
254 }
FbxDouble FbxMod ( const FbxFloat  x)
inline

Definition at line 256 of file fbxmath.h.

257 {
258  FbxFloat i;
259  return modff(x, &i);
260 }
float FbxFloat
Definition: fbxtypes.h:41
FbxDouble FbxMod ( const FbxDouble  x)
inline

Definition at line 262 of file fbxmath.h.

263 {
264  FbxDouble i;
265  return modf(x, &i);
266 }
double FbxDouble
Definition: fbxtypes.h:42
T FbxReciprocal ( const T  x)
inline

Definition at line 268 of file fbxmath.h.

269 {
270  return T(1) / x;
271 }
double FbxSqrt ( const double  x)
inline

Definition at line 273 of file fbxmath.h.

274 {
275  return sqrt(x);
276 }
float FbxSqrt ( const float  x)
inline

Definition at line 278 of file fbxmath.h.

279 {
280  return sqrtf(x);
281 }
T FbxSqrt ( const T  x)
inline

Definition at line 283 of file fbxmath.h.

284 {
285  if( x > 1 )
286  {
287  T z, y = x >> 1;
288  do
289  {
290  z = y;
291  y = (y + (x / y)) >> 1;
292  }
293  while(y < z);
294 
295  return z;
296  }
297  else
298  {
299  return x;
300  }
301 }
float FbxExp ( const float  x)
inline

Definition at line 303 of file fbxmath.h.

304 {
305  return expf(x);
306 }
double FbxExp ( const double  x)
inline

Definition at line 308 of file fbxmath.h.

309 {
310  return exp(x);
311 }
float FbxLog ( const float  x)
inline

Definition at line 313 of file fbxmath.h.

314 {
315  return float(log(x));
316 }
double FbxLog ( const double  x)
inline

Definition at line 318 of file fbxmath.h.

319 {
320  return log(x);
321 }
T FbxPow ( const T  x,
const T  y 
)
inline

Definition at line 323 of file fbxmath.h.

324 {
325  return (T)FbxExp(y * FbxLog((double)x));
326 }
float FbxLog(const float x)
Definition: fbxmath.h:313
float FbxExp(const float x)
Definition: fbxmath.h:303
T FbxLog2 ( const T  x)
inline

Definition at line 328 of file fbxmath.h.

329 {
330  return (T)(FbxLog(x) * FBXSDK_1_DIV_LN2);
331 }
#define FBXSDK_1_DIV_LN2
1 divided by LogN2
Definition: fbxmath.h:46
float FbxLog(const float x)
Definition: fbxmath.h:313
float FbxSin ( const float  x)
inline

Definition at line 333 of file fbxmath.h.

334 {
335  return sinf(x);
336 }
double FbxSin ( const double  x)
inline

Definition at line 338 of file fbxmath.h.

339 {
340  return sin(x);
341 }
float FbxCos ( const float  x)
inline

Definition at line 343 of file fbxmath.h.

344 {
345  return cosf(x);
346 }
double FbxCos ( const double  x)
inline

Definition at line 348 of file fbxmath.h.

349 {
350  return cos(x);
351 }
float FbxTan ( const float  x)
inline

Definition at line 353 of file fbxmath.h.

354 {
355  return tanf(x);
356 }
double FbxTan ( const double  x)
inline

Definition at line 358 of file fbxmath.h.

359 {
360  return tan(x);
361 }
T FbxSinCos ( const T  x,
T *  y 
)
inline

Definition at line 364 of file fbxmath.h.

365 {
366  return *y = FbxCos(x), FbxSin(x);
367 }
float FbxCos(const float x)
Definition: fbxmath.h:343
float FbxSin(const float x)
Definition: fbxmath.h:333
T FbxSinCosd ( const T  x,
T *  y 
)
inline

Definition at line 370 of file fbxmath.h.

371 {
372  return FbxSinCos(T(x * FBXSDK_PI_DIV_180), y);
373 }
T FbxSinCos(const T x, T *y)
Definition: fbxmath.h:364
#define FBXSDK_PI_DIV_180
PI divived by 180.
Definition: fbxmath.h:44
float FbxASin ( const float  x)
inline

Definition at line 375 of file fbxmath.h.

376 {
377  return asinf(x);
378 }
double FbxASin ( const double  x)
inline

Definition at line 380 of file fbxmath.h.

381 {
382  return asin(x);
383 }
T FbxASind ( const T  x)
inline

Definition at line 385 of file fbxmath.h.

386 {
387  return (T)(FbxASin((double)x) * FBXSDK_180_DIV_PI);
388 }
#define FBXSDK_180_DIV_PI
180 divided by PI
Definition: fbxmath.h:45
float FbxASin(const float x)
Definition: fbxmath.h:375
float FbxACos ( const float  x)
inline

Definition at line 390 of file fbxmath.h.

391 {
392  return acosf(x);
393 }
double FbxACos ( const double  x)
inline

Definition at line 395 of file fbxmath.h.

396 {
397  return acos(x);
398 }
T FbxACosd ( const T  x)
inline

Definition at line 400 of file fbxmath.h.

401 {
402  return (T)(FbxACos(x) * FBXSDK_180_DIV_PI);
403 }
#define FBXSDK_180_DIV_PI
180 divided by PI
Definition: fbxmath.h:45
float FbxACos(const float x)
Definition: fbxmath.h:390
float FbxATan ( const float  x)
inline

Definition at line 405 of file fbxmath.h.

406 {
407  return atanf(x);
408 }
double FbxATan ( const double  x)
inline

Definition at line 410 of file fbxmath.h.

411 {
412  return atan(x);
413 }
T FbxATand ( const T  x)
inline

Definition at line 415 of file fbxmath.h.

416 {
417  return (T)(FbxATan(x) * FBXSDK_180_DIV_PI);
418 }
#define FBXSDK_180_DIV_PI
180 divided by PI
Definition: fbxmath.h:45
float FbxATan(const float x)
Definition: fbxmath.h:405
float FbxATan ( const float  y,
const float  x 
)
inline

Definition at line 420 of file fbxmath.h.

421 {
422  return atan2f(y, x);
423 }
double FbxATan ( const double  y,
const double  x 
)
inline

Definition at line 425 of file fbxmath.h.

426 {
427  return atan2(y, x);
428 }
T FbxATand ( const T  y,
const T  x 
)
inline

Definition at line 430 of file fbxmath.h.

431 {
432  return (T)(FbxATan(y, x) * FBXSDK_180_DIV_PI);
433 }
#define FBXSDK_180_DIV_PI
180 divided by PI
Definition: fbxmath.h:45
float FbxATan(const float x)
Definition: fbxmath.h:405
T FbxNorm ( const T  x,
const T  y 
)
inline

Definition at line 435 of file fbxmath.h.

436 {
437  return FbxSqrt(x * x + y * y);
438 }
double FbxSqrt(const double x)
Definition: fbxmath.h:273
T FbxNorm ( const T  x,
const T  y,
const T  z 
)
inline

Definition at line 440 of file fbxmath.h.

441 {
442  return FbxSqrt(x * x + y * y + z * z);
443 }
double FbxSqrt(const double x)
Definition: fbxmath.h:273
T FbxNorm ( const T  w,
const T  x,
const T  y,
const T  z 
)
inline

Definition at line 445 of file fbxmath.h.

446 {
447  return FbxSqrt(w * w + x * x + y * y + z * z);
448 }
double FbxSqrt(const double x)
Definition: fbxmath.h:273
T FbxHypot ( const T  x,
const T  y 
)
inline

Definition at line 450 of file fbxmath.h.

451 {
452  return FbxSqrt(x * x + y * y);
453 }
double FbxSqrt(const double x)
Definition: fbxmath.h:273
T FbxHypot ( const T  x,
const T  y,
const T  z 
)
inline

Definition at line 455 of file fbxmath.h.

456 {
457  return FbxSqrt(x * x + y * y + z * z);
458 }
double FbxSqrt(const double x)
Definition: fbxmath.h:273
T FbxHypot ( const T  w,
const T  x,
const T  y,
const T  z 
)
inline

Definition at line 460 of file fbxmath.h.

461 {
462  return FbxSqrt(w * w + x * x + y * y + z * z);
463 }
double FbxSqrt(const double x)
Definition: fbxmath.h:273
FbxVector4 FbxRejection ( const FbxVector4 a,
const FbxVector4 b 
)
inline

Definition at line 465 of file fbxmath.h.

466 {
467  return a - b * (a.DotProduct(b) / b.DotProduct(b));
468 }
double DotProduct(const FbxVector4 &pVector) const
Calculate the dot product of two vectors.
int FbxBitCount ( const T  x)
inline

Definition at line 470 of file fbxmath.h.

471 {
472  int n = 0;
473  T c = x;
474  while( c )
475  {
476  n += int(c & 1);
477  c = (c >> 1);
478  }
479  return n;
480 }
void FbxFixInfinite ( T &  x)
inline

Definition at line 482 of file fbxmath.h.

483 {
484  if( x != x || x > FbxMax(x) || x < -FbxMax(x) )
485  {
486  x = T(0);
487  }
488 }
const FbxChar FbxMax(const FbxChar)
Definition: fbxtypes.h:165
T FbxExp ( const T  x)
inline
T FbxLog ( const T  x)
inline
T FbxSin ( const T  x)
inline
T FbxCos ( const T  x)
inline
T FbxASin ( const T  x)
inline
T FbxACos ( const T  x)
inline
T FbxATan ( const T  x)
inline
T FbxATan ( const T  y,
const T  x 
)
inline

Variable Documentation

FBXSDK_DLL const FbxDouble FbxIdentityMatrix[4][4]
FBXSDK_DLL const FbxVector4 FbxZeroVector4

Go to the source code of this file.