class ART::IMaterial

Material interface for material manipulation. More...

#include <ARTIMaterial.h>

Inherits: IREDObject.

Public functions:

virtual doubleGetAlphaThreshold ( ) const = 0
virtual const RED::Color &GetBackDiffuse ( ) const = 0
virtual RED::MESH_CHANNELGetBackDiffuseChannel ( ) const = 0
virtual const RED::Matrix &GetBackDiffuseMatrix ( ) const = 0
virtual const RED::Object *GetBackDiffuseTexture ( ) const = 0
virtual voidGetBackDiffuseWrap ( bool & oRepeatU, bool & oRepeatV ) const = 0
virtual RED::MESH_CHANNELGetBumpChannel ( ) const = 0
virtual const RED::Matrix &GetBumpMatrix ( ) const = 0
virtual const RED::Object *GetBumpTexture ( ) const = 0
virtual voidGetBumpWrap ( bool & oRepeatU, bool & oRepeatV ) const = 0
virtual const RED::Color &GetDiffuse ( ) const = 0
virtual RED::MESH_CHANNELGetDiffuseChannel ( ) const = 0
virtual const RED::Matrix &GetDiffuseMatrix ( ) const = 0
virtual const RED::Object *GetDiffuseTexture ( ) const = 0
virtual voidGetDiffuseWrap ( bool & oRepeatU, bool & oRepeatV ) const = 0
virtual doubleGetEmissiveIntensity ( ) const = 0
virtual doubleGetGlossiness ( ) const = 0
virtual doubleGetIOR ( ) const = 0
virtual doubleGetReflectance ( ) const = 0
virtual RED::MESH_CHANNELGetReflectanceChannel ( ) const = 0
virtual const RED::Matrix &GetReflectanceMatrix ( ) const = 0
virtual const RED::Object *GetReflectanceTexture ( ) const = 0
virtual voidGetReflectanceWrap ( bool & oRepeatU, bool & oRepeatV ) const = 0
virtual doubleGetTranslucency ( ) const = 0
virtual RED::MESH_CHANNELGetTranslucencyChannel ( ) const = 0
virtual const RED::Matrix &GetTranslucencyMatrix ( ) const = 0
virtual const RED::Object *GetTranslucencyTexture ( ) const = 0
virtual voidGetTranslucencyWrap ( bool & oRepeatU, bool & oRepeatV ) const = 0
virtual doubleGetTransmission ( ) const = 0
virtual RED::MESH_CHANNELGetTransmissionChannel ( ) const = 0
virtual const RED::Matrix &GetTransmissionMatrix ( ) const = 0
virtual const RED::Object *GetTransmissionTexture ( ) const = 0
virtual voidGetTransmissionWrap ( bool & oRepeatU, bool & oRepeatV ) const = 0
virtual boolHasTransparency ( ) const = 0
virtual boolIsDoubleSided ( ) const = 0
virtual boolIsEmissive ( ) const = 0
virtual boolIsMasked ( ) const = 0
virtual voidSetAlphaThreshold ( double iThreshold ) = 0
virtual voidSetBackDiffuse ( const RED::Color & iBackDiffuse ) = 0
virtual voidSetBackDiffuseChannel ( RED::MESH_CHANNEL iChannel ) = 0
virtual voidSetBackDiffuseMatrix ( const RED::Matrix & iMatrix ) = 0
virtual voidSetBackDiffuseTexture ( const RED::Object * iTexture ) = 0
virtual voidSetBackDiffuseWrap ( bool iRepeatU, bool iRepeatV ) = 0
virtual voidSetBumpChannel ( RED::MESH_CHANNEL iChannel ) = 0
virtual voidSetBumpMatrix ( const RED::Matrix & iMatrix ) = 0
virtual voidSetBumpTexture ( const RED::Object * iTexture ) = 0
virtual voidSetBumpWrap ( bool iRepeatU, bool iRepeatV ) = 0
virtual voidSetDiffuse ( const RED::Color & iDiffuse ) = 0
virtual voidSetDiffuseChannel ( RED::MESH_CHANNEL iChannel ) = 0
virtual voidSetDiffuseMatrix ( const RED::Matrix & iMatrix ) = 0
virtual voidSetDiffuseTexture ( const RED::Object * iTexture ) = 0
virtual voidSetDiffuseWrap ( bool iRepeatU, bool iRepeatV ) = 0
virtual voidSetDoubleSided ( bool iDoubleSided ) = 0
virtual voidSetEmissive ( bool iEmissive ) = 0
virtual voidSetEmissiveIntensity ( double iIntensity ) = 0
virtual voidSetGlossiness ( double iGlossiness ) = 0
virtual voidSetIOR ( double iIOR ) = 0
virtual voidSetMasked ( bool iMasked ) = 0
virtual voidSetReflectance ( double iReflectance ) = 0
virtual voidSetReflectanceChannel ( RED::MESH_CHANNEL iChannel ) = 0
virtual voidSetReflectanceMatrix ( const RED::Matrix & iMatrix ) = 0
virtual voidSetReflectanceTexture ( const RED::Object * iTexture ) = 0
virtual voidSetReflectanceWrap ( bool iRepeatU, bool iRepeatV ) = 0
virtual voidSetTranslucency ( double iTranslucency ) = 0
virtual voidSetTranslucencyChannel ( RED::MESH_CHANNEL iChannel ) = 0
virtual voidSetTranslucencyMatrix ( const RED::Matrix & iMatrix ) = 0
virtual voidSetTranslucencyTexture ( const RED::Object * iTexture ) = 0
virtual voidSetTranslucencyWrap ( bool iRepeatU, bool iRepeatV ) = 0
virtual voidSetTransmission ( double iTransmission ) = 0
virtual voidSetTransmissionChannel ( RED::MESH_CHANNEL iChannel ) = 0
virtual voidSetTransmissionMatrix ( const RED::Matrix & iMatrix ) = 0
virtual voidSetTransmissionTexture ( const RED::Object * iTexture ) = 0
virtual voidSetTransmissionWrap ( bool iRepeatU, bool iRepeatV ) = 0

