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