IGameMaterial.h

Go to the documentation of this file.
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