Public static functions:

static RED::CIDGetClassID ( )

Detailed description:

Material interface for material manipulation.

The ART::IMaterial interface gives access to the material object for geometries and plants.

A material is defined by several properties:

For each of these properties, this interface allows to:

According to the material properties, the mesh is rendered following a specific pipeline: opaque, transparent, masked and double sided or emissive.

Functions documentation

public virtual double ART::IMaterial::GetAlphaThreshold() const = 0

Gets the alpha threshold in case of a masked material.

Returns:

the alpha threshold between 0 and 1.
public virtual const RED::Color & ART::IMaterial::GetBackDiffuse() const = 0

Gets the back diffuse color.

If the material has a back diffuse texture, the back diffuse color is ignored.

Returns:

the back diffuse color.

Gets the back diffuse texture mesh channel.

Returns:

the back diffuse mesh channel containing the texture coordinates.
public virtual const RED::Matrix & ART::IMaterial::GetBackDiffuseMatrix() const = 0

Gets the back diffuse transform matrix.

Returns:

the back diffuse transform matrix.
public virtual const RED::Object * ART::IMaterial::GetBackDiffuseTexture() const = 0

Gets the back diffuse texture.

Returns:

the back diffuse texture or NULL if is doesn't exist.
public virtual void ART::IMaterial::GetBackDiffuseWrap(bool &oRepeatU,
bool &oRepeatV
)const = 0

Gets the back diffuse wrap mode.

Parameters:

oRepeatU:returned true if the back diffuse texture repeats along U, false if it is clamped.
oRepeatV:returned true if the back diffuse texture repeats along V, false if it is clamped.

Gets the bump texture mesh channel.

Returns:

the bump mesh channel containing the texture coordinates.
public virtual const RED::Matrix & ART::IMaterial::GetBumpMatrix() const = 0

Gets the bump transform matrix.

Returns:

the bump transform matrix.
public virtual const RED::Object * ART::IMaterial::GetBumpTexture() const = 0

Gets the bump texture.

The bump texture is a normal map containing 3D vector data.

Returns:

the bump texture or NULL if is doesn't exist.
public virtual void ART::IMaterial::GetBumpWrap(bool &oRepeatU,
bool &oRepeatV
)const = 0

Gets the bump wrap mode.

Parameters:

oRepeatU:returned true if the bump texture repeats along U, false if it is clamped.
oRepeatV:returned true if the bump texture repeats along V, false if it is clamped.
public virtual const RED::Color & ART::IMaterial::GetDiffuse() const = 0

Gets the diffuse color.

If the material has a diffuse texture, the diffuse color is ignored.

Returns:

the diffuse color.

