FBX C++ API Reference
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fbxmath.h File Reference

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   FbxEuler::DegenerateThreshold()
 Euler degenerate threshold can be changed with a call to FbxEuler::SetDegenerateThreshold. 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)(1.0e-6))
 
bool FbxEqual (const FbxDouble2 &x, const FbxDouble2 &y, const double e=(1.0e-6))
 
bool FbxEqual (const FbxDouble3 &x, const FbxDouble3 &y, const double e=(1.0e-6))
 
bool FbxEqual (const FbxDouble4 &x, const FbxDouble4 &y, const double e=(1.0e-6))
 
bool FbxEqual (const FbxDouble4x4 &x, const FbxDouble4x4 &y, const double e=(1.0e-6))
 
bool FbxEqual (const FbxVector2 &x, const FbxVector2 &y, const double e=(1.0e-6))
 
bool FbxEqual (const FbxVector4 &x, const FbxVector4 &y, const double e=(1.0e-6))
 
bool FbxEqual (const FbxMatrix &x, const FbxMatrix &y, const double e=(1.0e-6))
 
bool FbxEqual (const FbxAMatrix &x, const FbxAMatrix &y, const double e=(1.0e-6))
 
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

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

Macro Definition Documentation

◆ FBXSDK_PI

#define FBXSDK_PI   3.1415926535897932384626433832795028841971693993751

PI mathematic constant.

Definition at line 42 of file fbxmath.h.

◆ FBXSDK_PI_DIV_2

#define FBXSDK_PI_DIV_2   1.5707963267948966192313216916397514420985846996875

PI divided by 2.

Definition at line 43 of file fbxmath.h.

◆ FBXSDK_PI_DIV_180

#define FBXSDK_PI_DIV_180   0.017453292519943295769236907684886127134428718885417

PI divived by 180.

Examples:
ViewScene/SetCamera.cxx.

Definition at line 44 of file fbxmath.h.

◆ FBXSDK_180_DIV_PI

#define FBXSDK_180_DIV_PI   57.295779513082320876798154814105170332405472466565

180 divided by PI

Examples:
ViewScene/SetCamera.cxx.

Definition at line 45 of file fbxmath.h.

◆ FBXSDK_1_DIV_LN2

#define FBXSDK_1_DIV_LN2   1.4426950408889634073599246810018921374266459541530

1 divided by LogN2

Definition at line 46 of file fbxmath.h.

◆ FBXSDK_DEG_TO_RAD

#define FBXSDK_DEG_TO_RAD   FBXSDK_PI_DIV_180

Degree to Radian.

Definition at line 50 of file fbxmath.h.

◆ FBXSDK_RAD_TO_DEG

#define FBXSDK_RAD_TO_DEG   FBXSDK_180_DIV_PI

Radian to Degree.

Definition at line 51 of file fbxmath.h.

◆ FBXSDK_IN_TO_CM

#define FBXSDK_IN_TO_CM   2.54

Inch to Centimeter.

Definition at line 52 of file fbxmath.h.

◆ FBXSDK_MM_TO_CM

#define FBXSDK_MM_TO_CM   0.1

Millimeter to Centimeter.

Definition at line 53 of file fbxmath.h.

◆ FBXSDK_CM_TO_IN

#define FBXSDK_CM_TO_IN   0.393700787

Centimeter to Inch.

Definition at line 54 of file fbxmath.h.

◆ FBXSDK_IN_TO_MM

#define FBXSDK_IN_TO_MM   25.4

Inch to Millimeter.

Definition at line 55 of file fbxmath.h.

◆ FBXSDK_MM_TO_IN

#define FBXSDK_MM_TO_IN   0.0393700787

Millimeter to Inch.

Definition at line 56 of file fbxmath.h.

◆ FBXSDK_FT_TO_M

#define FBXSDK_FT_TO_M   0.3048

Feet to Meter.

Definition at line 57 of file fbxmath.h.

◆ FBXSDK_M_TO_FT

#define FBXSDK_M_TO_FT   3.2808399

Meter to Feet.

Definition at line 58 of file fbxmath.h.

◆ FBXSDK_YD_TO_FT

#define FBXSDK_YD_TO_FT   3

Yard to Feet.

Definition at line 59 of file fbxmath.h.

◆ FBXSDK_FT_TO_YD

#define FBXSDK_FT_TO_YD   0.333333333

Feet to Yard.

