- Main Page
- Classes
- Files
- Directories

- File List
- File Members

# fbxdeformationsevaluator.h

Go to the documentation of this file.

    00001 /****************************************************************************************
    00002
    00003    Copyright (C) 2013 Autodesk, Inc.
    00004    All rights reserved.
    00005
    00006    Use of this software is subject to the terms of the Autodesk license agreement
    00007    provided at the time of installation or download, or which otherwise accompanies
    00008    this software in either electronic or hard copy form.
    00009
    00010 ****************************************************************************************/
    00011
    00013 #ifndef _FBXSDK_UTILS_DEFORMATIONS_EVALUATOR_H_
    00014 #define _FBXSDK_UTILS_DEFORMATIONS_EVALUATOR_H_
    00015
    00016 #include <fbxsdk/fbxsdk_def.h>
    00017
    00018 #include <fbxsdk/fbxsdk_nsbegin.h>
    00019
    00020 class FbxNode;
    00021 class FbxMesh;
    00022 class FbxTime;
    00023 class FbxAnimLayer;
    00024 class FbxPose;
    00025 class FbxCluster;
    00026 class FbxVector4;
    00027 class FbxAMatrix;
    00028 class FbxDualQuaternion;
    00029
    00030 class FBXSDK_DLL FbxDeformationsEvaluator
    00031 {
    00032 public:
    00045     bool Init(const FbxNode* pNode, const FbxMesh* pMesh, int pAnimLayerId = 0);
    00046
    00054     bool ComputeShapeDeformation(FbxVector4* pVertexArray, const FbxTime& pTime);
    00055
    00064     bool ComputeSkinDeformation(FbxVector4* pVertexArray, const FbxTime& pTime, FbxAMatrix* pGX = NULL, const FbxPose* pPose = NULL);
    00065
    00066 /*****************************************************************************************************************************
    00067 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
    00068 *****************************************************************************************************************************/
    00069 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00070     FbxDeformationsEvaluator();
    00071     virtual ~FbxDeformationsEvaluator();
    00072
    00073 private:
    00074     void ComputeClusterDeformation(FbxVector4* pVertexArray, const FbxTime& pTime, const FbxAMatrix& pGX, FbxCluster* pCluster, FbxAMatrix& pVertexTransformMatrix, const FbxPose* pPose);
    00075     void ComputeLinearDeformation(FbxVector4* pVertexArray, const FbxTime& pTime, const FbxAMatrix& pGX, const FbxPose* pPose);
    00076     void ComputeDualQuaternionDeformation(FbxVector4* pVertexArray, const FbxTime& pTime, const FbxAMatrix& pGX, const FbxPose* pPose);
    00077
    00078     void        Cleanup();
    00079
    00080     bool                mIsConfigured;
    00081     FbxNode*            mNode;
    00082     FbxMesh*            mMesh;
    00083     FbxAnimLayer*       mAnimLayer;
    00084
    00085     int                 mVertexCount;
    00086     FbxVector4*         mDstVertexArray;
    00087     FbxVector4*         mVertexArrayLinear;
    00088     FbxVector4*         mVertexArrayDQ;
    00089
    00090     FbxAMatrix*         mClusterDeformation;
    00091     double*             mClusterWeight;
    00092     FbxDualQuaternion*  mDQClusterDeformation;
    00093 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
    00094 };
    00095
    00096 #include <fbxsdk/fbxsdk_nsend.h>
    00097
    00098 #endif /* _FBXSDK_UTILS_DEFORMATIONS_EVALUATOR_H_ */