fbxsdk/scene/geometry/fbxcluster.h Source File
 
 
 
fbxsdk/scene/geometry/fbxcluster.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_CLUSTER_H_
00014 #define _FBXSDK_SCENE_GEOMETRY_CLUSTER_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/scene/geometry/fbxsubdeformer.h>
00019 
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021 
00047 class FBXSDK_DLL FbxCluster : public FbxSubDeformer
00048 {
00049     FBXSDK_OBJECT_DECLARE(FbxCluster,FbxSubDeformer);
00050 
00051 public:
00059     EType GetSubDeformerType() const {return eCluster; };
00060 
00068     void Reset();
00070 
00080     enum ELinkMode
00081     {
00082                 eNormalize,       
00086         eAdditive,
00097         eTotalOne   
00100     };
00101 
00106     void SetLinkMode(ELinkMode pMode);
00107 
00111     ELinkMode GetLinkMode() const;
00112 
00117     void SetLink(const FbxNode* pNode);
00118 
00123     FbxNode* GetLink();
00124 
00129     const FbxNode* GetLink() const;
00130 
00139     void SetAssociateModel(FbxNode* pNode);
00140 
00149     FbxNode* GetAssociateModel() const;
00151 
00159 
00164     void AddControlPointIndex(int pIndex, double pWeight);
00165 
00170     int GetControlPointIndicesCount() const;
00171 
00176     int* GetControlPointIndices() const;
00177 
00182     double* GetControlPointWeights() const;
00183 
00185 
00190         void SetControlPointIWCount(int pCount);
00191 
00205 
00209     void SetTransformMatrix(const FbxAMatrix& pMatrix);
00210 
00215     FbxAMatrix& GetTransformMatrix(FbxAMatrix& pMatrix) const;
00216 
00220     void SetTransformLinkMatrix(const FbxAMatrix& pMatrix);
00221 
00226     FbxAMatrix& GetTransformLinkMatrix(FbxAMatrix& pMatrix) const;
00227 
00231     void SetTransformAssociateModelMatrix(const FbxAMatrix& pMatrix);
00232 
00237     FbxAMatrix& GetTransformAssociateModelMatrix(FbxAMatrix& pMatrix) const;
00238 
00242     void SetTransformParentMatrix(const FbxAMatrix& pMatrix);
00243 
00248     FbxAMatrix& GetTransformParentMatrix(FbxAMatrix& pMatrix) const;
00249 
00253     bool IsTransformParentSet() const { return mIsTransformParentSet; }
00254 
00256 
00257 /*****************************************************************************************************************************
00258 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00259 *****************************************************************************************************************************/
00260 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00261     virtual FbxObject& Copy(const FbxObject& pObject);
00262     void SetUserData(const char* pUserDataID, const char* pUserData);
00263     const char* GetUserDataID () const;
00264     const char* GetUserData () const;
00265     const char* GetUserData (const char* pUserDataID) const;
00266 
00267     // For pre version 6 support
00268     FbxString   mBeforeVersion6LinkName;
00269     FbxString   mBeforeVersion6AssociateModelName;
00270 
00271 
00272 protected:
00273     virtual void Construct(const FbxCluster* pFrom);
00274     virtual void ConstructProperties(bool pForceSet);
00275 
00276     virtual FbxStringList GetTypeFlags() const;
00277 
00278     ELinkMode               mLinkMode;
00279     FbxString               mUserDataID;
00280     FbxString               mUserData;
00281     FbxArray<int>           mControlPointIndices;
00282     FbxArray<double>        mControlPointWeights;
00283     FbxMatrix              mTransform;
00284     FbxMatrix              mTransformLink;
00285     FbxMatrix              mTransformAssociate;
00286     FbxMatrix              mTransformParent;
00287     bool                    mIsTransformParentSet;
00288 
00289     FbxPropertyT<FbxReference> SrcModelReference;
00290 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00291 };
00292 
00293 #include <fbxsdk/fbxsdk_nsend.h>
00294 
00295 #endif /* _FBXSDK_SCENE_GEOMETRY_CLUSTER_H_ */