Go to
the documentation of this file.
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 #include <fbxfilesdk/fbxfilesdk_def.h>
00042 
00043 #include <fbxfilesdk/kfbxplugins/kfbxnodeattribute.h>
00044 #include <fbxfilesdk/kfbxplugins/kfbxlayer.h>
00045 
00046 #include <fbxfilesdk/components/kbaselib/klib/karrayul.h>
00047 
00048 #include <fbxfilesdk/kfbxmath/kfbxvector4.h>
00049 
00050 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00051 
00052 class KFbxSdkManager;
00053 
00054 
00061 class KFBX_DLL KFbxLayerContainer : public KFbxNodeAttribute
00062 {
00063     KFBXOBJECT_DECLARE(KFbxLayerContainer,KFbxNodeAttribute);
00064 public:
00065 
00068     virtual EAttributeType GetAttributeType() const;
00069 
00074 
00078     int CreateLayer();
00079 
00081     void ClearLayers();
00082 
00086     int GetLayerCount() const;
00087 
00093     int GetLayerCount(KFbxLayerElement::ELayerElementType pType,  bool pUVCount=false) const;
00094 
00099     KFbxLayer* GetLayer(int pIndex);
00100 
00105     KFbxLayer const* GetLayer(int pIndex) const;
00106 
00115     KFbxLayer* GetLayer(int pIndex, KFbxLayerElement::ELayerElementType pType, bool pIsUV=false);
00116 
00125     KFbxLayer const* GetLayer(int pIndex, KFbxLayerElement::ELayerElementType pType, bool pIsUV=false) const;
00126 
00135     int GetLayerIndex(int pIndex, KFbxLayerElement::ELayerElementType pType, bool pIsUV=false) const;
00136 
00143     int GetLayerTypedIndex(int pGlobalIndex, KFbxLayerElement::ELayerElementType pType, bool pIsUV=false) const;
00145 
00150     bool ConvertDirectToIndexToDirect(int pLayer);
00151 
00153 
00154 
00155 
00156 
00157 
00158 
00160 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00161 
00162     virtual KFbxObject& Copy(const KFbxObject& pObject);
00163 
00164     int  GTC(kUInt i, int j);
00165     void* GT (int  i,    kUInt l, int j); 
00166     int  AT (void* t,    kUInt l, int j);
00167     int  GTI(char const* n, kUInt l, int j);
00168     int  GMC(kUInt i, void* n = NULL);
00169     void* GM (int  i,    kUInt l, void* n = NULL);
00170     int  AM (void* m,    kUInt l, void* n = NULL, bool b = false);
00171     int  GMI(char const* n, kUInt l, void* d = NULL);
00172 
00173     int AddToLayerElementsList(KFbxLayerElement* pLEl);
00174     void RemoveFromLayerElementsList(KFbxLayerElement* pLEl);
00175 
00176 protected:
00177     KFbxLayerContainer(KFbxSdkManager& pManager, char const* pName);
00178     virtual void Destruct(bool pRecursive, bool pDependents);
00179 
00180     void CopyLayers(KFbxLayerContainer const* pLayerContainer);
00181 
00182     virtual void SetDocument(KFbxDocument* pDocument);
00183     virtual bool ConnecNotify (KFbxConnectEvent const &pEvent);
00184 
00185     KArrayTemplate<KFbxLayer*> mLayerArray;
00186     KArrayTemplate<KFbxLayerElement*> mLayerElementsList;
00187 
00188     friend class KFbxScene;
00189     friend class KFbxGeometryConverter;
00190 
00191 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00192 
00193 };
00194 
00195 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00196 
00197 #endif // FBXFILESDK_KFBXPLUGINS_KFBXLAYERCONTAINER_H
00198