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