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_ */