00001
00004 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXLAYERCONTAINER_H
00005 #define FBXFILESDK_KFBXPLUGINS_KFBXLAYERCONTAINER_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/kfbxnodeattribute.h>
00046 #include <fbxfilesdk/kfbxplugins/kfbxlayer.h>
00047
00048 #include <fbxfilesdk/components/kbaselib/klib/karrayul.h>
00049
00050 #include <fbxfilesdk/kfbxmath/kfbxvector4.h>
00051
00052 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00053
00054 class KFbxSdkManager;
00055
00056
00076 class KFBX_DLL KFbxLayerContainer : public KFbxNodeAttribute
00077 {
00078 KFBXOBJECT_DECLARE(KFbxLayerContainer,KFbxNodeAttribute);
00079 public:
00080
00083 virtual EAttributeType GetAttributeType() const { return eUNIDENTIFIED; }
00084
00089
00093 int CreateLayer();
00094
00096 void ClearLayers();
00097
00101 int GetLayerCount() const;
00102
00108 int GetLayerCount(KFbxLayerElement::ELayerElementType pType, bool pUVCount=false) const;
00109
00114 KFbxLayer* GetLayer(int pIndex);
00115
00120 KFbxLayer const* GetLayer(int pIndex) const;
00121
00128 KFbxLayer* GetLayer(int pIndex, KFbxLayerElement::ELayerElementType pType, bool pIsUV=false);
00129
00136 KFbxLayer const* GetLayer(int pIndex, KFbxLayerElement::ELayerElementType pType, bool pIsUV=false) const;
00137
00146 int GetLayerIndex(int pIndex, KFbxLayerElement::ELayerElementType pType, bool pIsUV=false) const;
00147
00154 int GetLayerTypedIndex(int pGlobalIndex, KFbxLayerElement::ELayerElementType pType, bool pIsUV=false);
00156
00161 bool ConvertDirectToIndexToDirect(int pLayer);
00162
00164
00165
00166
00167
00168
00169
00171
00172 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00173
00174 int GTC(kUInt i, int j);
00175 void* GT (int i, kUInt l, int j);
00176 int AT (void* t, kUInt l, int j);
00177 int GTI(char const* n, kUInt l, int j);
00178 int GMC(kUInt i, void* n = NULL);
00179 void* GM (int i, kUInt l, void* n = NULL);
00180 int AM (void* m, kUInt l, void* n = NULL, bool b = false);
00181 int GMI(char const* n, kUInt l, void* d = NULL);
00182
00183 int AddToLayerElementsList(KFbxLayerElement* pLEl);
00184 void RemoveFromLayerElementsList(KFbxLayerElement* pLEl);
00185
00186 protected:
00187
00188 KFbxLayerContainer(KFbxSdkManager& pManager, char const* pName);
00189 virtual void Destruct(bool pRecursive, bool pDependents);
00190
00191 void CopyLayers(KFbxLayerContainer const* pLayerContainer);
00192 KFbxLayerContainer& operator=(KFbxLayerContainer const& pLayerContainer);
00193
00194 virtual void SetDocument(KFbxDocument* pDocument);
00195 virtual bool ConnecNotify (KFbxConnectEvent const &pEvent);
00196
00197 KArrayTemplate<KFbxLayer*> mLayerArray;
00198 KArrayTemplate<KFbxLayerElement*> mLayerElementsList;
00199
00200 friend class KFbxScene;
00201 friend class KFbxGeometryConverter;
00202
00203 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00204
00205 };
00206
00207 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00208
00209 #endif // FBXFILESDK_KFBXPLUGINS_KFBXLAYERCONTAINER_H
00210