ISimpleMaterial.h

Go to the documentation of this file.
00001 //
00002 // Copyright [2009] Autodesk, Inc.  All rights reserved. 
00003 //
00004 // This computer source code and related instructions and comments are the
00005 // unpublished confidential and proprietary information of Autodesk, Inc. and
00006 // are protected under applicable copyright and trade secret law.  They may
00007 // not be disclosed to, copied or used by any third party without the prior
00008 // written consent of Autodesk, Inc.
00009 //
00010 
00011 #pragma once
00012 
00013 #include "..\baseinterface.h"
00014 #include "..\acolor.h"
00015 #include "..\export.h"
00016 #include "..\AnimPropertyID.h"
00017 #include "..\matrix3.h"
00018 
00019 class TexHandle;
00020 
00021 namespace MaxSDK
00022 {
00023     namespace Graphics
00024     {
00061         class ISimpleMaterial : public BaseInterface
00062         {
00063         public:
00064 
00066             enum FillMode
00067             {
00068                 FillPoint,          
00069                 FillWireframe,      
00070                 FillSolid,          
00071             };
00072 
00074             enum MapUsage
00075             {
00076                 UsageDiffuse = 0,   
00077                 UsageOpacity,       
00078                 // to add more
00079                 MaxUsage,
00080             };
00081 
00085             virtual ISimpleMaterial* Clone() = 0;
00086 
00090             virtual void SetFillMode(ISimpleMaterial::FillMode mode) = 0;
00091 
00095             virtual ISimpleMaterial::FillMode GetFillMode() const = 0;
00096 
00100             virtual void SetAmbientColor(const AColor& color) = 0;
00101 
00105             virtual const AColor& GetAmbientColor() const = 0;
00106 
00111             virtual void SetDiffuseColor(const AColor& color) = 0;
00112 
00116             virtual const AColor& GetDiffuseColor() const = 0; 
00117 
00121             virtual void SetSpecularColor(const AColor& color) = 0;
00122 
00126             virtual const AColor& GetSpecularColor() const = 0;
00127 
00131             virtual void SetEmissiveColor(const AColor& color) = 0;
00132             
00136             virtual const AColor& GetEmissiveColor() const = 0;
00137 
00141             virtual void SetSpecularPower(float power) = 0;
00142 
00147             virtual float GetSpecularPower() = 0;
00148 
00154             virtual void SetSpecularLevel(float level) = 0;
00155 
00159             virtual float GetSpecularLevel() const = 0;
00160 
00164             virtual void SetSelfIllumColorOn(bool bOn) = 0;
00165 
00169             virtual bool GetSelfIllumColorOn() const = 0;
00170             
00176             virtual bool SetTextureTransform(MapUsage usage, const Matrix3& transform) = 0;
00177 
00182             virtual Matrix3& GetTextureTransform(MapUsage usage) = 0;
00183 
00190             virtual bool SetTexture(TexHandle* pTexture, MapUsage usage) = 0;
00191             
00196             virtual TexHandle* GetTexture(MapUsage usage) = 0;
00197             
00200             virtual void ClearTextures() = 0;
00201         };
00202 
00203     }
00204 }
00205