Kigs Framework  Doc version 0.8
Open source multi purpose Rapid Application Development framework
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Material Class Reference

#include <Material.h>

Inheritance diagram for Material:
Drawable SceneNode CoreModifiable GenericRefCountedBaseClass DX11Material OpenGLMaterial

Public Types

enum  BlendFuncSource
 list of blend function source
 
enum  BlendFuncDest
 list of blend function destination
 

Public Member Functions

 Material (const kstl::string &name, DECLARE_CLASS_NAME_TREE_ARG)
 constructor More...
 
bool PreDraw (TravState *travstate) override
 initialise pre draw method More...
 
void DoPreDraw (TravState *travstate) override
 pre draw method More...
 
void DoPostDraw (TravState *travstate) override
 post draw method More...
 
void SetAmbientColor (kfloat r, kfloat g, kfloat b, kfloat a=KFLOAT_CONST(1.0f))
 set the ambient color More...
 
void GetAmbientColor (kfloat &r, kfloat &g, kfloat &b)
 get the ambient color More...
 
void SetDiffuseColor (kfloat r, kfloat g, kfloat b, kfloat a=KFLOAT_CONST(-1.0f))
 set the diffuse color More...
 
void GetDiffuseColor (kfloat &r, kfloat &g, kfloat &b)
 get the diffuse color More...
 
void SetSpecularColor (kfloat r, kfloat g, kfloat b, kfloat a=KFLOAT_CONST(1.0f))
 set the specular color More...
 
void GetSpecularColor (kfloat &r, kfloat &g, kfloat &b)
 get the specular color More...
 
void SetEmissionColor (kfloat r, kfloat g, kfloat b, kfloat a=KFLOAT_CONST(1.0f))
 set the emissive color More...
 
void GetEmissionColor (kfloat &r, kfloat &g, kfloat &b)
 get the emissive color More...
 
void GetShininess (kfloat &s)
 get the shininess property More...
 
bool Equal (const CoreModifiable &other) override
 compare with another coreModifiable More...
 
- Public Member Functions inherited from Drawable
virtual void DoDraw (TravState *travstate)
 draw method More...
 
void CheckPostDraw (TravState *travstate)
 check before calling corresponding DoPredraw More...
 
virtual bool BBoxUpdate (kdouble time)
 update the bounding box More...
 
bool addItem (const CMSP &item, ItemPosition pos=Last) override
 add item in scene tree More...
 
bool removeItem (const CMSP &item) override
 remove item in scene tree More...
 
virtual void GetGlobalPosition (Matrix3x4 *pLocalToGlobal, kfloat &x, kfloat &y, kfloat &z)
 get the global position of the drawable More...
 
- Public Member Functions inherited from SceneNode
bool addItem (const CMSP &item, ItemPosition pos=Last DECLARE_DEFAULT_LINK_NAME) override
 add item at first or last position
 
- Public Member Functions inherited from CoreModifiable
void Init ()
 Modifiable managmenent.
 
void EmptyItemList ()
 remove all items (sons)
 
CMSP GetInstanceByPath (const std::string &path)
 return the instance corresponding to the given path in sons tree
 
std::string GetRuntimeID () const
 ID.
 
CoreModifiableAttributegetAttribute (KigsID labelid) const
 Attribute management.
 
u32 getNbArrayElements (KigsID attributeLabel) const
 return element count for an array type attribute
 
template<typename attribute_type , typename value_type >
attribute_type * AddDynamicAttribute (KigsID ID, const value_type &value)
 Dynamic attribute management.
 
const kigs::unordered_map< KigsID, ModifiableMethodStruct > * GetMethods ()
 Method management.
 
bool aggregateWith (CMSP &item, ItemPosition pos=Last)
 Aggregate management.
 
void flagAsNotificationCenterRegistered ()
 Flags.
 
void InitParametersFromList (const std::vector< CoreModifiableAttribute * > *params)
 Utility. More...
 
virtual void UninitModifiable ()
 called when InitModifiable has failled : reset read/write flag on all init params More...
 
virtual void ProtectedDestroy ()
 Destroy method decrement refcounter and delete instance if no more used. More...
 