Definition at line 60 of file fbxmath.h.

◆ FBXSDK_KM_TO_MILE

#define FBXSDK_KM_TO_MILE   0.621371192

Kilometer to Mile.

Definition at line 61 of file fbxmath.h.

◆ FBXSDK_MILE_TO_KM

#define FBXSDK_MILE_TO_KM   1.609344

Mile to Kilometer.

Definition at line 62 of file fbxmath.h.

◆ FBXSDK_YD_TO_M

#define FBXSDK_YD_TO_M   0.9144

Yard to Meter.

Definition at line 63 of file fbxmath.h.

◆ FBXSDK_M_TO_YD

#define FBXSDK_M_TO_YD   1.0936133

Meter to Yard.

Definition at line 64 of file fbxmath.h.

◆ FBXSDK_EULER_DEGENERATE

#define FBXSDK_EULER_DEGENERATE   FbxEuler::DegenerateThreshold()

Euler degenerate threshold can be changed with a call to FbxEuler::SetDegenerateThreshold.

Definition at line 68 of file fbxmath.h.

◆ EFbxRotationOrder

#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:
ImportScene/main.cxx.

Definition at line 109 of file fbxmath.h.

◆ eEulerXYZ

#define eEulerXYZ   FbxEuler::eOrderXYZ
Examples:
ImportScene/main.cxx.

Definition at line 110 of file fbxmath.h.

◆ eEulerXZY

#define eEulerXZY   FbxEuler::eOrderXZY
Examples:
ImportScene/main.cxx.

Definition at line 111 of file fbxmath.h.

◆ eEulerYZX

#define eEulerYZX   FbxEuler::eOrderYZX
Examples:
ImportScene/main.cxx.

Definition at line 112 of file fbxmath.h.

◆ eEulerYXZ

#define eEulerYXZ   FbxEuler::eOrderYXZ
Examples:
ImportScene/main.cxx.

Definition at line 113 of file fbxmath.h.

◆ eEulerZXY

#define eEulerZXY   FbxEuler::eOrderZXY
Examples:
ImportScene/main.cxx.

Definition at line 114 of file fbxmath.h.

◆ eEulerZYX

#define eEulerZYX   FbxEuler::eOrderZYX
Examples:
ImportScene/main.cxx.

Definition at line 115 of file fbxmath.h.

◆ eSphericXYZ

#define eSphericXYZ   FbxEuler::eOrderSphericXYZ
Examples:
ExportScene05/main.cxx, and ImportScene/main.cxx.

Definition at line 116 of file fbxmath.h.

Enumeration Type Documentation

◆ EFbxQuatInterpMode

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 121 of file fbxmath.h.

122 {
129 };
Mix between Slerp and cubic interpolation, depending on the specified tangents for each key...
Definition: fbxmath.h:127
Spherical linear interpolation.
Definition: fbxmath.h:125
Do not evaluate using quaternion interpolation.
Definition: fbxmath.h:123
Cubic interpolation.
Definition: fbxmath.h:126
Legacy quaternion interpolation mode.
Definition: fbxmath.h:124
Number of quaternion interpolation modes.
Definition: fbxmath.h:128

Function Documentation

◆ FbxFloor() [1/2]

float FbxFloor ( const float  x)
inline

Definition at line 134 of file fbxmath.h.

135 {
136  return float(floor(x));
137 }

◆ FbxFloor() [2/2]

double FbxFloor ( const double  x)
inline

Definition at line 139 of file fbxmath.h.

140 {
141  return floor(x);
142 }

◆ FbxCeil() [1/2]

float FbxCeil ( const float  x)
inline

Definition at line 144 of file fbxmath.h.

145 {
146  return float(ceil(x));
147 }

◆ FbxCeil() [2/2]

double FbxCeil ( const double  x)
inline

Definition at line 149 of file fbxmath.h.

150 {
151  return ceil(x);
152 }

◆ FbxSign()

T FbxSign ( const T  x)
inline

Definition at line 154 of file fbxmath.h.

155 {
156  return (x < 0) ? T(-1) : T(1);
157 }

◆ FbxRound()

T FbxRound ( const T  x)
inline

Definition at line 159 of file fbxmath.h.

160 {
161  T y = FbxFloor(x);
162  return (x - y < T(0.5)) ? y : y + T(1);
163 }
float FbxFloor(const float x)
Definition: fbxmath.h:134

◆ FbxAbs() [1/8]

