fbxsdk/scene/constraint/fbxconstraintsinglechainik.h Source File
 
 
 
fbxsdk/scene/constraint/fbxconstraintsinglechainik.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_CONSTRAINT_SINGLE_CHAIN_IK_H_
00014 #define _FBXSDK_SCENE_CONSTRAINT_SINGLE_CHAIN_IK_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/scene/constraint/fbxconstraint.h>
00019 
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021 
00025 class FBXSDK_DLL FbxConstraintSingleChainIK : public FbxConstraint
00026 {
00027     FBXSDK_OBJECT_DECLARE(FbxConstraintSingleChainIK, FbxConstraint);
00028 
00029 public:
00032     enum ESolverMode
00033     {
00034         eRotatePlane,   
00035         eSingleChain    
00036     };
00037 
00040     enum EPoleVectorMode
00041     {
00042         eVector,        
00043         eObject         
00044     };
00045 
00048         enum EEvaluationMode
00049         {
00050                 eNeverTS,               
00051                 eAutoDetect,    
00052                 eAlwaysTS               
00053         };
00054 
00061                 FbxPropertyT<FbxEnum>        PoleVectorType;
00062 
00065                 FbxPropertyT<FbxEnum>        SolverType;
00066 
00069                 FbxPropertyT<FbxEnum>        EvaluateTSAnim;
00070 
00073                 FbxPropertyT<FbxReference>    PoleVectorObjects;
00074 
00079                 FbxPropertyT<FbxDouble3>    PoleVector;
00080 
00085                 FbxPropertyT<FbxDouble>    Twist;
00086 
00089                 FbxPropertyT<FbxReference> FirstJointObject;
00090 
00093                 FbxPropertyT<FbxReference> EndJointObject;
00094 
00097                 FbxPropertyT<FbxReference> EffectorObject;
00099 
00103     double GetPoleVectorObjectWeight(const FbxObject* pObject) const;
00104 
00110     void AddPoleVectorObject(FbxObject* pObject, double pWeight = 100);
00111 
00115     int GetConstraintPoleVectorCount() const;
00116 
00121     FbxObject* GetPoleVectorObject(int pIndex) const;
00122 
00126     void SetFirstJointObject(FbxObject* pObject);
00127 
00131     FbxObject* GetFirstJointObject() const;
00132 
00136     void SetEndJointObject(FbxObject* pObject);
00137 
00141     FbxObject* GetEndJointObject() const;
00142 
00146     void SetEffectorObject(FbxObject* pObject);
00147 
00151     FbxObject* GetEffectorObject() const;
00152 
00153 /*****************************************************************************************************************************
00154 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00155 *****************************************************************************************************************************/
00156 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00157 protected:
00158     virtual void ConstructProperties(bool pForceSet);
00159     virtual EType GetConstraintType() const;
00160 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00161 };
00162 
00163 inline EFbxType FbxTypeOf(const FbxConstraintSingleChainIK::EPoleVectorMode&){ return eFbxEnum; }
00164 inline EFbxType FbxTypeOf(const FbxConstraintSingleChainIK::ESolverMode&){ return eFbxEnum; }
00165 inline EFbxType FbxTypeOf(const FbxConstraintSingleChainIK::EEvaluationMode&){ return eFbxEnum; }
00166 
00167 #include <fbxsdk/fbxsdk_nsend.h>
00168 
00169 #endif /* _FBXSDK_SCENE_CONSTRAINT_SINGLE_CHAIN_IK_H_ */