Gets the diffuse texture mesh channel.

Returns:

the diffuse mesh channel containing the texture coordinates.
public virtual const RED::Matrix & ART::IMaterial::GetDiffuseMatrix() const = 0

Gets the diffuse transform matrix.

Returns:

the diffuse transform matrix.
public virtual const RED::Object * ART::IMaterial::GetDiffuseTexture() const = 0

Gets the diffuse texture.

Returns:

the diffuse texture or NULL if is doesn't exist.
public virtual void ART::IMaterial::GetDiffuseWrap(bool &oRepeatU,
bool &oRepeatV
)const = 0

Gets the diffuse wrap mode.

Parameters:

oRepeatU:returned true if the diffuse texture repeats along U, false if it is clamped.
oRepeatV:returned true if the diffuse texture repeats along V, false if it is clamped.
public virtual double ART::IMaterial::GetEmissiveIntensity() const = 0

Gets the material emissive intensity.

Returns:

the emissive intensity.
public virtual double ART::IMaterial::GetGlossiness() const = 0

Gets the glossiness.

Returns:

the glossiness of the material.
public virtual double ART::IMaterial::GetIOR() const = 0

Gets the index of refraction.

Returns:

the index of refraction of the material.
public virtual double ART::IMaterial::GetReflectance() const = 0

Gets the reflectance value.

If the material has a reflectance texture, the reflectance value is ignored.

A value of 0 is fully mat whereas a value of 1 is fully reflective.

Returns:

the reflectance value.

Gets the reflectance texture mesh channel.

Returns:

the reflectance mesh channel containing the texture coordinates.
public virtual const RED::Matrix & ART::IMaterial::GetReflectanceMatrix() const = 0

Gets the reflectance transform matrix.

Returns:

the reflectance transform matrix.
public virtual const RED::Object * ART::IMaterial::GetReflectanceTexture() const = 0

Gets the reflectance texture.

A value of 0 is fully mat whereas a value of 1 is fully reflective.

Returns:

the reflectance texture or NULL if is doesn't exist.
public virtual void ART::IMaterial::GetReflectanceWrap(bool &oRepeatU,
bool &oRepeatV
)const = 0

Gets the reflectance wrap mode.

Parameters:

oRepeatU:returned true if the reflectance texture repeats along U, false if it is clamped.
oRepeatV:returned true if the reflectance texture repeats along V, false if it is clamped.
public virtual double ART::IMaterial::GetTranslucency() const = 0

Gets the translucency color.

If the material has a translucency texture, the translucency color is ignored.

Returns:

the translucency color.

Gets the translucency texture mesh channel.

Returns:

the translucency mesh channel containing the texture coordinates.
public virtual const RED::Matrix & ART::IMaterial::GetTranslucencyMatrix() const = 0

Gets the translucency transform matrix.

Returns:

the translucency transform matrix.
public virtual const RED::Object * ART::IMaterial::GetTranslucencyTexture() const = 0

Gets the translucency texture.

Returns:

the translucency texture or NULL if is doesn't exist.
public virtual void ART::IMaterial::GetTranslucencyWrap(bool &oRepeatU,
bool &oRepeatV
)const = 0

Gets the translucency wrap mode.

Parameters:

oRepeatU:returned true if the translucency texture repeats along U, false if it is clamped.
oRepeatV:returned true if the translucency texture repeats along V, false if it is clamped.
public virtual double ART::IMaterial::GetTransmission() const = 0

Gets the transmission value.

If the material has a transmission texture, the transmission value is ignored.

A value of 0 is fully opaque whereas a value of 1 is fully transparent.

Returns:

the transmission value.

Gets the transmission texture mesh channel.

Returns:

the transmission mesh channel containing the texture coordinates.
public virtual const RED::Matrix & ART::IMaterial::GetTransmissionMatrix() const = 0

Gets the transmission transform matrix.

Returns:

the transmission transform matrix.
public virtual const RED::Object * ART::IMaterial::GetTransmissionTexture() const = 0

Gets the transmission texture.

A value of 0 is fully opaque whereas a value of 1 is fully transparent.

Returns:

the transmission texture or NULL if is doesn't exist.
public virtual void ART::IMaterial::GetTransmissionWrap(bool &oRepeatU,
bool &oRepeatV
)const = 0

Gets the transmission wrap mode.

Parameters:

