Developer Documentation
ACG::SceneGraph::Material Class Reference

#include <OpenFlipper/libs_required/ACG/Scenegraph/MaterialNode.hh>

Public Member Functions

 Material ()
 Default constructor. More...
 
virtual ~Material ()
 Deconstructor. More...
 
 Material (const Material &)=default
 Copy constructor.
 
QString serializeToJson () const
 
void deserializeFromJson (const QString &json)
 
void deserializeFromVariantMap (const QVariantMap &matMap)
 
void color (const Vec4f &_c)
 Set color based on _c. More...
 
void generateRandomColor ()
 Creates a randomized color and sets it. More...
 
void baseColor (const Vec4f &_c)
 set the base color (Sets the baseColor which is the same as the emission(const Vec4f& _c) ) More...
 
const Vec4fbaseColor () const
 get the base color ( Same as emission() ) More...
 
void emissionColor (const Vec4f &_c)
 set emission ( Same as baseColor( const Vec4f& _c )) ) More...
 
const Vec4femissionColor () const
 get emission ( Same as baseColor() ) More...
 
void ambientColor (const Vec4f &_a)
 set the ambient color. More...
 
const Vec4fambientColor () const
 get the ambient color. More...
 
void diffuseColor (const Vec4f &_d)
 set the diffuse color. More...
 
const Vec4fdiffuseColor () const
 get the diffuse color. More...
 
void specularColor (const Vec4f &_s)
 set the specular color More...
 
const Vec4fspecularColor () const
 get the specular color More...
 
void overlayColor (const Vec4f &_s)
 set the overlay color (This can be used to render overlays e.g. additional wireframes in a different color) More...
 
const Vec4foverlayColor () const
 get the overlay color (This can be used to render overlays e.g. additional wireframes in a different color) More...
 
void colorMaterial (const bool _cm)
 Set colorMaterial. More...
 
void enableColorMaterial ()
 Enable Color Material. More...
 
void disableColorMaterial ()
 Disable Color Material. More...
 
bool colorMaterial ()
 get colorMaterial state More...
 
void shininess (float _s)
 set shininess More...
 
float shininess () const
 get shininess More...
 
void reflectance (double _m)
 set reflectance ( not used in OpenGL Rendering) More...
 
double reflectance () const
 get reflectance ( not used in OpenGL Rendering) More...
 
void indexOfRefraction (double _m)
 set index of refraction More...
 
double indexOfRefraction () const
 get index of refraction ( not used in OpenGL Rendering) More...
 
void setRefractive (bool _r)
 set refractive flag More...
 
bool isRefractive () const
 get refractive flag More...
 
void pointSize (float _sz)
 set point size (default: 1.0) More...
 
float pointSize () const
 get point size More...
 
void lineWidth (float _sz)
 set line width (default: 1.0) More...
 
float lineWidth () const
 get line width More...
 
void roundPoints (bool _b)
 set: round points enabled More...
 
bool roundPoints () const
 get: round points enabled More...
 
void lineSmooth (bool _b)
 set: smooth lines enabled More...
 
bool lineSmooth () const
 get: rsmooth lines enabled More...
 
void enableAlphaTest (float _clip)
 enable alpha test (draw pixels if alpha >= _clip) More...
 
void disableAlphaTest ()
 disable alpha test More...
 
bool alphaTest () const
 Return state of Alpha test. More...
 
void enableMultisampling ()
 Enable Multisampling. More...
 
void disableMultisampling ()
 enable alpha test (draw pixels if alpha >= _clip) More...
 
bool multiSampling () const
 Get state of multisampling. More...
 
void multisampling (bool _state)
 Set state of multisampling. More...
 
float alphaValue () const
 get current alpha value for alpha_test More...
 
bool blending () const
 
GLenum blendingParam1 () const
 
GLenum blendingParam2 () const
 
void enableBlending (GLenum _p1=GL_SRC_ALPHA, GLenum _p2=GL_ONE_MINUS_SRC_ALPHA)
 enable blending with Parameters (_p1, _p2) More...
 
