fbxsdk/scene/geometry/fbxcluster.h Source File

fbxcluster.h
Go to the documentation of this file.
1 /****************************************************************************************
2 
3  Copyright (C) 2015 Autodesk, Inc.
4  All rights reserved.
5 
6  Use of this software is subject to the terms of the Autodesk license agreement
7  provided at the time of installation or download, or which otherwise accompanies
8  this software in either electronic or hard copy form.
9 
10 ****************************************************************************************/
11 
13 #ifndef _FBXSDK_SCENE_GEOMETRY_CLUSTER_H_
14 #define _FBXSDK_SCENE_GEOMETRY_CLUSTER_H_
15 
16 #include <fbxsdk/fbxsdk_def.h>
17 
19 
20 #include <fbxsdk/fbxsdk_nsbegin.h>
21 
48 {
50 
51 public:
59  EType GetSubDeformerType() const {return eCluster; };
60 
68  void Reset();
70 
80  enum ELinkMode
81  {
82  eNormalize,
86  eAdditive,
97  eTotalOne
100  };
101 
106  void SetLinkMode(ELinkMode pMode);
107 
111  ELinkMode GetLinkMode() const;
112 
117  void SetLink(const FbxNode* pNode);
118 
123  FbxNode* GetLink();
124 
129  const FbxNode* GetLink() const;
130 
139  void SetAssociateModel(FbxNode* pNode);
140 
149  FbxNode* GetAssociateModel() const;
151 
159 
164  void AddControlPointIndex(int pIndex, double pWeight);
165 
170  int GetControlPointIndicesCount() const;
171 
176  int* GetControlPointIndices() const;
177 
182  double* GetControlPointWeights() const;
183 
185 
190  void SetControlPointIWCount(int pCount);
191 
205 
209  void SetTransformMatrix(const FbxAMatrix& pMatrix);
210 
215  FbxAMatrix& GetTransformMatrix(FbxAMatrix& pMatrix) const;
216 
220  void SetTransformLinkMatrix(const FbxAMatrix& pMatrix);
221 
226  FbxAMatrix& GetTransformLinkMatrix(FbxAMatrix& pMatrix) const;
227 
231  void SetTransformAssociateModelMatrix(const FbxAMatrix& pMatrix);
232 
237  FbxAMatrix& GetTransformAssociateModelMatrix(FbxAMatrix& pMatrix) const;
238 
242  void SetTransformParentMatrix(const FbxAMatrix& pMatrix);
243 
248  FbxAMatrix& GetTransformParentMatrix(FbxAMatrix& pMatrix) const;
249 
253  bool IsTransformParentSet() const { return mIsTransformParentSet; }
254 
256 
257 /*****************************************************************************************************************************
258 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
259 *****************************************************************************************************************************/
260 #ifndef DOXYGEN_SHOULD_SKIP_THIS
261  virtual FbxObject& Copy(const FbxObject& pObject);
262  void SetUserData(const char* pUserDataID, const char* pUserData);
263  const char* GetUserDataID () const;
264  const char* GetUserData () const;
265  const char* GetUserData (const char* pUserDataID) const;
266 
267  // For pre version 6 support
268  FbxString mBeforeVersion6LinkName;
269  FbxString mBeforeVersion6AssociateModelName;
270 
271 
272 protected:
273  virtual void Construct(const FbxObject* pFrom);
274  virtual void ConstructProperties(bool pForceSet);
275 
276  virtual FbxStringList GetTypeFlags() const;
277 
278  ELinkMode mLinkMode;
279  FbxString mUserDataID;
280  FbxString mUserData;
281  FbxArray<int> mControlPointIndices;
282  FbxArray<double> mControlPointWeights;
283  FbxMatrix mTransform;
284  FbxMatrix mTransformLink;
285  FbxMatrix mTransformAssociate;
286  FbxMatrix mTransformParent;
287  bool mIsTransformParentSet;
288 
289  FbxPropertyT<FbxReference> SrcModelReference;
290 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
291 };
292 
293 #include <fbxsdk/fbxsdk_nsend.h>
294 
295 #endif /* _FBXSDK_SCENE_GEOMETRY_CLUSTER_H_ */
#define FBXSDK_OBJECT_DECLARE(Class, Parent)
Macro used to declare a new class derived from FbxObject.
Definition: fbxobject.h:61
FBX SDK environment definition.
virtual FbxObject & Copy(const FbxObject &pObject)
Copy an object content into this object.
Array that stores pairs of FbxString and a pointer.
Utility class to manipulate strings.
Definition: fbxstring.h:66
Class for clusters (links).
Definition: fbxcluster.h:47
EType GetSubDeformerType() const
Get the type of the sub deformer.
Definition: fbxcluster.h:59
The base class of most FBX objects.
Definition: fbxobject.h:157
Represents an element in the scene graph.
Definition: fbxnode.h:72
virtual void Construct(const FbxObject *pFrom)
Optional constructor override, automatically called by default constructor.
bool IsTransformParentSet() const
Get the Transform Parent set flag value.
Definition: fbxcluster.h:253
EType
Sub-deformer type.
ELinkMode
Link modes.
Definition: fbxcluster.h:80
Type FbxCluster.
FBX SDK affine matrix class.
Base class for cluster sub-deformer( FbxCluster) and blend shape channel sub-deformer( FbxBlendShapeC...
#define FBXSDK_DLL
Definition: fbxarch.h:173
FBX SDK basic 4x4 double matrix class.
Definition: fbxmatrix.h:27
This template class is used to contain user properties of specific data types.
Definition: fbxproperty.h:1124
virtual void ConstructProperties(bool pForceSet)
Optional property constructor override, automatically called by default constructor.