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
00322 eCharacterGroup_FloorContact,
00323
00324
00325 eLastCharacterGroupId
00326 } ECharacterGroupId;
00327
00328
00329 typedef enum
00330 {
00331 eCharacterLink,
00332 eControlSetLink,
00333 eControlSetEffector,
00334 eControlSetEffectorAux
00335 } ECharacterLinkType;
00336
00342 class KFBX_DLL KFbxCharacterLink
00343 {
00344 public:
00345
00346 KFbxCharacterLink();
00347 KFbxCharacterLink(const KFbxCharacterLink& pCharacterLink);
00348 KFbxCharacterLink& operator=(const KFbxCharacterLink& pCharacterLink);
00349 void Reset();
00350
00352 KFbxNode* mNode;
00353
00356 KString mTemplateName;
00357
00359 KFbxVector4 mOffsetT;
00361 KFbxVector4 mOffsetR;
00363 KFbxVector4 mOffsetS;
00365 KFbxVector4 mParentROffset;
00366
00368 bool mHasRotSpace;
00370 KFbxLimits mRLimits;
00372 KFbxVector4 mPreRotation;
00374 KFbxVector4 mPostRotation;
00376 int mRotOrder;
00378 double mAxisLen;
00379
00380
00382
00383
00384
00385
00386
00387
00389
00390 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00391
00392 KFbxProperty mPropertyLink;
00393 KFbxProperty mPropertyOffsetT;
00394 KFbxProperty mPropertyOffsetR;
00395 KFbxProperty mPropertyOffsetS;
00396 KFbxProperty mPropertyParentOffsetR;
00397 KFbxProperty mPropertyTemplateName;
00398
00399 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00400
00401 };
00402
00415 class KFBX_DLL KFbxCharacter : public KFbxConstraint
00416 {
00417 KFBXOBJECT_DECLARE(KFbxCharacter,KFbxConstraint);
00418
00419 public:
00420
00427 void Reset();
00428
00433 void SetInput(ECharacterInputType pInputType, KFbxObject* pInputObject = NULL);
00434
00436 ECharacterInputType GetInputType() const;
00437
00443 KFbxObject* GetInputObject() const;
00444
00452 bool SetCharacterLink(ECharacterNodeId pCharacterNodeId, const KFbxCharacterLink& pCharacterLink, bool pUpdateObjectList = true);
00453
00459 bool GetCharacterLink(ECharacterNodeId pCharacterNodeId, KFbxCharacterLink* pCharacterLink = NULL) const;
00460
00464 KFbxControlSet& GetControlSet() const;
00465
00470 static int GetCharacterGroupCount(ECharacterGroupId pCharacterGroupId);
00471
00477 static ECharacterNodeId GetCharacterGroupElementByIndex(ECharacterGroupId pCharacterGroupId, int pIndex);
00478
00479
00485 static char* GetCharacterGroupNameByIndex(ECharacterGroupId pCharacterGroupId, int pIndex);
00486
00492 static int GetCharacterGroupVersionByIndex(ECharacterGroupId pCharacterGroupId, int pIndex);
00493
00501 static bool FindCharacterGroupIndexByName(char* pName, bool pForceGroupId, ECharacterGroupId& pCharacterGroupId, int& pIndex);
00502
00510 static bool GetCharacterGroupIndexByElement(ECharacterNodeId pCharacterNodeId, ECharacterGroupId& pCharacterGroupId, int& pIndex);
00511
00518 static bool GetCharacterGroupVersionByElement(ECharacterNodeId pCharacterNodeId, int& pVersion);
00519
00527 static bool GetCharacterNodeNameFromNodeId(ECharacterNodeId pCharacterNodeId, char*& pName);
00528
00534 static bool GetCharacterNodeIdFromNodeName(char* pName, ECharacterNodeId& pCharacterNodeId);
00535
00536 typedef enum
00537 {
00538 eINTERNAL_ERROR,
00539 eERROR_COUNT
00540 } EError;
00541
00542
00543 KFbxTypedProperty<fbxBool1> Active;
00544 KFbxTypedProperty<fbxBool1> Lock;
00545 KFbxTypedProperty<fbxDouble1> Weight;
00546
00547
00548 KFbxTypedProperty<fbxInteger1> PullIterationCount;
00549 KFbxTypedProperty<kCharacterPosture> Posture;
00550 KFbxTypedProperty<fbxBool1> ForceActorSpace;
00551 KFbxTypedProperty<fbxDouble1> ScaleCompensation;
00552 KFbxTypedProperty<kCharacterOffAutoUser> ScaleCompensationMode;
00553 KFbxTypedProperty<fbxDouble1> HipsHeightCompensation;
00554 KFbxTypedProperty<kCharacterOffAutoUser> HipsHeightCompensationMode;
00555 KFbxTypedProperty<fbxDouble1> AnkleHeightCompensation;
00556 KFbxTypedProperty<kCharacterOffAutoUser> AnkleHeightCompensationMode;
00557 KFbxTypedProperty<fbxDouble1> AnkleProximityCompensation;
00558 KFbxTypedProperty<kCharacterOffAutoUser> AnkleProximityCompensationMode;
00559 KFbxTypedProperty<fbxDouble1> MassCenterCompensation;
00560 KFbxTypedProperty<fbxBool1> ApplyLimits;
00561 KFbxTypedProperty<fbxDouble1> ChestReduction;
00562 KFbxTypedProperty<fbxDouble1> CollarReduction;
00563 KFbxTypedProperty<fbxDouble1> NeckReduction;
00564 KFbxTypedProperty<fbxDouble1> HeadReduction;
00565 KFbxTypedProperty<fbxDouble1> ReachActorLeftAnkle;
00566 KFbxTypedProperty<fbxDouble1> ReachActorRightAnkle;
00567 KFbxTypedProperty<fbxDouble1> ReachActorLeftKnee;
00568 KFbxTypedProperty<fbxDouble1> ReachActorRightKnee;
00569 KFbxTypedProperty<fbxDouble1> ReachActorChest;
00570 KFbxTypedProperty<fbxDouble1> ReachActorHead;
00571 KFbxTypedProperty<fbxDouble1> ReachActorLeftWrist;
00572 KFbxTypedProperty<fbxDouble1> ReachActorRightWrist;
00573 KFbxTypedProperty<fbxDouble1> ReachActorLeftElbow;
00574 KFbxTypedProperty<fbxDouble1> ReachActorRightElbow;
00575 KFbxTypedProperty<fbxDouble1> ReachActorLeftFingerBase;
00576 KFbxTypedProperty<fbxDouble1> ReachActorRightFingerBase;
00577 KFbxTypedProperty<fbxDouble1> ReachActorLeftToesBase;
00578 KFbxTypedProperty<fbxDouble1> ReachActorRightToesBase;
00579 KFbxTypedProperty<fbxDouble1> ReachActorLeftFingerBaseRotation;
00580 KFbxTypedProperty<fbxDouble1> ReachActorRightFingerBaseRotation;
00581 KFbxTypedProperty<fbxDouble1> ReachActorLeftToesBaseRotation;
00582 KFbxTypedProperty<fbxDouble1> ReachActorRightToesBaseRotation;
00583 KFbxTypedProperty<fbxDouble1> ReachActorLeftAnkleRotation;
00584 KFbxTypedProperty<fbxDouble1> ReachActorRightAnkleRotation;
00585 KFbxTypedProperty<fbxDouble1> ReachActorHeadRotation;
00586 KFbxTypedProperty<fbxDouble1> ReachActorLeftWristRotation;
00587 KFbxTypedProperty<fbxDouble1> ReachActorRightWristRotation;
00588 KFbxTypedProperty<fbxDouble1> ReachActorChestRotation;
00589 KFbxTypedProperty<fbxDouble1> ReachActorLowerChestRotation;
00590 KFbxTypedProperty<fbxDouble3> HipsTOffset;
00591 KFbxTypedProperty<fbxDouble3> ChestTOffset;
00592 KFbxTypedProperty<kCharacterRollExtractionMode> RollExtractionMode;
00593 KFbxTypedProperty<fbxDouble1> LeftUpLegRoll;
00594 KFbxTypedProperty<fbxBool1> LeftUpLegRollMode;
00595 KFbxTypedProperty<fbxDouble1> LeftLegRoll;
00596 KFbxTypedProperty<fbxBool1> LeftLegRollMode;
00597 KFbxTypedProperty<fbxDouble1> RightUpLegRoll;
00598 KFbxTypedProperty<fbxBool1> RightUpLegRollMode;
00599 KFbxTypedProperty<fbxDouble1> RightLegRoll;
00600 KFbxTypedProperty<fbxBool1> RightLegRollMode;
00601 KFbxTypedProperty<fbxDouble1> LeftArmRoll;
00602 KFbxTypedProperty<fbxBool1> LeftArmRollMode;
00603 KFbxTypedProperty<fbxDouble1> LeftForeArmRoll;
00604 KFbxTypedProperty<fbxBool1> LeftForeArmRollMode;
00605 KFbxTypedProperty<fbxDouble1> RightArmRoll;
00606 KFbxTypedProperty<fbxBool1> RightArmRollMode;
00607 KFbxTypedProperty<fbxDouble1> RightForeArmRoll;
00608 KFbxTypedProperty<fbxBool1> RightForeArmRollMode;
00609 KFbxTypedProperty<kCharacterContactBehaviour> ContactBehaviour;
00610 KFbxTypedProperty<fbxBool1> FootFloorContact;
00611 KFbxTypedProperty<fbxBool1> FootAutomaticToes;
00612 KFbxTypedProperty<kCharacterFloorPivot> FootFloorPivot;
00613 KFbxTypedProperty<fbxDouble1> FootBottomToAnkle;
00614 KFbxTypedProperty<fbxDouble1> FootBackToAnkle;
00615 KFbxTypedProperty<fbxDouble1> FootMiddleToAnkle;
00616 KFbxTypedProperty<fbxDouble1> FootFrontToMiddle;
00617 KFbxTypedProperty<fbxDouble1> FootInToAnkle;
00618 KFbxTypedProperty<fbxDouble1> FootOutToAnkle;
00619 KFbxTypedProperty<fbxDouble1> FootContactSize;
00620 KFbxTypedProperty<fbxBool1> FootFingerContact;
00621 KFbxTypedProperty<kCharacterFootContactType> FootContactType;
00622 KFbxTypedProperty<kCharacterFingerContactMode> FootFingerContactMode;
00623 KFbxTypedProperty<fbxDouble1> FootContactStiffness;
00624 KFbxTypedProperty<fbxDouble1> FootFingerContactRollStiffness;
00625 KFbxTypedProperty<fbxBool1> HandFloorContact;
00626 KFbxTypedProperty<fbxBool1> HandAutomaticFingers;
00627 KFbxTypedProperty<kCharacterFloorPivot> HandFloorPivot;
00628 KFbxTypedProperty<fbxDouble1> HandBottomToWrist;
00629 KFbxTypedProperty<fbxDouble1> HandBackToWrist;
00630 KFbxTypedProperty<fbxDouble1> HandMiddleToWrist;
00631 KFbxTypedProperty<fbxDouble1> HandFrontToMiddle;
00632 KFbxTypedProperty<fbxDouble1> HandInToWrist;
00633 KFbxTypedProperty<fbxDouble1> HandOutToWrist;
00634 KFbxTypedProperty<fbxDouble1> HandContactSize;
00635 KFbxTypedProperty<fbxBool1> HandFingerContact;
00636 KFbxTypedProperty<kCharacterHandContactType> HandContactType;
00637 KFbxTypedProperty<kCharacterFingerContactMode> HandFingerContactMode;
00638 KFbxTypedProperty<fbxDouble1> HandContactStiffness;
00639 KFbxTypedProperty<fbxDouble1> HandFingerContactRollStiffness;
00640 KFbxTypedProperty<fbxDouble1> LeftHandThumbTip;
00641 KFbxTypedProperty<fbxDouble1> LeftHandIndexTip;
00642 KFbxTypedProperty<fbxDouble1> LeftHandMiddleTip;
00643 KFbxTypedProperty<fbxDouble1> LeftHandRingTip;
00644 KFbxTypedProperty<fbxDouble1> LeftHandPinkyTip;
00645 KFbxTypedProperty<fbxDouble1> LeftHandExtraFingerTip;
00646 KFbxTypedProperty<fbxDouble1> RightHandThumbTip;
00647 KFbxTypedProperty<fbxDouble1> RightHandIndexTip;
00648 KFbxTypedProperty<fbxDouble1> RightHandMiddleTip;
00649 KFbxTypedProperty<fbxDouble1> RightHandRingTip;
00650 KFbxTypedProperty<fbxDouble1> RightHandPinkyTip;
00651 KFbxTypedProperty<fbxDouble1> RightHandExtraFingerTip;
00652 KFbxTypedProperty<fbxDouble1> LeftFootThumbTip;
00653 KFbxTypedProperty<fbxDouble1> LeftFootIndexTip;
00654 KFbxTypedProperty<fbxDouble1> LeftFootMiddleTip;
00655 KFbxTypedProperty<fbxDouble1> LeftFootRingTip;
00656 KFbxTypedProperty<fbxDouble1> LeftFootPinkyTip;
00657 KFbxTypedProperty<fbxDouble1> LeftFootExtraFingerTip;
00658 KFbxTypedProperty<fbxDouble1> RightFootThumbTip;
00659 KFbxTypedProperty<fbxDouble1> RightFootIndexTip;
00660 KFbxTypedProperty<fbxDouble1> RightFootMiddleTip;
00661 KFbxTypedProperty<fbxDouble1> RightFootRingTip;
00662 KFbxTypedProperty<fbxDouble1> RightFootPinkyTip;
00663 KFbxTypedProperty<fbxDouble1> RightFootExtraFingerTip;
00664 KFbxTypedProperty<fbxBool1> FingerSolving;
00665 KFbxTypedProperty<fbxDouble1> CtrlPullLeftToeBase;
00666 KFbxTypedProperty<fbxDouble1> CtrlPullLeftFoot;
00667 KFbxTypedProperty<fbxDouble1> CtrlPullLeftKnee;
00668 KFbxTypedProperty<fbxDouble1> CtrlPullRightToeBase;
00669 KFbxTypedProperty<fbxDouble1> CtrlPullRightFoot;
00670 KFbxTypedProperty<fbxDouble1> CtrlPullRightKnee;
00671 KFbxTypedProperty<fbxDouble1> CtrlPullLeftFingerBase;
00672 KFbxTypedProperty<fbxDouble1> CtrlPullLeftHand;
00673 KFbxTypedProperty<fbxDouble1> CtrlPullLeftElbow;
00674 KFbxTypedProperty<fbxDouble1> CtrlPullRightFingerBase;
00675 KFbxTypedProperty<fbxDouble1> CtrlPullRightHand;
00676 KFbxTypedProperty<fbxDouble1> CtrlPullRightElbow;
00677 KFbxTypedProperty<fbxDouble1> CtrlChestPullLeftHand;
00678 KFbxTypedProperty<fbxDouble1> CtrlChestPullRightHand;
00679 KFbxTypedProperty<fbxDouble1> CtrlPullHead;
00680 KFbxTypedProperty<fbxDouble1> CtrlResistHipsPosition;
00681 KFbxTypedProperty<fbxDouble1> CtrlEnforceGravity;
00682 KFbxTypedProperty<fbxDouble1> CtrlResistHipsOrientation;
00683 KFbxTypedProperty<fbxDouble1> CtrlResistChestPosition;
00684 KFbxTypedProperty<fbxDouble1> CtrlResistChestOrientation;
00685 KFbxTypedProperty<fbxDouble1> CtrlResistLeftCollar;
00686 KFbxTypedProperty<fbxDouble1> CtrlResistRightCollar;
00687 KFbxTypedProperty<fbxDouble1> CtrlResistLeftKnee;
00688 KFbxTypedProperty<fbxDouble1> CtrlResistMaximumExtensionLeftKnee;
00689 KFbxTypedProperty<fbxDouble1> CtrlResistCompressionFactorLeftKnee;
00690 KFbxTypedProperty<fbxDouble1> CtrlResistRightKnee;
00691 KFbxTypedProperty<fbxDouble1> CtrlResistMaximumExtensionRightKnee;
00692 KFbxTypedProperty<fbxDouble1> CtrlResistCompressionFactorRightKnee;
00693 KFbxTypedProperty<fbxDouble1> CtrlResistLeftElbow;
00694 KFbxTypedProperty<fbxDouble1> CtrlResistMaximumExtensionLeftElbow;
00695 KFbxTypedProperty<fbxDouble1> CtrlResistCompressionFactorLeftElbow;
00696 KFbxTypedProperty<fbxDouble1> CtrlResistRightElbow;
00697 KFbxTypedProperty<fbxDouble1> CtrlResistMaximumExtensionRightElbow;
00698 KFbxTypedProperty<fbxDouble1> CtrlResistCompressionFactorRightElbow;
00699 KFbxTypedProperty<fbxDouble1> CtrlSpineStiffness;
00700 KFbxTypedProperty<fbxDouble1> CtrlNeckStiffness;
00701 KFbxTypedProperty<fbxBool1> MirrorMode;
00702 KFbxTypedProperty<fbxDouble1> ShoulderCorrection;
00703 KFbxTypedProperty<fbxBool1> LeftKneeKillPitch;
00704 KFbxTypedProperty<fbxBool1> RightKneeKillPitch;
00705 KFbxTypedProperty<fbxBool1> LeftElbowKillPitch;
00706 KFbxTypedProperty<fbxBool1> RightElbowKillPitch;
00707 KFbxTypedProperty<kCharacterHipsTranslationMode> HipsTranslationMode;
00708 KFbxTypedProperty<fbxBool1> WriteReference;
00709 KFbxTypedProperty<fbxBool1> SyncMode;
00710 KFbxTypedProperty<fbxDouble1> Damping;
00711 KFbxTypedProperty<fbxDouble1> OrientationDamping;
00712 KFbxTypedProperty<kCharacterOffAutoUser> OrientationDampingMode;
00713 KFbxTypedProperty<fbxDouble1> DisplacementDamping;
00714 KFbxTypedProperty<kCharacterOffAutoUser> DisplacementDampingMode;
00715 KFbxTypedProperty<fbxDouble1> DisplacementMemory;
00716 KFbxTypedProperty<kCharacterAutoUser> DisplacementMemoryMode;
00717 KFbxTypedProperty<fbxDouble1> HipsDisplacementDamping;
00718 KFbxTypedProperty<kCharacterAutoUser> HipsDisplacementDampingMode;
00719 KFbxTypedProperty<fbxDouble1> AnkleDisplacementDamping;
00720 KFbxTypedProperty<kCharacterAutoUser> AnkleDisplacementDampingMode;
00721 KFbxTypedProperty<fbxDouble1> WristDisplacementDamping;
00722 KFbxTypedProperty<kCharacterAutoUser> WristDisplacementDampingMode;
00723 KFbxTypedProperty<fbxDouble1> Stabilization;
00724 KFbxTypedProperty<fbxDouble1> AnkleStabilizationTime;
00725 KFbxTypedProperty<kCharacterAutoUser> AnkleStabilizationTimeMode;
00726 KFbxTypedProperty<fbxDouble1> AnkleStabilizationPerimeter;
00727 KFbxTypedProperty<kCharacterAutoUser> AnkleStabilizationPerimeterMode;
00728 KFbxTypedProperty<fbxDouble1> AnkleStabilizationAngularPerimeter;
00729 KFbxTypedProperty<kCharacterOffAutoUser> AnkleStabilizationAngularPerimeterMode;
00730 KFbxTypedProperty<fbxDouble1> AnkleStabilizationFloorProximity;
00731 KFbxTypedProperty<kCharacterOffAutoUser> AnkleStabilizationFloorProximityMode;
00732 KFbxTypedProperty<fbxDouble1> AnkleStabilizationDamping;
00733 KFbxTypedProperty<kCharacterOffAutoUser> AnkleStabilizationDampingMode;
00734 KFbxTypedProperty<fbxDouble1> AnkleStabilizationRecoveryTime;
00735 KFbxTypedProperty<kCharacterOffAutoUser> AnkleStabilizationRecoveryTimeMode;
00736
00737 KFbxTypedProperty<fbxReference*> SourceObject;
00738 KFbxTypedProperty<fbxReference*> DestinationObject;
00739 KFbxTypedProperty<fbxReference*> Actor;
00740 KFbxTypedProperty<fbxReference*> Character;
00741 KFbxTypedProperty<fbxReference*> ControlSet;
00742
00743 KFbxTypedProperty<fbxBool1> Characterize;
00744 KFbxTypedProperty<fbxBool1> LockXForm;
00745 KFbxTypedProperty<fbxBool1> LockPick;
00746
00748
00749
00750
00751
00752
00753
00755
00756 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00757
00758
00759 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType) const;
00760
00761 protected:
00762 KFbxCharacter& operator=(KFbxCharacter const& pCharacter);
00763 public:
00764 KFbxCharacter(KFbxSdkManager& pManager, char const* pName);
00765
00766 virtual void Construct(const KFbxCharacter* pFrom);
00767 virtual void Destruct(bool pRecursive, bool pDependents);
00768
00769 virtual EConstraintType GetConstraintType();
00770 virtual KString GetTypeName() const;
00771
00772 virtual KStringList GetTypeFlags() const;
00773
00774
00775 virtual void AddChannels(KFbxTakeNode *pTakeNode);
00776
00777 virtual bool ConnecNotify (KFbxConnectEvent const &pEvent);
00778
00779
00780 const void GetKFbxCharacterPropertyFromHIKProperty( char* &pKFbxCharacterPropertyName,
00781 char* &pKFbxCharacterPropertyModeName,
00782 kCharacterPropertyUnit &pUnit,
00783 int &pPropertyIndex,
00784 const char* pHIKPropertyName) const;
00785
00786 const void GetHIKPropertyFromKFbxCharacterProperty( char* &pHIKPropertyName,
00787 kCharacterPropertyUnit &pUnit,
00788 const char* pKFbxCharacterPropertyName) const ;
00789
00790 const void GetPropertyInfo( char* &pKFbxCharacterPropertyName,
00791 char* &pKFbxCharacterPropertyModeName,
00792 kCharacterPropertyUnit &pUnit,
00793 int &pPropertyIndex,
00794 char* &pHIKPropertyName,
00795 int pIndex) const;
00796 int GetPropertyInfoCount();
00797
00798 KError mError;
00799
00800 KString mName;
00801 KFbxCharacterLink mCharacterLink[eCharacterLastNodeId];
00802 KFbxControlSet* mControlSet;
00803
00804 friend class KFbxScene;
00805 friend class KFbxNode;
00806
00807 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00808
00809 protected:
00810
00811 };
00812
00813 typedef KFbxCharacter* HKFbxCharacter;
00814
00815 inline EFbxType FbxTypeOf( kCharacterOffAutoUser const &pItem ) { return eENUM; }
00816 inline EFbxType FbxTypeOf( kCharacterAutoUser const &pItem ) { return eENUM; }
00817 inline EFbxType FbxTypeOf( kCharacterPosture const &pItem ) { return eENUM; }
00818 inline EFbxType FbxTypeOf( kCharacterFloorPivot const &pItem ) { return eENUM; }
00819 inline EFbxType FbxTypeOf( kCharacterRollExtractionMode const &pItem ) { return eENUM; }
00820 inline EFbxType FbxTypeOf( kCharacterHipsTranslationMode const &pItem ) { return eENUM; }
00821 inline EFbxType FbxTypeOf( kCharacterFootContactType const &pItem ) { return eENUM; }
00822 inline EFbxType FbxTypeOf( kCharacterHandContactType const &pItem ) { return eENUM; }
00823 inline EFbxType FbxTypeOf( kCharacterFingerContactMode const &pItem ) { return eENUM; }
00824 inline EFbxType FbxTypeOf( kCharacterContactBehaviour const &pItem ) { return eENUM; }
00825
00826 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00827
00828 #endif // FBXFILESDK_KFBXCHARACTER_KFBXCHARACTER_H
00829