- Main Page
- Classes
- Files
- Directories
- Examples

- File List
- File Members

# fbxskin.h

Go to the documentation of this file.

    00001 /****************************************************************************************
    00002
    00003    Copyright (C) 2012 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/core/math/fbxmatrix.h>
    00019 #include <fbxsdk/core/base/fbxerror.h>
    00020 #include <fbxsdk/scene/geometry/fbxdeformer.h>
    00021 #include <fbxsdk/scene/fbxgroupname.h>
    00022
    00023 #include <fbxsdk/fbxsdk_nsbegin.h>
    00024
    00025 class FbxManager;
    00026 class FbxGeometry;
    00027 class FbxCluster;
    00028 class FbxNode;
    00029
    00042 class FBXSDK_DLL FbxSkin : public FbxDeformer
    00043 {
    00044     FBXSDK_OBJECT_DECLARE(FbxSkin,FbxDeformer);
    00045
    00046 public:
    00052     void SetDeformAccuracy(double pDeformAccuracy);
    00053
    00057     double GetDeformAccuracy() const;
    00058
    00063     bool SetGeometry(FbxGeometry* pGeometry);
    00064
    00068     FbxGeometry* GetGeometry();
    00069
    00074     bool AddCluster(FbxCluster* pCluster);
    00075
    00080     FbxCluster* RemoveCluster(FbxCluster* pCluster);
    00081
    00085     int GetClusterCount() const;
    00086
    00091     FbxCluster* GetCluster(int pIndex);
    00092
    00097     FbxCluster const* GetCluster(int pIndex) const;
    00098
    00102     EDeformerType GetDeformerType()  const {return eSkin; };
    00103
    00111     enum EType
    00112     {
    00113         eRigid,
    00114         eLinear,
    00115         eDualQuaternion,
    00116         eBlend
    00117     };
    00118
    00122     void SetSkinningType(EType pType);
    00123
    00127     EType GetSkinningType() const;
    00128
    00137
    00145     void AddControlPointIndex(int pIndex, double pBlendWeight = 0);
    00146
    00151     int GetControlPointIndicesCount() const;
    00152
    00157     int* GetControlPointIndices() const;
    00158
    00163     double* GetControlPointBlendWeights() const;
    00164
    00169     void SetControlPointIWCount(int pCount);
    00170
    00172
    00174 //
    00175 //  WARNING!
    00176 //
    00177 //  Anything beyond these lines may not be documented accurately and is
    00178 //  subject to change without notice.
    00179 //
    00181 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00182
    00183     virtual FbxObject& Copy(const FbxObject& pObject);
    00184
    00185 protected:
    00186     FbxSkin(FbxManager& pManager, char const* pName);
    00187
    00188     virtual FbxStringList GetTypeFlags() const;
    00189
    00190     // Skin deformer
    00191     double mDeformAccuracy;
    00192     EType mSkinningType;
    00193
    00194     //Control points
    00195     FbxArray<int>     mControlPointIndices;
    00196     FbxArray<double>  mControlPointBlendWeights;
    00197
    00198     friend class FbxScene;
    00199
    00200 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00201 };
    00202
    00203 #include <fbxsdk/fbxsdk_nsend.h>
    00204
    00205 #endif /* _FBXSDK_SCENE_GEOMETRY_SKIN_H_ */