Encapsulates description of a material. More...
#include <Material.hh>
Public Types | |
enum | BlendMode { BLEND_MODE_BEGIN = 0 , ADD = 0 , MODULATE = 1 , REPLACE = 2 , BLEND_MODE_END } |
enum | ShadeMode { SHADE_MODE_BEGIN = 0 , FLAT = 0 , GOURAUD = 1 , PHONG = 2 , BLINN = 3 , SHADE_MODE_END } |
Public Member Functions | |
Material () | |
Constructor. | |
Material (const math::Color &_clr) | |
Create a material with a default color. | |
~Material () | |
Destructor. | |
double | AlphaThreshold () const |
Get the alpha threshold. | |
math::Color | Ambient () const |
Get the ambient color. | |
BlendMode | Blend () const |
Get the blending mode. | |
void | BlendFactors (double &_srcFactor, double &_dstFactor) const |
Get the blend factors. | |
std::string | BlendStr () const |
Get the blend mode string. | |
bool | DepthWrite () const |
Get depth write. | |
math::Color | Diffuse () const |
Get the diffuse color. | |
math::Color | Emissive () const |
Get the emissive color. | |
bool | Lighting () const |
Get lighting enabled. | |
std::string | Name () const |
Get the name of the material. | |
Pbr * | PbrMaterial () const |
Get the Physically Based Rendering (PBR) material. | |
double | PointSize () const |
Get the point size. | |
float | RenderOrder () const |
Get the render order. | |
void | SetAlphaFromTexture (bool _enabled, double _alpha=0.5, bool _twoSided=true) |
Set the material to use the alpha channel from the textures. | |
void | SetAmbient (const math::Color &_clr) |
Set the ambient color. | |
void | SetBlend (BlendMode _b) |
Set the blending mode. | |
void | SetBlendFactors (double _srcFactor, double _dstFactor) |
Set the blend factors. Will be interpreted as: (texture * _srcFactor) + (scene_pixel * _dstFactor) | |
void | SetDepthWrite (bool _value) |
Set depth write. | |
void | SetDiffuse (const math::Color &_clr) |
Set the diffuse color. | |
void | SetEmissive (const math::Color &_clr) |
Set the emissive color. | |
void | SetLighting (bool _value) |
Set lighting enabled. | |
void | SetPbrMaterial (const Pbr &_pbr) |
Set the Physically Based Rendering (PBR) material. | |
void | SetPointSize (double _size) |
Set the point size. | |
void | SetRenderOrder (float _renderOrder) |
Set the render order. The higher value will be rendered on top of the other coplanar polygons. | |
void | SetShade (ShadeMode _b) |
Set the shading mode param[in] the shading mode. | |
void | SetShininess (double _t) |
Set the shininess. | |
void | SetSpecular (const math::Color &_clr) |
Set the specular color. | |
void | SetTextureImage (const std::string &_tex, const std::shared_ptr< const Image > &_img=nullptr) |
Set a texture image. | |
void | SetTextureImage (const std::string &_tex, const std::string &_resourcePath) |
Set a texture image. | |
void | SetTransparency (double _t) |
Set the transparency percentage (0..1) | |
ShadeMode | Shade () const |
Get the shading mode. | |
std::string | ShadeStr () const |
Get the shade mode string. | |
double | Shininess () const |
Get the shininess. | |
math::Color | Specular () const |
Get the specular color. | |
bool | TextureAlphaEnabled () const |
Get the enable alpha from textures. | |
std::shared_ptr< const Image > | TextureData () const |
Gets the texture image, if the texture was loaded from memory. | |
std::string | TextureImage () const |
Get a texture image. | |
double | Transparency () const |
Get the transparency percentage (0..1) A value of 1 is fully transparent and 0 is not transparent. | |
bool | TwoSidedEnabled () const |
Get the enable two sided rendering. | |
Detailed Description
Encapsulates description of a material.
Member Enumeration Documentation
◆ BlendMode
enum BlendMode |
◆ ShadeMode
enum ShadeMode |
Constructor & Destructor Documentation
◆ Material() [1/2]
Material | ( | ) |
Constructor.
◆ ~Material()
~Material | ( | ) |
Destructor.
◆ Material() [2/2]
|
explicit |
Create a material with a default color.
- Parameters
-
[in] _clr Color of the material
Member Function Documentation
◆ AlphaThreshold()
double AlphaThreshold | ( | ) | const |
Get the alpha threshold.
- Returns
- The alpha threshold value
◆ Ambient()
math::Color Ambient | ( | ) | const |
Get the ambient color.
- Returns
- The ambient color
◆ Blend()
BlendMode Blend | ( | ) | const |
Get the blending mode.
- Returns
- the blend mode
◆ BlendFactors()
void BlendFactors | ( | double & | _srcFactor, |
double & | _dstFactor | ||
) | const |
Get the blend factors.
- Parameters
-
[in] _srcFactor Source factor is returned in this variable [in] _dstFactor Destination factor is returned in this variable
◆ BlendStr()
std::string BlendStr | ( | ) | const |
Get the blend mode string.
◆ DepthWrite()
bool DepthWrite | ( | ) | const |
Get depth write.
- Returns
- the depth write enabled state
◆ Diffuse()
math::Color Diffuse | ( | ) | const |
Get the diffuse color.
- Returns
- The diffuse color
◆ Emissive()
math::Color Emissive | ( | ) | const |
Get the emissive color.
- Returns
- The emissive color
◆ Lighting()
bool Lighting | ( | ) | const |
Get lighting enabled.
- Returns
- the lighting enabled state
◆ Name()
std::string Name | ( | ) | const |
Get the name of the material.
- Returns
- The name of the material
◆ PbrMaterial()
Pbr * PbrMaterial | ( | ) | const |
Get the Physically Based Rendering (PBR) material.
- Returns
- Pointer to the PBR material. Null if it does not exist.
◆ PointSize()
double PointSize | ( | ) | const |
Get the point size.
- Returns
- the point size
◆ RenderOrder()
float RenderOrder | ( | ) | const |
Get the render order.
- Returns
- The render order value
◆ SetAlphaFromTexture()
void SetAlphaFromTexture | ( | bool | _enabled, |
double | _alpha = 0.5 , |
||
bool | _twoSided = true |
||
) |
Set the material to use the alpha channel from the textures.
- Parameters
-
[in] _enabled Enable alpha channel based rendering [in] _alpha Set the alpha threshold value [in] _twoSided Enable two sided rendering
◆ SetAmbient()
void SetAmbient | ( | const math::Color & | _clr | ) |
Set the ambient color.
- Parameters
-
[in] _clr The ambient color
◆ SetBlend()
void SetBlend | ( | BlendMode | _b | ) |
Set the blending mode.
- Parameters
-
[in] _b the blend mode
◆ SetBlendFactors()
void SetBlendFactors | ( | double | _srcFactor, |
double | _dstFactor | ||
) |
Set the blend factors. Will be interpreted as: (texture * _srcFactor) + (scene_pixel * _dstFactor)
- Parameters
-
[in] _srcFactor The source factor [in] _dstFactor The destination factor
◆ SetDepthWrite()
void SetDepthWrite | ( | bool | _value | ) |
Set depth write.
- Parameters
-
[in] _value the depth write enabled state
◆ SetDiffuse()
void SetDiffuse | ( | const math::Color & | _clr | ) |
Set the diffuse color.
- Parameters
-
[in] _clr The diffuse color
◆ SetEmissive()
void SetEmissive | ( | const math::Color & | _clr | ) |
Set the emissive color.
- Parameters
-
[in] _clr The emissive color
◆ SetLighting()
void SetLighting | ( | bool | _value | ) |
Set lighting enabled.
- Parameters
-
[in] _value the lighting enabled state
◆ SetPbrMaterial()
void SetPbrMaterial | ( | const Pbr & | _pbr | ) |
Set the Physically Based Rendering (PBR) material.
- Returns
- The PBR material to set to.
◆ SetPointSize()
void SetPointSize | ( | double | _size | ) |
Set the point size.
- Parameters
-
[in] _size the size
◆ SetRenderOrder()
void SetRenderOrder | ( | float | _renderOrder | ) |
Set the render order. The higher value will be rendered on top of the other coplanar polygons.
- Parameters
-
[in] _renderOrder The render order value
◆ SetShade()
void SetShade | ( | ShadeMode | _b | ) |
Set the shading mode param[in] the shading mode.
◆ SetShininess()
void SetShininess | ( | double | _t | ) |
Set the shininess.
- Parameters
-
[in] _t The shininess value
◆ SetSpecular()
void SetSpecular | ( | const math::Color & | _clr | ) |
Set the specular color.
- Parameters
-
[in] _clr The specular color
◆ SetTextureImage() [1/2]
void SetTextureImage | ( | const std::string & | _tex, |
const std::shared_ptr< const Image > & | _img = nullptr |
||
) |
Set a texture image.
- Parameters
-
[in] _tex The name of the texture, which must be in the resource path or its name if _img is provided [in] _img The image containing the texture if image has been loaded in memory
◆ SetTextureImage() [2/2]
void SetTextureImage | ( | const std::string & | _tex, |
const std::string & | _resourcePath | ||
) |
Set a texture image.
- Parameters
-
[in] _tex The name of the texture [in] _resourcePath Path which contains _tex
◆ SetTransparency()
void SetTransparency | ( | double | _t | ) |
Set the transparency percentage (0..1)
- Parameters
-
[in] _t The amount of transparency (0..1) where a value of 1 is fully transparent and 0 is not transparent.
◆ Shade()
ShadeMode Shade | ( | ) | const |
Get the shading mode.
- Returns
- the shading mode
◆ ShadeStr()
std::string ShadeStr | ( | ) | const |
Get the shade mode string.
◆ Shininess()
double Shininess | ( | ) | const |
Get the shininess.
- Returns
- The shininess value
◆ Specular()
math::Color Specular | ( | ) | const |
Get the specular color.
- Returns
- The specular color
◆ TextureAlphaEnabled()
bool TextureAlphaEnabled | ( | ) | const |
Get the enable alpha from textures.
- Returns
- The enable alpha value
◆ TextureData()
std::shared_ptr< const Image > TextureData | ( | ) | const |
Gets the texture image, if the texture was loaded from memory.
- Returns
- A pointer to the image that was loaded from memory
◆ TextureImage()
std::string TextureImage | ( | ) | const |
Get a texture image.
- Returns
- The name of the texture image (if one exists) or an empty string
◆ Transparency()
double Transparency | ( | ) | const |
Get the transparency percentage (0..1) A value of 1 is fully transparent and 0 is not transparent.
- Returns
- The transparency percentage
◆ TwoSidedEnabled()
bool TwoSidedEnabled | ( | ) | const |
Get the enable two sided rendering.
- Returns
- The enable two sided rendering value
The documentation for this class was generated from the following file: