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