FbxUChar FbxAbs ( const FbxUChar  x)
inline

Definition at line 165 of file fbxmath.h.

166 {
167  return x;
168 }

◆ FbxAbs() [2/8]

FbxUShort FbxAbs ( const FbxUShort  x)
inline

Definition at line 170 of file fbxmath.h.

171 {
172  return x;
173 }

◆ FbxAbs() [3/8]

FbxUInt FbxAbs ( const FbxUInt  x)
inline

Definition at line 175 of file fbxmath.h.

176 {
177  return x;
178 }

◆ FbxAbs() [4/8]

FbxULong FbxAbs ( const FbxULong  x)
inline

Definition at line 181 of file fbxmath.h.

182  {
183  return x;
184  }

◆ FbxAbs() [5/8]

FbxULongLong FbxAbs ( const FbxULongLong  x)
inline

Definition at line 187 of file fbxmath.h.

188 {
189  return x;
190 }

◆ FbxAbs() [6/8]

FbxFloat FbxAbs ( const FbxFloat  x)
inline

Definition at line 192 of file fbxmath.h.

193 {
194  return (FbxFloat)fabs(x);
195 }
float FbxFloat
Definition: fbxtypes.h:41

◆ FbxAbs() [7/8]

FbxDouble FbxAbs ( const FbxDouble  x)
inline

Definition at line 197 of file fbxmath.h.

198 {
199  return fabs(x);
200 }

◆ FbxAbs() [8/8]

T FbxAbs ( const T  x)
inline

Definition at line 202 of file fbxmath.h.

203 {
204  return (x >= 0) ? x : ((x > FbxMin(x)) ? -x : FbxMax(x));
205 }
const FbxChar FbxMin(const FbxChar)
Definition: fbxtypes.h:162
const FbxChar FbxMax(const FbxChar)
Definition: fbxtypes.h:173

◆ FbxClamp()

T FbxClamp ( const T  value,
const T  min,
const T  max 
)
inline

Definition at line 207 of file fbxmath.h.

208 {
209  return (value < min) ? min : ((value > max) ? max : value);
210 }

◆ FbxEqual() [1/9]

bool FbxEqual ( const T  x,
const T  y,
const T  e = (T) (1.0e-6) 
)
inline

Definition at line 212 of file fbxmath.h.

213 {
214  return FbxAbs(x - y) <= e;
215 }
FbxUChar FbxAbs(const FbxUChar x)
Definition: fbxmath.h:165

◆ FbxEqual() [2/9]

bool FbxEqual ( const FbxDouble2 x,
const FbxDouble2 y,
const double  e = (1.0e-6) 
)
inline

Definition at line 217 of file fbxmath.h.

218 {
219  return ( FbxEqual(x.mData[0], y.mData[0], e) && FbxEqual(x.mData[1], y.mData[1], e) );
220 }
bool FbxEqual(const T x, const T y, const T e=(T)(1.0e-6))
Definition: fbxmath.h:212

◆ FbxEqual() [3/9]

bool FbxEqual ( const FbxDouble3 x,
const FbxDouble3 y,
const double  e = (1.0e-6) 
)
inline

Definition at line 222 of file fbxmath.h.

223 {
224  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) );
225 }
bool FbxEqual(const T x, const T y, const T e=(T)(1.0e-6))
Definition: fbxmath.h:212

◆ FbxEqual() [4/9]

bool FbxEqual ( const FbxDouble4 x,
const FbxDouble4 y,
const double  e = (1.0e-6) 
)
inline

Definition at line 227 of file fbxmath.h.

228 {
229  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) );
230 }
bool FbxEqual(const T x, const T y, const T e=(T)(1.0e-6))
Definition: fbxmath.h:212

◆ FbxEqual() [5/9]

bool FbxEqual ( const FbxDouble4x4 x,
const FbxDouble4x4 y,
const double  e = (1.0e-6) 
)
inline

Definition at line 232 of file fbxmath.h.

233 {
234  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) );
235 }
bool FbxEqual(const T x, const T y, const T e=(T)(1.0e-6))
Definition: fbxmath.h:212

◆ FbxEqual() [6/9]

bool FbxEqual ( const FbxVector2 x,
const FbxVector2 y,
const double  e = (1.0e-6) 
)
inline

Definition at line 237 of file fbxmath.h.

