- Main Page
- Classes
- Files
- Directories
- Examples

- File List
- File Members

# fbxconstraintsinglechainik.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_SINGLE_CHAIN_IK_H_
    00014 #define _FBXSDK_SCENE_CONSTRAINT_SINGLE_CHAIN_IK_H_
    00015
    00016 #include <fbxsdk/fbxsdk_def.h>
    00017
    00018 #include <fbxsdk/core/base/fbxerror.h>
    00019 #include <fbxsdk/core/math/fbxvector4.h>
    00020 #include <fbxsdk/scene/constraint/fbxconstraint.h>
    00021 #include <fbxsdk/scene/fbxgroupname.h>
    00022
    00023 #include <fbxsdk/fbxsdk_nsbegin.h>
    00024
    00025 class FbxManager;
    00026
    00030 class FBXSDK_DLL FbxConstraintSingleChainIK : public FbxConstraint
    00031 {
    00032     FBXSDK_OBJECT_DECLARE(FbxConstraintSingleChainIK,FbxConstraint);
    00033
    00034 public:
    00037     enum ESolverMode
    00038     {
    00039         eRotatePlane,
    00040         eSingleChain
    00041     };
    00042
    00045     enum EPoleVectorMode
    00046     {
    00047         eVector,
    00048         eObject
    00049     };
    00050
    00053     enum EEvaluationMode
    00054     {
    00055         eNeverTS,
    00056         eAutoDetect,
    00057         eAlwaysTS
    00058     };
    00059
    00066         FbxPropertyT<FbxEnum>        PoleVectorType;
    00067
    00070         FbxPropertyT<FbxEnum>        SolverType;
    00071
    00074         FbxPropertyT<FbxEnum>        EvaluateTSAnim;
    00075
    00076         //FbxPropertyT<FbxReference> PoleVectorObjectWeights;
    00077
    00080         FbxPropertyT<FbxReference>    PoleVectorObjects;
    00081
    00086         FbxPropertyT<FbxDouble3>    PoleVector;
    00087
    00092         FbxPropertyT<FbxDouble>    Twist;
    00093
    00096         FbxPropertyT<FbxReference> FirstJointObject;
    00097
    00100         FbxPropertyT<FbxReference> EndJointObject;
    00101
    00104         FbxPropertyT<FbxReference> EffectorObject;
    00106
    00110     double GetPoleVectorObjectWeight(const FbxObject* pObject) const;
    00111
    00117     void AddPoleVectorObject(FbxObject* pObject, double pWeight = 100);
    00118
    00122     int GetConstraintPoleVectorCount() const;
    00123
    00128     FbxObject* GetPoleVectorObject(int pIndex) const;
    00129
    00133     void SetFirstJointObject(FbxObject* pObject);
    00134
    00138     FbxObject* GetFirstJointObject() const;
    00139
    00143     void SetEndJointObject(FbxObject* pObject);
    00144
    00148     FbxObject* GetEndJointObject() const;
    00149
    00153     void SetEffectorObject(FbxObject* pObject);
    00154
    00158     FbxObject* GetEffectorObject() const;
    00159
    00160 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00161 protected:
    00162     FbxConstraintSingleChainIK(FbxManager& pManager, char const* pName);
    00163
    00164     virtual bool ConstructProperties( bool pForceSet );
    00165
    00166     virtual EType GetConstraintType() const;
    00167 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00168 };
    00169
    00170 inline EFbxType FbxTypeOf(const FbxConstraintSingleChainIK::EPoleVectorMode&){ return eFbxEnum; }
    00171 inline EFbxType FbxTypeOf(const FbxConstraintSingleChainIK::ESolverMode&){ return eFbxEnum; }
    00172 inline EFbxType FbxTypeOf(const FbxConstraintSingleChainIK::EEvaluationMode&){ return eFbxEnum; }
    00173
    00174 #include <fbxsdk/fbxsdk_nsend.h>
    00175
    00176 #endif /* _FBXSDK_SCENE_CONSTRAINT_SINGLE_CHAIN_IK_H_ */