00001
00004 #ifndef _FBXSDK_CHARACTER_H_
00005 #define _FBXSDK_CHARACTER_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 <kaydaradef.h>
00043 #ifndef KFBX_DLL
00044 #define KFBX_DLL K_DLLIMPORT
00045 #endif
00046
00047 #include <kaydara.h>
00048
00049 #include <kfbxmath/kfbxvector4.h>
00050
00051 #include <klib/kstring.h>
00052 #include <klib/kerror.h>
00053
00054 #include <kcharacterdef/kfiltersetenum.h>
00055
00056 #include <kfbxplugins/kfbxconstraint.h>
00057 #include <kfbxplugins/kfbxnodelimits.h>
00058 #include <kfbxplugins/kfbxgroupname.h>
00059
00060 #include <fbxfilesdk_nsbegin.h>
00061
00062 class KFbxNode;
00063 class KFbxControlSet;
00064 class KFbxSdkManager;
00065
00066
00067
00075 typedef enum
00076 {
00077 eCharacterInputActor = 0,
00078 eCharacterInputCharacter = 1,
00079 eCharacterInputMarkerSet = 2,
00080 eCharacterOutputMarkerSet = 3,
00081 eCharacterInputStance = 4
00082 } ECharacterInputType;
00083
00084
00085 typedef enum
00086 {
00087 eCharacterHips = 0,
00088 eCharacterLeftHip,
00089 eCharacterLeftKnee,
00090 eCharacterLeftAnkle,
00091 eCharacterLeftFoot,
00092 eCharacterRightHip,
00093 eCharacterRightKnee,
00094 eCharacterRightAnkle,
00095 eCharacterRightFoot,
00096 eCharacterWaist,
00097 eCharacterChest,
00098 eCharacterLeftCollar,
00099 eCharacterLeftShoulder,
00100 eCharacterLeftElbow,
00101 eCharacterLeftWrist,
00102 eCharacterRightCollar,
00103 eCharacterRightShoulder,
00104 eCharacterRightElbow,
00105 eCharacterRightWrist,
00106 eCharacterNeck,
00107 eCharacterHead,
00108 eCharacterLeftHipRoll,
00109 eCharacterLeftKneeRoll,
00110 eCharacterRightHipRoll,
00111 eCharacterRightKneeRoll,
00112 eCharacterLeftShoulderRoll,
00113 eCharacterLeftElbowRoll,
00114 eCharacterRightShoulderRoll,
00115 eCharacterRightElbowRoll,
00116 eCharacterSpine2,
00117 eCharacterSpine3,
00118 eCharacterSpine4,
00119 eCharacterSpine5,
00120 eCharacterSpine6,
00121 eCharacterSpine7,
00122 eCharacterSpine8,
00123 eCharacterSpine9,
00124 eCharacterLeftThumbA,
00125 eCharacterLeftThumbB,
00126 eCharacterLeftThumbC,
00127 eCharacterLeftIndexA,
00128 eCharacterLeftIndexB,
00129 eCharacterLeftIndexC,
00130 eCharacterLeftMiddleA,
00131 eCharacterLeftMiddleB,
00132 eCharacterLeftMiddleC,
00133 eCharacterLeftRingA,
00134 eCharacterLeftRingB,
00135 eCharacterLeftRingC,
00136 eCharacterLeftPinkyA,
00137 eCharacterLeftPinkyB,
00138 eCharacterLeftPinkyC,
00139 eCharacterRightThumbA,
00140 eCharacterRightThumbB,
00141 eCharacterRightThumbC,
00142 eCharacterRightIndexA,
00143 eCharacterRightIndexB,
00144 eCharacterRightIndexC,
00145 eCharacterRightMiddleA,
00146 eCharacterRightMiddleB,
00147 eCharacterRightMiddleC,
00148 eCharacterRightRingA,
00149 eCharacterRightRingB,
00150 eCharacterRightRingC,
00151 eCharacterRightPinkyA,
00152 eCharacterRightPinkyB,
00153 eCharacterRightPinkyC,
00154 eCharacterReference,
00155 eCharacterLeftFloor,
00156 eCharacterRightFloor,
00157 eCharacterHipsTranslation,
00158 eCharacterProps0,
00159 eCharacterProps1,
00160 eCharacterProps2,
00161 eCharacterProps3,
00162 eCharacterProps4,
00163
00164
00165
00166 eCharacterGameModeParentLeftHipRoll,
00167 eCharacterGameModeParentLeftKnee,
00168 eCharacterGameModeParentLeftKneeRoll,
00169 eCharacterGameModeParentRightHipRoll,
00170 eCharacterGameModeParentRightKnee,
00171 eCharacterGameModeParentRightKneeRoll,
00172 eCharacterGameModeParentLeftShoulderRoll,
00173 eCharacterGameModeParentLeftElbow,
00174 eCharacterGameModeParentLeftElbowRoll,
00175 eCharacterGameModeParentRightShoulderRoll,
00176 eCharacterGameModeParentRightElbow,
00177 eCharacterGameModeParentRightElbowRoll,
00178
00179
00180
00181
00182
00183 eCharacterLeftHandFloor,
00184 eCharacterRightHandFloor,
00185
00186 eCharacterLeftHand,
00187 eCharacterRightHand,
00188
00189 eCharacterNeck1,
00190 eCharacterNeck2,
00191 eCharacterNeck3,
00192 eCharacterNeck4,
00193 eCharacterNeck5,
00194 eCharacterNeck6,
00195 eCharacterNeck7,
00196 eCharacterNeck8,
00197 eCharacterNeck9,
00198
00199 eCharacterLeftInHandThumb,
00200 eCharacterLeftThumbD,
00201
00202 eCharacterLeftInHandIndex,
00203 eCharacterLeftIndexD,
00204
00205 eCharacterLeftInHandMiddle,
00206 eCharacterLeftMiddleD,
00207
00208 eCharacterLeftInHandRing,
00209 eCharacterLeftRingD,
00210
00211 eCharacterLeftInHandPinky,
00212 eCharacterLeftPinkyD,
00213
00214 eCharacterLeftInHandExtraFinger,
00215 eCharacterLeftExtraFingerA,
00216 eCharacterLeftExtraFingerB,
00217 eCharacterLeftExtraFingerC,
00218 eCharacterLeftExtraFingerD,
00219
00220 eCharacterRightInHandThumb,
00221 eCharacterRightThumbD,
00222
00223 eCharacterRightInHandIndex,
00224 eCharacterRightIndexD,
00225
00226 eCharacterRightInHandMiddle,
00227 eCharacterRightMiddleD,
00228
00229 eCharacterRightInHandRing,
00230 eCharacterRightRingD,
00231
00232 eCharacterRightInHandPinky,
00233 eCharacterRightPinkyD,
00234
00235 eCharacterRightInHandExtraFinger,
00236 eCharacterRightExtraFingerA,
00237 eCharacterRightExtraFingerB,
00238 eCharacterRightExtraFingerC,
00239 eCharacterRightExtraFingerD,
00240
00241 eCharacterLeftInFootThumb,
00242 eCharacterLeftFootThumbA,
00243 eCharacterLeftFootThumbB,
00244 eCharacterLeftFootThumbC,
00245 eCharacterLeftFootThumbD,
00246 eCharacterLeftInFootIndex,
00247 eCharacterLeftFootIndexA,
00248 eCharacterLeftFootIndexB,
00249 eCharacterLeftFootIndexC,
00250 eCharacterLeftFootIndexD,
00251 eCharacterLeftInFootMiddle,
00252 eCharacterLeftFootMiddleA,
00253 eCharacterLeftFootMiddleB,
00254 eCharacterLeftFootMiddleC,
00255 eCharacterLeftFootMiddleD,
00256 eCharacterLeftInFootRing,
00257 eCharacterLeftFootRingA,
00258 eCharacterLeftFootRingB,
00259 eCharacterLeftFootRingC,
00260 eCharacterLeftFootRingD,
00261 eCharacterLeftInFootPinky,
00262 eCharacterLeftFootPinkyA,
00263 eCharacterLeftFootPinkyB,
00264 eCharacterLeftFootPinkyC,
00265 eCharacterLeftFootPinkyD,
00266 eCharacterLeftInFootExtraFinger,
00267 eCharacterLeftFootExtraFingerA,
00268 eCharacterLeftFootExtraFingerB,
00269 eCharacterLeftFootExtraFingerC,
00270 eCharacterLeftFootExtraFingerD,
00271
00272 eCharacterRightInFootThumb,
00273 eCharacterRightFootThumbA,
00274 eCharacterRightFootThumbB,
00275 eCharacterRightFootThumbC,
00276 eCharacterRightFootThumbD,
00277 eCharacterRightInFootIndex,
00278 eCharacterRightFootIndexA,
00279 eCharacterRightFootIndexB,
00280 eCharacterRightFootIndexC,
00281 eCharacterRightFootIndexD,
00282 eCharacterRightInFootMiddle,
00283 eCharacterRightFootMiddleA,
00284 eCharacterRightFootMiddleB,
00285 eCharacterRightFootMiddleC,
00286 eCharacterRightFootMiddleD,
00287 eCharacterRightInFootRing,
00288 eCharacterRightFootRingA,
00289 eCharacterRightFootRingB,
00290 eCharacterRightFootRingC,
00291 eCharacterRightFootRingD,
00292 eCharacterRightInFootPinky,
00293 eCharacterRightFootPinkyA,
00294 eCharacterRightFootPinkyB,
00295 eCharacterRightFootPinkyC,
00296 eCharacterRightFootPinkyD,
00297 eCharacterRightInFootExtraFinger,
00298 eCharacterRightFootExtraFingerA,
00299 eCharacterRightFootExtraFingerB,
00300 eCharacterRightFootExtraFingerC,
00301 eCharacterRightFootExtraFingerD,
00302
00303 eCharacterLastNodeId
00304 } ECharacterNodeId;
00305
00306
00307 typedef enum
00308 {
00309 eCharacterGroup_Base,
00310 eCharacterGroup_Auxiliary,
00311 eCharacterGroup_Spine,
00312 eCharacterGroup_Roll,
00313 eCharacterGroup_Special,
00314 eCharacterGroup_LeftHand,
00315 eCharacterGroup_RightHand,
00316 eCharacterGroup_Props,
00317 eCharacterGroup_GameModeParent,
00318
00319
00320
00321 eCharacterGroup_Neck,
00322 eCharacterGroup_LeftFoot,
00323 eCharacterGroup_RightFoot,
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<fbxDouble1> PullIterationCount;
00549 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterPosture> Posture;
00550 KFbxTypedProperty<fbxBool1> ForceActorSpace;
00551 KFbxTypedProperty<fbxDouble1> ScaleCompensation;
00552 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterOffAutoUser> ScaleCompensationMode;
00553 KFbxTypedProperty<fbxDouble1> HipsHeightCompensation;
00554 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterOffAutoUser> HipsHeightCompensationMode;
00555 KFbxTypedProperty<fbxDouble1> AnkleHeightCompensation;
00556 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterOffAutoUser> AnkleHeightCompensationMode;
00557 KFbxTypedProperty<fbxDouble1> AnkleProximityCompensation;
00558 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::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<KCHARACTERDEF_NAMESPACE::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<KCHARACTERDEF_NAMESPACE::kCharacterContactBehaviour> ContactBehaviour;
00610 KFbxTypedProperty<fbxBool1> FootFloorContact;
00611 KFbxTypedProperty<fbxBool1> FootAutomaticToes;
00612 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::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<KCHARACTERDEF_NAMESPACE::kCharacterFootContactType> FootContactType;
00622 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterFingerContactMode> FootFingerContactMode;
00623 KFbxTypedProperty<fbxDouble1> FootContactStiffness;
00624 KFbxTypedProperty<fbxDouble1> FootFingerContactRollStiffness;
00625 KFbxTypedProperty<fbxBool1> HandFloorContact;
00626 KFbxTypedProperty<fbxBool1> HandAutomaticFingers;
00627 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::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<KCHARACTERDEF_NAMESPACE::kCharacterHandContactType> HandContactType;
00637 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::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<KCHARACTERDEF_NAMESPACE::kCharacterHipsTranslationMode> HipsTranslationMode;
00708 KFbxTypedProperty<fbxBool1> WriteReference;
00709 KFbxTypedProperty<fbxBool1> SyncMode;
00710 KFbxTypedProperty<fbxDouble1> Damping;
00711 KFbxTypedProperty<fbxDouble1> OrientationDamping;
00712 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterOffAutoUser> OrientationDampingMode;
00713 KFbxTypedProperty<fbxDouble1> DisplacementDamping;
00714 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterOffAutoUser> DisplacementDampingMode;
00715 KFbxTypedProperty<fbxDouble1> DisplacementMemory;
00716 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterAutoUser> DisplacementMemoryMode;
00717 KFbxTypedProperty<fbxDouble1> HipsDisplacementDamping;
00718 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterAutoUser> HipsDisplacementDampingMode;
00719 KFbxTypedProperty<fbxDouble1> AnkleDisplacementDamping;
00720 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterAutoUser> AnkleDisplacementDampingMode;
00721 KFbxTypedProperty<fbxDouble1> WristDisplacementDamping;
00722 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterAutoUser> WristDisplacementDampingMode;
00723 KFbxTypedProperty<fbxDouble1> Stabilization;
00724 KFbxTypedProperty<fbxDouble1> AnkleStabilizationTime;
00725 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterAutoUser> AnkleStabilizationTimeMode;
00726 KFbxTypedProperty<fbxDouble1> AnkleStabilizationPerimeter;
00727 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterAutoUser> AnkleStabilizationPerimeterMode;
00728 KFbxTypedProperty<fbxDouble1> AnkleStabilizationAngularPerimeter;
00729 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterOffAutoUser> AnkleStabilizationAngularPerimeterMode;
00730 KFbxTypedProperty<fbxDouble1> AnkleStabilizationFloorProximity;
00731 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterOffAutoUser> AnkleStabilizationFloorProximityMode;
00732 KFbxTypedProperty<fbxDouble1> AnkleStabilizationDamping;
00733 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterOffAutoUser> AnkleStabilizationDampingMode;
00734 KFbxTypedProperty<fbxDouble1> AnkleStabilizationRecoveryTime;
00735 KFbxTypedProperty<KCHARACTERDEF_NAMESPACE::kCharacterOffAutoUser> AnkleStabilizationRecoveryTimeMode;
00736
00737 KFbxTypedProperty<fbxReference*> SourceObject;
00738 KFbxTypedProperty<fbxReference*> DestinationObject;
00739 KFbxTypedProperty<fbxReference*> Actor;
00740 KFbxTypedProperty<fbxReference*> Character;
00741 KFbxTypedProperty<fbxReference*> ControlSet;
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 friend class KFbxReaderFbx;
00804
00805 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00806
00807 protected:
00808
00809 };
00810
00811 typedef KFbxCharacter* HKFbxCharacter;
00812
00813 inline EFbxType FbxTypeOf( KCHARACTERDEF_NAMESPACE::kCharacterOffAutoUser const &pItem ) { return eENUM; }
00814 inline EFbxType FbxTypeOf( KCHARACTERDEF_NAMESPACE::kCharacterAutoUser const &pItem ) { return eENUM; }
00815 inline EFbxType FbxTypeOf( KCHARACTERDEF_NAMESPACE::kCharacterPosture const &pItem ) { return eENUM; }
00816 inline EFbxType FbxTypeOf( KCHARACTERDEF_NAMESPACE::kCharacterFloorPivot const &pItem ) { return eENUM; }
00817 inline EFbxType FbxTypeOf( KCHARACTERDEF_NAMESPACE::kCharacterRollExtractionMode const &pItem ) { return eENUM; }
00818 inline EFbxType FbxTypeOf( KCHARACTERDEF_NAMESPACE::kCharacterHipsTranslationMode const &pItem ) { return eENUM; }
00819 inline EFbxType FbxTypeOf( KCHARACTERDEF_NAMESPACE::kCharacterFootContactType const &pItem ) { return eENUM; }
00820 inline EFbxType FbxTypeOf( KCHARACTERDEF_NAMESPACE::kCharacterHandContactType const &pItem ) { return eENUM; }
00821 inline EFbxType FbxTypeOf( KCHARACTERDEF_NAMESPACE::kCharacterFingerContactMode const &pItem ) { return eENUM; }
00822 inline EFbxType FbxTypeOf( KCHARACTERDEF_NAMESPACE::kCharacterContactBehaviour const &pItem ) { return eENUM; }
00823
00824 #include <fbxfilesdk_nsend.h>
00825
00826 #endif // #ifndef _FBXSDK_CHARACTER_H_
00827
00828