238 {
239  return ( FbxEqual(x.mData[0], y.mData[0], e) && FbxEqual(x.mData[1], y.mData[1], e) );
240 }
bool FbxEqual(const T x, const T y, const T e=(T)(1.0e-6))
Definition: fbxmath.h:212

◆ FbxEqual() [7/9]

bool FbxEqual ( const FbxVector4 x,
const FbxVector4 y,
const double  e = (1.0e-6) 
)
inline

Definition at line 242 of file fbxmath.h.

243 {
244  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) );
245 }
bool FbxEqual(const T x, const T y, const T e=(T)(1.0e-6))
Definition: fbxmath.h:212

◆ FbxEqual() [8/9]

bool FbxEqual ( const FbxMatrix x,
const FbxMatrix y,
const double  e = (1.0e-6) 
)
inline

Definition at line 247 of file fbxmath.h.

248 {
249  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) );
250 }
bool FbxEqual(const T x, const T y, const T e=(T)(1.0e-6))
Definition: fbxmath.h:212

◆ FbxEqual() [9/9]

bool FbxEqual ( const FbxAMatrix x,
const FbxAMatrix y,
const double  e = (1.0e-6) 
)
inline

Definition at line 252 of file fbxmath.h.

253 {
254  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) );
255 }
bool FbxEqual(const T x, const T y, const T e=(T)(1.0e-6))
Definition: fbxmath.h:212

◆ FbxMod() [1/4]

FbxDouble FbxMod ( const FbxFloat  x,
FbxFloat i 
)
inline

Definition at line 257 of file fbxmath.h.

258 {
259  return modff(x, &i);
260 }

◆ FbxMod() [2/4]

FbxDouble FbxMod ( const FbxDouble  x,
FbxDouble i 
)
inline

Definition at line 262 of file fbxmath.h.

263 {
264  return modf(x, &i);
265 }

◆ FbxMod() [3/4]

FbxDouble FbxMod ( const FbxFloat  x)
inline

Definition at line 267 of file fbxmath.h.

268 {
269  FbxFloat i;
270  return modff(x, &i);
271 }
float FbxFloat
Definition: fbxtypes.h:41

◆ FbxMod() [4/4]

FbxDouble FbxMod ( const FbxDouble  x)
inline

Definition at line 273 of file fbxmath.h.

274 {
275  FbxDouble i;
276  return modf(x, &i);
277 }
double FbxDouble
Definition: fbxtypes.h:42

◆ FbxReciprocal()

T FbxReciprocal ( const T  x)
inline

Definition at line 279 of file fbxmath.h.

280 {
281  return T(1) / x;
282 }

◆ FbxSqrt() [1/3]

double FbxSqrt ( const double  x)
inline

Definition at line 284 of file fbxmath.h.

285 {
286  return sqrt(x);
287 }

◆ FbxSqrt() [2/3]

float FbxSqrt ( const float  x)
inline

Definition at line 289 of file fbxmath.h.

290 {
291  return sqrtf(x);
292 }

◆ FbxSqrt() [3/3]

T FbxSqrt ( const T  x)
inline

Definition at line 294 of file fbxmath.h.

295 {
296  if( x > 1 )
297  {
298  T z, y = x >> 1;
299  do
300  {
301  z = y;
302  y = (y + (x / y)) >> 1;
303  }
304  while(y < z);
305 
306  return z;
307  }
308  else
309  {
310  return x;
311  }
312 }

◆ FbxExp() [1/3]

float FbxExp ( const float  x)
inline

Definition at line 314 of file fbxmath.h.

315 {
316  return expf(x);
317 }

◆ FbxExp() [2/3]

double FbxExp ( const double  x)
inline

Definition at line 319 of file fbxmath.h.

320 {
321  return exp(x);
322 }

◆ FbxLog() [1/3]

float FbxLog ( const float  x)
inline

Definition at line 324 of file fbxmath.h.

325 {
326  return float(log(x));
327 }

◆ FbxLog() [2/3]

double FbxLog ( const double  x)
inline

Definition at line 329 of file fbxmath.h.

330 {
331  return log(x);
332 }

◆ FbxPow()

T FbxPow ( const T  x,
const T  y 
)
inline

Definition at line 334 of file fbxmath.h.

335 {
336  return (T)FbxExp(y * FbxLog((double)x));
337 }
float FbxLog(const float x)
Definition: fbxmath.h:324
float FbxExp(const float x)
Definition: fbxmath.h:314

◆ FbxLog2()

