00001
00004 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXNODE_H
00005 #define FBXFILESDK_KFBXPLUGINS_KFBXNODE_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/kfbxplugins/kfbxtakenodecontainer.h>
00046 #include <fbxfilesdk/kfbxplugins/kfbxnodelimits.h>
00047 #include <fbxfilesdk/kfbxplugins/kfbxgroupname.h>
00048
00049 #include <fbxfilesdk/kfbxmath/kfbxtransformation.h>
00050 #include <fbxfilesdk/kfbxmath/kfbxvector4.h>
00051 #include <fbxfilesdk/kfbxmath/kfbxmatrix.h>
00052 #include <fbxfilesdk/kfbxmath/kfbxxmatrix.h>
00053
00054 #include <fbxfilesdk/components/kbaselib/klib/karrayul.h>
00055 #include <fbxfilesdk/components/kbaselib/klib/kerror.h>
00056 #include <fbxfilesdk/components/kbaselib/klib/kstring.h>
00057 #include <fbxfilesdk/components/kbaselib/klib/ktime.h>
00058
00059 #include <fbxfilesdk/components/kbaselib/kbaselib_forward.h>
00060
00061 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00062
00063 class KFbxNodeAttribute;
00064 class KFbxScene;
00065 class KFbxSdkManager;
00066 class KFbxLodGroup;
00067 class KFbxNull;
00068 class KFbxMarker;
00069 class KFbxSkeleton;
00070 class KFbxGeometry;
00071 class KFbxMesh;
00072 class KFbxNurb;
00073 class KFbxNurbsCurve;
00074 class KFbxNurbsSurface;
00075 class KFbxTrimNurbsSurface;
00076 class KFbxPatch;
00077 class KFbxCamera;
00078 class KFbxCameraStereo;
00079 class KFbxCameraSwitcher;
00080 class KFbxLight;
00081 class KFbxOpticalReference;
00082 class KFbxCharacter;
00083 class KFbxNode_internal;
00084 class KFbxSurfaceMaterial;
00085 class KFbxSubdiv;
00086
00099 class KFBX_DLL KFbxNode : public KFbxTakeNodeContainer
00100 {
00101 KFBXOBJECT_DECLARE(KFbxNode,KFbxTakeNodeContainer);
00102 public:
00108
00112 KFbxNode* GetParent();
00113 KFbxNode const* GetParent() const;
00114
00128 bool AddChild(KFbxNode* pNode);
00129
00134 KFbxNode* RemoveChild(KFbxNode* pNode);
00135
00140 int GetChildCount(bool pRecursive = false) const;
00141
00147 KFbxNode* GetChild(int pIndex);
00148
00154 KFbxNode const* GetChild(int pIndex) const;
00155
00162 KFbxNode* FindChild(char const* pName, bool pRecursive = true, bool pInitial = false);
00163
00165
00184
00188 void SetTarget(KFbxNode* pNode);
00189
00193 KFbxNode* GetTarget() const;
00194
00198 void SetPostTargetRotation(KFbxVector4 pVector);
00199
00203 KFbxVector4 GetPostTargetRotation() const;
00204
00208 void SetTargetUp(KFbxNode* pNode);
00209
00213 KFbxNode* GetTargetUp() const;
00214
00218 void SetTargetUpVector(KFbxVector4 pVector);
00219
00223 KFbxVector4 GetTargetUpVector() const;
00224
00226
00227
00232 public:
00233 virtual kFbxUpdateId GetUpdateId(eFbxUpdateIdType pUpdateId=eUpdateId_Object) const;
00235
00243 void SetVisibility(bool pIsVisible);
00244
00248 bool GetVisibility() const;
00249
00258 typedef enum
00259 {
00260 eHARD_SHADING,
00261 eWIRE_FRAME,
00262 eFLAT_SHADING,
00263 eLIGHT_SHADING,
00264 eTEXTURE_SHADING,
00265 eLIGHT_TEXTURE_SHADING
00266 } EShadingMode;
00267
00271 void SetShadingMode(EShadingMode pShadingMode);
00272
00276 EShadingMode GetShadingMode() const;
00277
00281 void SetMultiLayer(bool pMultiLayer);
00282
00286 bool GetMultiLayer() const;
00287
00293 typedef enum
00294 {
00295 eOLD_MULTI_TAKE,
00296 eMULTI_TAKE,
00297 eMONO_TAKE
00298 } EMultiTakeMode;
00299
00303 void SetMultiTakeMode(EMultiTakeMode pMultiTakeMode);
00304
00308 EMultiTakeMode GetMultiTakeMode() const;
00310
00315
00325 KFbxNodeAttribute* SetNodeAttribute(KFbxNodeAttribute* pNodeAttribute);
00326
00331 KFbxNodeAttribute* GetNodeAttribute();
00332
00337 KFbxNodeAttribute const* GetNodeAttribute() const;
00338
00342 int GetNodeAttributeCount() const;
00343
00348 int GetDefaultNodeAttributeIndex() const;
00349
00356 bool SetDefaultNodeAttributeIndex(int pIndex);
00357
00364 KFbxNodeAttribute* GetNodeAttributeByIndex(int pIndex);
00365
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 KFbxLodGroup* GetLodGroup();
00412
00417 KFbxNull* GetNull();
00418
00423 KFbxMarker* GetMarker();
00424
00429 KFbxSkeleton* GetSkeleton();
00430
00436 KFbxGeometry* GetGeometry();
00437
00442 KFbxMesh* GetMesh();
00443
00448 KFbxNurb* GetNurb();
00449
00454 KFbxNurbsSurface* GetNurbsSurface();
00455
00460 KFbxNurbsCurve* GetNurbsCurve();
00461
00466 KFbxTrimNurbsSurface* GetTrimNurbsSurface();
00467
00472 KFbxSubdiv* GetSubdiv();
00473
00478 KFbxPatch* GetPatch();
00479
00484 KFbxCamera* GetCamera();
00485
00491 KFbxCameraSwitcher* GetCameraSwitcher();
00492
00497 KFbxLight* GetLight();
00498
00504 KFbxOpticalReference* GetOpticalReference();
00506
00513
00517 void SetDefaultT(const KFbxVector4& pT);
00518
00523 KFbxVector4& GetDefaultT(KFbxVector4& pT);
00524
00528 void SetDefaultR(const KFbxVector4& pR);
00529
00534 KFbxVector4& GetDefaultR(KFbxVector4& pR);
00535
00539 void SetDefaultS(const KFbxVector4& pS);
00540
00545 KFbxVector4& GetDefaultS(KFbxVector4& pS);
00546
00554 void SetDefaultVisibility(double pVisibility);
00555
00563 double GetDefaultVisibility();
00564
00566
00580 void SetTransformationInheritType(ETransformInheritType pInheritType);
00581
00585 void GetTransformationInheritType(ETransformInheritType& pInheritType);
00587
00588
00597
00602 typedef enum
00603 {
00604 eSOURCE_SET,
00605 eDESTINATION_SET
00606 } EPivotSet;
00607
00612 typedef enum
00613 {
00614 ePIVOT_STATE_ACTIVE,
00615 ePIVOT_STATE_REFERENCE
00616 } EPivotState;
00617
00624 void SetPivotState(EPivotSet pPivotSet, EPivotState pPivotState);
00625
00632 void GetPivotState(EPivotSet pPivotSet, EPivotState& pPivotState);
00633
00639 void SetRotationOrder(EPivotSet pPivotSet, ERotationOrder pRotationOrder);
00640
00645 void GetRotationOrder(EPivotSet pPivotSet, ERotationOrder& pRotationOrder);
00646
00655 void SetUseRotationSpaceForLimitOnly(EPivotSet pPivotSet, bool pUseForLimitOnly);
00656
00661 bool GetUseRotationSpaceForLimitOnly(EPivotSet pPivotSet);
00662
00668 void SetRotationActive(bool pVal);
00669
00673 bool GetRotationActive();
00674
00679 void SetUseQuaternionForInterpolation(EPivotSet pPivotSet, bool pUseQuaternion);
00680
00685 bool GetUseQuaternionForInterpolation(EPivotSet pPivotSet) const;
00686
00695 void SetRotationStiffness(KFbxVector4 pRotationStiffness);
00696
00700 KFbxVector4 GetRotationStiffness();
00701
00710 void SetMinDampRange(KFbxVector4 pMinDampRange);
00711
00715 KFbxVector4 GetMinDampRange();
00716
00717
00726 void SetMaxDampRange(KFbxVector4 pMaxDampRange);
00727
00731 KFbxVector4 GetMaxDampRange();
00732
00733
00742 void SetMinDampStrength(KFbxVector4 pMinDampStrength);
00743
00747 KFbxVector4 GetMinDampStrength();
00748
00749
00758 void SetMaxDampStrength(KFbxVector4 pMaxDampStrength);
00759
00763 KFbxVector4 GetMaxDampStrength();
00764
00770 void SetPreferedAngle(KFbxVector4 pPreferedAngle);
00771
00775 KFbxVector4 GetPreferedAngle();
00776
00782 void SetRotationOffset(EPivotSet pPivotSet, KFbxVector4 pVector);
00783
00789 KFbxVector4& GetRotationOffset(EPivotSet pPivotSet) const;
00790
00797 void SetRotationPivot(EPivotSet pPivotSet, KFbxVector4 pVector);
00798
00805 KFbxVector4& GetRotationPivot(EPivotSet pPivotSet) const;
00806
00813 void SetPreRotation(EPivotSet pPivotSet, KFbxVector4 pVector);
00814
00821 KFbxVector4& GetPreRotation(EPivotSet pPivotSet) const;
00822
00829 void SetPostRotation(EPivotSet pPivotSet, KFbxVector4 pVector);
00830
00837 KFbxVector4& GetPostRotation(EPivotSet pPivotSet) const;
00838
00844 void SetScalingOffset(EPivotSet pPivotSet, KFbxVector4 pVector);
00845
00851 KFbxVector4& GetScalingOffset(EPivotSet pPivotSet) const;
00852
00860 void SetScalingPivot(EPivotSet pPivotSet, KFbxVector4 pVector);
00861
00868 KFbxVector4& GetScalingPivot(EPivotSet pPivotSet) const;
00869
00878 void SetGeometricTranslation(EPivotSet pPivotSet, KFbxVector4 pVector);
00879
00884 KFbxVector4 GetGeometricTranslation(EPivotSet pPivotSet) const;
00885
00894 void SetGeometricRotation(EPivotSet pPivotSet, KFbxVector4 pVector);
00895
00900 KFbxVector4 GetGeometricRotation(EPivotSet pPivotSet);
00901
00910 void SetGeometricScaling(EPivotSet pPivotSet, KFbxVector4 pVector);
00911
00916 KFbxVector4 GetGeometricScaling(EPivotSet pPivotSet);
00917
00926 void ConvertPivotAnimation(EPivotSet pConversionTarget, double pFrameRate, bool pKeyReduce=true);
00927
00932 void ResetPivotSet( KFbxNode::EPivotSet pPivotSet );
00933
00942 void ConvertPivotAnimationRecursive(EPivotSet pConversionTarget, double pFrameRate, bool pKeyReduce=true);
00943
00951 void ResetPivotSetAndConvertAnimation( double pFrameRate=30., bool pKeyReduce=false, bool pToNodeCenter=true );
00952
00956 void SetRotationPivotAsCenterRecursive(KFbxVector4 pParentGeometricOffset = KFbxVector4());
00958
00963
00968 KFbxVector4& GetLocalTFromDefaultTake(bool pApplyLimits = false);
00969
00974 KFbxVector4& GetLocalRFromDefaultTake(bool pApplyLimits = false);
00975
00980 KFbxVector4& GetLocalSFromDefaultTake(bool pApplyLimits = false);
00981
00987 KFbxXMatrix& GetGlobalFromDefaultTake(EPivotSet pPivotSet = eSOURCE_SET, bool pApplyTarget = false);
00988
00994 KFbxVector4& GetLocalTFromCurrentTake(KTime pTime, bool pApplyLimits = false);
00995
01001 KFbxVector4& GetLocalRFromCurrentTake(KTime pTime, bool pApplyLimits = false);
01002
01008 KFbxVector4& GetLocalSFromCurrentTake(KTime pTime, bool pApplyLimits = false);
01009
01016 KFbxXMatrix& GetGlobalFromCurrentTake(KTime pTime, EPivotSet pPivotSet = eSOURCE_SET, bool pApplyTarget = false);
01018
01023
01027 int GetCharacterLinkCount();
01028
01041 bool GetCharacterLink(int pIndex, KFbxCharacter** pCharacter, int* pCharacterLinkType, int* pNodeId, int *pNodeSubId);
01042
01053 int FindCharacterLink(KFbxCharacter* pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId);
01055
01067 virtual bool GetAnimationInterval(KTime& pStart, KTime& pStop);
01068
01069
01074
01079 int AddMaterial( KFbxSurfaceMaterial* pMaterial );
01080
01085 bool RemoveMaterial( KFbxSurfaceMaterial* pMaterial );
01086
01090 int GetMaterialCount() const;
01091
01096 KFbxSurfaceMaterial* GetMaterial( int pIndex ) const;
01097
01100 void RemoveAllMaterials();
01101
01107 int GetMaterialIndex( char const* pName ) const;
01108
01110
01116
01120 KError& GetError();
01121
01135 typedef enum
01136 {
01137 eTAKE_NODE_ERROR,
01138 eNODE_NAME_CLASH,
01139 eMATERIAL_NAME_CLASH,
01140 eTEXTURE_NAME_CLASH,
01141 eVIDEO_NAME_CLASH,
01142 eNOT_A_CHILD,
01143 eCYCLIC_GRAPH,
01144 eINDEX_OUT_OF_RANGE,
01145 eATTRIBUTE_NOT_CONNECTED,
01146 eERROR_COUNT
01147 } EError;
01148
01152 EError GetLastErrorID() const;
01153
01157 const char* GetLastErrorString() const;
01158
01160
01161
01166
01174 KFbxTypedProperty<fbxDouble3> LclTranslation;
01175
01183 KFbxTypedProperty<fbxDouble3> LclRotation;
01184
01192 KFbxTypedProperty<fbxDouble3> LclScaling;
01193
01201 KFbxTypedProperty<KFbxXMatrix> GlobalTransform;
01202
01210 KFbxTypedProperty<fbxDouble1> Visibility;
01211
01218 KFbxTypedProperty<fbxDouble1> Weight;
01219
01226 KFbxTypedProperty<fbxDouble3> PoleVector;
01227
01234 KFbxTypedProperty<fbxDouble1> Twist;
01235
01242 KFbxTypedProperty<fbxDouble3> WorldUpVector;
01243
01250 KFbxTypedProperty<fbxDouble3> UpVector;
01251
01258 KFbxTypedProperty<fbxDouble3> AimVector;
01259
01267 KFbxTypedProperty<fbxBool1> QuaternionInterpolate;
01268
01276 KFbxTypedProperty<fbxDouble3> RotationOffset;
01277
01285 KFbxTypedProperty<fbxDouble3> RotationPivot;
01286
01294 KFbxTypedProperty<fbxDouble3> ScalingOffset;
01295
01303 KFbxTypedProperty<fbxDouble3> ScalingPivot;
01304
01312 KFbxTypedProperty<fbxBool1> TranslationActive;
01313
01320 KFbxTypedProperty<fbxDouble3> Translation;
01321
01329 KFbxTypedProperty<fbxDouble3> TranslationMin;
01330
01338 KFbxTypedProperty<fbxDouble3> TranslationMax;
01339
01347 KFbxTypedProperty<fbxBool1> TranslationMinX;
01348
01356 KFbxTypedProperty<fbxBool1> TranslationMinY;
01357
01365 KFbxTypedProperty<fbxBool1> TranslationMinZ;
01366
01374 KFbxTypedProperty<fbxBool1> TranslationMaxX;
01375
01383 KFbxTypedProperty<fbxBool1> TranslationMaxY;
01384
01392 KFbxTypedProperty<fbxBool1> TranslationMaxZ;
01393
01401 KFbxTypedProperty<ERotationOrder> RotationOrder;
01402
01410 KFbxTypedProperty<fbxBool1> RotationSpaceForLimitOnly;
01411
01419 KFbxTypedProperty<fbxDouble1> RotationStiffnessX;
01420
01428 KFbxTypedProperty<fbxDouble1> RotationStiffnessY;
01429
01437 KFbxTypedProperty<fbxDouble1> RotationStiffnessZ;
01438
01446 KFbxTypedProperty<fbxDouble1> AxisLen;
01447
01455 KFbxTypedProperty<fbxDouble3> PreRotation;
01456
01464 KFbxTypedProperty<fbxDouble3> PostRotation;
01465
01473 KFbxTypedProperty<fbxBool1> RotationActive;
01474
01482 KFbxTypedProperty<fbxDouble3> RotationMin;
01483
01491 KFbxTypedProperty<fbxDouble3> RotationMax;
01492
01500 KFbxTypedProperty<fbxBool1> RotationMinX;
01501
01509 KFbxTypedProperty<fbxBool1> RotationMinY;
01510
01518 KFbxTypedProperty<fbxBool1> RotationMinZ;
01519
01527 KFbxTypedProperty<fbxBool1> RotationMaxX;
01528
01536 KFbxTypedProperty<fbxBool1> RotationMaxY;
01537
01545 KFbxTypedProperty<fbxBool1> RotationMaxZ;
01546
01554 KFbxTypedProperty<ETransformInheritType> InheritType;
01555
01563 KFbxTypedProperty<fbxBool1> ScalingActive;
01564
01571 KFbxTypedProperty<fbxDouble3> Scaling;
01572
01580 KFbxTypedProperty<fbxDouble3> ScalingMin;
01581
01589 KFbxTypedProperty<fbxDouble3> ScalingMax;
01590
01598 KFbxTypedProperty<fbxBool1> ScalingMinX;
01599
01607 KFbxTypedProperty<fbxBool1> ScalingMinY;
01608
01616 KFbxTypedProperty<fbxBool1> ScalingMinZ;
01617
01625 KFbxTypedProperty<fbxBool1> ScalingMaxX;
01626
01634 KFbxTypedProperty<fbxBool1> ScalingMaxY;
01635
01643 KFbxTypedProperty<fbxBool1> ScalingMaxZ;
01644
01652 KFbxTypedProperty<fbxDouble3> GeometricTranslation;
01653
01661 KFbxTypedProperty<fbxDouble3> GeometricRotation;
01662
01670 KFbxTypedProperty<fbxDouble3> GeometricScaling;
01671
01672
01674
01682 KFbxTypedProperty<fbxDouble1> MinDampRangeX;
01683
01691 KFbxTypedProperty<fbxDouble1> MinDampRangeY;
01692
01700 KFbxTypedProperty<fbxDouble1> MinDampRangeZ;
01701
01709 KFbxTypedProperty<fbxDouble1> MaxDampRangeX;
01710
01718 KFbxTypedProperty<fbxDouble1> MaxDampRangeY;
01719
01727 KFbxTypedProperty<fbxDouble1> MaxDampRangeZ;
01728
01736 KFbxTypedProperty<fbxDouble1> MinDampStrengthX;
01737
01745 KFbxTypedProperty<fbxDouble1> MinDampStrengthY;
01746
01754 KFbxTypedProperty<fbxDouble1> MinDampStrengthZ;
01755
01763 KFbxTypedProperty<fbxDouble1> MaxDampStrengthX;
01764
01772 KFbxTypedProperty<fbxDouble1> MaxDampStrengthY;
01773
01781 KFbxTypedProperty<fbxDouble1> MaxDampStrengthZ;
01782
01790 KFbxTypedProperty<fbxDouble1> PreferedAngleX;
01791
01799 KFbxTypedProperty<fbxDouble1> PreferedAngleY;
01800
01808 KFbxTypedProperty<fbxDouble1> PreferedAngleZ;
01810
01817 KFbxTypedProperty<fbxReference*> LookAtProperty;
01818
01825 KFbxTypedProperty<fbxReference*> UpVectorProperty;
01826
01834 KFbxTypedProperty<fbxBool1> Show;
01835
01843 KFbxTypedProperty<fbxBool1> NegativePercentShapeSupport;
01844
01852 KFbxTypedProperty<fbxInteger1> DefaultAttributeIndex;
01853
01861 KFbxTypedProperty<fbxBool1> Freeze;
01862
01872 KFbxTypedProperty<fbxBool1> LODBox;
01874
01875
01876 #ifndef DOXYGEN_SHOULD_SKIP_THIS
01878 // WARNING!
01879
01880
01882 public:
01887
01894 void SetLocalStateFromDefaultTake(bool pRecursive, bool pApplyLimits = false);
01895
01900 void SetDefaultTakeFromLocalState(bool pRecursive);
01901
01908 void SetLocalStateFromCurrentTake(KTime pTime, bool pRecursive,bool pApplyLimits = false);
01909
01915 void SetCurrentTakeFromLocalState(KTime pTime, bool pRecursive);
01916
01923 void ComputeGlobalState(kUInt pUpdateId, bool pRecursive, EPivotSet pPivotSet = eSOURCE_SET, bool pApplyTarget = false);
01924
01930 void ComputeLocalState(kUInt pUpdateId, bool pRecursive);
01931
01935 void SetGlobalState(const KFbxXMatrix& pGX);
01936
01940 KFbxXMatrix& GetGlobalState();
01941
01945 void SetLocalState(const KFbxVector4& pLT,const KFbxVector4& pLR, const KFbxVector4& pLS);
01946
01952 void GetLocalState(KFbxVector4& pLT, KFbxVector4& pLR, KFbxVector4& pLS);
01953
01958 void SetGlobalStateId(kUInt pUpdateId, bool pRecursive);
01959
01963 kUInt GetGlobalStateId();
01964
01969 void SetLocalStateId(kUInt pUpdateId, bool pRecursive);
01970
01974 kUInt GetLocalStateId();
01976
01980 KFbxNodeLimits& GetLimits();
01981
01982
01989 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType = eDEEP_CLONE) const;
01990
01996 virtual bool PropertyNotify(eFbxPropertyNotify pType, KFbxProperty* pProperty);
01997
01998 protected:
01999 KFbxNode(KFbxSdkManager& pManager, char const* pName);
02000
02001 virtual void Construct(const KFbxNode* pFrom);
02002 virtual bool ConstructProperties(bool pForceSet);
02003 virtual void Destruct(bool pRecursive, bool pDependents);
02004
02006 KFbxNode& operator=(KFbxNode const& pNode);
02007
02008 void Reset();
02009 bool GetAnimationIntervalRecursive(KTime& pStart, KTime& pStop);
02010
02011 public:
02012
02016 void AddChildName(char* pChildName);
02017
02022 char* GetChildName(kUInt pIndex);
02023
02027 kUInt GetChildNameCount();
02028
02033 virtual bool SetCurrentTakeNode(int pIndex);
02034
02039 virtual bool SetCurrentTakeNode(char* pName);
02040
02043 void UpdatePivotsAndLimitsFromProperties();
02044
02047 void UpdatePropertiesFromPivotsAndLimits();
02048
02052 void SetRotationActiveProperty(bool pVal);
02053
02057 void PivotSetToMBTransform(EPivotSet pPivotSet);
02058
02059 KFbxXMatrix GetLXFromLocalState( bool pT, bool pR, bool pS, bool pSoff );
02060
02064 virtual KString GetTypeName() const;
02065
02069 virtual KStringList GetTypeFlags() const;
02070
02071 protected:
02072 KMBTransform* GetMBTransform();
02073 void ComputeTRSLocalFromDefaultTake(bool pApplyLimits = false);
02074 void ComputeTRSLocalFromCurrentTake(KTime pTime, bool pApplyLimits = false);
02075
02076
02077 int AddCharacterLink(KFbxCharacter* pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId);
02078 int RemoveCharacterLink(KFbxCharacter* pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId);
02079
02080
02081 private:
02082 KFbxNode& DeepCopy( KFbxNode const& pNode, bool pCopyNodeAttribute );
02083
02084 public:
02085
02086
02087
02088 typedef enum { eCULLING_OFF, eCULLING_ON_CCW, eCULLING_ON_CW } ECullingType;
02089 ECullingType mCullingType;
02090
02091 bool mCorrectInheritType;
02092
02093 protected:
02094 KFbxNode_internal* mPH;
02095 mutable KError mError;
02096
02097 friend class KFbxScene;
02098 friend class KFbxGeometry;
02099 friend class KFbxLight;
02100 friend class KFbxNodeFinderDuplicateName;
02101 friend class KFbxCharacter;
02102 friend class KFbxControlSet;
02103 friend class KFbxNode_internal;
02104 friend class KFbxSurfaceMaterial_internal;
02105 friend class KFbxTexture_internal;
02106 friend class KFbxVideo_internal;
02107
02108 friend class KFbxNodeLimits;
02109 friend class KFbxLimits;
02110 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
02111 };
02112
02113 typedef KFbxNode* HKFbxNode;
02114 typedef class KFBX_DLL KArrayTemplate<KFbxNode*> KArrayKFbxNode;
02115
02116 inline EFbxType FbxTypeOf( ERotationOrder const &pItem ) { return eENUM; }
02117 inline EFbxType FbxTypeOf( ETransformInheritType const &pItem ) { return eENUM; }
02118
02119 #include <fbxfilesdk/fbxfilesdk_nsend.h>
02120
02121 #endif // FBXFILESDK_KFBXPLUGINS_KFBXNODE_H
02122