virtual void addUser (CoreModifiable *user)
 add the given parent to list
 
virtual void removeUser (CoreModifiable *user)
 remove user (parent)
 

Protected Member Functions

virtual ~Material ()
 destructor
 
- Protected Member Functions inherited from Drawable
void InitModifiable () override
 init the modifiable and set the _isInit flag to true if OK
 
virtual bool Draw (TravState *)
 initialise draw method More...
 
virtual bool PostDraw (TravState *)
 initialise PostDraw method More...
 
virtual void FatherNode3DNeedBoundingBoxUpdate ()
 update the father node bounding box
 
- Protected Member Functions inherited from CoreModifiable
void UpdateAggregates (const Timer &timer, void *addParam)
 Internals.
 
void Export (std::vector< CoreModifiable * > &savedList, XMLNode *currentNode, bool recursive, ExportSettings *settings)
 Export. More...
 
CoreModifiableAttributeGenericCreateDynamicAttribute (CoreModifiable::ATTRIBUTE_TYPE type, KigsID ID)
 create and add dynamic attribute except arrays
 

Protected Attributes

maInt mFacing
 1 front, 2 back, 3 both
 
maInt mBlendFuncSource
 blend function source
 
maInt mBlendFuncDest
 blend function destination
 
maBool mBlendEnabled
 TRUE if the blend is enabled.
 
maBool mMaterialColorEnabled
 TRUE if the material color is enabled.
 
maVect4DF mAmbientColor
 ambient color
 
maVect4DF mDiffuseColor
 diffuse color
 
maVect4DF mSpecularColor
 specular color
 
maVect4DF mEmissionColor
 emission color
 
maFloat mShininess
 shininess
 
maFloat mTransparency
 transparency
 

Additional Inherited Members

- Static Public Member Functions inherited from CoreModifiable
static std::vector< CMSP > GetRootInstances (const KigsID &cid, bool exactTypeOnly=false)
 static method : return the set of all root instances of the given type
 
static void Append (std::string &XMLString, const std::list< CoreModifiable * > &toexport, bool recursive, ExportSettings *settings=nullptr)
 static method to export the several CoreModifiable to an XML file. if recursive flag is set to true, export also all sons tree More...
 
static void Export (const std::string &filename, CoreModifiable *toexport, bool recursive=false, ExportSettings *settings=nullptr)
 static method to export the given CoreModifiable to an XML file. if recursive flag is set to true, export also all sons tree More...
 
static XMLNodeExportToXMLNode (CoreModifiable *toexport, XML *owner_xml_file, bool recursive, ExportSettings *settings=nullptr)
 static method to export the given CoreModifiable to an XML Node. if recursive flag is set to true, export also all sons tree More...
 
static std::string ExportToXMLString (CoreModifiable *toexport, bool recursive, ExportSettings *settings=nullptr)
 static method to export the given CoreModifiable to an XML file. if recursive flag is set to true, export also all sons tree More...
 
static void Export (std::string &XMLString, const std::list< CoreModifiable * > &toexport, bool recursive, ExportSettings *settings=nullptr)
 static method to export the several CoreModifiable to an XML file. if recursive flag is set to true, export also all sons tree More...
 
static CMSP Import (const std::string &filename, bool noInit=false, bool keepImportFileName=false, ImportState *state=nullptr, const std::string &override_name="")
 return an new CoreModifiable instance using the description found in XML file given by name
 
static CMSP GetInstanceByGlobalPath (const std::string &path)
 static method : return the instance corresponding to the given path, and given search start
 
static void debugPrintfFullTree (int maxindent=3)
 Editor. More...
 
- Static Protected Member Functions inherited from CoreModifiable
template<typename StringType >
static CMSP Import (XMLNodeTemplate< StringType > *currentNode, CoreModifiable *currentModifiable, ImportState &importState)
 recusrive method to add sons and attributes found in the XML file
 

Detailed Description

Base class, generic material object.

ambient color

Attributes

Key : AmbientColor

Key : BlendEnabled

TRUE if the blend is enabled.

