# I3DShMasterShader Struct Reference
[Shell Interfaces]

Inheritance diagram for I3DShMasterShader:

List of all members.

## Public Member Functions
virtual uint32 MCCOMAPI | GetInstancesCount ()=0
virtual void MCCOMAPI | GetInstanceArray (TMCCountedPtrArray< I3DShTreeElement > &instances)=0
virtual MCCOMErr MCCOMAPI | SetName (const TMCString &name)=0
virtual MCCOMErr MCCOMAPI | GetName (TMCString &name)=0
virtual MCCOMErr MCCOMAPI | SetShader (I3DShShader *shader, ECloneMode cloneMode)=0
virtual MCCOMErr MCCOMAPI | GetShader (I3DShShader **shader)=0
virtual MCCOMErr MCCOMAPI | SetDisplacementShader (I3DShShader *shader, ECloneMode cloneMode)=0
virtual MCCOMErr MCCOMAPI | GetDisplacementShader (I3DShShader **shader)=0
virtual MCCOMErr MCCOMAPI | Clone (I3DShMasterShader **clone, ECloneMode cloneMode, boolean cloneDisplacementMapping=true) const =0
virtual MCCOMErr MCCOMAPI | GetScene (I3DShScene **scene) const =0
virtual boolean MCCOMAPI | IsDefaultMaster () const =0
virtual I3DShMaster *MCCOMAPI | GetThisMaster ()=0
virtual boolean MCCOMAPI | IsReferencedByThisSubTree (I3DShTreeElement *subTree, I3DShScene *scene)=0
virtual MCCOMErr MCCOMAPI | MasterShaderModified (boolean onlyShading=false)=0

## Detailed Description

I3DShMasterShader represents a Master Shader. A Master Shader can be applied to multiple objects in a scene.

It supports multiple interfaces such as IMaster and ISelectableObject

## Member Function Documentation

virtual MCCOMErr MCCOMAPI I3DShMasterShader::Clone | ( | I3DShMasterShader ** | clone,
|  | ECloneMode | cloneMode,
|  | boolean | cloneDisplacementMapping = `true` |
| ) |  |  | const`[pure virtual]`

Makes a copy of the Master Shader.

Parameters:

  | clone | The copy that is returned.
  | cloneMode | The clone Mode (see ECloneMode).
  | cloneDisplacementMapping | Clone the displacement mapping

virtual MCCOMErr MCCOMAPI I3DShMasterShader::GetDisplacementShader | ( | I3DShShader ** | shader | ) | `[pure virtual]`

Returns a pointer to the displacement shader tree that defines this Master Shader.

Parameters:

  | shader | A pointer to the root of the shader tree.

virtual void MCCOMAPI I3DShMasterShader::GetInstanceArray | ( | TMCCountedPtrArray< I3DShTreeElement > & | instances | ) | `[pure virtual]`

Returns an array of all the instances that points to that class.

Parameters:

  | instances | An array of instances.

virtual uint32 MCCOMAPI I3DShMasterShader::GetInstancesCount | ( |  | ) | `[pure virtual]`

Returns the number of instances of this master in the scene.

virtual MCCOMErr MCCOMAPI I3DShMasterShader::GetName | ( | TMCString & | name | ) | `[pure virtual]`

Returns the name of the Master Shader.

Parameters:

  | name | The name of the Master Shader.

virtual MCCOMErr MCCOMAPI I3DShMasterShader::GetScene | ( | I3DShScene ** | scene | ) | const`[pure virtual]`

Returns a pointer to the scene that contains this Master Shader.

Parameters:

  | scene | A pointer to the scene that contains this Master Shader. (NULL if it is not inserted in a scene.

virtual MCCOMErr MCCOMAPI I3DShMasterShader::GetShader | ( | I3DShShader ** | shader | ) | `[pure virtual]`

Returns a pointer to the shader tree that defines this Master Shader.

Parameters:

  | shader | A pointer to the root of the shader tree.

virtual I3DShMaster* MCCOMAPI I3DShMasterShader::GetThisMaster | ( |  | ) | `[pure virtual]`

Returns the I3DShMaster interface.

virtual boolean MCCOMAPI I3DShMasterShader::IsDefaultMaster | ( |  | ) | const`[pure virtual]`

Returns true if the Master Shader is the default Master Shaders.

virtual boolean MCCOMAPI I3DShMasterShader::IsReferencedByThisSubTree | ( | I3DShTreeElement * | subTree,
|  | I3DShScene * | scene |
| ) |  |  | `[pure virtual]`

Return true if the given sub tree keeps a reference to that master shader

Parameters:

  | subTree | The sub tree that might reference that master object
  | scene | The scene that contains that sub tree.

virtual MCCOMErr MCCOMAPI I3DShMasterShader::MasterShaderModified | ( | boolean | onlyShading = `false` | ) | `[pure virtual]`

Notify that the master shader is modified

virtual MCCOMErr MCCOMAPI I3DShMasterShader::SetDisplacementShader | ( | I3DShShader * | shader,
|  | ECloneMode | cloneMode |
| ) |  |  | `[pure virtual]`

Sets the displacement shader tree that defines this Master Shader.

Parameters:

  | shader | A pointer to the root of the displacement shader tree.
  | cloneMode | The clone Mode (see ECloneMode).

virtual MCCOMErr MCCOMAPI I3DShMasterShader::SetName | ( | const TMCString & | name | ) | `[pure virtual]`

Sets the name of a master. Note that you should not call this method once the master is inserted in a scene because it does not garantee the unicity of the name.

If you want to change the name of a Master Shader once it is inserted in a scene, you should call I3DShScene::RenameMasterShader().

Parameters:

  | name | The new name of the master.

virtual MCCOMErr MCCOMAPI I3DShMasterShader::SetShader | ( | I3DShShader * | shader,
|  | ECloneMode | cloneMode |
| ) |  |  | `[pure virtual]`

Sets the shader tree that defines this Master Shader.

Parameters:

  | shader | A pointer to the root of the shader tree.
  | cloneMode | The clone Mode (see ECloneMode).

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

- I3DShShader.h