void disableBlending ()
 disable blending More...
 
bool backfaceCulling () const
 
void enableBackfaceCulling ()
 enable backface culling (not active by default, see applyProperties) More...
 
void disableBackfaceCulling ()
 disable backface culling (not active by default, see applyProperties) More...
 
bool isEmissive () const
 

Static Public Member Functions

static bool support_json_serialization ()
 

Protected Attributes

Vec4f baseColor_
 
Vec4f ambientColor_
 
Vec4f diffuseColor_
 
Vec4f specularColor_
 
Vec4f overlayColor_
 
float shininess_
 
double reflectance_
 
double indexOfRefraction_
 
bool isRefractive_
 
float pointSize_
 
float lineWidth_
 
bool roundPoints_
 
bool linesSmooth_
 
bool alphaTest_
 
float alphaClip_
 
bool blending_
 
GLenum blendParam1_
 
GLenum blendParam2_
 
bool colorMaterial_
 
bool backfaceCulling_
 
bool multiSampling_
 

Friends

class MaterialNode
 Materialnode. More...
 

Detailed Description

Class to store the properties of a material.

Definition at line 79 of file MaterialNode.hh.

Constructor & Destructor Documentation

◆ Material()

ACG::SceneGraph::Material::Material ( )
inline

Default constructor.

Definition at line 85 of file MaterialNode.hh.

◆ ~Material()

virtual ACG::SceneGraph::Material::~Material ( )
inlinevirtual

Deconstructor.

Definition at line 109 of file MaterialNode.hh.

Member Function Documentation

◆ alphaTest()

bool ACG::SceneGraph::Material::alphaTest ( ) const
inline

Return state of Alpha test.

Definition at line 231 of file MaterialNode.hh.

◆ alphaValue()

float ACG::SceneGraph::Material::alphaValue ( ) const
inline

get current alpha value for alpha_test

Definition at line 254 of file MaterialNode.hh.

◆ ambientColor() [1/2]

const Vec4f & ACG::SceneGraph::Material::ambientColor ( ) const
inline

get the ambient color.

Definition at line 156 of file MaterialNode.hh.

◆ ambientColor() [2/2]

void ACG::SceneGraph::Material::ambientColor ( const Vec4f _a)
inline

set the ambient color.

Definition at line 154 of file MaterialNode.hh.

◆ backfaceCulling()

bool ACG::SceneGraph::Material::backfaceCulling ( ) const
inline

Definition at line 268 of file MaterialNode.hh.

◆ baseColor() [1/2]

const Vec4f & ACG::SceneGraph::Material::baseColor ( ) const
inline

get the base color ( Same as emission() )

Definition at line 146 of file MaterialNode.hh.

◆ baseColor() [2/2]

void ACG::SceneGraph::Material::baseColor ( const Vec4f _c)
inline

set the base color (Sets the baseColor which is the same as the emission(const Vec4f& _c) )

Definition at line 144 of file MaterialNode.hh.

◆ blending()

bool ACG::SceneGraph::Material::blending ( ) const
inline

Definition at line 256 of file MaterialNode.hh.

◆ blendingParam1()

GLenum ACG::SceneGraph::Material::blendingParam1 ( ) const
inline

Definition at line 258 of file MaterialNode.hh.

◆ blendingParam2()

GLenum ACG::SceneGraph::Material::blendingParam2 ( ) const
inline

Definition at line 259 of file MaterialNode.hh.

◆ color()

void ACG::SceneGraph::Material::color ( const Vec4f _c)
inline

Set color based on _c.

Basecolor (which is the emitted color is set to zero) The other colors are based on the given color _c

Parameters
_cSample color used to compute the other color components (ambient, diffuse, specular)

Definition at line 126 of file MaterialNode.hh.

◆ colorMaterial() [1/2]

bool ACG::SceneGraph::Material::colorMaterial ( )
inline

get colorMaterial state

