FCDocument/FCDMaterialLibrary.h

Go to the documentation of this file.
00001 /*
00002     Copyright (C) 2005-2006 Feeling Software Inc.
00003     MIT License: http://www.opensource.org/licenses/mit-license.php
00004 */
00005 /*
00006     Based on the FS Import classes:
00007     Copyright (C) 2005-2006 Feeling Software Inc
00008     Copyright (C) 2005-2006 Autodesk Media Entertainment
00009     MIT License: http://www.opensource.org/licenses/mit-license.php
00010 */
00011 
00017 #ifndef _FCD_MATERIAL_LIBRARY_H_
00018 #define _FCD_MATERIAL_LIBRARY_H_
00019 
00020 class FCDocument;
00021 class FCDTexture;
00022 class FCDEffect;
00023 class FCDMaterial;
00024 
00025 typedef vector<FCDTexture*> FCDTextureList; 
00026 typedef vector<FCDEffect*> FCDEffectList; 
00027 typedef vector<FCDMaterial*> FCDMaterialList; 
00029 #include "FCDocument/FCDLibrary.h"
00030 
00040 class FCOLLADA_EXPORT FCDMaterialLibrary : public FCDLibrary<FCDEntity>
00041 {
00042 private:
00043     FCDTextureList textures;
00044     FCDEffectList effects;
00045     FCDMaterialList materials;
00046 
00047 public:
00051     FCDMaterialLibrary(FCDocument* document);
00052 
00055     virtual ~FCDMaterialLibrary();
00056 
00059     FCDEffectList& GetEffects() { return effects; }
00060     const FCDEffectList& GetEffects() const { return effects; } 
00064     size_t GetEffectCount() const { return effects.size(); }
00065 
00069     FCDEffect* GetEffect(size_t index) { FUAssert(index < GetEffectCount(), return NULL); return effects.at(index); }
00070     const FCDEffect* GetEffect(size_t index) const { FUAssert(index < GetEffectCount(), return NULL); return effects.at(index); } 
00075     FCDEffect* FindEffect(const string& daeId);
00076 
00079     FCDEffect* AddEffect();
00080 
00084     void ReleaseEffect(FCDEffect* effect);
00085 
00088     FCDMaterialList& GetMaterials() { return materials; }
00089     const FCDMaterialList& GetMaterials() const { return materials; } 
00093     size_t GetMaterialCount() const { return materials.size(); }
00094 
00098     FCDMaterial* GetMaterial(size_t index) { FUAssert(index < GetMaterialCount(), return NULL); return materials.at(index); }
00099     const FCDMaterial* GetMaterial(size_t index) const { FUAssert(index < GetMaterialCount(), return NULL); return materials.at(index); } 
00105     FCDMaterial* FindMaterial(const string& daeId);
00106 
00111     FCDTexture* FindTexture(const string& daeId);
00112     
00115     FCDMaterial* AddMaterial();
00116 
00120     void ReleaseMaterial(FCDMaterial* material);
00121 
00128     virtual FUStatus LoadFromXML(xmlNode* node);
00129 
00134     virtual void WriteToXML(xmlNode* libraryNode) const;
00135 };
00136 
00137 #endif // _FCD_MATERIAL_LIBRARY_H_
00138 

Generated on Fri May 12 16:44:39 2006 for FCollada by  doxygen 1.4.6-NO