00001
00004 #ifndef _FBXSDK_NODE_H_
00005 #define _FBXSDK_NODE_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 <kfbxplugins/kfbxtakenodecontainer.h>
00050 #include <kfbxplugins/kfbxnodelimits.h>
00051 #include <kfbxplugins/kfbxgroupname.h>
00052
00053 #include <kfbxmath/kfbxtransformation.h>
00054 #include <kfbxmath/kfbxvector4.h>
00055 #include <kfbxmath/kfbxmatrix.h>
00056 #include <kfbxmath/kfbxxmatrix.h>
00057
00058 #include <klib/karrayul.h>
00059 #include <klib/kerror.h>
00060 #include <klib/kstring.h>
00061 #include <klib/ktime.h>
00062
00063 #ifndef MB_FBXSDK
00064 #include <kbaselib_nsuse.h>
00065 #endif
00066 #include <kbaselib_forward.h>
00067
00068 #include <fbxfilesdk_nsbegin.h>
00069
00070 class KFbxNodeAttribute;
00071 class KFbxScene;
00072 class KFbxSdkManager;
00073 class KFbxNull;
00074 class KFbxMarker;
00075 class KFbxSkeleton;
00076 class KFbxGeometry;
00077 class KFbxMesh;
00078 class KFbxNurb;
00079 class KFbxNurbsCurve;
00080 class KFbxNurbsSurface;
00081 class KFbxTrimNurbsSurface;
00082 class KFbxPatch;
00083 class KFbxCamera;
00084 class KFbxCameraSwitcher;
00085 class KFbxLight;
00086 class KFbxOpticalReference;
00087 class KFbxCharacter;
00088 class KFbxNode_internal;
00089 class KFbxSurfaceMaterial;
00090
00103 class KFBX_DLL KFbxNode : public KFbxTakeNodeContainer
00104 {
00105 KFBXOBJECT_DECLARE(KFbxNode,KFbxTakeNodeContainer);
00106 public:
00112
00116 KFbxNode* GetParent();
00117 KFbxNode const* GetParent() const;
00118
00132 bool AddChild(KFbxNode* pNode);
00133
00139 KFbxNode* RemoveChild(KFbxNode* pNode);
00140
00145 int GetChildCount(bool pRecursive = false) const;
00146
00151 KFbxNode* GetChild(int pIndex);
00152
00157 KFbxNode const* GetChild(int pIndex) const;
00158
00165 KFbxNode* FindChild(char const* pName, bool pRecursive = true, bool pInitial = false);
00166
00168
00187
00191 void SetTarget(KFbxNode* pNode);
00192
00196 KFbxNode* GetTarget() const;
00197
00201 void SetPostTargetRotation(KFbxVector4 pVector);
00202
00206 KFbxVector4 GetPostTargetRotation() const;
00207
00211 void SetTargetUp(KFbxNode* pNode);
00212
00216 KFbxNode* GetTargetUp() const;
00217
00221 void SetTargetUpVector(KFbxVector4 pVector);
00222
00226 KFbxVector4 GetTargetUpVector() const;
00227
00229
00230
00235 public:
00236 virtual kFbxUpdateId GetUpdateId(eFbxUpdateIdType pUpdateId=eUpdateId_Object) const;
00238
00246 void SetVisibility(bool pIsVisible);
00247
00251 bool GetVisibility() const;
00252
00261 typedef enum
00262 {
00263 eHARD_SHADING,
00264 eWIRE_FRAME,
00265 eFLAT_SHADING,
00266 eLIGHT_SHADING,
00267 eTEXTURE_SHADING,
00268 eLIGHT_TEXTURE_SHADING
00269 } EShadingMode;
00270
00274 void SetShadingMode(EShadingMode pShadingMode);
00275
00279 EShadingMode GetShadingMode() const;
00280
00284 void SetMultiLayer(bool pMultiLayer);
00285
00289 bool GetMultiLayer() const;
00290
00296 typedef enum
00297 {
00298 eOLD_MULTI_TAKE,
00299 eMULTI_TAKE,
00300 eMONO_TAKE
00301 } EMultiTakeMode;
00302
00306 void SetMultiTakeMode(EMultiTakeMode pMultiTakeMode);
00307
00311 EMultiTakeMode GetMultiTakeMode() const;
00313
00318
00328 KFbxNodeAttribute* SetNodeAttribute(KFbxNodeAttribute* pNodeAttribute);
00329
00334 KFbxNodeAttribute* GetNodeAttribute();
00335
00340 KFbxNodeAttribute const* GetNodeAttribute() const;
00341
00345 int GetNodeAttributeCount() const;
00346
00351 int GetDefaultNodeAttributeIndex() const;
00352
00358 bool SetDefaultNodeAttributeIndex(int pIndex);
00359
00365 KFbxNodeAttribute* GetNodeAttributeByIndex(int pIndex);
00366
00372 KFbxNodeAttribute const* GetNodeAttributeByIndex(int pIndex) const;
00373
00380 int GetNodeAttributeIndex(KFbxNodeAttribute* pNodeAttribute) const;
00381
00389 bool AddNodeAttribute(KFbxNodeAttribute* pNodeAttribute);
00390
00397 KFbxNodeAttribute* RemoveNodeAttribute(KFbxNodeAttribute* pNodeAttribute);
00398
00405 KFbxNodeAttribute* RemoveNodeAttributeByIndex(int pIndex);
00406
00411 KFbxNull* GetNull();
00412
00417 KFbxMarker* GetMarker();
00418
00423 KFbxSkeleton* GetSkeleton();
00424
00430 KFbxGeometry* GetGeometry();
00431
00436 KFbxMesh* GetMesh();
00437
00442 KFbxNurb* GetNurb();
00443
00448 KFbxNurbsSurface* GetNurbsSurface();
00449
00454 KFbxNurbsCurve* GetNurbsCurve();
00455
00460 KFbxTrimNurbsSurface* GetTrimNurbsSurface();
00461
00466 KFbxPatch* GetPatch();
00467
00472 KFbxCamera* GetCamera();
00473
00479 KFbxCameraSwitcher* GetCameraSwitcher();
00480
00485 KFbxLight* GetLight();
00486
00492 KFbxOpticalReference* GetOpticalReference();
00494
00501
00505 void SetDefaultT(const KFbxVector4& pT);
00506
00511 KFbxVector4& GetDefaultT(KFbxVector4& pT);
00512
00516 void SetDefaultR(const KFbxVector4& pR);
00517
00522 KFbxVector4& GetDefaultR(KFbxVector4& pR);
00523
00527 void SetDefaultS(const KFbxVector4& pS);
00528
00533 KFbxVector4& GetDefaultS(KFbxVector4& pS);
00534
00542 void SetDefaultVisibility(double pVisibility);
00543
00551 double GetDefaultVisibility();
00552
00554
00568 void SetTransformationInheritType(ETransformInheritType pInheritType);
00569
00573 void GetTransformationInheritType(ETransformInheritType& pInheritType);
00575
00576
00585
00590 typedef enum
00591 {
00592 eSOURCE_SET,
00593 eDESTINATION_SET
00594 } EPivotSet;
00595
00600 typedef enum
00601 {
00602 ePIVOT_STATE_ACTIVE,
00603 ePIVOT_STATE_REFERENCE
00604 } EPivotState;
00605
00612 void SetPivotState(EPivotSet pPivotSet, EPivotState pPivotState);
00613
00620 void GetPivotState(EPivotSet pPivotSet, EPivotState& pPivotState);
00621
00627 void SetRotationOrder(EPivotSet pPivotSet, ERotationOrder pRotationOrder);
00628
00633 void GetRotationOrder(EPivotSet pPivotSet, ERotationOrder& pRotationOrder);
00634
00643 void SetUseRotationSpaceForLimitOnly(EPivotSet pPivotSet, bool pUseForLimitOnly);
00644
00649 bool GetUseRotationSpaceForLimitOnly(EPivotSet pPivotSet);
00650
00656 void SetRotationActive(bool pVal);
00657
00661 bool GetRotationActive();
00662
00667 void SetUseQuaternionForInterpolation(EPivotSet pPivotSet, bool pUseQuaternion);
00668
00673 bool GetUseQuaternionForInterpolation(EPivotSet pPivotSet) const;
00674
00683 void SetRotationStiffness(KFbxVector4 pRotationStiffness);
00684
00688 KFbxVector4 GetRotationStiffness();
00689
00698 void SetMinDampRange(KFbxVector4 pMinDampRange);
00699
00703 KFbxVector4 GetMinDampRange();
00704
00705
00714 void SetMaxDampRange(KFbxVector4 pMaxDampRange);
00715
00719 KFbxVector4 GetMaxDampRange();
00720
00721
00730 void SetMinDampStrength(KFbxVector4 pMinDampStrength);
00731
00735 KFbxVector4 GetMinDampStrength();
00736
00737
00746 void SetMaxDampStrength(KFbxVector4 pMaxDampStrength);
00747
00751 KFbxVector4 GetMaxDampStrength();
00752
00758 void SetPreferedAngle(KFbxVector4 pPreferedAngle);
00759
00763 KFbxVector4 GetPreferedAngle();
00764
00770 void SetRotationOffset(EPivotSet pPivotSet, KFbxVector4 pVector);
00771
00777 KFbxVector4& GetRotationOffset(EPivotSet pPivotSet) const;
00778
00785 void SetRotationPivot(EPivotSet pPivotSet, KFbxVector4 pVector);
00786
00793 KFbxVector4& GetRotationPivot(EPivotSet pPivotSet) const;
00794
00801 void SetPreRotation(EPivotSet pPivotSet, KFbxVector4 pVector);
00802
00809 KFbxVector4& GetPreRotation(EPivotSet pPivotSet) const;
00810
00817 void SetPostRotation(EPivotSet pPivotSet, KFbxVector4 pVector);
00818
00825 KFbxVector4& GetPostRotation(EPivotSet pPivotSet) const;
00826
00832 void SetScalingOffset(EPivotSet pPivotSet, KFbxVector4 pVector);
00833
00839 KFbxVector4& GetScalingOffset(EPivotSet pPivotSet) const;
00840
00848 void SetScalingPivot(EPivotSet pPivotSet, KFbxVector4 pVector);
00849
00856 KFbxVector4& GetScalingPivot(EPivotSet pPivotSet) const;
00857
00866 void SetGeometricTranslation(EPivotSet pPivotSet, KFbxVector4 pVector);
00867
00872 KFbxVector4 GetGeometricTranslation(EPivotSet pPivotSet) const;
00873
00882 void SetGeometricRotation(EPivotSet pPivotSet, KFbxVector4 pVector);
00883
00888 KFbxVector4 GetGeometricRotation(EPivotSet pPivotSet);
00889
00898 void SetGeometricScaling(EPivotSet pPivotSet, KFbxVector4 pVector);
00899
00903 KFbxVector4 GetGeometricScaling(EPivotSet pPivotSet);
00904
00913 void ConvertPivotAnimation(EPivotSet pConversionTarget, double pFrameRate, bool pKeyReduce=true);
00914
00923 void ConvertPivotAnimationRecursive(EPivotSet pConversionTarget, double pFrameRate, bool pKeyReduce=true);
00924
00929 void ResetPivotSet( KFbxNode::EPivotSet pPivotSet );
00930
00937 void ResetPivotSetAndConvertAnimation( double pFrameRate=30., bool pKeyReduce=false );
00938
00940
00945
00950 KFbxVector4& GetLocalTFromDefaultTake(bool pApplyLimits = false);
00951
00956 KFbxVector4& GetLocalRFromDefaultTake(bool pApplyLimits = false);
00957
00962 KFbxVector4& GetLocalSFromDefaultTake(bool pApplyLimits = false);
00963
00969 KFbxXMatrix& GetGlobalFromDefaultTake(EPivotSet pPivotSet = eSOURCE_SET, bool pApplyTarget = false);
00970
00976 KFbxVector4& GetLocalTFromCurrentTake(KTime pTime, bool pApplyLimits = false);
00977
00983 KFbxVector4& GetLocalRFromCurrentTake(KTime pTime, bool pApplyLimits = false);
00984
00990 KFbxVector4& GetLocalSFromCurrentTake(KTime pTime, bool pApplyLimits = false);
00991
00998 KFbxXMatrix& GetGlobalFromCurrentTake(KTime pTime, EPivotSet pPivotSet = eSOURCE_SET, bool pApplyTarget = false);
01000
01005
01009 int GetCharacterLinkCount();
01010
01023 bool GetCharacterLink(int pIndex, KFbxCharacter** pCharacter, int* pCharacterLinkType, int* pNodeId, int *pNodeSubId);
01024
01035 int FindCharacterLink(KFbxCharacter* pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId);
01037
01049 virtual bool GetAnimationInterval(KTime& pStart, KTime& pStop);
01050
01051
01056
01061 int AddMaterial( KFbxSurfaceMaterial* pMaterial );
01062
01067 bool RemoveMaterial( KFbxSurfaceMaterial* pMaterial );
01068
01072 int GetMaterialCount() const;
01073
01078 KFbxSurfaceMaterial* GetMaterial( int pIndex ) const;
01079
01082 void RemoveAllMaterials();
01083
01089 int GetMaterialIndex( char const* pName ) const;
01090
01092
01098
01102 KError& GetError();
01103
01117 typedef enum
01118 {
01119 eTAKE_NODE_ERROR,
01120 eNODE_NAME_CLASH,
01121 eMATERIAL_NAME_CLASH,
01122 eTEXTURE_NAME_CLASH,
01123 eVIDEO_NAME_CLASH,
01124 eNOT_A_CHILD,
01125 eCYCLIC_GRAPH,
01126 eINDEX_OUT_OF_RANGE,
01127 eATTRIBUTE_NOT_CONNECTED,
01128 eERROR_COUNT
01129 } EError;
01130
01134 EError GetLastErrorID() const;
01135
01139 const char* GetLastErrorString() const;
01140
01142
01143
01148
01156 KFbxTypedProperty<fbxDouble3> LclTranslation;
01157
01165 KFbxTypedProperty<fbxDouble3> LclRotation;
01166
01174 KFbxTypedProperty<fbxDouble3> LclScaling;
01175
01183 KFbxTypedProperty<KFbxXMatrix> GlobalTransform;
01184
01192 KFbxTypedProperty<fbxDouble1> Visibility;
01193
01194 KFbxTypedProperty<fbxDouble1> Weight;
01195 KFbxTypedProperty<fbxDouble3> PoleVector;
01196 KFbxTypedProperty<fbxDouble1> Twist;
01197 KFbxTypedProperty<fbxDouble3> WorldUpVector;
01198 KFbxTypedProperty<fbxDouble3> UpVector;
01199 KFbxTypedProperty<fbxDouble3> AimVector;
01200 KFbxTypedProperty<fbxBool1> QuaternionInterpolate;
01201 KFbxTypedProperty<fbxDouble3> RotationOffset;
01202 KFbxTypedProperty<fbxDouble3> RotationPivot;
01203 KFbxTypedProperty<fbxDouble3> ScalingOffset;
01204 KFbxTypedProperty<fbxDouble3> ScalingPivot;
01205 KFbxTypedProperty<fbxBool1> TranslationActive;
01206 KFbxTypedProperty<fbxDouble3> Translation;
01207 KFbxTypedProperty<fbxDouble3> TranslationMin;
01208 KFbxTypedProperty<fbxDouble3> TranslationMax;
01209 KFbxTypedProperty<fbxBool1> TranslationMinX;
01210 KFbxTypedProperty<fbxBool1> TranslationMinY;
01211 KFbxTypedProperty<fbxBool1> TranslationMinZ;
01212 KFbxTypedProperty<fbxBool1> TranslationMaxX;
01213 KFbxTypedProperty<fbxBool1> TranslationMaxY;
01214 KFbxTypedProperty<fbxBool1> TranslationMaxZ;
01215
01216 KFbxTypedProperty<ERotationOrder> RotationOrder;
01217 KFbxTypedProperty<fbxBool1> RotationSpaceForLimitOnly;
01218 KFbxTypedProperty<fbxDouble1> RotationStiffnessX;
01219 KFbxTypedProperty<fbxDouble1> RotationStiffnessY;
01220 KFbxTypedProperty<fbxDouble1> RotationStiffnessZ;
01221 KFbxTypedProperty<fbxDouble1> AxisLen;
01222
01223 KFbxTypedProperty<fbxDouble3> PreRotation;
01224 KFbxTypedProperty<fbxDouble3> PostRotation;
01225 KFbxTypedProperty<fbxBool1> RotationActive;
01226 KFbxTypedProperty<fbxDouble3> RotationMin;
01227 KFbxTypedProperty<fbxDouble3> RotationMax;
01228 KFbxTypedProperty<fbxBool1> RotationMinX;
01229 KFbxTypedProperty<fbxBool1> RotationMinY;
01230 KFbxTypedProperty<fbxBool1> RotationMinZ;
01231 KFbxTypedProperty<fbxBool1> RotationMaxX;
01232 KFbxTypedProperty<fbxBool1> RotationMaxY;
01233 KFbxTypedProperty<fbxBool1> RotationMaxZ;
01234
01235 KFbxTypedProperty<ETransformInheritType> InheritType;
01236
01237 KFbxTypedProperty<fbxBool1> ScalingActive;
01238 KFbxTypedProperty<fbxDouble3> Scaling;
01239 KFbxTypedProperty<fbxDouble3> ScalingMin;
01240 KFbxTypedProperty<fbxDouble3> ScalingMax;
01241 KFbxTypedProperty<fbxBool1> ScalingMinX;
01242 KFbxTypedProperty<fbxBool1> ScalingMinY;
01243 KFbxTypedProperty<fbxBool1> ScalingMinZ;
01244 KFbxTypedProperty<fbxBool1> ScalingMaxX;
01245 KFbxTypedProperty<fbxBool1> ScalingMaxY;
01246 KFbxTypedProperty<fbxBool1> ScalingMaxZ;
01247
01248 KFbxTypedProperty<fbxDouble3> GeometricTranslation;
01249 KFbxTypedProperty<fbxDouble3> GeometricRotation;
01250 KFbxTypedProperty<fbxDouble3> GeometricScaling;
01251
01252
01254 KFbxTypedProperty<fbxDouble1> MinDampRangeX;
01255 KFbxTypedProperty<fbxDouble1> MinDampRangeY;
01256 KFbxTypedProperty<fbxDouble1> MinDampRangeZ;
01257 KFbxTypedProperty<fbxDouble1> MaxDampRangeX;
01258 KFbxTypedProperty<fbxDouble1> MaxDampRangeY;
01259 KFbxTypedProperty<fbxDouble1> MaxDampRangeZ;
01260 KFbxTypedProperty<fbxDouble1> MinDampStrengthX;
01261 KFbxTypedProperty<fbxDouble1> MinDampStrengthY;
01262 KFbxTypedProperty<fbxDouble1> MinDampStrengthZ;
01263 KFbxTypedProperty<fbxDouble1> MaxDampStrengthX;
01264 KFbxTypedProperty<fbxDouble1> MaxDampStrengthY;
01265 KFbxTypedProperty<fbxDouble1> MaxDampStrengthZ;
01266 KFbxTypedProperty<fbxDouble1> PreferedAngleX;
01267 KFbxTypedProperty<fbxDouble1> PreferedAngleY;
01268 KFbxTypedProperty<fbxDouble1> PreferedAngleZ;
01270
01271 KFbxTypedProperty<fbxReference*> LookAtProperty;
01272 KFbxTypedProperty<fbxReference*> UpVectorProperty;
01273
01274 KFbxTypedProperty<fbxBool1> Show;
01275 KFbxTypedProperty<fbxBool1> NegativePercentShapeSupport;
01276
01277 KFbxTypedProperty<fbxInteger1> DefaultAttributeIndex;
01279
01280
01281 #ifndef DOXYGEN_SHOULD_SKIP_THIS
01283 // WARNING!
01284
01285
01287 public:
01292
01299 void SetLocalStateFromDefaultTake(bool pRecursive, bool pApplyLimits = false);
01300
01305 void SetDefaultTakeFromLocalState(bool pRecursive);
01306
01313 void SetLocalStateFromCurrentTake(KTime pTime, bool pRecursive,bool pApplyLimits = false);
01314
01320 void SetCurrentTakeFromLocalState(KTime pTime, bool pRecursive);
01321
01328 void ComputeGlobalState(kUInt pUpdateId, bool pRecursive, EPivotSet pPivotSet = eSOURCE_SET, bool pApplyTarget = false);
01329
01335 void ComputeLocalState(kUInt pUpdateId, bool pRecursive);
01336
01340 void SetGlobalState(const KFbxXMatrix& pGX);
01341
01343 KFbxXMatrix& GetGlobalState();
01344
01348 void SetLocalState(const KFbxVector4& pLT,const KFbxVector4& pLR, const KFbxVector4& pLS);
01349
01351 void GetLocalState(KFbxVector4& pLT, KFbxVector4& pLR, KFbxVector4& pLS);
01352
01357 void SetGlobalStateId(kUInt pUpdateId, bool pRecursive);
01358
01360 kUInt GetGlobalStateId();
01361
01366 void SetLocalStateId(kUInt pUpdateId, bool pRecursive);
01367
01369 kUInt GetLocalStateId();
01371
01372 KFbxNodeLimits& GetLimits();
01373
01374
01375
01376
01377 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType = eDEEP_CLONE) const;
01378
01379
01380 virtual bool PropertyNotify(eFbxPropertyNotify pType, KFbxProperty* pProperty);
01381
01382 protected:
01383 KFbxNode(KFbxSdkManager& pManager, char const* pName);
01384 virtual ~KFbxNode();
01385
01386 virtual void Construct(const KFbxNode* pFrom);
01387 virtual bool ConstructProperties(bool pForceSet);
01388 virtual void Destruct(bool pRecursive, bool pDependents);
01389
01391 KFbxNode& operator=(KFbxNode const& pNode);
01392
01393 void Reset();
01394 bool GetAnimationIntervalRecursive(KTime& pStart, KTime& pStop);
01395
01396 void AddChildName(char* pChildName);
01397 char* GetChildName(kUInt pIndex);
01398 kUInt GetChildNameCount();
01399
01400 public:
01401 void UpdatePivotsAndLimitsFromProperties();
01402 void UpdatePropertiesFromPivotsAndLimits();
01403 void SetRotationActiveProperty(bool pVal);
01404
01405 void PivotSetToMBTransform(EPivotSet pPivotSet);
01406 KFbxXMatrix GetLXFromLocalState( bool pT, bool pR, bool pS, bool pSoff );
01407
01408 protected:
01409 virtual KString GetTypeName() const;
01410 virtual KStringList GetTypeFlags() const;
01411 KMBTransform* GetMBTransform();
01412 void ComputeTRSLocalFromDefaultTake(bool pApplyLimits = false);
01413 void ComputeTRSLocalFromCurrentTake(KTime pTime, bool pApplyLimits = false);
01414
01415
01416 int AddCharacterLink(KFbxCharacter* pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId);
01417 int RemoveCharacterLink(KFbxCharacter* pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId);
01418
01419
01420 private:
01421 KFbxNode& DeepCopy( KFbxNode const& pNode, bool pCopyNodeAttribute );
01422
01423 protected:
01424
01425
01426
01427 typedef enum { eCULLING_OFF, eCULLING_ON_CCW, eCULLING_ON_CW } ECullingType;
01428
01429 ECullingType mCullingType;
01430 KFbxNode_internal* mPH;
01431 bool mCorrectInheritType;
01432 mutable KError mError;
01433
01434 friend class KFbxReaderFbx;
01435 friend class KFbxReaderFbx6;
01436 friend class KFbxWriterFbx;
01437 friend class KFbxWriterFbx6;
01438 friend class KFbxScene;
01439 friend class KFbxGeometry;
01440 friend class KFbxLight;
01441 friend class KFbxNodeFinderDuplicateName;
01442 friend class KFbxCharacter;
01443 friend class KFbxControlSet;
01444 friend class KFbxNode_internal;
01445 friend class KFbxSurfaceMaterial_internal;
01446 friend class KFbxTexture_internal;
01447 friend class KFbxVideo_internal;
01448
01449 friend class KFbxNodeLimits;
01450 friend class KFbxLimits;
01451
01452 friend struct KFbxReaderFbx7Impl;
01453 friend struct KFbxWriterFbx7Impl;
01454
01455 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
01456 };
01457
01458 typedef KFbxNode* HKFbxNode;
01459 typedef class KFBX_DLL KArrayTemplate<KFbxNode*> KArrayKFbxNode;
01460
01461 inline EFbxType FbxTypeOf( ERotationOrder const &pItem ) { return eENUM; }
01462 inline EFbxType FbxTypeOf( ETransformInheritType const &pItem ) { return eENUM; }
01463
01464 #include <fbxfilesdk_nsend.h>
01465
01466 #endif // #ifndef _FBXSDK_NODE_H_
01467
01468