- Timestamp:
- Jun 18, 2006, 10:02:52 PM (19 years ago)
- Location:
- branches/gui/src/lib/graphics/importer
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/gui/src/lib/graphics/importer/material.cc
r8571 r8572 431 431 432 432 433 /** 434 * @param blendFunc the Enumerator to convert to a String. 435 * @returns the matching String if found 436 */ 433 437 const std::string& Material::blendFuncToString(GLenum blendFunc) 434 438 { 435 439 for (unsigned int i = 0; i < 9; ++i) 436 if (blendFunc == glBlendFuncParams[i]) 437 return blendFuncNames[i]; 438 return blendFuncNames[0]; 439 } 440 440 if (blendFunc == Material::glBlendFuncParams[i]) 441 return Material::blendFuncNames[i]; 442 PRINTF(2)("Supplied an Invalid Enumerator to blendfunc %d\n", blendFunc); 443 return Material::blendFuncNames[0]; 444 } 445 446 /** 447 * @param blendFuncString the String to convert into a gl-enumeration 448 * @returns the matching GL-enumeration if found. 449 */ 441 450 GLenum Material::stringToBlendFunc(const std::string& blendFuncString) 442 451 { 443 452 for (unsigned int i = 0; i < 9; ++i) 444 if (blendFuncString == blendFuncNames[i])445 return glBlendFuncParams[i];446 return glBlendFuncParams[0];447 } 448 453 if (blendFuncString == Material::blendFuncNames[i]) 454 return Material::glBlendFuncParams[i]; 455 PRINTF(2)("BlendFunction %s not recognized using %s\n", blendFuncString.c_str(), Material::blendFuncNames[0].c_str()); 456 return Material::glBlendFuncParams[0]; 457 } 449 458 450 459 -
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.