fbxsdk/scene/geometry/fbxskin.h Source File
 
 
 
fbxsdk/scene/geometry/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     const FbxCluster* 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_ */