00001
00004 #ifndef FBXFILESDK_KFBXCHARACTER_KFBXCHARACTER_H
00005 #define FBXFILESDK_KFBXCHARACTER_KFBXCHARACTER_H
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #include <fbxfilesdk/fbxfilesdk_def.h>
00042
00043 #include <fbxfilesdk/kfbxmath/kfbxvector4.h>
00044
00045 #include <fbxfilesdk/components/kbaselib/klib/kstring.h>
00046 #include <fbxfilesdk/components/kbaselib/klib/kerror.h>
00047
00048 #include <fbxfilesdk/components/kcharacterdef/kfiltersetenum.h>
00049
00050 #include <fbxfilesdk/kfbxplugins/kfbxconstraint.h>
00051 #include <fbxfilesdk/kfbxplugins/kfbxnodelimits.h>
00052 #include <fbxfilesdk/kfbxplugins/kfbxgroupname.h>
00053
00054 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00055
00056 class KFbxNode;
00057 class KFbxControlSet;
00058 class KFbxSdkManager;
00059
00060
00061
00069 typedef enum
00070 {
00071 eCharacterInputActor = 0,
00072 eCharacterInputCharacter = 1,
00073 eCharacterInputMarkerSet = 2,
00074 eCharacterOutputMarkerSet = 3,
00075 eCharacterInputStance = 4
00076 } ECharacterInputType;
00077
00078
00079 typedef enum
00080 {
00081 eCharacterHips = 0,
00082 eCharacterLeftHip,
00083 eCharacterLeftKnee,
00084 eCharacterLeftAnkle,
00085 eCharacterLeftFoot,
00086 eCharacterRightHip,
00087 eCharacterRightKnee,
00088 eCharacterRightAnkle,
00089 eCharacterRightFoot,
00090 eCharacterWaist,
00091 eCharacterChest,
00092 eCharacterLeftCollar,
00093 eCharacterLeftShoulder,
00094 eCharacterLeftElbow,
00095 eCharacterLeftWrist,
00096 eCharacterRightCollar,
00097 eCharacterRightShoulder,
00098 eCharacterRightElbow,
00099 eCharacterRightWrist,
00100 eCharacterNeck,
00101 eCharacterHead,
00102 eCharacterLeftHipRoll,
00103 eCharacterLeftKneeRoll,
00104 eCharacterRightHipRoll,
00105 eCharacterRightKneeRoll,
00106 eCharacterLeftShoulderRoll,
00107 eCharacterLeftElbowRoll,
00108 eCharacterRightShoulderRoll,
00109 eCharacterRightElbowRoll,
00110 eCharacterSpine2,
00111 eCharacterSpine3,
00112 eCharacterSpine4,
00113 eCharacterSpine5,
00114 eCharacterSpine6,
00115 eCharacterSpine7,
00116 eCharacterSpine8,
00117 eCharacterSpine9,
00118 eCharacterLeftThumbA,
00119 eCharacterLeftThumbB,
00120 eCharacterLeftThumbC,
00121 eCharacterLeftIndexA,
00122 eCharacterLeftIndexB,
00123 eCharacterLeftIndexC,
00124 eCharacterLeftMiddleA,
00125 eCharacterLeftMiddleB,
00126 eCharacterLeftMiddleC,
00127 eCharacterLeftRingA,
00128 eCharacterLeftRingB,
00129 eCharacterLeftRingC,
00130 eCharacterLeftPinkyA,
00131 eCharacterLeftPinkyB,
00132 eCharacterLeftPinkyC,
00133 eCharacterRightThumbA,
00134 eCharacterRightThumbB,
00135 eCharacterRightThumbC,
00136 eCharacterRightIndexA,
00137 eCharacterRightIndexB,
00138 eCharacterRightIndexC,
00139 eCharacterRightMiddleA,
00140 eCharacterRightMiddleB,
00141 eCharacterRightMiddleC,
00142 eCharacterRightRingA,
00143 eCharacterRightRingB,
00144 eCharacterRightRingC,
00145 eCharacterRightPinkyA,
00146 eCharacterRightPinkyB,
00147 eCharacterRightPinkyC,
00148 eCharacterReference,
00149 eCharacterLeftFloor,
00150 eCharacterRightFloor,
00151 eCharacterHipsTranslation,
00152 eCharacterProps0,
00153 eCharacterProps1,
00154 eCharacterProps2,
00155 eCharacterProps3,
00156 eCharacterProps4,
00157
00158
00159
00160 eCharacterGameModeParentLeftHipRoll,
00161 eCharacterGameModeParentLeftKnee,
00162 eCharacterGameModeParentLeftKneeRoll,
00163 eCharacterGameModeParentRightHipRoll,
00164 eCharacterGameModeParentRightKnee,
00165 eCharacterGameModeParentRightKneeRoll,
00166 eCharacterGameModeParentLeftShoulderRoll,
00167 eCharacterGameModeParentLeftElbow,
00168 eCharacterGameModeParentLeftElbowRoll,
00169 eCharacterGameModeParentRightShoulderRoll,
00170 eCharacterGameModeParentRightElbow,
00171 eCharacterGameModeParentRightElbowRoll,
00172
00173
00174
00175
00176
00177 eCharacterLeftHandFloor,
00178 eCharacterRightHandFloor,
00179
00180 eCharacterLeftHand,
00181 eCharacterRightHand,
00182
00183 eCharacterNeck1,
00184 eCharacterNeck2,
00185 eCharacterNeck3,
00186 eCharacterNeck4,
00187 eCharacterNeck5,
00188 eCharacterNeck6,
00189 eCharacterNeck7,
00190 eCharacterNeck8,
00191 eCharacterNeck9,
00192
00193 eCharacterLeftInHandThumb,
00194 eCharacterLeftThumbD,
00195
00196 eCharacterLeftInHandIndex,
00197 eCharacterLeftIndexD,
00198
00199 eCharacterLeftInHandMiddle,
00200 eCharacterLeftMiddleD,
00201
00202 eCharacterLeftInHandRing,
00203 eCharacterLeftRingD,
00204
00205 eCharacterLeftInHandPinky,
00206 eCharacterLeftPinkyD,
00207
00208 eCharacterLeftInHandExtraFinger,
00209 eCharacterLeftExtraFingerA,
00210 eCharacterLeftExtraFingerB,
00211 eCharacterLeftExtraFingerC,
00212 eCharacterLeftExtraFingerD,
00213
00214 eCharacterRightInHandThumb,
00215 eCharacterRightThumbD,
00216
00217 eCharacterRightInHandIndex,
00218 eCharacterRightIndexD,
00219
00220 eCharacterRightInHandMiddle,
00221 eCharacterRightMiddleD,
00222
00223 eCharacterRightInHandRing,
00224 eCharacterRightRingD,
00225
00226 eCharacterRightInHandPinky,
00227 eCharacterRightPinkyD,
00228
00229 eCharacterRightInHandExtraFinger,
00230 eCharacterRightExtraFingerA,
00231 eCharacterRightExtraFingerB,
00232 eCharacterRightExtraFingerC,
00233 eCharacterRightExtraFingerD,
00234
00235 eCharacterLeftInFootThumb,
00236 eCharacterLeftFootThumbA,
00237 eCharacterLeftFootThumbB,
00238 eCharacterLeftFootThumbC,
00239 eCharacterLeftFootThumbD,
00240 eCharacterLeftInFootIndex,
00241 eCharacterLeftFootIndexA,
00242 eCharacterLeftFootIndexB,
00243 eCharacterLeftFootIndexC,
00244 eCharacterLeftFootIndexD,
00245 eCharacterLeftInFootMiddle,
00246 eCharacterLeftFootMiddleA,
00247 eCharacterLeftFootMiddleB,
00248 eCharacterLeftFootMiddleC,
00249 eCharacterLeftFootMiddleD,
00250 eCharacterLeftInFootRing,
00251 eCharacterLeftFootRingA,
00252 eCharacterLeftFootRingB,
00253 eCharacterLeftFootRingC,
00254 eCharacterLeftFootRingD,
00255 eCharacterLeftInFootPinky,
00256 eCharacterLeftFootPinkyA,
00257 eCharacterLeftFootPinkyB,
00258 eCharacterLeftFootPinkyC,
00259 eCharacterLeftFootPinkyD,
00260 eCharacterLeftInFootExtraFinger,
00261 eCharacterLeftFootExtraFingerA,
00262 eCharacterLeftFootExtraFingerB,
00263 eCharacterLeftFootExtraFingerC,
00264 eCharacterLeftFootExtraFingerD,
00265
00266 eCharacterRightInFootThumb,
00267 eCharacterRightFootThumbA,
00268 eCharacterRightFootThumbB,
00269 eCharacterRightFootThumbC,
00270 eCharacterRightFootThumbD,
00271 eCharacterRightInFootIndex,
00272 eCharacterRightFootIndexA,
00273 eCharacterRightFootIndexB,
00274 eCharacterRightFootIndexC,
00275 eCharacterRightFootIndexD,
00276 eCharacterRightInFootMiddle,
00277 eCharacterRightFootMiddleA,
00278 eCharacterRightFootMiddleB,
00279 eCharacterRightFootMiddleC,
00280 eCharacterRightFootMiddleD,
00281 eCharacterRightInFootRing,
00282 eCharacterRightFootRingA,
00283 eCharacterRightFootRingB,
00284 eCharacterRightFootRingC,
00285 eCharacterRightFootRingD,
00286 eCharacterRightInFootPinky,
00287 eCharacterRightFootPinkyA,
00288 eCharacterRightFootPinkyB,
00289 eCharacterRightFootPinkyC,
00290 eCharacterRightFootPinkyD,
00291 eCharacterRightInFootExtraFinger,
00292 eCharacterRightFootExtraFingerA,
00293 eCharacterRightFootExtraFingerB,
00294 eCharacterRightFootExtraFingerC,
00295 eCharacterRightFootExtraFingerD,
00296
00297 eCharacterLastNodeId
00298 } ECharacterNodeId;
00299
00300
00301 typedef enum
00302 {
00303 eCharacterGroup_Base,
00304 eCharacterGroup_Auxiliary,
00305 eCharacterGroup_Spine,
00306 eCharacterGroup_Roll,
00307 eCharacterGroup_Special,
00308 eCharacterGroup_LeftHand,
00309 eCharacterGroup_RightHand,
00310 eCharacterGroup_Props,
00311 eCharacterGroup_GameModeParent,
00312
00313
00314
00315 eCharacterGroup_Neck,
00316 eCharacterGroup_LeftFoot,
00317 eCharacterGroup_RightFoot,
00318
00319
00320 eCharacterGroup_FloorContact,
00321
00322
00323 eLastCharacterGroupId
00324 } ECharacterGroupId;
00325
00326
00327 typedef enum
00328 {
00329 eCharacterLink,
00330 eControlSetLink,
00331 eControlSetEffector,
00332 eControlSetEffectorAux
00333 } ECharacterLinkType;
00334
00340 class KFBX_DLL KFbxCharacterLink
00341 {
00342 public:
00345 KFbxCharacterLink();
00348 KFbxCharacterLink(const KFbxCharacterLink& pCharacterLink);
00349
00353 KFbxCharacterLink& operator=(const KFbxCharacterLink& pCharacterLink);
00354
00357 void Reset();
00358
00360 KFbxNode* mNode;
00361
00364 KString mTemplateName;
00365
00367 KFbxVector4 mOffsetT;
00369 KFbxVector4 mOffsetR;
00371 KFbxVector4 mOffsetS;
00373 KFbxVector4 mParentROffset;
00374
00376 bool mHasRotSpace;
00378 KFbxLimits mRLimits;
00380 KFbxVector4 mPreRotation;
00382 KFbxVector4 mPostRotation;
00384 int mRotOrder;
00386 double mAxisLen;
00387
00388
00390
00391
00392
00393
00394
00395
00397
00398 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00399
00400 KFbxProperty mPropertyLink;
00401 KFbxProperty mPropertyOffsetT;
00402 KFbxProperty mPropertyOffsetR;
00403 KFbxProperty mPropertyOffsetS;
00404 KFbxProperty mPropertyParentOffsetR;
00405 KFbxProperty mPropertyTemplateName;
00406
00407 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00408
00409 };
00410
00422 class KFBX_DLL KFbxCharacter : public KFbxConstraint
00423 {
00424 KFBXOBJECT_DECLARE(KFbxCharacter,KFbxConstraint);
00425
00426 public:
00427
00434 void Reset();
00435
00440 void SetInput(ECharacterInputType pInputType, KFbxObject* pInputObject = NULL);
00441
00443 ECharacterInputType GetInputType() const;
00444
00450 KFbxObject* GetInputObject() const;
00451
00459 bool SetCharacterLink(ECharacterNodeId pCharacterNodeId, const KFbxCharacterLink& pCharacterLink, bool pUpdateObjectList = true);
00460
00466 bool GetCharacterLink(ECharacterNodeId pCharacterNodeId, KFbxCharacterLink* pCharacterLink = NULL) const;
00467
00471 KFbxControlSet& GetControlSet() const;
00472
00477 static int GetCharacterGroupCount(ECharacterGroupId pCharacterGroupId);
00478
00484 static ECharacterNodeId GetCharacterGroupElementByIndex(ECharacterGroupId pCharacterGroupId, int pIndex);
00485
00486
00492 static char* GetCharacterGroupNameByIndex(ECharacterGroupId pCharacterGroupId, int pIndex);
00493
00499 static int GetCharacterGroupVersionByIndex(ECharacterGroupId pCharacterGroupId, int pIndex);
00500
00508 static bool FindCharacterGroupIndexByName(const char* pName, bool pForceGroupId, ECharacterGroupId& pCharacterGroupId, int& pIndex);
00509
00517 static bool GetCharacterGroupIndexByElement(ECharacterNodeId pCharacterNodeId, ECharacterGroupId& pCharacterGroupId, int& pIndex);
00518
00525 static bool GetCharacterGroupVersionByElement(ECharacterNodeId pCharacterNodeId, int& pVersion);
00526
00534 static bool GetCharacterNodeNameFromNodeId(ECharacterNodeId pCharacterNodeId, char*& pName);
00535
00541 static bool GetCharacterNodeIdFromNodeName(const char* pName, ECharacterNodeId& pCharacterNodeId);
00542
00543 typedef enum
00544 {
00545 eINTERNAL_ERROR,
00546 eERROR_COUNT
00547 } EError;
00548
00549
00550 KFbxTypedProperty<fbxInteger1> PullIterationCount;
00551 KFbxTypedProperty<kCharacterPosture> Posture;
00552 KFbxTypedProperty<fbxBool1> ForceActorSpace;
00553 KFbxTypedProperty<fbxDouble1> ScaleCompensation;
00554 KFbxTypedProperty<kCharacterOffAutoUser> ScaleCompensationMode;
00555 KFbxTypedProperty<fbxDouble1> HipsHeightCompensation;
00556 KFbxTypedProperty<kCharacterOffAutoUser> HipsHeightCompensationMode;
00557 KFbxTypedProperty<fbxDouble1> AnkleHeightCompensation;
00558 KFbxTypedProperty<kCharacterOffAutoUser> AnkleHeightCompensationMode;
00559 KFbxTypedProperty<fbxDouble1> AnkleProximityCompensation;
00560 KFbxTypedProperty<kCharacterOffAutoUser> AnkleProximityCompensationMode;
00561 KFbxTypedProperty<fbxDouble1> MassCenterCompensation;
00562 KFbxTypedProperty<fbxBool1> ApplyLimits;
00563 KFbxTypedProperty<fbxDouble1> ChestReduction;
00564 KFbxTypedProperty<fbxDouble1> CollarReduction;
00565 KFbxTypedProperty<fbxDouble1> NeckReduction;
00566 KFbxTypedProperty<fbxDouble1> HeadReduction;
00567 KFbxTypedProperty<fbxDouble1> ReachActorLeftAnkle;
00568 KFbxTypedProperty<fbxDouble1> ReachActorRightAnkle;
00569 KFbxTypedProperty<fbxDouble1> ReachActorLeftKnee;
00570 KFbxTypedProperty<fbxDouble1> ReachActorRightKnee;
00571 KFbxTypedProperty<fbxDouble1> ReachActorChest;
00572 KFbxTypedProperty<fbxDouble1> ReachActorHead;
00573 KFbxTypedProperty<fbxDouble1> ReachActorLeftWrist;
00574 KFbxTypedProperty<fbxDouble1> ReachActorRightWrist;
00575 KFbxTypedProperty<fbxDouble1> ReachActorLeftElbow;
00576 KFbxTypedProperty<fbxDouble1> ReachActorRightElbow;
00577 KFbxTypedProperty<fbxDouble1> ReachActorLeftFingerBase;
00578 KFbxTypedProperty<fbxDouble1> ReachActorRightFingerBase;
00579 KFbxTypedProperty<fbxDouble1> ReachActorLeftToesBase;
00580 KFbxTypedProperty<fbxDouble1> ReachActorRightToesBase;
00581 KFbxTypedProperty<fbxDouble1> ReachActorLeftFingerBaseRotation;
00582 KFbxTypedProperty<fbxDouble1> ReachActorRightFingerBaseRotation;
00583 KFbxTypedProperty<fbxDouble1> ReachActorLeftToesBaseRotation;
00584 KFbxTypedProperty<fbxDouble1> ReachActorRightToesBaseRotation;
00585 KFbxTypedProperty<fbxDouble1> ReachActorLeftAnkleRotation;
00586 KFbxTypedProperty<fbxDouble1> ReachActorRightAnkleRotation;
00587 KFbxTypedProperty<fbxDouble1> ReachActorHeadRotation;
00588 KFbxTypedProperty<fbxDouble1> ReachActorLeftWristRotation;
00589 KFbxTypedProperty<fbxDouble1> ReachActorRightWristRotation;
00590 KFbxTypedProperty<fbxDouble1> ReachActorChestRotation;
00591 KFbxTypedProperty<fbxDouble1> ReachActorLowerChestRotation;
00592 KFbxTypedProperty<fbxDouble3> HipsTOffset;
00593 KFbxTypedProperty<fbxDouble3> ChestTOffset;
00594 KFbxTypedProperty<kCharacterRollExtractionMode> RollExtractionMode;
00595 KFbxTypedProperty<fbxDouble1> LeftUpLegRoll;
00596 KFbxTypedProperty<fbxBool1> LeftUpLegRollMode;
00597 KFbxTypedProperty<fbxDouble1> LeftLegRoll;
00598 KFbxTypedProperty<fbxBool1> LeftLegRollMode;
00599 KFbxTypedProperty<fbxDouble1> RightUpLegRoll;
00600 KFbxTypedProperty<fbxBool1> RightUpLegRollMode;
00601 KFbxTypedProperty<fbxDouble1> RightLegRoll;
00602 KFbxTypedProperty<fbxBool1> RightLegRollMode;
00603 KFbxTypedProperty<fbxDouble1> LeftArmRoll;
00604 KFbxTypedProperty<fbxBool1> LeftArmRollMode;
00605 KFbxTypedProperty<fbxDouble1> LeftForeArmRoll;
00606 KFbxTypedProperty<fbxBool1> LeftForeArmRollMode;
00607 KFbxTypedProperty<fbxDouble1> RightArmRoll;
00608 KFbxTypedProperty<fbxBool1> RightArmRollMode;
00609 KFbxTypedProperty<fbxDouble1> RightForeArmRoll;
00610 KFbxTypedProperty<fbxBool1> RightForeArmRollMode;
00611 KFbxTypedProperty<kCharacterContactBehaviour> ContactBehaviour;
00612 KFbxTypedProperty<fbxBool1> FootFloorContact;
00613 KFbxTypedProperty<fbxBool1> FootAutomaticToes;
00614 KFbxTypedProperty<kCharacterFloorPivot> FootFloorPivot;
00615 KFbxTypedProperty<fbxDouble1> FootBottomToAnkle;
00616 KFbxTypedProperty<fbxDouble1> FootBackToAnkle;
00617 KFbxTypedProperty<fbxDouble1> FootMiddleToAnkle;
00618 KFbxTypedProperty<fbxDouble1> FootFrontToMiddle;
00619 KFbxTypedProperty<fbxDouble1> FootInToAnkle;
00620 KFbxTypedProperty<fbxDouble1> FootOutToAnkle;
00621 KFbxTypedProperty<fbxDouble1> FootContactSize;
00622 KFbxTypedProperty<fbxBool1> FootFingerContact;
00623 KFbxTypedProperty<kCharacterFootContactType> FootContactType;
00624 KFbxTypedProperty<kCharacterFingerContactMode> FootFingerContactMode;
00625 KFbxTypedProperty<fbxDouble1> FootContactStiffness;
00626 KFbxTypedProperty<fbxDouble1> FootFingerContactRollStiffness;
00627 KFbxTypedProperty<fbxBool1> HandFloorContact;
00628 KFbxTypedProperty<fbxBool1> HandAutomaticFingers;
00629 KFbxTypedProperty<kCharacterFloorPivot> HandFloorPivot;
00630 KFbxTypedProperty<fbxDouble1> HandBottomToWrist;
00631 KFbxTypedProperty<fbxDouble1> HandBackToWrist;
00632 KFbxTypedProperty<fbxDouble1> HandMiddleToWrist;
00633 KFbxTypedProperty<fbxDouble1> HandFrontToMiddle;
00634 KFbxTypedProperty<fbxDouble1> HandInToWrist;
00635 KFbxTypedProperty<fbxDouble1> HandOutToWrist;
00636 KFbxTypedProperty<fbxDouble1> HandContactSize;
00637 KFbxTypedProperty<fbxBool1> HandFingerContact;
00638 KFbxTypedProperty<kCharacterHandContactType> HandContactType;
00639 KFbxTypedProperty<kCharacterFingerContactMode> HandFingerContactMode;
00640 KFbxTypedProperty<fbxDouble1> HandContactStiffness;
00641 KFbxTypedProperty<fbxDouble1> HandFingerContactRollStiffness;
00642 KFbxTypedProperty<fbxDouble1> LeftHandThumbTip;
00643 KFbxTypedProperty<fbxDouble1> LeftHandIndexTip;
00644 KFbxTypedProperty<fbxDouble1> LeftHandMiddleTip;
00645 KFbxTypedProperty<fbxDouble1> LeftHandRingTip;
00646 KFbxTypedProperty<fbxDouble1> LeftHandPinkyTip;
00647 KFbxTypedProperty<fbxDouble1> LeftHandExtraFingerTip;
00648 KFbxTypedProperty<fbxDouble1> RightHandThumbTip;
00649 KFbxTypedProperty<fbxDouble1> RightHandIndexTip;
00650 KFbxTypedProperty<fbxDouble1> RightHandMiddleTip;
00651 KFbxTypedProperty<fbxDouble1> RightHandRingTip;
00652 KFbxTypedProperty<fbxDouble1> RightHandPinkyTip;
00653 KFbxTypedProperty<fbxDouble1> RightHandExtraFingerTip;
00654 KFbxTypedProperty<fbxDouble1> LeftFootThumbTip;
00655 KFbxTypedProperty<fbxDouble1> LeftFootIndexTip;
00656 KFbxTypedProperty<fbxDouble1> LeftFootMiddleTip;
00657 KFbxTypedProperty<fbxDouble1> LeftFootRingTip;
00658 KFbxTypedProperty<fbxDouble1> LeftFootPinkyTip;
00659 KFbxTypedProperty<fbxDouble1> LeftFootExtraFingerTip;
00660 KFbxTypedProperty<fbxDouble1> RightFootThumbTip;
00661 KFbxTypedProperty<fbxDouble1> RightFootIndexTip;
00662 KFbxTypedProperty<fbxDouble1> RightFootMiddleTip;
00663 KFbxTypedProperty<fbxDouble1> RightFootRingTip;
00664 KFbxTypedProperty<fbxDouble1> RightFootPinkyTip;
00665 KFbxTypedProperty<fbxDouble1> RightFootExtraFingerTip;
00666 KFbxTypedProperty<fbxBool1> FingerSolving;
00667 KFbxTypedProperty<fbxDouble1> CtrlPullLeftToeBase;
00668 KFbxTypedProperty<fbxDouble1> CtrlPullLeftFoot;
00669 KFbxTypedProperty<fbxDouble1> CtrlPullLeftKnee;
00670 KFbxTypedProperty<fbxDouble1> CtrlPullRightToeBase;
00671 KFbxTypedProperty<fbxDouble1> CtrlPullRightFoot;
00672 KFbxTypedProperty<fbxDouble1> CtrlPullRightKnee;
00673 KFbxTypedProperty<fbxDouble1> CtrlPullLeftFingerBase;
00674 KFbxTypedProperty<fbxDouble1> CtrlPullLeftHand;
00675 KFbxTypedProperty<fbxDouble1> CtrlPullLeftElbow;
00676 KFbxTypedProperty<fbxDouble1> CtrlPullRightFingerBase;
00677 KFbxTypedProperty<fbxDouble1> CtrlPullRightHand;
00678 KFbxTypedProperty<fbxDouble1> CtrlPullRightElbow;
00679 KFbxTypedProperty<fbxDouble1> CtrlChestPullLeftHand;
00680 KFbxTypedProperty<fbxDouble1> CtrlChestPullRightHand;
00681 KFbxTypedProperty<fbxDouble1> CtrlPullHead;
00682 KFbxTypedProperty<fbxDouble1> CtrlResistHipsPosition;
00683 KFbxTypedProperty<fbxDouble1> CtrlEnforceGravity;
00684 KFbxTypedProperty<fbxDouble1> CtrlResistHipsOrientation;
00685 KFbxTypedProperty<fbxDouble1> CtrlResistChestPosition;
00686 KFbxTypedProperty<fbxDouble1> CtrlResistChestOrientation;
00687 KFbxTypedProperty<fbxDouble1> CtrlResistLeftCollar;
00688 KFbxTypedProperty<fbxDouble1> CtrlResistRightCollar;
00689 KFbxTypedProperty<fbxDouble1> CtrlResistLeftKnee;
00690 KFbxTypedProperty<fbxDouble1> CtrlResistMaximumExtensionLeftKnee;
00691 KFbxTypedProperty<fbxDouble1> CtrlResistCompressionFactorLeftKnee;
00692 KFbxTypedProperty<fbxDouble1> CtrlResistRightKnee;
00693 KFbxTypedProperty<fbxDouble1> CtrlResistMaximumExtensionRightKnee;
00694 KFbxTypedProperty<fbxDouble1> CtrlResistCompressionFactorRightKnee;
00695 KFbxTypedProperty<fbxDouble1> CtrlResistLeftElbow;
00696 KFbxTypedProperty<fbxDouble1> CtrlResistMaximumExtensionLeftElbow;
00697 KFbxTypedProperty<fbxDouble1> CtrlResistCompressionFactorLeftElbow;
00698 KFbxTypedProperty<fbxDouble1> CtrlResistRightElbow;
00699 KFbxTypedProperty<fbxDouble1> CtrlResistMaximumExtensionRightElbow;
00700 KFbxTypedProperty<fbxDouble1> CtrlResistCompressionFactorRightElbow;
00701 KFbxTypedProperty<fbxDouble1> CtrlSpineStiffness;
00702 KFbxTypedProperty<fbxDouble1> CtrlNeckStiffness;
00703 KFbxTypedProperty<fbxBool1> MirrorMode;
00704 KFbxTypedProperty<fbxDouble1> ShoulderCorrection;
00705 KFbxTypedProperty<fbxBool1> LeftKneeKillPitch;
00706 KFbxTypedProperty<fbxBool1> RightKneeKillPitch;
00707 KFbxTypedProperty<fbxBool1> LeftElbowKillPitch;
00708 KFbxTypedProperty<fbxBool1> RightElbowKillPitch;
00709 KFbxTypedProperty<kCharacterHipsTranslationMode> HipsTranslationMode;
00710 KFbxTypedProperty<fbxBool1> WriteReference;
00711 KFbxTypedProperty<fbxBool1> SyncMode;
00712 KFbxTypedProperty<fbxDouble1> Damping;
00713 KFbxTypedProperty<fbxDouble1> OrientationDamping;
00714 KFbxTypedProperty<kCharacterOffAutoUser> OrientationDampingMode;
00715 KFbxTypedProperty<fbxDouble1> DisplacementDamping;
00716 KFbxTypedProperty<kCharacterOffAutoUser> DisplacementDampingMode;
00717 KFbxTypedProperty<fbxDouble1> DisplacementMemory;
00718 KFbxTypedProperty<kCharacterAutoUser> DisplacementMemoryMode;
00719 KFbxTypedProperty<fbxDouble1> HipsDisplacementDamping;
00720 KFbxTypedProperty<kCharacterAutoUser> HipsDisplacementDampingMode;
00721 KFbxTypedProperty<fbxDouble1> AnkleDisplacementDamping;
00722 KFbxTypedProperty<kCharacterAutoUser> AnkleDisplacementDampingMode;
00723 KFbxTypedProperty<fbxDouble1> WristDisplacementDamping;
00724 KFbxTypedProperty<kCharacterAutoUser> WristDisplacementDampingMode;
00725 KFbxTypedProperty<fbxDouble1> Stabilization;
00726 KFbxTypedProperty<fbxDouble1> AnkleStabilizationTime;
00727 KFbxTypedProperty<kCharacterAutoUser> AnkleStabilizationTimeMode;
00728 KFbxTypedProperty<fbxDouble1> AnkleStabilizationPerimeter;
00729 KFbxTypedProperty<kCharacterAutoUser> AnkleStabilizationPerimeterMode;
00730 KFbxTypedProperty<fbxDouble1> AnkleStabilizationAngularPerimeter;
00731 KFbxTypedProperty<kCharacterOffAutoUser> AnkleStabilizationAngularPerimeterMode;
00732 KFbxTypedProperty<fbxDouble1> AnkleStabilizationFloorProximity;
00733 KFbxTypedProperty<kCharacterOffAutoUser> AnkleStabilizationFloorProximityMode;
00734 KFbxTypedProperty<fbxDouble1> AnkleStabilizationDamping;
00735 KFbxTypedProperty<kCharacterOffAutoUser> AnkleStabilizationDampingMode;
00736 KFbxTypedProperty<fbxDouble1> AnkleStabilizationRecoveryTime;
00737 KFbxTypedProperty<kCharacterOffAutoUser> AnkleStabilizationRecoveryTimeMode;
00738
00739 KFbxTypedProperty<fbxReference*> SourceObject;
00740 KFbxTypedProperty<fbxReference*> DestinationObject;
00741 KFbxTypedProperty<fbxReference*> Actor;
00742 KFbxTypedProperty<fbxReference*> Character;
00743 KFbxTypedProperty<fbxReference*> ControlSet;
00744
00745 KFbxTypedProperty<fbxBool1> Characterize;
00746 KFbxTypedProperty<fbxBool1> LockXForm;
00747 KFbxTypedProperty<fbxBool1> LockPick;
00748
00750
00751
00752
00753
00754
00755
00757
00758 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00759
00760 virtual KFbxObject& Copy(const KFbxObject& pObject);
00761 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType) const;
00762
00763 KFbxCharacter(KFbxSdkManager& pManager, char const* pName);
00764
00765 virtual void Construct(const KFbxCharacter* pFrom);
00766 virtual void Destruct(bool pRecursive, bool pDependents);
00767
00768 virtual EConstraintType GetConstraintType() const;
00769 virtual KString GetTypeName() const;
00770
00771 virtual KStringList GetTypeFlags() const;
00772
00773 virtual bool ConnecNotify (KFbxConnectEvent const &pEvent);
00774
00775
00776 const void GetKFbxCharacterPropertyFromHIKProperty( char* &pKFbxCharacterPropertyName,
00777 char* &pKFbxCharacterPropertyModeName,
00778 kCharacterPropertyUnit &pUnit,
00779 int &pPropertyIndex,
00780 const char* pHIKPropertyName) const;
00781
00782 const void GetHIKPropertyFromKFbxCharacterProperty( char* &pHIKPropertyName,
00783 kCharacterPropertyUnit &pUnit,
00784 const char* pKFbxCharacterPropertyName) const ;
00785
00786 const void GetPropertyInfo( char* &pKFbxCharacterPropertyName,
00787 char* &pKFbxCharacterPropertyModeName,
00788 kCharacterPropertyUnit &pUnit,
00789 int &pPropertyIndex,
00790 char* &pHIKPropertyName,
00791 int pIndex) const;
00792 int GetPropertyInfoCount();
00793
00794 KError mError;
00795
00796 KString mName;
00797 KFbxCharacterLink mCharacterLink[eCharacterLastNodeId];
00798 KFbxControlSet* mControlSet;
00799
00800 friend class KFbxScene;
00801 friend class KFbxNode;
00802
00803 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00804
00805 protected:
00806
00807 };
00808
00809 typedef KFbxCharacter* HKFbxCharacter;
00810
00811 inline EFbxType FbxTypeOf( kCharacterOffAutoUser const &pItem ) { return eENUM; }
00812 inline EFbxType FbxTypeOf( kCharacterAutoUser const &pItem ) { return eENUM; }
00813 inline EFbxType FbxTypeOf( kCharacterPosture const &pItem ) { return eENUM; }
00814 inline EFbxType FbxTypeOf( kCharacterFloorPivot const &pItem ) { return eENUM; }
00815 inline EFbxType FbxTypeOf( kCharacterRollExtractionMode const &pItem ) { return eENUM; }
00816 inline EFbxType FbxTypeOf( kCharacterHipsTranslationMode const &pItem ) { return eENUM; }
00817 inline EFbxType FbxTypeOf( kCharacterFootContactType const &pItem ) { return eENUM; }
00818 inline EFbxType FbxTypeOf( kCharacterHandContactType const &pItem ) { return eENUM; }
00819 inline EFbxType FbxTypeOf( kCharacterFingerContactMode const &pItem ) { return eENUM; }
00820 inline EFbxType FbxTypeOf( kCharacterContactBehaviour const &pItem ) { return eENUM; }
00821
00822 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00823
00824 #endif // FBXFILESDK_KFBXCHARACTER_KFBXCHARACTER_H
00825