- Main Page
- Classes
- Files
- Directories

- File List
- File Members

# 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_ */