Definition at line 180 of file MaterialNode.hh.

◆ colorMaterial() [2/2]

void ACG::SceneGraph::Material::colorMaterial ( const bool  _cm)
inline

Set colorMaterial.

Definition at line 174 of file MaterialNode.hh.

◆ deserializeFromJson()

void ACG::SceneGraph::Material::deserializeFromJson ( const QString &  json)

Definition at line 158 of file MaterialNode.cc.

◆ deserializeFromVariantMap()

void ACG::SceneGraph::Material::deserializeFromVariantMap ( const QVariantMap &  matMap)

Definition at line 134 of file MaterialNode.cc.

◆ diffuseColor() [1/2]

const Vec4f & ACG::SceneGraph::Material::diffuseColor ( ) const
inline

get the diffuse color.

Definition at line 161 of file MaterialNode.hh.

◆ diffuseColor() [2/2]

void ACG::SceneGraph::Material::diffuseColor ( const Vec4f _d)
inline

set the diffuse color.

Definition at line 159 of file MaterialNode.hh.

◆ disableAlphaTest()

void ACG::SceneGraph::Material::disableAlphaTest ( )
inline

disable alpha test

Definition at line 228 of file MaterialNode.hh.

◆ disableBackfaceCulling()

void ACG::SceneGraph::Material::disableBackfaceCulling ( )
inline

disable backface culling (not active by default, see applyProperties)

Definition at line 273 of file MaterialNode.hh.

◆ disableBlending()

void ACG::SceneGraph::Material::disableBlending ( )
inline

disable blending

Definition at line 266 of file MaterialNode.hh.

◆ disableColorMaterial()

void ACG::SceneGraph::Material::disableColorMaterial ( )
inline

Disable Color Material.

Definition at line 178 of file MaterialNode.hh.

◆ disableMultisampling()

void ACG::SceneGraph::Material::disableMultisampling ( )
inline

enable alpha test (draw pixels if alpha >= _clip)

Definition at line 239 of file MaterialNode.hh.

◆ emissionColor() [1/2]

const Vec4f & ACG::SceneGraph::Material::emissionColor ( ) const
inline

get emission ( Same as baseColor() )

Definition at line 151 of file MaterialNode.hh.

◆ emissionColor() [2/2]

void ACG::SceneGraph::Material::emissionColor ( const Vec4f _c)
inline

set emission ( Same as baseColor( const Vec4f& _c )) )

Definition at line 149 of file MaterialNode.hh.

◆ enableAlphaTest()

void ACG::SceneGraph::Material::enableAlphaTest ( float  _clip)
inline

enable alpha test (draw pixels if alpha >= _clip)

Definition at line 223 of file MaterialNode.hh.

◆ enableBackfaceCulling()

void ACG::SceneGraph::Material::enableBackfaceCulling ( )
inline

enable backface culling (not active by default, see applyProperties)

Definition at line 271 of file MaterialNode.hh.

◆ enableBlending()

void ACG::SceneGraph::Material::enableBlending ( GLenum  _p1 = GL_SRC_ALPHA,
GLenum  _p2 = GL_ONE_MINUS_SRC_ALPHA 
)
inline

enable blending with Parameters (_p1, _p2)

Definition at line 262 of file MaterialNode.hh.

◆ enableColorMaterial()

void ACG::SceneGraph::Material::enableColorMaterial ( )
inline

Enable Color Material.

Definition at line 176 of file MaterialNode.hh.

◆ enableMultisampling()

void ACG::SceneGraph::Material::enableMultisampling ( )
inline

Enable Multisampling.

Definition at line 234 of file MaterialNode.hh.

◆ generateRandomColor()

void ACG::SceneGraph::Material::generateRandomColor ( )
inline

Creates a randomized color and sets it.

Definition at line 136 of file MaterialNode.hh.

◆ indexOfRefraction() [1/2]

double ACG::SceneGraph::Material::indexOfRefraction ( ) const
inline

