00001 /********************************************************************** 00002 *< 00003 FILE: IGameMaterial.h 00004 00005 DESCRIPTION: Material interfaces for IGame 00006 00007 CREATED BY: Neil Hazzard, Discreet 00008 00009 HISTORY: created 02/02/02 00010 00011 IGame Version: 1.122 00012 00013 *> Copyright (c) 2002, All Rights Reserved. 00014 **********************************************************************/ 00018 #pragma once 00019 00020 #include "..\stdmat.h" 00021 #include "..\TextureMapIndexConstants.h" 00022 #include "IGameProperty.h" 00023 #include "IGameType.h" 00024 00025 class IGameBitmapTex; 00026 class IGameTextureMap; 00027 class IGameUVGen; 00028 class IGameFX; 00029 00030 00032 00038 class IGameMaterial : public IExportEntity 00039 { 00040 public: 00042 00045 virtual bool IsMultiType()=0; 00046 00048 00051 virtual bool IsSubObjType()=0; 00052 00054 00057 virtual MCHAR * GetMaterialName()=0; 00058 00060 00063 virtual MCHAR * GetMaterialClass()=0; 00064 00066 00070 virtual int GetSubMaterialCount()=0; 00071 00073 00079 virtual IGameMaterial * GetSubMaterial(int index) =0; 00080 00082 00086 virtual int GetMaterialID(int subIndex)=0; 00087 00089 00092 virtual IGameProperty * GetAmbientData()=0; 00093 00095 00098 virtual IGameProperty * GetDiffuseData()=0; 00099 00101 00104 virtual IGameProperty * GetEmissiveData()=0; 00105 00107 00110 virtual IGameProperty * GetSpecularData()=0; 00111 00113 00116 virtual IGameProperty * GetOpacityData()=0; 00117 00119 00122 virtual IGameProperty * GetGlossinessData()=0; 00123 00125 00128 virtual IGameProperty * GetSpecularLevelData()=0; 00129 00131 00134 virtual IGameProperty * GetEmissiveAmtData()=0; 00135 00137 00140 virtual int GetNumberOfTextureMaps()=0; 00141 00143 00147 virtual IGameTextureMap * GetIGameTextureMap(int index) =0; 00148 00150 00153 virtual Mtl * GetMaxMaterial()=0; 00154 00156 00158 virtual IGameFX* GetIGameFX()=0; 00159 00160 }; 00161 00162 00164 00169 class IGameTextureMap : public IExportEntity 00170 { 00171 public: 00172 00174 00177 virtual MCHAR * GetTextureName() = 0; 00178 00180 00183 virtual MCHAR * GetTextureClass()=0; 00184 00185 00187 00191 virtual Texmap * GetMaxTexmap() = 0; 00192 00194 00197 virtual IGameUVGen * GetIGameUVGen()=0; 00198 00200 00203 virtual int GetMapChannel() = 0; 00204 00206 00210 virtual int GetStdMapSlot()=0; 00211 00213 00216 virtual MCHAR * GetBitmapFileName()=0; 00217 00219 00222 virtual IGameProperty * GetClipUData()=0; 00223 00225 00228 virtual IGameProperty * GetClipVData()=0; 00229 00231 00234 virtual IGameProperty * GetClipHData()=0; 00235 00237 00240 virtual IGameProperty * GetClipWData()=0; 00241 00242 00243 }; 00244 00246 00249 /* 00250 class IGameBitmapTex : public IExportEntity 00251 { 00252 public: 00253 00254 virtual BitmapTex* GetMaxBitmapTex()=0; 00255 }; 00256 */ 00257 00258 00259 00261 00266 class IGameUVGen : public IExportEntity 00267 { 00268 public: 00269 00271 00274 virtual IGameProperty * GetUOffsetData() = 0; 00275 00277 00280 virtual IGameProperty * GetVOffsetData() = 0; 00281 00283 00286 virtual IGameProperty * GetUTilingData() = 0; 00287 00289 00292 virtual IGameProperty * GetVTilingData() = 0; 00293 00295 00298 virtual IGameProperty * GetUAngleData() = 0; 00299 00301 00304 virtual IGameProperty * GetVAngleData() = 0; 00305 00307 00310 virtual IGameProperty * GetWAngleData() = 0; 00311 00313 00316 virtual GMatrix GetUVTransform() = 0; 00317 00318 }; 00319 00320