- Main Page
- Classes
- Files
- Directories

- File List
- File Members

# fbxskin.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_SCENE_GEOMETRY_SKIN_H_
    00014 #define _FBXSDK_SCENE_GEOMETRY_SKIN_H_
    00015
    00016 #include <fbxsdk/fbxsdk_def.h>
    00017
    00018 #include <fbxsdk/scene/geometry/fbxdeformer.h>
    00019
    00020 #include <fbxsdk/fbxsdk_nsbegin.h>
    00021
    00022 class FbxCluster;
    00023 class FbxGeometry;
    00024
    00037 class FBXSDK_DLL FbxSkin : public FbxDeformer
    00038 {
    00039     FBXSDK_OBJECT_DECLARE(FbxSkin, FbxDeformer);
    00040
    00041 public:
    00047     void SetDeformAccuracy(double pDeformAccuracy);
    00048
    00052     double GetDeformAccuracy() const;
    00053
    00058     bool SetGeometry(FbxGeometry* pGeometry);
    00059
    00063     FbxGeometry* GetGeometry();
    00064
    00069     bool AddCluster(FbxCluster* pCluster);
    00070
    00075     FbxCluster* RemoveCluster(FbxCluster* pCluster);
    00076
    00080     int GetClusterCount() const;
    00081
    00086     FbxCluster* GetCluster(int pIndex);
    00087
    00092     FbxCluster const* GetCluster(int pIndex) const;
    00093
    00097     EDeformerType GetDeformerType()  const {return eSkin; };
    00098
    00106     enum EType
    00107     {
    00108         eRigid,
    00109         eLinear,
    00110         eDualQuaternion,
    00111         eBlend
    00112     };
    00113
    00117     void SetSkinningType(EType pType);
    00118
    00122     EType GetSkinningType() const;
    00123
    00132
    00140     void AddControlPointIndex(int pIndex, double pBlendWeight = 0);
    00141
    00146     int GetControlPointIndicesCount() const;
    00147
    00152     int* GetControlPointIndices() const;
    00153
    00158     double* GetControlPointBlendWeights() const;
    00159
    00164     void SetControlPointIWCount(int pCount);
    00165
    00167
    00168 /*****************************************************************************************************************************
    00169 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
    00170 *****************************************************************************************************************************/
    00171 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00172     virtual FbxObject& Copy(const FbxObject& pObject);
    00173
    00174 protected:
    00175     virtual void Construct(const FbxSkin* pFrom);
    00176     virtual FbxStringList GetTypeFlags() const;
    00177
    00178     // Skin deformer
    00179     double mDeformAccuracy;
    00180     EType mSkinningType;
    00181
    00182     //Control points
    00183     FbxArray<int>     mControlPointIndices;
    00184     FbxArray<double>  mControlPointBlendWeights;
    00185 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
    00186 };
    00187
    00188 #include <fbxsdk/fbxsdk_nsend.h>
    00189
    00190 #endif /* _FBXSDK_SCENE_GEOMETRY_SKIN_H_ */