Key : BlendFuncDest

blend function destination

Key : BlendFuncSource

blend function source

Key : DiffuseColor

diffuse color

Key : EmissionColor

emission color

Key : Facing

1 front, 2 back, 3 both

Key : MaterialColorEnabled

TRUE if the material color is enabled.

Key : RenderPassMask

Key : Shininess

shininess

Key : Show

Key : Sortable

Key : SpecularColor

specular color

Key : TransarencyFlag

Key : Transparency

transparency

Constructor & Destructor Documentation

◆ Material()

Material::Material ( const kstl::string &  name,
DECLARE_CLASS_NAME_TREE_ARG   
)

constructor

Parameters
name: instance name
DECLARE_CLASS_NAME_TREE_ARG: list of arguments

Member Function Documentation

◆ DoPostDraw()

void Material::DoPostDraw ( TravState travstate)
overridevirtual

post draw method

Parameters
travstate: camera state

Reimplemented from Drawable.

◆ DoPreDraw()

void Material::DoPreDraw ( TravState travstate)
overridevirtual

pre draw method

Parameters
TravState: camera state

Reimplemented from Drawable.

◆ Equal()

bool Material::Equal ( const CoreModifiable other)
overridevirtual

compare with another coreModifiable

Parameters
other: coreModifiable to compare with
Returns
TRUE if the 2 coreModifiable is equal

Reimplemented from CoreModifiable.

◆ GetAmbientColor()

void Material::GetAmbientColor ( kfloat &  r,
kfloat &  g,
kfloat &  b 
)
inline

get the ambient color

Parameters
r: red color (in/out param)
g: green color (in/out param)
b: blue color (in/out param)

◆ GetDiffuseColor()

void Material::GetDiffuseColor ( kfloat &  r,
kfloat &  g,
kfloat &  b 
)
inline

get the diffuse color

Parameters
r: red color (in/out param)
g: green color (in/out param)
b: blue color (in/out param)

◆ GetEmissionColor()

void Material::GetEmissionColor ( kfloat &  r,
kfloat &  g,
kfloat &  b 
)
inline

get the emissive color

Parameters
r: red color (in/out param)
g: green color (in/out param)
b: blue color (in/out param)

◆ GetShininess()

void Material::GetShininess ( kfloat &  s)
inline

get the shininess property

Parameters
s: shininess property (in/out param)

◆ GetSpecularColor()

void Material::GetSpecularColor ( kfloat &  r,
kfloat &  g,
kfloat &  b 
)
inline

get the specular color

Parameters
r: red color (in/out param)
g: green color (in/out param)
b: blue color (in/out param)

◆ PreDraw()

bool Material::PreDraw ( TravState travstate)
inlineoverridevirtual

initialise pre draw method

Parameters
travstate: camera state
Returns
TRUE if a could PreDraw

Reimplemented from Drawable.

Reimplemented in DX11Material, and OpenGLMaterial.

◆ SetAmbientColor()

void Material::SetAmbientColor ( kfloat  r,
kfloat  g,
kfloat  b,
kfloat  a = KFLOAT_CONST(1.0f) 
)
inline

set the ambient color

Parameters
r: red color
g: green color
b: blue color
a: alpha value

◆ SetDiffuseColor()

void Material::SetDiffuseColor ( kfloat  r,
kfloat  g,
kfloat  b,
kfloat  a = KFLOAT_CONST(-1.0f) 
)
inline

set the diffuse color

Parameters
r: red color
g: green color
b: blue color
a: alpha value

◆ SetEmissionColor()

void Material::SetEmissionColor ( kfloat  r,
kfloat  g,
kfloat  b,
kfloat  a = KFLOAT_CONST(1.0f) 
)
inline

set the emissive color

Parameters
r: red color
g: green color
b: blue color
a: alpha value

◆ SetSpecularColor()

void Material::SetSpecularColor ( kfloat  r,
kfloat  g,
kfloat  b,
kfloat  a = KFLOAT_CONST(1.0f) 
)
inline

set the specular color

Parameters
r: red color
g: green color
b: blue color
a: alpha value

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