fbxconstraint.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_CONSTRAINT_H_
00014 #define _FBXSDK_SCENE_CONSTRAINT_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/core/fbxobject.h>
00019 #include <fbxsdk/core/base/fbxerror.h>
00020 #include <fbxsdk/core/base/fbxstringlist.h>
00021 #include <fbxsdk/scene/fbxgroupname.h>
00022 
00023 #include <fbxsdk/fbxsdk_nsbegin.h>
00024 
00025 class FbxManager;
00026 class FbxVector4;
00027 
00034 class FBXSDK_DLL FbxConstraint : public FbxObject
00035 {
00036     FBXSDK_OBJECT_DECLARE(FbxConstraint, FbxObject);
00037 
00038 public:
00047         FbxPropertyT<FbxDouble> Weight;
00048 
00054         FbxPropertyT<FbxBool> Active;
00055 
00062         FbxPropertyT<FbxBool> Lock;
00064 
00067     enum EType
00068     {
00069         eUnknown,           
00070         ePosition,          
00071         eRotation,          
00072         eScale,             
00073         eParent,            
00074         eSingleChainIK,     
00075         eAim,               
00076         eCharacter,         
00077         eCustom             
00078     };
00079 
00083     virtual EType GetConstraintType() const { return eUnknown; }
00084 
00088     virtual FbxObject* GetConstrainedObject() const { return NULL; }
00089 
00093     virtual int GetConstraintSourceCount() const { return 0; }
00094 
00099     virtual FbxObject* GetConstraintSource(int /*pIndex*/) const { return NULL; }
00100 
00105     double GetSourceWeight(const FbxObject* pObject) const;
00106 
00114         FbxError& GetError();
00115 
00118         enum EErrorCode
00119         {
00120             eError,     
00121             eErrorCount 
00122         };
00123 
00127         EErrorCode GetLastErrorID() const;
00128 
00132         const char* GetLastErrorString() const;
00134 
00136 //
00137 //  WARNING!
00138 //
00139 //  Anything beyond these lines may not be documented accurately and is
00140 //  subject to change without notice.
00141 //
00143 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00144 protected:
00145     FbxConstraint(FbxManager& pManager, char const* pName);
00146     virtual bool ConstructProperties(bool pForceSet);
00147 
00148 private:
00149     FbxError mError;
00150     friend class FbxScene;
00151 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00152 };
00153 
00154 
00156 //
00157 //  WARNING!
00158 //
00159 //  Anything beyond these lines may not be documented accurately and is
00160 //  subject to change without notice.
00161 //
00163 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00164 
00165 const FbxString GetWeightPropertyName(const FbxObject * pObject);
00166 void CreateWeightPropertyForSourceObject(FbxObject * pConstraint, const FbxObject * pSourceObject, double pWeightValue);
00167 
00168 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00169 
00170 #include <fbxsdk/fbxsdk_nsend.h>
00171 
00172 #endif /* _FBXSDK_SCENE_CONSTRAINT_H_ */