get index of refraction ( not used in OpenGL Rendering)

Definition at line 195 of file MaterialNode.hh.

◆ indexOfRefraction() [2/2]

void ACG::SceneGraph::Material::indexOfRefraction ( double  _m)
inline

set index of refraction

Definition at line 193 of file MaterialNode.hh.

◆ isEmissive()

bool ACG::SceneGraph::Material::isEmissive ( ) const
inline

Definition at line 275 of file MaterialNode.hh.

◆ isRefractive()

bool ACG::SceneGraph::Material::isRefractive ( ) const
inline

get refractive flag

Definition at line 200 of file MaterialNode.hh.

◆ lineSmooth() [1/2]

bool ACG::SceneGraph::Material::lineSmooth ( ) const
inline

get: rsmooth lines enabled

Definition at line 220 of file MaterialNode.hh.

◆ lineSmooth() [2/2]

void ACG::SceneGraph::Material::lineSmooth ( bool  _b)
inline

set: smooth lines enabled

Definition at line 218 of file MaterialNode.hh.

◆ lineWidth() [1/2]

float ACG::SceneGraph::Material::lineWidth ( ) const
inline

get line width

Definition at line 210 of file MaterialNode.hh.

◆ lineWidth() [2/2]

void ACG::SceneGraph::Material::lineWidth ( float  _sz)
inline

set line width (default: 1.0)

Definition at line 208 of file MaterialNode.hh.

◆ multiSampling()

bool ACG::SceneGraph::Material::multiSampling ( ) const
inline

Get state of multisampling.

Definition at line 244 of file MaterialNode.hh.

◆ multisampling()

void ACG::SceneGraph::Material::multisampling ( bool  _state)
inline

Set state of multisampling.

Definition at line 249 of file MaterialNode.hh.

◆ overlayColor() [1/2]

const Vec4f & ACG::SceneGraph::Material::overlayColor ( ) const
inline

get the overlay color (This can be used to render overlays e.g. additional wireframes in a different color)

Definition at line 171 of file MaterialNode.hh.

◆ overlayColor() [2/2]

void ACG::SceneGraph::Material::overlayColor ( const Vec4f _s)
inline

set the overlay color (This can be used to render overlays e.g. additional wireframes in a different color)

Definition at line 169 of file MaterialNode.hh.

◆ pointSize() [1/2]

float ACG::SceneGraph::Material::pointSize ( ) const
inline

get point size

Definition at line 205 of file MaterialNode.hh.

◆ pointSize() [2/2]

void ACG::SceneGraph::Material::pointSize ( float  _sz)
inline

set point size (default: 1.0)

Definition at line 203 of file MaterialNode.hh.

◆ reflectance() [1/2]

double ACG::SceneGraph::Material::reflectance ( ) const
inline

get reflectance ( not used in OpenGL Rendering)

Definition at line 190 of file MaterialNode.hh.

◆ reflectance() [2/2]

void ACG::SceneGraph::Material::reflectance ( double  _m)
inline

set reflectance ( not used in OpenGL Rendering)

Definition at line 188 of file MaterialNode.hh.

◆ roundPoints() [1/2]

bool ACG::SceneGraph::Material::roundPoints ( ) const
inline

get: round points enabled

Definition at line 215 of file MaterialNode.hh.

◆ roundPoints() [2/2]

void ACG::SceneGraph::Material::roundPoints ( bool  _b)
inline

set: round points enabled

Definition at line 213 of file MaterialNode.hh.

◆ serializeToJson()

QString ACG::SceneGraph::Material::serializeToJson ( ) const

Definition at line 104 of file MaterialNode.cc.

◆ setRefractive()

void ACG::SceneGraph::Material::setRefractive ( bool  _r)
inline

set refractive flag

Definition at line 198 of file MaterialNode.hh.

◆ shininess() [1/2]

float ACG::SceneGraph::Material::shininess ( ) const
inline

get shininess

Definition at line 185 of file MaterialNode.hh.