oRepeatU:returned true if the transmission texture repeats along U, false if it is clamped.
oRepeatV:returned true if the transmission texture repeats along V, false if it is clamped.
public virtual bool ART::IMaterial::HasTransparency() const = 0

Tests if the material is rendered in the transparent pipeline.

Returns:

true if the material is transparent.
public virtual bool ART::IMaterial::IsDoubleSided() const = 0

Tests if the material is double sided.

Returns:

true if the material is double sided, false otherwise.
public virtual bool ART::IMaterial::IsEmissive() const = 0

Tests if the material is emissive.

Returns:

true if the material is emissive, false otherwise.
public virtual bool ART::IMaterial::IsMasked() const = 0

Tests if the material is masked.

Returns:

true if the material is masked, false otherwise.
public virtual void ART::IMaterial::SetAlphaThreshold(doubleiThreshold) = 0

Sets the alpha threshold in case of a masked material.

Parameters:

iThreshold:alpha threshold under which the material is fully transparent between 0 and 1.
public virtual void ART::IMaterial::SetBackDiffuse(const RED::Color &iBackDiffuse) = 0

Sets the back diffuse color.

If the material has a back diffuse texture, the back diffuse color is ignored.

Parameters:

iBackDiffuse:back diffuse color.

Sets the back diffuse texture mesh channel.

Parameters:

iChannel:mesh channel containing the texture coordinates.
public virtual void ART::IMaterial::SetBackDiffuseMatrix(const RED::Matrix &iMatrix) = 0

Sets the back diffuse transform matrix.

Parameters:

iMatrix:transform matrix.
public virtual void ART::IMaterial::SetBackDiffuseTexture(const RED::Object *iTexture) = 0

Sets the back diffuse texture.

Parameters:

iTexture:back diffuse texture.
public virtual void ART::IMaterial::SetBackDiffuseWrap(booliRepeatU,
booliRepeatV
) = 0

Sets the back diffuse wrap mode.

Parameters:

iRepeatU:true to have the texture repeat along U, false if clamped.
iRepeatV:true to have the texture repeat along V, false if clamped.
public virtual void ART::IMaterial::SetBumpChannel(RED::MESH_CHANNELiChannel) = 0

Sets the bump texture mesh channel.

Parameters:

iChannel:mesh channel containing the texture coordinates.
public virtual void ART::IMaterial::SetBumpMatrix(const RED::Matrix &iMatrix) = 0

Sets the bump transform matrix.

Parameters:

iMatrix:transform matrix.
public virtual void ART::IMaterial::SetBumpTexture(const RED::Object *iTexture) = 0

Sets the bump texture.

The bump texture is a normal map containing 3D vector data.

Parameters:

iTexture:bump texture.
public virtual void ART::IMaterial::SetBumpWrap(booliRepeatU,
booliRepeatV
) = 0

Sets the bump wrap mode.

Parameters:

iRepeatU:true to have the texture repeat along U, false if clamped.
iRepeatV:true to have the texture repeat along V, false if clamped.
public virtual void ART::IMaterial::SetDiffuse(const RED::Color &iDiffuse) = 0

Sets the diffuse color.

If the material has a diffuse texture, the diffuse color is ignored.

Parameters:

iDiffuse:diffuse color.
public virtual void ART::IMaterial::SetDiffuseChannel(RED::MESH_CHANNELiChannel) = 0

Sets the diffuse texture mesh channel.

Parameters:

iChannel:mesh channel containing the texture coordinates.
public virtual void ART::IMaterial::SetDiffuseMatrix(const RED::Matrix &iMatrix) = 0

Sets the diffuse transform matrix.

Parameters:

iMatrix:transform matrix.
public virtual void ART::IMaterial::SetDiffuseTexture(const RED::Object *iTexture) = 0

Sets the diffuse texture.

Parameters:

iTexture:diffuse texture.
public virtual void ART::IMaterial::SetDiffuseWrap(booliRepeatU,
booliRepeatV
) = 0

Sets the diffuse wrap mode.

Parameters:

iRepeatU:true to have the texture repeat along U, false if clamped.
iRepeatV:true to have the texture repeat along V, false if clamped.
public virtual void ART::IMaterial::SetDoubleSided(booliDoubleSided) = 0

Sets the material double sided.

The masked and double sided materials are rendered using the same pipeline. A double sided material is automatically masked.

Parameters:

iDoubleSided:true to activate the material double siding.
public virtual void ART::IMaterial::SetEmissive(booliEmissive) = 0