T FbxLog2 ( const T  x)
inline

Definition at line 339 of file fbxmath.h.

340 {
341  return (T)(FbxLog(x) * FBXSDK_1_DIV_LN2);
342 }
#define FBXSDK_1_DIV_LN2
1 divided by LogN2
Definition: fbxmath.h:46
float FbxLog(const float x)
Definition: fbxmath.h:324

◆ FbxSin() [1/3]

float FbxSin ( const float  x)
inline

Definition at line 344 of file fbxmath.h.

345 {
346  return sinf(x);
347 }

◆ FbxSin() [2/3]

double FbxSin ( const double  x)
inline

Definition at line 349 of file fbxmath.h.

350 {
351  return sin(x);
352 }

◆ FbxCos() [1/3]

float FbxCos ( const float  x)
inline

Definition at line 354 of file fbxmath.h.

355 {
356  return cosf(x);
357 }

◆ FbxCos() [2/3]

double FbxCos ( const double  x)
inline

Definition at line 359 of file fbxmath.h.

360 {
361  return cos(x);
362 }

◆ FbxTan() [1/2]

float FbxTan ( const float  x)
inline

Definition at line 364 of file fbxmath.h.

365 {
366  return tanf(x);
367 }

◆ FbxTan() [2/2]

double FbxTan ( const double  x)
inline

Definition at line 369 of file fbxmath.h.

370 {
371  return tan(x);
372 }

◆ FbxSinCos()

T FbxSinCos ( const T  x,
T *  y 
)
inline

Definition at line 375 of file fbxmath.h.

376 {
377  return *y = FbxCos(x), FbxSin(x);
378 }
float FbxCos(const float x)
Definition: fbxmath.h:354
float FbxSin(const float x)
Definition: fbxmath.h:344

◆ FbxSinCosd()

T FbxSinCosd ( const T  x,
T *  y 
)
inline

Definition at line 381 of file fbxmath.h.

382 {
383  return FbxSinCos(T(x * FBXSDK_PI_DIV_180), y);
384 }
T FbxSinCos(const T x, T *y)
Definition: fbxmath.h:375
#define FBXSDK_PI_DIV_180
PI divived by 180.
Definition: fbxmath.h:44

◆ FbxASin() [1/3]

float FbxASin ( const float  x)
inline

Definition at line 386 of file fbxmath.h.

387 {
388  return asinf(x);
389 }

◆ FbxASin() [2/3]

double FbxASin ( const double  x)
inline

Definition at line 391 of file fbxmath.h.

392 {
393  return asin(x);
394 }

◆ FbxASind()

T FbxASind ( const T  x)
inline

Definition at line 396 of file fbxmath.h.

397 {
398  return (T)(FbxASin((double)x) * FBXSDK_180_DIV_PI);
399 }
#define FBXSDK_180_DIV_PI
180 divided by PI
Definition: fbxmath.h:45
float FbxASin(const float x)
Definition: fbxmath.h:386

◆ FbxACos() [1/3]

float FbxACos ( const float  x)
inline

Definition at line 401 of file fbxmath.h.

402 {
403  return acosf(x);
404 }

◆ FbxACos() [2/3]

double FbxACos ( const double  x)
inline

Definition at line 406 of file fbxmath.h.

407 {
408  return acos(x);
409 }

◆ FbxACosd()

T FbxACosd ( const T  x)
inline

Definition at line 411 of file fbxmath.h.

412 {
413  return (T)(FbxACos(x) * FBXSDK_180_DIV_PI);
414 }
#define FBXSDK_180_DIV_PI
180 divided by PI
Definition: fbxmath.h:45
float FbxACos(const float x)
Definition: fbxmath.h:401

◆ FbxATan() [1/6]

float FbxATan ( const float  x)
inline

Definition at line 416 of file fbxmath.h.

417 {
418  return atanf(x);
419 }

◆ FbxATan() [2/6]

double FbxATan ( const double  x)
inline

Definition at line 421 of file fbxmath.h.

422 {
423  return atan(x);
424 }

◆ FbxATand() [1/2]

T FbxATand ( const T  x)
inline

Definition at line 426 of file fbxmath.h.

427 {
428  return (T)(FbxATan(x) * FBXSDK_180_DIV_PI);
429 }
#define FBXSDK_180_DIV_PI
180 divided by PI
Definition: fbxmath.h:45
float FbxATan(const float x)
Definition: fbxmath.h:416

