43 #include <kaydaradef.h>
48 #define FBSDK_DLL K_DLLIMPORT
53 #ifdef FBSDKUseNamespace
54 namespace FBSDKNamespace {
57 const double FBMat2EulerDegenerateForPrecision10 = 16.0e-10;
417 #ifdef FBSDKUseNamespace
Four x Four (double) Matrix.
Three dimensional scaling vector.
K_DLLIMPORT void FBRotationToQuaternion(FBQuaternion &pQuaternion, const FBRVector &pVector, FBRotationOrder pRotationOrder=kFBXYZ)
Get a quaternion from a rotation vector.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
K_DLLIMPORT void FBAdd(FBTVector &pResult, const FBTVector &pV1, const FBTVector &pV2)
Add two vectors together (pResult = pV1 + pV2)
K_DLLIMPORT void FBMatrixToTranslation(FBTVector &pVector, const FBMatrix &pMatrix)
Obtain translation vector from a matrix.
K_DLLIMPORT void FBBigEndianToNative(unsigned short &pV)
Change from big endian to native format.
K_DLLIMPORT void FBQuaternionToMatrix(FBMatrix &pMatrix, const FBQuaternion &pQuaternion)
Get a rotation matrix from a quaternion vector.
K_DLLIMPORT void FBMatrixToTRS(FBTVector &pTVector, FBRVector &pRVector, FBSVector &pSVector, const FBMatrix &pMatrix)
Obtain translation, rotation, and scaling vectors from a matrix.
K_DLLIMPORT double FBClamp(double pV, double pL, double pH)
Clamp value.
K_DLLIMPORT void FBInterpolateRotation(FBRVector &pROut, const FBRVector &pR0, const FBRVector &pR1, double pU)
Interpolate a rotation in Euler space.
K_DLLIMPORT void FBTranslationToMatrix(FBMatrix &pMatrix, const FBTVector &pVector)
Convert a translation vector to a matrix.
K_DLLIMPORT void FBMatrixToQuaternion(FBQuaternion &pQuaternion, const FBMatrix &pMatrix)
Get a quaternion from a matrix (potential ).
K_DLLIMPORT void FBMatrixTranspose(FBMatrix &pMatrix, const FBMatrix &pSrc)
Transpose a matrix.
K_DLLIMPORT void FBGetLocalMatrix(FBMatrix &pMatrix, const FBMatrix &pMatrixParent, const FBMatrix &pMatrixChild)
Get local matrix from parent and child matrices.
K_DLLIMPORT double FBQDot(const FBQuaternion &pQ1, const FBQuaternion &pQ2)
Calculate the dot product of two quaternions.
K_DLLIMPORT void FBQSub(FBQuaternion &pResult, const FBQuaternion &pQ1, const FBQuaternion &pQ2)
Subtract pQ2 from pQ1 (pResult = pQ1 - pQ2)
K_DLLIMPORT void FBMatrixToRotationWithPrecision(FBRVector &pVector, const FBMatrix &pMatrix, FBRotationOrder pRotationOrder, double pPrecision=FBMat2EulerDegenerateForPrecision10)
Obtain rotation vector from a matrix.
K_DLLIMPORT void FBQuaternionToRotationWithPrecision(FBRVector &pVector, const FBQuaternion &pQuaternion, FBRotationOrder pRotationOrder, double pPrecision=FBMat2EulerDegenerateForPrecision10)
Get a rotation vector from a quaternion vector.
K_DLLIMPORT void FBGetContinuousRotation(FBRVector &pROut, const FBRVector &pR0, const FBRVector &pR1)
Get a continuous rotation in Euler space.
K_DLLIMPORT void FBScalingToMatrix(FBMatrix &pMatrix, const FBSVector &pVector)
Convert a scaling vector to a matrix.
K_DLLIMPORT void FBTRSToMatrix(FBMatrix &pMatrix, const FBTVector &pTVector, const FBRVector &pRVector, const FBSVector &pSVector)
Convert translation, rotation, and scaling vectors to a matrix.
K_DLLIMPORT void FBVertexMatrixMult(FBVertex &pOutVertex, const FBMatrix &pMatrix, const FBVertex &pVertex)
Multiply a vertex by a matrix.
K_DLLIMPORT void FBMatrixToTQS(FBTVector &pTVector, FBQuaternion &pQuaternion, FBSVector &pSVector, const FBMatrix &pMatrix)
Obtain translation vector, rotation quaternion, and scaling vector from a matrix.
K_DLLIMPORT void FBTQSToMatrix(FBMatrix &pMatrix, const FBTVector &pTVector, const FBQuaternion &pQuaternion, const FBSVector &pSVector)
Convert translation vector, rotation quaternion, and scaling vector to a matrix.
K_DLLIMPORT void FBMatrixToRotation(FBRVector &pVector, const FBMatrix &pMatrix, FBRotationOrder pRotationOrder=kFBXYZ)
Obtain rotation vector from a matrix.
K_DLLIMPORT double FBDot(const FBTVector &pV1, const FBTVector &pV2)
Calculate the dot product of two vectors.
K_DLLIMPORT void FBMatrixInverse(FBMatrix &pMatrix, const FBMatrix &pSrc)
Invert a matrix.
K_DLLIMPORT void FBMult(FBTVector &pResult, const FBTVector &pV1, double pV2)
Multiply pV2 from pV1 (pResult = pV1 * pV2)
K_DLLIMPORT void FBLittleEndianToNative(unsigned short &pV)
Change from little endian to native format.
K_DLLIMPORT void FBMatrixToScaling(FBSVector &pVector, const FBMatrix &pMatrix)
Obtain scaling vector from a matrix.
K_DLLIMPORT void FBQuaternionToRotation(FBRVector &pVector, const FBQuaternion &pQuaternion, FBRotationOrder pRotationOrder=kFBXYZ)
Get a rotation vector from a quaternion vector.
K_DLLIMPORT void FBSub(FBTVector &pResult, const FBTVector &pV1, const FBTVector &pV2)
Subtract pV2 from pV1 (pResult = pV1 - pV2)
K_DLLIMPORT void FBGetGlobalMatrix(FBMatrix &pMatrix, const FBMatrix &pMatrixParent, const FBMatrix &pLocalMatrix)
Get global matrix from parent and child matrices.
K_DLLIMPORT void FBMatrixMult(FBMatrix &pMatrix, const FBMatrix &pA, const FBMatrix &pB)
Multiply two matrices.
K_DLLIMPORT double FBLength(const FBTVector &pV)
Get the length of a vector.
K_DLLIMPORT void FBQAdd(FBQuaternion &pResult, const FBQuaternion &pQ1, const FBQuaternion &pQ2)
Add two quaternions together (pResult = pQ1 + pQ2)
K_DLLIMPORT void FBQMult(FBQuaternion &pResult, const FBQuaternion &pQ1, double pQ2)
Multiply pQ2 from pQ1 (pResult = pQ1 * pQ2)
K_DLLIMPORT void FBVectorMatrixMult(FBVector4d &pOutVector, const FBMatrix &pMatrix, const FBVector4d &pVector)
Multiply a vector by a matrix.
K_DLLIMPORT double FBQLength(const FBQuaternion &pQ)
Get the length of a quaternion.
FBRotationOrder
Specify the Euler rotation order.
K_DLLIMPORT void FBMatrixOrthogonalize(FBMatrix &pMatrix)
Make sure that rotation vectors are orthogonal and normalized (fast way for removing scaling from mat...
K_DLLIMPORT void FBRotationToMatrix(FBMatrix &pMatrix, const FBRVector &pVector, FBRotationOrder pRotationOrder=kFBXYZ)
Convert a rotation vector to a matrix.
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
class K_DLLIMPORT FBVector4< float > FBVertex
Vertex.
class K_DLLIMPORT FBVector4< double > FBQuaternion
Quaternion.
class K_DLLIMPORT FBVector4< double > FBVector4d
4D vector