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 KFbxCameraSwitcher;
00079 class KFbxLight;
00080 class KFbxOpticalReference;
00081 class KFbxCharacter;
00082 class KFbxNode_internal;
00083 class KFbxSurfaceMaterial;
00084
00097 class KFBX_DLL KFbxNode : public KFbxTakeNodeContainer
00098 {
00099 KFBXOBJECT_DECLARE(KFbxNode,KFbxTakeNodeContainer);
00100 public:
00106
00110 KFbxNode* GetParent();
00111 KFbxNode const* GetParent() const;
00112
00126 bool AddChild(KFbxNode* pNode);
00127
00133 KFbxNode* RemoveChild(KFbxNode* pNode);
00134
00139 int GetChildCount(bool pRecursive = false) const;
00140
00146 KFbxNode* GetChild(int pIndex);
00147
00153 KFbxNode const* GetChild(int pIndex) const;
00154
00161 KFbxNode* FindChild(char const* pName, bool pRecursive = true, bool pInitial = false);
00162
00164
00183
00187 void SetTarget(KFbxNode* pNode);
00188
00192 KFbxNode* GetTarget() const;
00193
00197 void SetPostTargetRotation(KFbxVector4 pVector);
00198
00202 KFbxVector4 GetPostTargetRotation() const;
00203
00207 void SetTargetUp(KFbxNode* pNode);
00208
00212 KFbxNode* GetTargetUp() const;
00213
00217 void SetTargetUpVector(KFbxVector4 pVector);
00218
00222 KFbxVector4 GetTargetUpVector() const;
00223
00225
00226
00231 public:
00232 virtual kFbxUpdateId GetUpdateId(eFbxUpdateIdType pUpdateId=eUpdateId_Object) const;
00234
00242 void SetVisibility(bool pIsVisible);
00243
00247 bool GetVisibility() const;
00248
00257 typedef enum
00258 {
00259 eHARD_SHADING,
00260 eWIRE_FRAME,
00261 eFLAT_SHADING,
00262 eLIGHT_SHADING,
00263 eTEXTURE_SHADING,
00264 eLIGHT_TEXTURE_SHADING
00265 } EShadingMode;
00266
00270 void SetShadingMode(EShadingMode pShadingMode);
00271
00275 EShadingMode GetShadingMode() const;
00276
00280 void SetMultiLayer(bool pMultiLayer);
00281
00285 bool GetMultiLayer() const;
00286
00292 typedef enum
00293 {
00294 eOLD_MULTI_TAKE,
00295 eMULTI_TAKE,
00296 eMONO_TAKE
00297 } EMultiTakeMode;
00298
00302 void SetMultiTakeMode(EMultiTakeMode pMultiTakeMode);
00303
00307 EMultiTakeMode GetMultiTakeMode() const;
00309
00314
00324 KFbxNodeAttribute* SetNodeAttribute(KFbxNodeAttribute* pNodeAttribute);
00325
00330 KFbxNodeAttribute* GetNodeAttribute();
00331
00336 KFbxNodeAttribute const* GetNodeAttribute() const;
00337
00341 int GetNodeAttributeCount() const;
00342
00347 int GetDefaultNodeAttributeIndex() const;
00348
00355 bool SetDefaultNodeAttributeIndex(int pIndex);
00356
00363 KFbxNodeAttribute* GetNodeAttributeByIndex(int pIndex);
00364
00371 KFbxNodeAttribute const* GetNodeAttributeByIndex(int pIndex) const;
00372
00379 int GetNodeAttributeIndex(KFbxNodeAttribute* pNodeAttribute) const;
00380
00388 bool AddNodeAttribute(KFbxNodeAttribute* pNodeAttribute);
00389
00396 KFbxNodeAttribute* RemoveNodeAttribute(KFbxNodeAttribute* pNodeAttribute);
00397
00404 KFbxNodeAttribute* RemoveNodeAttributeByIndex(int pIndex);
00405
00410 KFbxLodGroup* GetLodGroup();
00411
00416 KFbxNull* GetNull();
00417
00422 KFbxMarker* GetMarker();
00423
00428 KFbxSkeleton* GetSkeleton();
00429
00435 KFbxGeometry* GetGeometry();
00436
00441 KFbxMesh* GetMesh();
00442
00447 KFbxNurb* GetNurb();
00448
00453 KFbxNurbsSurface* GetNurbsSurface();
00454
00459 KFbxNurbsCurve* GetNurbsCurve();
00460
00465 KFbxTrimNurbsSurface* GetTrimNurbsSurface();
00466
00471 KFbxPatch* GetPatch();
00472
00477 KFbxCamera* GetCamera();
00478
00484 KFbxCameraSwitcher* GetCameraSwitcher();
00485
00490 KFbxLight* GetLight();
00491
00497 KFbxOpticalReference* GetOpticalReference();
00499
00506
00510 void SetDefaultT(const KFbxVector4& pT);
00511
00516 KFbxVector4& GetDefaultT(KFbxVector4& pT);
00517
00521 void SetDefaultR(const KFbxVector4& pR);
00522
00527 KFbxVector4& GetDefaultR(KFbxVector4& pR);
00528
00532 void SetDefaultS(const KFbxVector4& pS);
00533
00538 KFbxVector4& GetDefaultS(KFbxVector4& pS);
00539
00547 void SetDefaultVisibility(double pVisibility);
00548
00556 double GetDefaultVisibility();
00557
00559
00573 void SetTransformationInheritType(ETransformInheritType pInheritType);
00574
00578 void GetTransformationInheritType(ETransformInheritType& pInheritType);
00580
00581
00590
00595 typedef enum
00596 {
00597 eSOURCE_SET,
00598 eDESTINATION_SET
00599 } EPivotSet;
00600
00605 typedef enum
00606 {
00607 ePIVOT_STATE_ACTIVE,
00608 ePIVOT_STATE_REFERENCE
00609 } EPivotState;
00610
00617 void SetPivotState(EPivotSet pPivotSet, EPivotState pPivotState);
00618
00625 void GetPivotState(EPivotSet pPivotSet, EPivotState& pPivotState);
00626
00632 void SetRotationOrder(EPivotSet pPivotSet, ERotationOrder pRotationOrder);
00633
00638 void GetRotationOrder(EPivotSet pPivotSet, ERotationOrder& pRotationOrder);
00639
00648 void SetUseRotationSpaceForLimitOnly(EPivotSet pPivotSet, bool pUseForLimitOnly);
00649
00654 bool GetUseRotationSpaceForLimitOnly(EPivotSet pPivotSet);
00655
00661 void SetRotationActive(bool pVal);
00662
00666 bool GetRotationActive();
00667
00672 void SetUseQuaternionForInterpolation(EPivotSet pPivotSet, bool pUseQuaternion);
00673
00678 bool GetUseQuaternionForInterpolation(EPivotSet pPivotSet) const;
00679
00688 void SetRotationStiffness(KFbxVector4 pRotationStiffness);
00689
00693 KFbxVector4 GetRotationStiffness();
00694
00703 void SetMinDampRange(KFbxVector4 pMinDampRange);
00704
00708 KFbxVector4 GetMinDampRange();
00709
00710
00719 void SetMaxDampRange(KFbxVector4 pMaxDampRange);
00720
00724 KFbxVector4 GetMaxDampRange();
00725
00726
00735 void SetMinDampStrength(KFbxVector4 pMinDampStrength);
00736
00740 KFbxVector4 GetMinDampStrength();
00741
00742
00751 void SetMaxDampStrength(KFbxVector4 pMaxDampStrength);
00752
00756 KFbxVector4 GetMaxDampStrength();
00757
00763 void SetPreferedAngle(KFbxVector4 pPreferedAngle);
00764
00768 KFbxVector4 GetPreferedAngle();
00769
00775 void SetRotationOffset(EPivotSet pPivotSet, KFbxVector4 pVector);
00776
00782 KFbxVector4& GetRotationOffset(EPivotSet pPivotSet) const;
00783
00790 void SetRotationPivot(EPivotSet pPivotSet, KFbxVector4 pVector);
00791
00798 KFbxVector4& GetRotationPivot(EPivotSet pPivotSet) const;
00799
00806 void SetPreRotation(EPivotSet pPivotSet, KFbxVector4 pVector);
00807
00814 KFbxVector4& GetPreRotation(EPivotSet pPivotSet) const;
00815
00822 void SetPostRotation(EPivotSet pPivotSet, KFbxVector4 pVector);
00823
00830 KFbxVector4& GetPostRotation(EPivotSet pPivotSet) const;
00831
00837 void SetScalingOffset(EPivotSet pPivotSet, KFbxVector4 pVector);
00838
00844 KFbxVector4& GetScalingOffset(EPivotSet pPivotSet) const;
00845
00853 void SetScalingPivot(EPivotSet pPivotSet, KFbxVector4 pVector);
00854
00861 KFbxVector4& GetScalingPivot(EPivotSet pPivotSet) const;
00862
00871 void SetGeometricTranslation(EPivotSet pPivotSet, KFbxVector4 pVector);
00872
00877 KFbxVector4 GetGeometricTranslation(EPivotSet pPivotSet) const;
00878
00887 void SetGeometricRotation(EPivotSet pPivotSet, KFbxVector4 pVector);
00888
00893 KFbxVector4 GetGeometricRotation(EPivotSet pPivotSet);
00894
00903 void SetGeometricScaling(EPivotSet pPivotSet, KFbxVector4 pVector);
00904
00909 KFbxVector4 GetGeometricScaling(EPivotSet pPivotSet);
00910
00919 void ConvertPivotAnimation(EPivotSet pConversionTarget, double pFrameRate, bool pKeyReduce=true);
00920
00929 void ConvertPivotAnimationRecursive(EPivotSet pConversionTarget, double pFrameRate, bool pKeyReduce=true);
00930
00935 void ResetPivotSet( KFbxNode::EPivotSet pPivotSet );
00936
00943 void ResetPivotSetAndConvertAnimation( double pFrameRate=30., bool pKeyReduce=false );
00944
00946
00951
00956 KFbxVector4& GetLocalTFromDefaultTake(bool pApplyLimits = false);
00957
00962 KFbxVector4& GetLocalRFromDefaultTake(bool pApplyLimits = false);
00963
00968 KFbxVector4& GetLocalSFromDefaultTake(bool pApplyLimits = false);
00969
00975 KFbxXMatrix& GetGlobalFromDefaultTake(EPivotSet pPivotSet = eSOURCE_SET, bool pApplyTarget = false);
00976
00982 KFbxVector4& GetLocalTFromCurrentTake(KTime pTime, bool pApplyLimits = false);
00983
00989 KFbxVector4& GetLocalRFromCurrentTake(KTime pTime, bool pApplyLimits = false);
00990
00996 KFbxVector4& GetLocalSFromCurrentTake(KTime pTime, bool pApplyLimits = false);
00997
01004 KFbxXMatrix& GetGlobalFromCurrentTake(KTime pTime, EPivotSet pPivotSet = eSOURCE_SET, bool pApplyTarget = false);
01006
01011
01015 int GetCharacterLinkCount();
01016
01029 bool GetCharacterLink(int pIndex, KFbxCharacter** pCharacter, int* pCharacterLinkType, int* pNodeId, int *pNodeSubId);
01030
01041 int FindCharacterLink(KFbxCharacter* pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId);
01043
01055 virtual bool GetAnimationInterval(KTime& pStart, KTime& pStop);
01056
01057
01062
01067 int AddMaterial( KFbxSurfaceMaterial* pMaterial );
01068
01073 bool RemoveMaterial( KFbxSurfaceMaterial* pMaterial );
01074
01078 int GetMaterialCount() const;
01079
01084 KFbxSurfaceMaterial* GetMaterial( int pIndex ) const;
01085
01088 void RemoveAllMaterials();
01089
01095 int GetMaterialIndex( char const* pName ) const;
01096
01098
01104
01108 KError& GetError();
01109
01123 typedef enum
01124 {
01125 eTAKE_NODE_ERROR,
01126 eNODE_NAME_CLASH,
01127 eMATERIAL_NAME_CLASH,
01128 eTEXTURE_NAME_CLASH,
01129 eVIDEO_NAME_CLASH,
01130 eNOT_A_CHILD,
01131 eCYCLIC_GRAPH,
01132 eINDEX_OUT_OF_RANGE,
01133 eATTRIBUTE_NOT_CONNECTED,
01134 eERROR_COUNT
01135 } EError;
01136
01140 EError GetLastErrorID() const;
01141
01145 const char* GetLastErrorString() const;
01146
01148
01149
01154
01162 KFbxTypedProperty<fbxDouble3> LclTranslation;
01163
01171 KFbxTypedProperty<fbxDouble3> LclRotation;
01172
01180 KFbxTypedProperty<fbxDouble3> LclScaling;
01181
01189 KFbxTypedProperty<KFbxXMatrix> GlobalTransform;
01190
01198 KFbxTypedProperty<fbxDouble1> Visibility;
01199
01206 KFbxTypedProperty<fbxDouble1> Weight;
01207
01214 KFbxTypedProperty<fbxDouble3> PoleVector;
01215
01222 KFbxTypedProperty<fbxDouble1> Twist;
01223
01230 KFbxTypedProperty<fbxDouble3> WorldUpVector;
01231
01238 KFbxTypedProperty<fbxDouble3> UpVector;
01239
01246 KFbxTypedProperty<fbxDouble3> AimVector;
01247
01255 KFbxTypedProperty<fbxBool1> QuaternionInterpolate;
01256
01264 KFbxTypedProperty<fbxDouble3> RotationOffset;
01265
01273 KFbxTypedProperty<fbxDouble3> RotationPivot;
01274
01282 KFbxTypedProperty<fbxDouble3> ScalingOffset;
01283
01291 KFbxTypedProperty<fbxDouble3> ScalingPivot;
01292
01300 KFbxTypedProperty<fbxBool1> TranslationActive;
01301
01308 KFbxTypedProperty<fbxDouble3> Translation;
01309
01317 KFbxTypedProperty<fbxDouble3> TranslationMin;
01318
01326 KFbxTypedProperty<fbxDouble3> TranslationMax;
01327
01335 KFbxTypedProperty<fbxBool1> TranslationMinX;
01336
01344 KFbxTypedProperty<fbxBool1> TranslationMinY;
01345
01353 KFbxTypedProperty<fbxBool1> TranslationMinZ;
01354
01362 KFbxTypedProperty<fbxBool1> TranslationMaxX;
01363
01371 KFbxTypedProperty<fbxBool1> TranslationMaxY;
01372
01380 KFbxTypedProperty<fbxBool1> TranslationMaxZ;
01381
01389 KFbxTypedProperty<ERotationOrder> RotationOrder;
01390
01398 KFbxTypedProperty<fbxBool1> RotationSpaceForLimitOnly;
01399
01407 KFbxTypedProperty<fbxDouble1> RotationStiffnessX;
01408
01416 KFbxTypedProperty<fbxDouble1> RotationStiffnessY;
01417
01425 KFbxTypedProperty<fbxDouble1> RotationStiffnessZ;
01426
01434 KFbxTypedProperty<fbxDouble1> AxisLen;
01435
01443 KFbxTypedProperty<fbxDouble3> PreRotation;
01444
01452 KFbxTypedProperty<fbxDouble3> PostRotation;
01453
01461 KFbxTypedProperty<fbxBool1> RotationActive;
01462
01470 KFbxTypedProperty<fbxDouble3> RotationMin;
01471
01479 KFbxTypedProperty<fbxDouble3> RotationMax;
01480
01488 KFbxTypedProperty<fbxBool1> RotationMinX;
01489
01497 KFbxTypedProperty<fbxBool1> RotationMinY;
01498
01506 KFbxTypedProperty<fbxBool1> RotationMinZ;
01507
01515 KFbxTypedProperty<fbxBool1> RotationMaxX;
01516
01524 KFbxTypedProperty<fbxBool1> RotationMaxY;
01525
01533 KFbxTypedProperty<fbxBool1> RotationMaxZ;
01534
01542 KFbxTypedProperty<ETransformInheritType> InheritType;
01543
01551 KFbxTypedProperty<fbxBool1> ScalingActive;
01552
01559 KFbxTypedProperty<fbxDouble3> Scaling;
01560
01568 KFbxTypedProperty<fbxDouble3> ScalingMin;
01569
01577 KFbxTypedProperty<fbxDouble3> ScalingMax;
01578
01586 KFbxTypedProperty<fbxBool1> ScalingMinX;
01587
01595 KFbxTypedProperty<fbxBool1> ScalingMinY;
01596
01604 KFbxTypedProperty<fbxBool1> ScalingMinZ;
01605
01613 KFbxTypedProperty<fbxBool1> ScalingMaxX;
01614
01622 KFbxTypedProperty<fbxBool1> ScalingMaxY;
01623
01631 KFbxTypedProperty<fbxBool1> ScalingMaxZ;
01632
01640 KFbxTypedProperty<fbxDouble3> GeometricTranslation;
01641
01649 KFbxTypedProperty<fbxDouble3> GeometricRotation;
01650
01658 KFbxTypedProperty<fbxDouble3> GeometricScaling;
01659
01660
01662
01670 KFbxTypedProperty<fbxDouble1> MinDampRangeX;
01671
01679 KFbxTypedProperty<fbxDouble1> MinDampRangeY;
01680
01688 KFbxTypedProperty<fbxDouble1> MinDampRangeZ;
01689
01697 KFbxTypedProperty<fbxDouble1> MaxDampRangeX;
01698
01706 KFbxTypedProperty<fbxDouble1> MaxDampRangeY;
01707
01715 KFbxTypedProperty<fbxDouble1> MaxDampRangeZ;
01716
01724 KFbxTypedProperty<fbxDouble1> MinDampStrengthX;
01725
01733 KFbxTypedProperty<fbxDouble1> MinDampStrengthY;
01734
01742 KFbxTypedProperty<fbxDouble1> MinDampStrengthZ;
01743
01751 KFbxTypedProperty<fbxDouble1> MaxDampStrengthX;
01752
01760 KFbxTypedProperty<fbxDouble1> MaxDampStrengthY;
01761
01769 KFbxTypedProperty<fbxDouble1> MaxDampStrengthZ;
01770
01778 KFbxTypedProperty<fbxDouble1> PreferedAngleX;
01779
01787 KFbxTypedProperty<fbxDouble1> PreferedAngleY;
01788
01796 KFbxTypedProperty<fbxDouble1> PreferedAngleZ;
01798
01805 KFbxTypedProperty<fbxReference*> LookAtProperty;
01806
01813 KFbxTypedProperty<fbxReference*> UpVectorProperty;
01814
01822 KFbxTypedProperty<fbxBool1> Show;
01823
01831 KFbxTypedProperty<fbxBool1> NegativePercentShapeSupport;
01832
01840 KFbxTypedProperty<fbxInteger1> DefaultAttributeIndex;
01842
01843
01844 #ifndef DOXYGEN_SHOULD_SKIP_THIS
01846 // WARNING!
01847
01848
01850 public:
01855
01862 void SetLocalStateFromDefaultTake(bool pRecursive, bool pApplyLimits = false);
01863
01868 void SetDefaultTakeFromLocalState(bool pRecursive);
01869
01876 void SetLocalStateFromCurrentTake(KTime pTime, bool pRecursive,bool pApplyLimits = false);
01877
01883 void SetCurrentTakeFromLocalState(KTime pTime, bool pRecursive);
01884
01891 void ComputeGlobalState(kUInt pUpdateId, bool pRecursive, EPivotSet pPivotSet = eSOURCE_SET, bool pApplyTarget = false);
01892
01898 void ComputeLocalState(kUInt pUpdateId, bool pRecursive);
01899
01903 void SetGlobalState(const KFbxXMatrix& pGX);
01904
01906 KFbxXMatrix& GetGlobalState();
01907
01911 void SetLocalState(const KFbxVector4& pLT,const KFbxVector4& pLR, const KFbxVector4& pLS);
01912
01914 void GetLocalState(KFbxVector4& pLT, KFbxVector4& pLR, KFbxVector4& pLS);
01915
01920 void SetGlobalStateId(kUInt pUpdateId, bool pRecursive);
01921
01923 kUInt GetGlobalStateId();
01924
01929 void SetLocalStateId(kUInt pUpdateId, bool pRecursive);
01930
01932 kUInt GetLocalStateId();
01934
01935 KFbxNodeLimits& GetLimits();
01936
01937
01938
01939
01940 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType = eDEEP_CLONE) const;
01941
01942
01943 virtual bool PropertyNotify(eFbxPropertyNotify pType, KFbxProperty* pProperty);
01944
01945 protected:
01946 KFbxNode(KFbxSdkManager& pManager, char const* pName);
01947 virtual ~KFbxNode();
01948
01949 virtual void Construct(const KFbxNode* pFrom);
01950 virtual bool ConstructProperties(bool pForceSet);
01951 virtual void Destruct(bool pRecursive, bool pDependents);
01952
01954 KFbxNode& operator=(KFbxNode const& pNode);
01955
01956 void Reset();
01957 bool GetAnimationIntervalRecursive(KTime& pStart, KTime& pStop);
01958
01959 public:
01960 void AddChildName(char* pChildName);
01961 char* GetChildName(kUInt pIndex);
01962 kUInt GetChildNameCount();
01963
01964 virtual bool SetCurrentTakeNode(int pIndex);
01965 virtual bool SetCurrentTakeNode(char* pName);
01966 void UpdatePivotsAndLimitsFromProperties();
01967 void UpdatePropertiesFromPivotsAndLimits();
01968 void SetRotationActiveProperty(bool pVal);
01969
01970 void PivotSetToMBTransform(EPivotSet pPivotSet);
01971 KFbxXMatrix GetLXFromLocalState( bool pT, bool pR, bool pS, bool pSoff );
01972
01973 virtual KString GetTypeName() const;
01974 virtual KStringList GetTypeFlags() const;
01975
01976 protected:
01977 KMBTransform* GetMBTransform();
01978 void ComputeTRSLocalFromDefaultTake(bool pApplyLimits = false);
01979 void ComputeTRSLocalFromCurrentTake(KTime pTime, bool pApplyLimits = false);
01980
01981
01982 int AddCharacterLink(KFbxCharacter* pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId);
01983 int RemoveCharacterLink(KFbxCharacter* pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId);
01984
01985
01986 private:
01987 KFbxNode& DeepCopy( KFbxNode const& pNode, bool pCopyNodeAttribute );
01988
01989 public:
01990
01991
01992
01993 typedef enum { eCULLING_OFF, eCULLING_ON_CCW, eCULLING_ON_CW } ECullingType;
01994 ECullingType mCullingType;
01995
01996 bool mCorrectInheritType;
01997
01998 protected:
01999 KFbxNode_internal* mPH;
02000 mutable KError mError;
02001
02002 friend class KFbxScene;
02003 friend class KFbxGeometry;
02004 friend class KFbxLight;
02005 friend class KFbxNodeFinderDuplicateName;
02006 friend class KFbxCharacter;
02007 friend class KFbxControlSet;
02008 friend class KFbxNode_internal;
02009 friend class KFbxSurfaceMaterial_internal;
02010 friend class KFbxTexture_internal;
02011 friend class KFbxVideo_internal;
02012
02013 friend class KFbxNodeLimits;
02014 friend class KFbxLimits;
02015 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
02016 };
02017
02018 typedef KFbxNode* HKFbxNode;
02019 typedef class KFBX_DLL KArrayTemplate<KFbxNode*> KArrayKFbxNode;
02020
02021 inline EFbxType FbxTypeOf( ERotationOrder const &pItem ) { return eENUM; }
02022 inline EFbxType FbxTypeOf( ETransformInheritType const &pItem ) { return eENUM; }
02023
02024 #include <fbxfilesdk/fbxfilesdk_nsend.h>
02025
02026 #endif // FBXFILESDK_KFBXPLUGINS_KFBXNODE_H
02027