◆ FbxATan() [3/6]

float FbxATan ( const float  y,
const float  x 
)
inline

Definition at line 431 of file fbxmath.h.

432 {
433  return atan2f(y, x);
434 }

◆ FbxATan() [4/6]

double FbxATan ( const double  y,
const double  x 
)
inline

Definition at line 436 of file fbxmath.h.

437 {
438  return atan2(y, x);
439 }

◆ FbxATand() [2/2]

T FbxATand ( const T  y,
const T  x 
)
inline

Definition at line 441 of file fbxmath.h.

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

◆ FbxNorm() [1/3]

T FbxNorm ( const T  x,
const T  y 
)
inline

Definition at line 446 of file fbxmath.h.

447 {
448  return FbxSqrt(x * x + y * y);
449 }
double FbxSqrt(const double x)
Definition: fbxmath.h:284

◆ FbxNorm() [2/3]

T FbxNorm ( const T  x,
const T  y,
const T  z 
)
inline

Definition at line 451 of file fbxmath.h.

452 {
453  return FbxSqrt(x * x + y * y + z * z);
454 }
double FbxSqrt(const double x)
Definition: fbxmath.h:284

◆ FbxNorm() [3/3]

T FbxNorm ( const T  w,
const T  x,
const T  y,
const T  z 
)
inline

Definition at line 456 of file fbxmath.h.

457 {
458  return FbxSqrt(w * w + x * x + y * y + z * z);
459 }
double FbxSqrt(const double x)
Definition: fbxmath.h:284

◆ FbxHypot() [1/3]

T FbxHypot ( const T  x,
const T  y 
)
inline

Definition at line 461 of file fbxmath.h.

462 {
463  return FbxSqrt(x * x + y * y);
464 }
double FbxSqrt(const double x)
Definition: fbxmath.h:284

◆ FbxHypot() [2/3]

T FbxHypot ( const T  x,
const T  y,
const T  z 
)
inline

Definition at line 466 of file fbxmath.h.

467 {
468  return FbxSqrt(x * x + y * y + z * z);
469 }
double FbxSqrt(const double x)
Definition: fbxmath.h:284

◆ FbxHypot() [3/3]

T FbxHypot ( const T  w,
const T  x,
const T  y,
const T  z 
)
inline

Definition at line 471 of file fbxmath.h.

472 {
473  return FbxSqrt(w * w + x * x + y * y + z * z);
474 }
double FbxSqrt(const double x)
Definition: fbxmath.h:284

◆ FbxRejection()

FbxVector4 FbxRejection ( const FbxVector4 a,
const FbxVector4 b 
)
inline

Definition at line 476 of file fbxmath.h.

477 {
478  return a - b * (a.DotProduct(b) / b.DotProduct(b));
479 }
double DotProduct(const FbxVector4 &pVector) const
Calculate the dot product of two vectors.

◆ FbxBitCount()

int FbxBitCount ( const T  x)
inline

Definition at line 481 of file fbxmath.h.

482 {
483  int n = 0;
484  T c = x;
485  while( c )
486  {
487  n += int(c & 1);
488  c = (c >> 1);
489  }
490  return n;
491 }

◆ FbxFixInfinite()

void FbxFixInfinite ( T &  x)
inline

Definition at line 493 of file fbxmath.h.

494 {
495  if( x != x || x > FbxMax(x) || x < -FbxMax(x) )
496  {
497  x = T(0);
498  }
499 }
const FbxChar FbxMax(const FbxChar)
Definition: fbxtypes.h:173

◆ FbxExp() [3/3]

T FbxExp ( const T  x)
inline

◆ FbxLog() [3/3]

T FbxLog ( const T  x)
inline

◆ FbxSin() [3/3]

T FbxSin ( const T  x)
inline

◆ FbxCos() [3/3]

T FbxCos ( const T  x)
inline

◆ FbxASin() [3/3]

T FbxASin ( const T  x)
inline

◆ FbxACos() [3/3]

T FbxACos ( const T  x)
inline

◆ FbxATan() [5/6]

T FbxATan ( const T  x)
inline

◆ FbxATan() [6/6]

T FbxATan ( const T  y,
const T  x 
)
inline

Variable Documentation

◆ FbxIdentityMatrix

const FbxDouble FbxIdentityMatrix[4][4]

◆ FbxZeroVector4

const FbxVector4 FbxZeroVector4

Go to the source code of this file.