◆ shininess() [2/2]

void ACG::SceneGraph::Material::shininess ( float  _s)
inline

set shininess

Definition at line 183 of file MaterialNode.hh.

◆ specularColor() [1/2]

const Vec4f & ACG::SceneGraph::Material::specularColor ( ) const
inline

get the specular color

Definition at line 166 of file MaterialNode.hh.

◆ specularColor() [2/2]

void ACG::SceneGraph::Material::specularColor ( const Vec4f _s)
inline

set the specular color

Definition at line 164 of file MaterialNode.hh.

◆ support_json_serialization()

bool ACG::SceneGraph::Material::support_json_serialization ( )
static

Definition at line 100 of file MaterialNode.cc.

Friends And Related Function Documentation

◆ MaterialNode

friend class MaterialNode
friend

Materialnode.

Definition at line 81 of file MaterialNode.hh.

Member Data Documentation

◆ alphaClip_

float ACG::SceneGraph::Material::alphaClip_
protected

Definition at line 296 of file MaterialNode.hh.

◆ alphaTest_

bool ACG::SceneGraph::Material::alphaTest_
protected

Definition at line 295 of file MaterialNode.hh.

◆ ambientColor_

Vec4f ACG::SceneGraph::Material::ambientColor_
protected

Definition at line 280 of file MaterialNode.hh.

◆ backfaceCulling_

bool ACG::SceneGraph::Material::backfaceCulling_
protected

Definition at line 303 of file MaterialNode.hh.

◆ baseColor_

Vec4f ACG::SceneGraph::Material::baseColor_
protected

Definition at line 279 of file MaterialNode.hh.

◆ blending_

bool ACG::SceneGraph::Material::blending_
protected

Definition at line 298 of file MaterialNode.hh.

◆ blendParam1_

GLenum ACG::SceneGraph::Material::blendParam1_
protected

Definition at line 299 of file MaterialNode.hh.

◆ blendParam2_

GLenum ACG::SceneGraph::Material::blendParam2_
protected

Definition at line 300 of file MaterialNode.hh.

◆ colorMaterial_

bool ACG::SceneGraph::Material::colorMaterial_
protected

Definition at line 302 of file MaterialNode.hh.

◆ diffuseColor_

Vec4f ACG::SceneGraph::Material::diffuseColor_
protected

Definition at line 281 of file MaterialNode.hh.

◆ indexOfRefraction_

double ACG::SceneGraph::Material::indexOfRefraction_
protected

Definition at line 287 of file MaterialNode.hh.

◆ isRefractive_

bool ACG::SceneGraph::Material::isRefractive_
protected

Definition at line 288 of file MaterialNode.hh.

◆ linesSmooth_

bool ACG::SceneGraph::Material::linesSmooth_
protected

Definition at line 293 of file MaterialNode.hh.

◆ lineWidth_

float ACG::SceneGraph::Material::lineWidth_
protected

Definition at line 290 of file MaterialNode.hh.

◆ multiSampling_

bool ACG::SceneGraph::Material::multiSampling_
protected

Definition at line 305 of file MaterialNode.hh.

◆ overlayColor_

Vec4f ACG::SceneGraph::Material::overlayColor_
protected

Definition at line 283 of file MaterialNode.hh.

◆ pointSize_

float ACG::SceneGraph::Material::pointSize_
protected

Definition at line 289 of file MaterialNode.hh.

◆ reflectance_

double ACG::SceneGraph::Material::reflectance_
protected

Definition at line 286 of file MaterialNode.hh.

◆ roundPoints_

bool ACG::SceneGraph::Material::roundPoints_
protected

Definition at line 292 of file MaterialNode.hh.

◆ shininess_

float ACG::SceneGraph::Material::shininess_
protected

Definition at line 285 of file MaterialNode.hh.

◆ specularColor_

Vec4f ACG::SceneGraph::Material::specularColor_
protected

Definition at line 282 of file MaterialNode.hh.


The documentation for this class was generated from the following files: