00001 /**************************************************************************************** 00002 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS". 00003 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE 00004 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 00005 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 00006 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 00007 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE . 00008 00009 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 00010 00011 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 00012 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other 00013 trademarks contained herein are the property of their respective owners. 00014 ****************************************************************************************/ 00015 /******************************************************************************\ 00016 * 00017 * File: MaterialLibrary.h 00018 * Creation date: January 15, 2002 00019 * Purpose: Declaration of class 'MaterialLibrary' 00020 * 00021 \******************************************************************************/ 00022 #ifndef _MATERIALLIBRARY_H 00023 #define _MATERIALLIBRARY_H 00024 00025 #include "Template.h" 00026 00027 // Forward declaration 00028 class CSLBaseMaterial; 00029 class CSLMaterial; 00030 class CSLXSIMaterial; 00031 00032 00038 class XSIEXPORT CSLMaterialLibrary 00039 : public CSLTemplate 00040 { 00041 public: 00042 CSLMaterialLibrary(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00043 virtual ~CSLMaterialLibrary(); 00044 00048 CSLMaterial* AddMaterial(); 00049 00053 virtual CSLXSIMaterial* AddXSIMaterial(); 00054 00058 SI_Error ClearMaterials(); 00059 00063 CSLBaseMaterial** GetMaterialList(); 00064 00068 SI_Int GetMaterialCount(); 00069 00074 SI_Error RemoveMaterial(SI_Int in_nIndex); 00075 00080 SI_Error RemoveMaterial(CSLBaseMaterial *in_pMaterial); 00081 00082 CSLBaseMaterial* FindMaterial( const SI_Char* in_szName ); 00083 00084 CSLBaseMaterial* ConnectMaterial(CSLBaseMaterial* in_pNewMaterial); 00085 00086 virtual SI_Error Synchronize(); 00087 virtual ETemplateType Type(); 00088 00089 protected: 00090 CSIBCArray<CSLBaseMaterial *> m_Materials; 00091 00092 private: 00093 void *m_pReserved; // reserved for future extension 00094 }; 00095 00096 #endif