| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iMaterial Struct Reference
[3D]

This class represents a material as seen from the engine view. More...

`#include <ivideo/material.h>`

Inheritance diagram for iMaterial:

[legend]
List of all members.

## Public Member Functions
virtual void | GetFlatColor (csRGBpixel &oColor, bool useTextureMean=true)=0
| Get the flat color.
virtual iShader * | GetShader (csStringID type)=0
| Get shader associated with a shader type.
virtual const csHash< csRef< iShader >, csStringID > & | GetShaders () const =0
| Get all Shaders.
virtual iTextureHandle * | GetTexture (csStringID name)=0
| Get a texture from the material.
virtual iTextureHandle * | GetTexture ()=0
| Get the base ("tex diffuse") texture from the material.
virtual void | SetFlatColor (const csRGBcolor &col)=0
| Set the flat shading color.
virtual void | SetShader (csStringID type, iShader *shader)=0
| Associate a shader with a shader type.

## Detailed Description

This class represents a material as seen from the engine view.

Because it is also a shader variable context it can be used directly for rendering.

Main creators of instances implementing this interface:

- iEngine::CreateBaseMaterial()

Main ways to get pointers to this interface:

- iMaterialWrapper::GetMaterial()

Main users of this interface:

- 3D renderer implementations (iGraphics3D).

Definition at line 57 of file material.h.

## Member Function Documentation

virtual void iMaterial::GetFlatColor | ( | csRGBpixel & | oColor,
|  | bool | useTextureMean = `true` |
| ) |  |  | `[pure virtual]`

Get the flat color.

If the material has a texture assigned, this will return the mean texture color.

Deprecated:
  Use the shader variable system instead.

virtual iShader* iMaterial::GetShader | ( | csStringID | type | ) | `[pure virtual]`

Get shader associated with a shader type.

virtual const csHash<csRef<iShader>, csStringID>& iMaterial::GetShaders | ( |  | ) | const`[pure virtual]`

Get all Shaders.

virtual iTextureHandle* iMaterial::GetTexture | ( | csStringID | name | ) | `[pure virtual]`

Get a texture from the material.

virtual iTextureHandle* iMaterial::GetTexture | ( |  | ) | `[pure virtual]`

Get the base ("tex diffuse") texture from the material.

virtual void iMaterial::SetFlatColor | ( | const csRGBcolor & | col | ) | `[pure virtual]`

Set the flat shading color.

Deprecated:
  Use the shader variable system instead.

virtual void iMaterial::SetShader | ( | csStringID | type,
|  | iShader * | shader |
| ) |  |  | `[pure virtual]`

Associate a shader with a shader type.

The documentation for this struct was generated from the following file:

- ivideo/material.h