Sets whether the material is emissive or not.

The emissive color is the color set using ART::IMaterial::SetDiffuse.

Parameters:

iEmissive:true to set the material emissive.
public virtual void ART::IMaterial::SetEmissiveIntensity(doubleiIntensity) = 0

Sets the emissive intensity in case of an emissive material.

Parameters:

iIntensity:emissive intensity between 0 and +inf.
public virtual void ART::IMaterial::SetGlossiness(doubleiGlossiness) = 0

Sets the glossiness.

Parameters:

iGlossiness:glossiness of the material between 0 and 1.
public virtual void ART::IMaterial::SetIOR(doubleiIOR) = 0

Sets the index of reflraction.

Parameters:

iIOR:index of refraction between 0 and 10.
public virtual void ART::IMaterial::SetMasked(booliMasked) = 0

Defines the material as masked.

If the material is masked, the masked texture is set using ART::IMaterial::SetTransmissionTexture.

The masked and double sided materials are rendered using the same pipeline. A masked material is automatically double sided.

Parameters:

iMasked:true to activate the material masking.
public virtual void ART::IMaterial::SetReflectance(doubleiReflectance) = 0

Sets the reflectance value.

If the material has a reflectance texture, the reflectance value is ignored.

A value of 0 is fully mat whereas a value of 1 is fully reflective.

Parameters:

iReflectance:reflectance value.

Sets the reflectance texture mesh channel.

Parameters:

iChannel:mesh channel containing the texture coordinates.
public virtual void ART::IMaterial::SetReflectanceMatrix(const RED::Matrix &iMatrix) = 0

Sets the reflectance transform matrix.

Parameters:

iMatrix:transform matrix.
public virtual void ART::IMaterial::SetReflectanceTexture(const RED::Object *iTexture) = 0

Sets the reflectance texture.

A value of 0 is fully mat whereas a value of 1 is fully reflective.

Parameters:

iTexture:reflectance texture.
public virtual void ART::IMaterial::SetReflectanceWrap(booliRepeatU,
booliRepeatV
) = 0

Sets the reflectance wrap mode.

Parameters:

iRepeatU:true to have the texture repeat along U, false if clamped.
iRepeatV:true to have the texture repeat along V, false if clamped.
public virtual void ART::IMaterial::SetTranslucency(doubleiTranslucency) = 0

Sets the translucency color.

If the material has a translucency texture, the translucency color is ignored.

Parameters:

iTranslucency:translucency color.

Sets the translucency texture mesh channel.

Parameters:

iChannel:mesh channel containing the texture coordinates.
public virtual void ART::IMaterial::SetTranslucencyMatrix(const RED::Matrix &iMatrix) = 0

Sets the translucency transform matrix.

Parameters:

iMatrix:transform matrix.
public virtual void ART::IMaterial::SetTranslucencyTexture(const RED::Object *iTexture) = 0

Sets the translucency texture.

Parameters:

iTexture:translucency texture.
public virtual void ART::IMaterial::SetTranslucencyWrap(booliRepeatU,
booliRepeatV
) = 0

Sets the translucency wrap mode.

Parameters:

iRepeatU:true to have the texture repeat along U, false if clamped.
iRepeatV:true to have the texture repeat along V, false if clamped.
public virtual void ART::IMaterial::SetTransmission(doubleiTransmission) = 0

Sets the transmission value.

If the material has a transmission texture, the transmission value is ignored.

A value of 0 is fully opaque whereas a value of 1 is fully transparent.

Parameters:

iTransmission:transmission value.

Sets the transmission texture mesh channel.

Parameters:

iChannel:mesh channel containing the texture coordinates.
public virtual void ART::IMaterial::SetTransmissionMatrix(const RED::Matrix &iMatrix) = 0

Sets the transmission transform matrix.

Parameters:

iMatrix:transform matrix.
public virtual void ART::IMaterial::SetTransmissionTexture(const RED::Object *iTexture) = 0

Sets the transmission texture.

A value of 0 is fully opaque whereas a value of 1 is fully transparent.

Parameters:

iTexture:transmission texture.
public virtual void ART::IMaterial::SetTransmissionWrap(booliRepeatU,
booliRepeatV
) = 0

Sets the transmission wrap mode.

Parameters:

iRepeatU:true to have the texture repeat along U, false if clamped.
iRepeatV:true to have the texture repeat along V, false if clamped.