Changeset 8572 in orxonox.OLD for branches/gui/src/lib/graphics/importer/material.h
- Timestamp:
- Jun 18, 2006, 10:02:52 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/gui/src/lib/graphics/importer/material.h
r8571 r8572 24 24 class Material : public BaseObject 25 25 { 26 27 28 26 public: 27 Material (const std::string& mtlName = ""); 28 virtual ~Material (); 29 29 30 30 void loadParams(const TiXmlElement* root); 31 31 32 32 Material& operator=(const Material& material); 33 33 34 35 36 34 bool select () const; 35 bool activateTextureUnit(unsigned int textureNumber); 36 static void unselect(); 37 37 38 39 38 void setIllum (int illum); 39 int getIllumModel() const { return this->illumModel; }; 40 40 41 42 43 44 45 46 47 48 41 void setDiffuse (float r, float g, float b); 42 void setDiffuseColor(const Color& diffuseColor) { this->diffuse = diffuseColor; }; 43 void setAmbient (float r, float g, float b); 44 void setSpecular (float r, float g, float b); 45 void setShininess (float shini); 46 void setTransparency (float trans); 47 void setBlendFunc(GLenum sFactor, GLenum tFactor) { this->sFactor = sFactor; this->tFactor = tFactor; }; 48 void setBlendFuncS(const std::string& sFactor, const std::string& tFactor); 49 49 50 const Color& getDiffuseColor() const { return diffuse; };50 const Color& diffuseColor() const { return diffuse; }; 51 51 52 53 54 55 56 52 // MAPPING // 53 void setDiffuseMap(const Texture& texture, unsigned int textureNumber = 0); 54 void setDiffuseMap(const std::string& dMap, GLenum target = GL_TEXTURE_2D, unsigned int textureNumber = 0); 55 void setSDLDiffuseMap(SDL_Surface *surface, GLenum target = GL_TEXTURE_2D, unsigned int textureNumber = 0); 56 void renderToTexture(unsigned int textureNumber, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); 57 57 58 59 60 61 58 void setAmbientMap(const std::string& aMap, GLenum target = GL_TEXTURE_2D); 59 void setSpecularMap(const std::string& sMap, GLenum target = GL_TEXTURE_2D); 60 void setBump(const std::string& bump); 61 GLuint getDiffuseTexture(unsigned int i = 0) const { return (this->textures.size() > i)? this->textures[i].getTexture() : 0; }; 62 62 63 63 static void addTexturePath(const std::string& pathName); 64 64 65 66 65 const std::string& blendFuncToString(GLenum blendFunc); 66 GLenum stringToBlendFunc(const std::string& blendFuncString); 67 67 68 68 69 70 69 public: 70 static const GLenum glTextureArbs[]; //!< The Texture ARB's 71 71 72 73 72 static const GLenum glBlendFuncParams[]; 73 static const std::string blendFuncNames[]; 74 74 75 75 static unsigned int getMaxTextureUnits(); 76 76 77 78 77 private: 78 static const Material* selectedMaterial; //!< The currently selected material. 79 79 80 81 82 83 84 85 86 80 int illumModel; //!< The IlluminationModel is either flat or smooth. 81 Color diffuse; //!< The diffuse color of the Material. (also transparency.) 82 Color ambient; //!< The ambient color of the Material. 83 Color specular; //!< The specular color of the Material. 84 float shininess; //!< The shininess of the Material. 85 GLenum sFactor; //!< The Blending Factor for the Source. 86 GLenum tFactor; //!< The Blending Factor for the Destination. 87 87 88 88 std::vector<Texture> textures; //!< An Array of Textures. 89 89 90 91 90 Texture* ambientTexture; //!< The ambient texture of the Material. 91 Texture* specularTexture; //!< The specular texture of the Material. 92 92 }; 93 93
Note: See TracChangeset
for help on using the changeset viewer.