00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013 #ifndef _FBXSDK_SCENE_CONSTRAINT_CHARACTER_H_
00014 #define _FBXSDK_SCENE_CONSTRAINT_CHARACTER_H_
00015
00016 #include <fbxsdk/fbxsdk_def.h>
00017
00018 #include <fbxsdk/core/base/fbxstring.h>
00019 #include <fbxsdk/core/base/fbxerror.h>
00020 #include <fbxsdk/core/math/fbxvector4.h>
00021 #include <fbxsdk/core/math/fbxtransforms.h>
00022 #include <fbxsdk/scene/fbxgroupname.h>
00023 #include <fbxsdk/scene/constraint/fbxconstraint.h>
00024
00025 #include <fbxsdk/fbxsdk_nsbegin.h>
00026
00027 class FbxNode;
00028 class FbxControlSet;
00029 class FbxManager;
00030
00036 class FBXSDK_DLL FbxCharacterLink
00037 {
00038 public:
00040 enum EType
00041 {
00042 eCharacterLink,
00043 eControlSetLink,
00044 eControlSetEffector,
00045 eControlSetEffectorAux
00046 };
00047
00049 FbxCharacterLink();
00050
00052 FbxCharacterLink(const FbxCharacterLink& pCharacterLink);
00053
00057 FbxCharacterLink& operator=(const FbxCharacterLink& pCharacterLink);
00058
00060 void Reset();
00061
00062 FbxNode* mNode;
00063 FbxString mTemplateName;
00064 FbxVector4 mOffsetT;
00065 FbxVector4 mOffsetR;
00066 FbxVector4 mOffsetS;
00067 FbxVector4 mParentROffset;
00068 bool mHasRotSpace;
00069 FbxLimits mRLimits;
00070 FbxVector4 mPreRotation;
00071 FbxVector4 mPostRotation;
00072 int mRotOrder;
00073 double mAxisLen;
00074
00076
00077
00078
00079
00080
00081
00083 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00084 FbxProperty mPropertyLink;
00085 FbxProperty mPropertyOffsetT;
00086 FbxProperty mPropertyOffsetR;
00087 FbxProperty mPropertyOffsetS;
00088 FbxProperty mPropertyParentOffsetR;
00089 FbxProperty mPropertyTemplateName;
00090 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00091 };
00092
00102 class FBXSDK_DLL FbxCharacter : public FbxConstraint
00103 {
00104 FBXSDK_OBJECT_DECLARE(FbxCharacter, FbxConstraint);
00105
00106 public:
00114 enum EInputType
00115 {
00116 eInputActor,
00117 eInputCharacter,
00118 eInputMarkerSet,
00119 eOutputMarkerSet,
00120 eInputStancePose
00121 };
00122
00124 enum EGroupId
00125 {
00126 eGroupBase,
00127 eGroupAuxiliary,
00128 eGroupSpine,
00129 eGroupRoll,
00130 eGroupSpecial,
00131 eGroupLeftHand,
00132 eGroupRightHand,
00133 eGroupProps,
00134 eGroupGameModeParent,
00135 eGroupNeck,
00136 eGroupLeftFoot,
00137 eGroupRightFoot,
00138 eGroupFloorContact,
00139 eGroupIdCount
00140 };
00141
00144 enum ENodeId
00145 {
00146 eHips,
00147 eLeftHip,
00148 eLeftKnee,
00149 eLeftAnkle,
00150 eLeftFoot,
00151 eRightHip,
00152 eRightKnee,
00153 eRightAnkle,
00154 eRightFoot,
00155 eWaist,
00156 eChest,
00157 eLeftCollar,
00158 eLeftShoulder,
00159 eLeftElbow,
00160 eLeftWrist,
00161 eRightCollar,
00162 eRightShoulder,
00163 eRightElbow,
00164 eRightWrist,
00165 eNeck,
00166 eHead,
00167 eLeftHipRoll,
00168 eLeftKneeRoll,
00169 eRightHipRoll,
00170 eRightKneeRoll,
00171 eLeftShoulderRoll,
00172 eLeftElbowRoll,
00173 eRightShoulderRoll,
00174 eRightElbowRoll,
00175 eSpine2,
00176 eSpine3,
00177 eSpine4,
00178 eSpine5,
00179 eSpine6,
00180 eSpine7,
00181 eSpine8,
00182 eSpine9,
00183 eLeftThumbA,
00184 eLeftThumbB,
00185 eLeftThumbC,
00186 eLeftIndexA,
00187 eLeftIndexB,
00188 eLeftIndexC,
00189 eLeftMiddleA,
00190 eLeftMiddleB,
00191 eLeftMiddleC,
00192 eLeftRingA,
00193 eLeftRingB,
00194 eLeftRingC,
00195 eLeftPinkyA,
00196 eLeftPinkyB,
00197 eLeftPinkyC,
00198 eRightThumbA,
00199 eRightThumbB,
00200 eRightThumbC,
00201 eRightIndexA,
00202 eRightIndexB,
00203 eRightIndexC,
00204 eRightMiddleA,
00205 eRightMiddleB,
00206 eRightMiddleC,
00207 eRightRingA,
00208 eRightRingB,
00209 eRightRingC,
00210 eRightPinkyA,
00211 eRightPinkyB,
00212 eRightPinkyC,
00213 eReference,
00214 eLeftFloor,
00215 eRightFloor,
00216 eHipsTranslation,
00217 eProps0,
00218 eProps1,
00219 eProps2,
00220 eProps3,
00221 eProps4,
00222 eGameModeParentLeftHipRoll,
00223 eGameModeParentLeftKnee,
00224 eGameModeParentLeftKneeRoll,
00225 eGameModeParentRightHipRoll,
00226 eGameModeParentRightKnee,
00227 eGameModeParentRightKneeRoll,
00228 eGameModeParentLeftShoulderRoll,
00229 eGameModeParentLeftElbow,
00230 eGameModeParentLeftElbowRoll,
00231 eGameModeParentRightShoulderRoll,
00232 eGameModeParentRightElbow,
00233 eGameModeParentRightElbowRoll,
00234 eLeftUpLegRoll,
00235 eLeftLegRoll,
00236 eRightUpLegRoll,
00237 eRightLegRoll,
00238 eLeftArmRoll,
00239 eLeftForeArmRoll,
00240 eRightArmRoll,
00241 eRightForeArmRoll,
00242 eLeftHandFloor,
00243 eRightHandFloor,
00244 eLeftHand,
00245 eRightHand,
00246 eNeck1,
00247 eNeck2,
00248 eNeck3,
00249 eNeck4,
00250 eNeck5,
00251 eNeck6,
00252 eNeck7,
00253 eNeck8,
00254 eNeck9,
00255 eLeftInHandThumb,
00256 eLeftThumbD,
00257 eLeftInHandIndex,
00258 eLeftIndexD,
00259 eLeftInHandMiddle,
00260 eLeftMiddleD,
00261 eLeftInHandRing,
00262 eLeftRingD,
00263 eLeftInHandPinky,
00264 eLeftPinkyD,
00265 eLeftInHandExtraFinger,
00266 eLeftExtraFingerA,
00267 eLeftExtraFingerB,
00268 eLeftExtraFingerC,
00269 eLeftExtraFingerD,
00270 eRightInHandThumb,
00271 eRightThumbD,
00272 eRightInHandIndex,
00273 eRightIndexD,
00274 eRightInHandMiddle,
00275 eRightMiddleD,
00276 eRightInHandRing,
00277 eRightRingD,
00278 eRightInHandPinky,
00279 eRightPinkyD,
00280 eRightInHandExtraFinger,
00281 eRightExtraFingerA,
00282 eRightExtraFingerB,
00283 eRightExtraFingerC,
00284 eRightExtraFingerD,
00285 eLeftInFootThumb,
00286 eLeftFootThumbA,
00287 eLeftFootThumbB,
00288 eLeftFootThumbC,
00289 eLeftFootThumbD,
00290 eLeftInFootIndex,
00291 eLeftFootIndexA,
00292 eLeftFootIndexB,
00293 eLeftFootIndexC,
00294 eLeftFootIndexD,
00295 eLeftInFootMiddle,
00296 eLeftFootMiddleA,
00297 eLeftFootMiddleB,
00298 eLeftFootMiddleC,
00299 eLeftFootMiddleD,
00300 eLeftInFootRing,
00301 eLeftFootRingA,
00302 eLeftFootRingB,
00303 eLeftFootRingC,
00304 eLeftFootRingD,
00305 eLeftInFootPinky,
00306 eLeftFootPinkyA,
00307 eLeftFootPinkyB,
00308 eLeftFootPinkyC,
00309 eLeftFootPinkyD,
00310 eLeftInFootExtraFinger,
00311 eLeftFootExtraFingerA,
00312 eLeftFootExtraFingerB,
00313 eLeftFootExtraFingerC,
00314 eLeftFootExtraFingerD,
00315 eRightInFootThumb,
00316 eRightFootThumbA,
00317 eRightFootThumbB,
00318 eRightFootThumbC,
00319 eRightFootThumbD,
00320 eRightInFootIndex,
00321 eRightFootIndexA,
00322 eRightFootIndexB,
00323 eRightFootIndexC,
00324 eRightFootIndexD,
00325 eRightInFootMiddle,
00326 eRightFootMiddleA,
00327 eRightFootMiddleB,
00328 eRightFootMiddleC,
00329 eRightFootMiddleD,
00330 eRightInFootRing,
00331 eRightFootRingA,
00332 eRightFootRingB,
00333 eRightFootRingC,
00334 eRightFootRingD,
00335 eRightInFootPinky,
00336 eRightFootPinkyA,
00337 eRightFootPinkyB,
00338 eRightFootPinkyC,
00339 eRightFootPinkyD,
00340 eRightInFootExtraFinger,
00341 eRightFootExtraFingerA,
00342 eRightFootExtraFingerB,
00343 eRightFootExtraFingerC,
00344 eRightFootExtraFingerD,
00345 eLeftCollarExtra,
00346 eRightCollarExtra,
00347 eNodeIdCount
00348 };
00349
00350 enum EOffAutoUser
00351 {
00352 eParamModeOff,
00353 eParamModeAuto,
00354 eParamModeUser
00355 };
00356
00357 enum EAutoUser
00358 {
00359 eParamModeAuto2,
00360 eParamModeUser2
00361 };
00362
00363 enum EPostureMode
00364 {
00365 ePostureBiped,
00366 ePostureQuadriped,
00367 ePostureCount
00368 };
00369
00370 enum EFloorPivot
00371 {
00372 eFloorPivotAuto,
00373 eFloorPivotAnkle,
00374 eFloorPivotToes,
00375 eFloorPivotCount
00376 };
00377
00378 enum ERollExtractionMode
00379 {
00380 eRelativeRollExtraction,
00381 eAbsoluteRollExtraction,
00382 eRollExtractionTypeCount
00383 };
00384
00385 enum EHipsTranslationMode
00386 {
00387 eHipsTranslationWorldRigid,
00388 eHipsTranslationBodyRigid,
00389 eHipsTranslationTypeCount
00390 };
00391
00392 enum EFootContactType
00393 {
00394 eFootTypeNormal,
00395 eFootTypeAnkle,
00396 eFootTypeToeBase,
00397 eFootTypeHoof,
00398 eFootContactModeCount
00399 };
00400
00401 enum EHandContactType
00402 {
00403 eHandTypeNormal,
00404 eHandTypeWrist,
00405 eHandTypeFingerBase,
00406 eHandTypeHoof,
00407 eHandContactModeCount
00408 };
00409
00410 enum EFingerContactMode
00411 {
00412 eFingerContactModeSticky,
00413 eFingerContactModeSpread,
00414 eFingerContactModeStickySpread,
00415 eFingerContactModeCount
00416 };
00417
00418 enum EContactBehaviour
00419 {
00420 eContactNeverSync,
00421 eContactSyncOnKey,
00422 eContactAlwaysSync,
00423 eContactBehaviorCount
00424 };
00425
00426 enum EPropertyUnit
00427 {
00428 ePropertyNoUnit,
00429 ePropertyPercent,
00430 ePropertySecond,
00431 ePropertyCentimeter,
00432 ePropertyDegree,
00433 ePropertyEnum,
00434 ePropertyReal
00435 };
00436
00437 enum EErrorCode
00438 {
00439 eInternalError,
00440 eErrorCount
00441 };
00442
00449 void Reset();
00450
00455 void SetInput(EInputType pInputType, FbxObject* pInputObject = NULL);
00456
00458 EInputType GetInputType() const;
00459
00465 FbxObject* GetInputObject() const;
00466
00474 bool SetCharacterLink(ENodeId pCharacterNodeId, const FbxCharacterLink& pCharacterLink, bool pUpdateObjectList = true);
00475
00481 bool GetCharacterLink(ENodeId pCharacterNodeId, FbxCharacterLink* pCharacterLink = NULL) const;
00482
00486 FbxControlSet& GetControlSet() const;
00487
00492 static int GetCharacterGroupCount(EGroupId pCharacterGroupId);
00493
00499 static ENodeId GetCharacterGroupElementByIndex(EGroupId pCharacterGroupId, int pIndex);
00500
00501
00507 static char* GetCharacterGroupNameByIndex(EGroupId pCharacterGroupId, int pIndex);
00508
00514 static int GetCharacterGroupVersionByIndex(EGroupId pCharacterGroupId, int pIndex);
00515
00523 static bool FindCharacterGroupIndexByName(const char* pName, bool pForceGroupId, EGroupId& pCharacterGroupId, int& pIndex);
00524
00532 static bool GetCharacterGroupIndexByElement(ENodeId pCharacterNodeId, EGroupId& pCharacterGroupId, int& pIndex);
00533
00540 static bool GetCharacterGroupVersionByElement(ENodeId pCharacterNodeId, int& pVersion);
00541
00549 static bool GetCharacterNodeNameFromNodeId(ENodeId pCharacterNodeId, char*& pName);
00550
00556 static bool GetCharacterNodeIdFromNodeName(const char* pName, ENodeId& pCharacterNodeId);
00557
00558
00559 FbxPropertyT<FbxInt> PullIterationCount;
00560 FbxPropertyT<EPostureMode> Posture;
00561 FbxPropertyT<FbxBool> ForceActorSpace;
00562 FbxPropertyT<FbxDouble> ScaleCompensation;
00563 FbxPropertyT<EOffAutoUser> ScaleCompensationMode;
00564 FbxPropertyT<FbxDouble> HipsHeightCompensation;
00565 FbxPropertyT<EOffAutoUser> HipsHeightCompensationMode;
00566 FbxPropertyT<FbxDouble> AnkleHeightCompensation;
00567 FbxPropertyT<EOffAutoUser> AnkleHeightCompensationMode;
00568 FbxPropertyT<FbxDouble> AnkleProximityCompensation;
00569 FbxPropertyT<EOffAutoUser> AnkleProximityCompensationMode;
00570 FbxPropertyT<FbxDouble> MassCenterCompensation;
00571 FbxPropertyT<FbxBool> ApplyLimits;
00572 FbxPropertyT<FbxDouble> ChestReduction;
00573 FbxPropertyT<FbxDouble> CollarReduction;
00574 FbxPropertyT<FbxDouble> NeckReduction;
00575 FbxPropertyT<FbxDouble> HeadReduction;
00576 FbxPropertyT<FbxDouble> ReachActorLeftAnkle;
00577 FbxPropertyT<FbxDouble> ReachActorRightAnkle;
00578 FbxPropertyT<FbxDouble> ReachActorLeftKnee;
00579 FbxPropertyT<FbxDouble> ReachActorRightKnee;
00580 FbxPropertyT<FbxDouble> ReachActorChest;
00581 FbxPropertyT<FbxDouble> ReachActorHead;
00582 FbxPropertyT<FbxDouble> ReachActorLeftWrist;
00583 FbxPropertyT<FbxDouble> ReachActorRightWrist;
00584 FbxPropertyT<FbxDouble> ReachActorLeftElbow;
00585 FbxPropertyT<FbxDouble> ReachActorRightElbow;
00586 FbxPropertyT<FbxDouble> ReachActorLeftFingerBase;
00587 FbxPropertyT<FbxDouble> ReachActorRightFingerBase;
00588 FbxPropertyT<FbxDouble> ReachActorLeftToesBase;
00589 FbxPropertyT<FbxDouble> ReachActorRightToesBase;
00590 FbxPropertyT<FbxDouble> ReachActorLeftFingerBaseRotation;
00591 FbxPropertyT<FbxDouble> ReachActorRightFingerBaseRotation;
00592 FbxPropertyT<FbxDouble> ReachActorLeftToesBaseRotation;
00593 FbxPropertyT<FbxDouble> ReachActorRightToesBaseRotation;
00594 FbxPropertyT<FbxDouble> ReachActorLeftAnkleRotation;
00595 FbxPropertyT<FbxDouble> ReachActorRightAnkleRotation;
00596 FbxPropertyT<FbxDouble> ReachActorHeadRotation;
00597 FbxPropertyT<FbxDouble> ReachActorLeftWristRotation;
00598 FbxPropertyT<FbxDouble> ReachActorRightWristRotation;
00599 FbxPropertyT<FbxDouble> ReachActorChestRotation;
00600 FbxPropertyT<FbxDouble> ReachActorLowerChestRotation;
00601 FbxPropertyT<FbxDouble3> HipsTOffset;
00602 FbxPropertyT<FbxDouble3> ChestTOffset;
00603 FbxPropertyT<ERollExtractionMode> RollExtractionMode;
00604 FbxPropertyT<FbxDouble> LeftUpLegRoll;
00605 FbxPropertyT<FbxBool> LeftUpLegRollMode;
00606 FbxPropertyT<FbxDouble> LeftLegRoll;
00607 FbxPropertyT<FbxBool> LeftLegRollMode;
00608 FbxPropertyT<FbxDouble> RightUpLegRoll;
00609 FbxPropertyT<FbxBool> RightUpLegRollMode;
00610 FbxPropertyT<FbxDouble> RightLegRoll;
00611 FbxPropertyT<FbxBool> RightLegRollMode;
00612 FbxPropertyT<FbxDouble> LeftArmRoll;
00613 FbxPropertyT<FbxBool> LeftArmRollMode;
00614 FbxPropertyT<FbxDouble> LeftForeArmRoll;
00615 FbxPropertyT<FbxBool> LeftForeArmRollMode;
00616 FbxPropertyT<FbxDouble> RightArmRoll;
00617 FbxPropertyT<FbxBool> RightArmRollMode;
00618 FbxPropertyT<FbxDouble> RightForeArmRoll;
00619 FbxPropertyT<FbxBool> RightForeArmRollMode;
00620 FbxPropertyT<FbxDouble> LeftUpLegRollEx;
00621 FbxPropertyT<FbxBool> LeftUpLegRollExMode;
00622 FbxPropertyT<FbxDouble> LeftLegRollEx;
00623 FbxPropertyT<FbxBool> LeftLegRollExMode;
00624 FbxPropertyT<FbxDouble> RightUpLegRollEx;
00625 FbxPropertyT<FbxBool> RightUpLegRollExMode;
00626 FbxPropertyT<FbxDouble> RightLegRollEx;
00627 FbxPropertyT<FbxBool> RightLegRollExMode;
00628 FbxPropertyT<FbxDouble> LeftArmRollEx;
00629 FbxPropertyT<FbxBool> LeftArmRollExMode;
00630 FbxPropertyT<FbxDouble> LeftForeArmRollEx;
00631 FbxPropertyT<FbxBool> LeftForeArmRollExMode;
00632 FbxPropertyT<FbxDouble> RightArmRollEx;
00633 FbxPropertyT<FbxBool> RightArmRollExMode;
00634 FbxPropertyT<FbxDouble> RightForeArmExRoll;
00635 FbxPropertyT<FbxBool> RightForeArmRollExMode;
00636 FbxPropertyT<EContactBehaviour> ContactBehaviour;
00637 FbxPropertyT<FbxBool> FootFloorContact;
00638 FbxPropertyT<FbxBool> FootAutomaticToes;
00639 FbxPropertyT<EFloorPivot> FootFloorPivot;
00640 FbxPropertyT<FbxDouble> FootBottomToAnkle;
00641 FbxPropertyT<FbxDouble> FootBackToAnkle;
00642 FbxPropertyT<FbxDouble> FootMiddleToAnkle;
00643 FbxPropertyT<FbxDouble> FootFrontToMiddle;
00644 FbxPropertyT<FbxDouble> FootInToAnkle;
00645 FbxPropertyT<FbxDouble> FootOutToAnkle;
00646 FbxPropertyT<FbxDouble> FootContactSize;
00647 FbxPropertyT<FbxBool> FootFingerContact;
00648 FbxPropertyT<EFootContactType> FootContactType;
00649 FbxPropertyT<EFingerContactMode> FootFingerContactMode;
00650 FbxPropertyT<FbxDouble> FootContactStiffness;
00651 FbxPropertyT<FbxDouble> FootFingerContactRollStiffness;
00652 FbxPropertyT<FbxBool> HandFloorContact;
00653 FbxPropertyT<FbxBool> HandAutomaticFingers;
00654 FbxPropertyT<EFloorPivot> HandFloorPivot;
00655 FbxPropertyT<FbxDouble> HandBottomToWrist;
00656 FbxPropertyT<FbxDouble> HandBackToWrist;
00657 FbxPropertyT<FbxDouble> HandMiddleToWrist;
00658 FbxPropertyT<FbxDouble> HandFrontToMiddle;
00659 FbxPropertyT<FbxDouble> HandInToWrist;
00660 FbxPropertyT<FbxDouble> HandOutToWrist;
00661 FbxPropertyT<FbxDouble> HandContactSize;
00662 FbxPropertyT<FbxBool> HandFingerContact;
00663 FbxPropertyT<EHandContactType> HandContactType;
00664 FbxPropertyT<EFingerContactMode> HandFingerContactMode;
00665 FbxPropertyT<FbxDouble> HandContactStiffness;
00666 FbxPropertyT<FbxDouble> HandFingerContactRollStiffness;
00667 FbxPropertyT<FbxDouble> LeftHandThumbTip;
00668 FbxPropertyT<FbxDouble> LeftHandIndexTip;
00669 FbxPropertyT<FbxDouble> LeftHandMiddleTip;
00670 FbxPropertyT<FbxDouble> LeftHandRingTip;
00671 FbxPropertyT<FbxDouble> LeftHandPinkyTip;
00672 FbxPropertyT<FbxDouble> LeftHandExtraFingerTip;
00673 FbxPropertyT<FbxDouble> RightHandThumbTip;
00674 FbxPropertyT<FbxDouble> RightHandIndexTip;
00675 FbxPropertyT<FbxDouble> RightHandMiddleTip;
00676 FbxPropertyT<FbxDouble> RightHandRingTip;
00677 FbxPropertyT<FbxDouble> RightHandPinkyTip;
00678 FbxPropertyT<FbxDouble> RightHandExtraFingerTip;
00679 FbxPropertyT<FbxDouble> LeftFootThumbTip;
00680 FbxPropertyT<FbxDouble> LeftFootIndexTip;
00681 FbxPropertyT<FbxDouble> LeftFootMiddleTip;
00682 FbxPropertyT<FbxDouble> LeftFootRingTip;
00683 FbxPropertyT<FbxDouble> LeftFootPinkyTip;
00684 FbxPropertyT<FbxDouble> LeftFootExtraFingerTip;
00685 FbxPropertyT<FbxDouble> RightFootThumbTip;
00686 FbxPropertyT<FbxDouble> RightFootIndexTip;
00687 FbxPropertyT<FbxDouble> RightFootMiddleTip;
00688 FbxPropertyT<FbxDouble> RightFootRingTip;
00689 FbxPropertyT<FbxDouble> RightFootPinkyTip;
00690 FbxPropertyT<FbxDouble> RightFootExtraFingerTip;
00691 FbxPropertyT<FbxBool> FingerSolving;
00692 FbxPropertyT<FbxDouble> CtrlPullLeftToeBase;
00693 FbxPropertyT<FbxDouble> CtrlPullLeftFoot;
00694 FbxPropertyT<FbxDouble> CtrlPullLeftKnee;
00695 FbxPropertyT<FbxDouble> CtrlPullRightToeBase;
00696 FbxPropertyT<FbxDouble> CtrlPullRightFoot;
00697 FbxPropertyT<FbxDouble> CtrlPullRightKnee;
00698 FbxPropertyT<FbxDouble> CtrlPullLeftFingerBase;
00699 FbxPropertyT<FbxDouble> CtrlPullLeftHand;
00700 FbxPropertyT<FbxDouble> CtrlPullLeftElbow;
00701 FbxPropertyT<FbxDouble> CtrlPullRightFingerBase;
00702 FbxPropertyT<FbxDouble> CtrlPullRightHand;
00703 FbxPropertyT<FbxDouble> CtrlPullRightElbow;
00704 FbxPropertyT<FbxDouble> CtrlChestPullLeftHand;
00705 FbxPropertyT<FbxDouble> CtrlChestPullRightHand;
00706 FbxPropertyT<FbxDouble> CtrlPullHead;
00707 FbxPropertyT<FbxDouble> CtrlResistHipsPosition;
00708 FbxPropertyT<FbxDouble> CtrlEnforceGravity;
00709 FbxPropertyT<FbxDouble> CtrlResistHipsOrientation;
00710 FbxPropertyT<FbxDouble> CtrlResistChestPosition;
00711 FbxPropertyT<FbxDouble> CtrlResistChestOrientation;
00712 FbxPropertyT<FbxDouble> CtrlResistLeftCollar;
00713 FbxPropertyT<FbxDouble> CtrlResistRightCollar;
00714 FbxPropertyT<FbxDouble> CtrlResistLeftKnee;
00715 FbxPropertyT<FbxDouble> CtrlResistMaximumExtensionLeftKnee;
00716 FbxPropertyT<FbxDouble> CtrlResistCompressionFactorLeftKnee;
00717 FbxPropertyT<FbxDouble> CtrlResistRightKnee;
00718 FbxPropertyT<FbxDouble> CtrlResistMaximumExtensionRightKnee;
00719 FbxPropertyT<FbxDouble> CtrlResistCompressionFactorRightKnee;
00720 FbxPropertyT<FbxDouble> CtrlResistLeftElbow;
00721 FbxPropertyT<FbxDouble> CtrlResistMaximumExtensionLeftElbow;
00722 FbxPropertyT<FbxDouble> CtrlResistCompressionFactorLeftElbow;
00723 FbxPropertyT<FbxDouble> CtrlResistRightElbow;
00724 FbxPropertyT<FbxDouble> CtrlResistMaximumExtensionRightElbow;
00725 FbxPropertyT<FbxDouble> CtrlResistCompressionFactorRightElbow;
00726 FbxPropertyT<FbxDouble> CtrlSpineStiffness;
00727 FbxPropertyT<FbxDouble> CtrlNeckStiffness;
00728 FbxPropertyT<FbxBool> MirrorMode;
00729 FbxPropertyT<FbxDouble> ShoulderCorrection;
00730 FbxPropertyT<FbxBool> LeftKneeKillPitch;
00731 FbxPropertyT<FbxBool> RightKneeKillPitch;
00732 FbxPropertyT<FbxBool> LeftElbowKillPitch;
00733 FbxPropertyT<FbxBool> RightElbowKillPitch;
00734 FbxPropertyT<EHipsTranslationMode> HipsTranslationMode;
00735 FbxPropertyT<FbxBool> WriteReference;
00736 FbxPropertyT<FbxBool> SyncMode;
00737 FbxPropertyT<FbxDouble> Damping;
00738 FbxPropertyT<FbxDouble> OrientationDamping;
00739 FbxPropertyT<EOffAutoUser> OrientationDampingMode;
00740 FbxPropertyT<FbxDouble> DisplacementDamping;
00741 FbxPropertyT<EOffAutoUser> DisplacementDampingMode;
00742 FbxPropertyT<FbxDouble> DisplacementMemory;
00743 FbxPropertyT<EAutoUser> DisplacementMemoryMode;
00744 FbxPropertyT<FbxDouble> HipsDisplacementDamping;
00745 FbxPropertyT<EAutoUser> HipsDisplacementDampingMode;
00746 FbxPropertyT<FbxDouble> AnkleDisplacementDamping;
00747 FbxPropertyT<EAutoUser> AnkleDisplacementDampingMode;
00748 FbxPropertyT<FbxDouble> WristDisplacementDamping;
00749 FbxPropertyT<EAutoUser> WristDisplacementDampingMode;
00750 FbxPropertyT<FbxDouble> Stabilization;
00751 FbxPropertyT<FbxDouble> AnkleStabilizationTime;
00752 FbxPropertyT<EAutoUser> AnkleStabilizationTimeMode;
00753 FbxPropertyT<FbxDouble> AnkleStabilizationPerimeter;
00754 FbxPropertyT<EAutoUser> AnkleStabilizationPerimeterMode;
00755 FbxPropertyT<FbxDouble> AnkleStabilizationAngularPerimeter;
00756 FbxPropertyT<EOffAutoUser> AnkleStabilizationAngularPerimeterMode;
00757 FbxPropertyT<FbxDouble> AnkleStabilizationFloorProximity;
00758 FbxPropertyT<EOffAutoUser> AnkleStabilizationFloorProximityMode;
00759 FbxPropertyT<FbxDouble> AnkleStabilizationDamping;
00760 FbxPropertyT<EOffAutoUser> AnkleStabilizationDampingMode;
00761 FbxPropertyT<FbxDouble> AnkleStabilizationRecoveryTime;
00762 FbxPropertyT<EOffAutoUser> AnkleStabilizationRecoveryTimeMode;
00763 FbxPropertyT<FbxReference> SourceObject;
00764 FbxPropertyT<FbxReference> DestinationObject;
00765 FbxPropertyT<FbxReference> Actor;
00766 FbxPropertyT<FbxReference> Character;
00767 FbxPropertyT<FbxReference> ControlSet;
00768 FbxPropertyT<FbxDouble> HikVersion;
00769 FbxPropertyT<FbxBool> Characterize;
00770 FbxPropertyT<FbxBool> LockXForm;
00771 FbxPropertyT<FbxBool> LockPick;
00772
00773
00774 FbxPropertyT<FbxDouble> RealisticShoulder;
00775 FbxPropertyT<FbxDouble> CollarStiffnessX;
00776 FbxPropertyT<FbxDouble> CollarStiffnessY;
00777 FbxPropertyT<FbxDouble> CollarStiffnessZ;
00778 FbxPropertyT<FbxDouble> ExtraCollarRatio;
00779
00780 FbxPropertyT<FbxDouble> LeftLegMaxExtensionAngle;
00781 FbxPropertyT<FbxDouble> RightLegMaxExtensionAngle;
00782 FbxPropertyT<FbxDouble> LeftArmMaxExtensionAngle;
00783 FbxPropertyT<FbxDouble> RightArmMaxExtensionAngle;
00784
00785 FbxPropertyT<FbxDouble> StretchStartArmsAndLegs;
00786 FbxPropertyT<FbxDouble> StretchStopArmsAndLegs;
00787 FbxPropertyT<FbxDouble> SnSScaleArmsAndLegs;
00788 FbxPropertyT<FbxDouble> SnSReachLeftWrist;
00789 FbxPropertyT<FbxDouble> SnSReachRightWrist;
00790 FbxPropertyT<FbxDouble> SnSReachLeftAnkle;
00791 FbxPropertyT<FbxDouble> SnSReachRightAnkle;
00792 FbxPropertyT<FbxDouble> SnSScaleSpine;
00793 FbxPropertyT<FbxDouble> SnSScaleSpineChildren;
00794 FbxPropertyT<FbxDouble> SnSSpineFreedom;
00795 FbxPropertyT<FbxDouble> SnSReachChestEnd;
00796 FbxPropertyT<FbxDouble> SnSScaleNeck;
00797 FbxPropertyT<FbxDouble> SnSNeckFreedom;
00798 FbxPropertyT<FbxDouble> SnSReachHead;
00799
00801
00802
00803
00804
00805
00806
00808 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00809 void SetVersion(int pVersion){ mCharacterVersion = pVersion; }
00810 int Version(){ return mCharacterVersion; }
00811 void SetValuesFromLegacyLoad();
00812 void SetValuesForLegacySave(int pVersion);
00813 void RestoreValuesFromLegacySave();
00814 bool IsLegacy();
00815
00816 int GetPropertyInfoCount();
00817 const void GetPropertyInfo(char* &pCharacterPropertyName, char* &pCharacterPropertyModeName, EPropertyUnit &pUnit, int &pPropertyIndex, char* &pHIKPropertyName, char* &pHIKPropertyModeName, int pIndex) const;
00818 const void GetFbxCharacterPropertyFromHIKProperty(char* &pCharacterPropertyName, char* &pCharacterPropertyModeName, EPropertyUnit &pUnit, int &pPropertyIndex, const char* pHIKPropertyName) const;
00819
00820 FbxCharacterLink* GetCharacterLinkPtr(ENodeId pCharacterNodeId);
00821
00822 protected:
00823 FbxCharacter(FbxManager& pManager, char const* pName);
00824
00825 virtual FbxObject& Copy(const FbxObject& pObject);
00826 virtual void Construct(const FbxCharacter* pFrom);
00827 virtual void Destruct(bool pRecursive, bool pDependents);
00828 virtual EType GetConstraintType() const;
00829 virtual FbxStringList GetTypeFlags() const;
00830 virtual bool ConnecNotify (FbxConnectEvent const &pEvent);
00831
00832 private:
00833 bool InverseProperty(FbxProperty& pProp);
00834
00835 FbxError mError;
00836 int mCharacterVersion;
00837 FbxCharacterLink mCharacterLink[eNodeIdCount];
00838 FbxControlSet* mControlSet;
00839
00840 friend class FbxScene;
00841 friend class FbxNode;
00842 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00843 };
00844
00845 inline EFbxType FbxTypeOf(const FbxCharacter::EOffAutoUser&){ return eFbxEnum; }
00846 inline EFbxType FbxTypeOf(const FbxCharacter::EAutoUser&){ return eFbxEnum; }
00847 inline EFbxType FbxTypeOf(const FbxCharacter::EPostureMode&){ return eFbxEnum; }
00848 inline EFbxType FbxTypeOf(const FbxCharacter::EFloorPivot&){ return eFbxEnum; }
00849 inline EFbxType FbxTypeOf(const FbxCharacter::ERollExtractionMode&){ return eFbxEnum; }
00850 inline EFbxType FbxTypeOf(const FbxCharacter::EHipsTranslationMode&){ return eFbxEnum; }
00851 inline EFbxType FbxTypeOf(const FbxCharacter::EFootContactType&){ return eFbxEnum; }
00852 inline EFbxType FbxTypeOf(const FbxCharacter::EHandContactType&){ return eFbxEnum; }
00853 inline EFbxType FbxTypeOf(const FbxCharacter::EFingerContactMode&){ return eFbxEnum; }
00854 inline EFbxType FbxTypeOf(const FbxCharacter::EContactBehaviour&){ return eFbxEnum; }
00855
00856 #include <fbxsdk/fbxsdk_nsend.h>
00857
00858 #endif