# class MaterialTable

MaterialTable keeps information on materials used while rendering.

# Properties

Property Description
Name The name of the MaterialTable object. (Inherited from Object)

# Methods

Method Description
AddItem Adds an item to the table. The returned value is the id of the item within the table, which can be used to retrieve the item using GetItem(). (Inherited from Table)
AddMaterial Adds a material to the table. The returned value is the id of the material within the table.
AddObserver Adds a user-defined observer object to the interface, that will receive events from the interface. (Inherited from Object)
ChangeTexturePrefixPath Changes the prefix path (drive, directory) of all matching texture paths in all the materials in the table, with the new one. This method is useful when external textures are placed in a specific folder, which needs to be moved.
Clear Clears the table, and removes all items. If AddItem is called after Clear, the item ids will start over from 0. (Inherited from Table)
Copy Clears the current table and copies the items from a source table. (Inherited from Table)
FindIdenticalMaterial Finds a material in the table that is setup identical to the specified material.
FindIdenticalMaterialId Finds the id of a material in the table that is setup identical to the specified material.
FindIdenticalMaterialIds Finds the materials in the table that are setup identical to the specified material.
FindItem Finds a named item in the table. If multiple items have the same name, the first will be returned. If no item was found, null will be returned. (Inherited from Table)
FindItemId Finds the id of an item in the table, using the name. If multiple items have the same name, the first will be returned. If no item was found, the return will be -1. (Inherited from Table)
FindMaterial Finds a material in the table, using the material name. If multiple materials have the same name, the first will be returned. If the material was not found, null is returned.
FindMaterialId Finds the id of a material in the table, using the material name. If multiple materials have the same name, the first will be returned. If the material was not found, the return will be -1.
GetClass Get the name of the MaterialTable class. (Inherited from Object)
GetItem Returns the i:th item, using the id of the item. (Inherited from Table)
GetItemsCount The number of item id:s in the table. If an item has been removed, using RemoveItem, the id is still counted in this method. GetIdsCount also equals the id that will be applied to the next item added to the table. (Inherited from Table)
GetMaterial Returns the i:th material, using the id of the material.
GetMaterialChannels Get all unique material channel names for all materials in table.
GetMaterialChannelsWithTextureInputs Get all unique material channel names having texture inputs for all materials in table.
GetMaterialsCount Returns the number of materials in the table.
IsA Returns true if MaterialTable is a or is a descendant of the class named as the type parameter. (Inherited from Object)
IsNull Returns true if the MaterialTable object is invalid. (Inherited from Object)
IsSameObjectAs Returns true if the MaterialTable object is valid. (Inherited from Object)
NonNull Returns true if the MaterialTable object is valid. (Inherited from Object)
PrintInfo Prints the content/info of the MaterialTable object to the log. (Inherited from Object)
RemoveItem Removes an item, and invalidates the id. The id will not point at a valid item, until Clear is called and new items are added up until the id. (Inherited from Table)
RemoveMaterial Removes a material. If GetMaterial is subsequently called with the same material id, the value returned will be null.
RemoveObserver Removes a previously added observer object. (Inherited from Object)
SetItem Sets an item in the table. The id must exist in the table. (Inherited from Table)
SetMaterial Sets a material in the table.

# Static methods

Method Description
IsClassA Returns true if the class is a or is a descendant of the class named as the type parameter. (Inherited from Object)
SafeCast SafeCast makes sure the input object is of a class that can be cast into spMaterialTable, and if this is the case, returns the object cast into spMaterialTable. (Inherited from Object)

# Properties details

# Name

The name of the MaterialTable object. (Inherited from Object)

# Syntax

// Setter
void SetName( const char * name ) const;

// Getter
spString GetName() const;

# SetName parameters

Type Name Min Max Description
const char * name New name of the object.

# GetName return value

Type: spString

# Methods details

# AddItem

Adds an item to the table. The returned value is the id of the item within the table, which can be used to retrieve the item using GetItem().

# Syntax

rid AddItem( const spObject & item ) const;

# Parameters

Type Name Min Max Description
Object item Is the item that is to be added to the table.

# Return value

Type: rid

# AddMaterial

Adds a material to the table. The returned value is the id of the material within the table.

# Syntax

rid AddMaterial( const spMaterial & material ) const;

# Parameters

Type Name Min Max Description
Material material The material to add into the table.

# Return value

Type: rid

# AddObserver

Adds a user-defined observer object to the interface, that will receive events from the interface. (Inherited from Object)

# Syntax

rid AddObserver( const spObserver & observer ) const;

# Parameters

Type Name Min Max Description
Observer observer Observer is the object that will receive events.

# Return value

Type: rid

# ChangeTexturePrefixPath

Changes the prefix path (drive, directory) of all matching texture paths in all the materials in the table, with the new one. This method is useful when external textures are placed in a specific folder, which needs to be moved.

# Syntax

void ChangeTexturePrefixPath( const char * current_path_prefix , const char * new_path_prefix ) const;

# Parameters

Type Name Min Max Description
const char * current_path_prefix The current prefix path, either relative or absolute.
const char * new_path_prefix The new prefix path.

# Clear

Clears the table, and removes all items. If AddItem is called after Clear, the item ids will start over from 0.

# Syntax

void Clear() const;

# Parameters

Clear takes no parameters.

# Copy

Clears the current table and copies the items from a source table.

# Syntax

void Copy( const spTable & src ) const;

# Parameters

Type Name Min Max Description
Table src The table to copy.

# FindIdenticalMaterial

Finds a material in the table that is setup identical to the specified material.

# Syntax

spMaterial FindIdenticalMaterial( const spMaterial & mat ) const;

# Parameters

Type Name Min Max Description
Material mat The material setup to look for.

# Return value

Type: Material

# FindIdenticalMaterialId

Finds the id of a material in the table that is setup identical to the specified material.

# Syntax

rid FindIdenticalMaterialId( const spMaterial & mat ) const;

# Parameters

Type Name Min Max Description
Material mat The material setup to look for.

# Return value

Type: rid

# FindIdenticalMaterialIds

Finds the materials in the table that are setup identical to the specified material.

# Syntax

spRidArray FindIdenticalMaterialIds( const spMaterial & mat ) const;

# Parameters

Type Name Min Max Description
Material mat The material setup to look for.

# Return value

Type: RidArray

# FindItem

Finds a named item in the table. If multiple items have the same name, the first will be returned. If no item was found, null will be returned.

# Syntax

spObject FindItem( const char * name ) const;

# Parameters

Type Name Min Max Description
const char * name Is the string that is to be searched for.

# Return value

Type: Object

# FindItemId

Finds the id of an item in the table, using the name. If multiple items have the same name, the first will be returned. If no item was found, the return will be -1.

# Syntax

rid FindItemId( const char * name ) const;

# Parameters

Type Name Min Max Description
const char * name Is the string that is to be searched for.

# Return value

Type: rid

# FindMaterial

Finds a material in the table, using the material name. If multiple materials have the same name, the first will be returned. If the material was not found, null is returned.

# Syntax

spMaterial FindMaterial( const char * name ) const;

# Parameters

Type Name Min Max Description
const char * name The material name to look for.

# Return value

Type: Material

# FindMaterialId

Finds the id of a material in the table, using the material name. If multiple materials have the same name, the first will be returned. If the material was not found, the return will be -1.

# Syntax

rid FindMaterialId( const char * name ) const;

# Parameters

Type Name Min Max Description
const char * name The material name to look for.

# Return value

Type: rid

# GetClass

Get the name of the MaterialTable class. (Inherited from Object)

# Syntax

spString GetClass() const;

# Parameters

GetClass takes no parameters.

# Return value

Type: spString

# GetItem

Returns the i:th item, using the id of the item.

# Syntax

spObject GetItem( rid id ) const;

# Parameters

Type Name Min Max Description
rid id Is the id of the requested object.

# Return value

Type: Object

# GetItemsCount

The number of item id:s in the table. If an item has been removed, using RemoveItem, the id is still counted in this method. GetIdsCount also equals the id that will be applied to the next item added to the table.

# Syntax

unsigned int GetItemsCount() const;

# Parameters

GetItemsCount takes no parameters.

# Return value

Type: unsigned int

# GetMaterial

Returns the i:th material, using the id of the material.

# Syntax

spMaterial GetMaterial( rid id ) const;

# Parameters

Type Name Min Max Description
rid id The id of the material in the table.

# Return value

Type: Material

# GetMaterialChannels

Get all unique material channel names for all materials in table.

# Syntax

void GetMaterialChannels( const spStringArray & channels ) const;

# Parameters

Type Name Min Max Description
StringArray channels The array receiving unique channel names.

# GetMaterialChannelsWithTextureInputs

Get all unique material channel names having texture inputs for all materials in table.

# Syntax

void GetMaterialChannelsWithTextureInputs( const spStringArray & channels ) const;

# Parameters

Type Name Min Max Description
StringArray channels The array receiving unique channel names.

# GetMaterialsCount

Returns the number of materials in the table.

# Syntax

unsigned int GetMaterialsCount() const;

# Parameters

GetMaterialsCount takes no parameters.

# Return value

Type: unsigned int

# IsA

Returns true if MaterialTable is a or is a descendant of the class named as the type parameter. (Inherited from Object)

# Syntax

bool IsA( const char * type ) const;

# Parameters

Type Name Min Max Description
const char * type Name of the class to check if MaterialTable is, or is a descendant of.

# Return value

Type: bool

# IsNull

Returns true if the MaterialTable object is invalid. (Inherited from Object)

# Syntax

bool IsNull() const;

# Parameters

IsNull takes no parameters.

# Return value

Type: bool

# IsSameObjectAs

Returns true if the MaterialTable object is valid. (Inherited from Object)

# Syntax

bool IsSameObjectAs( const spObject & object ) const;

# Parameters

Type Name Min Max Description
Object object Object to compare with.

# Return value

Type: bool

# NonNull

Returns true if the MaterialTable object is valid. (Inherited from Object)

# Syntax

bool NonNull() const;

# Parameters

NonNull takes no parameters.

# Return value

Type: bool

# PrintInfo

Prints the content/info of the MaterialTable object to the log. (Inherited from Object)

# Syntax

void PrintInfo() const;

# Parameters

PrintInfo takes no parameters.

# RemoveItem

Removes an item, and invalidates the id. The id will not point at a valid item, until Clear is called and new items are added up until the id.

# Syntax

void RemoveItem( rid id ) const;

# Parameters

Type Name Min Max Description
rid id The id of the object that should be removed.

# RemoveMaterial

Removes a material. If GetMaterial is subsequently called with the same material id, the value returned will be null.

# Syntax

void RemoveMaterial( rid id ) const;

# Parameters

Type Name Min Max Description
rid id The id of the material in the table.

# RemoveObserver

Removes a previously added observer object. (Inherited from Object)

# Syntax

void RemoveObserver( rid observerId ) const;

# Parameters

Type Name Min Max Description
rid observerId ObserverId is the id returned by AddObserver when the observer was added.

# SetItem

Sets an item in the table. The id must exist in the table.

# Syntax

void SetItem( rid id , const spObject & item ) const;

# Parameters

Type Name Min Max Description
rid id Is the id that is to be set.
Object item Is the object set to the id.

# SetMaterial

Sets a material in the table.

# Syntax

void SetMaterial( rid id , const spMaterial & material ) const;

# Parameters

Type Name Min Max Description
rid id The id of the material in the table.
Material material The material to set into the table.

# Static methods details

# IsClassA

Returns true if the class is a or is a descendant of the class named as the type parameter. (Inherited from Object)

# Syntax

static bool IsClassA( const char * type ) const;

# Parameters

Type Name Min Max Description
const char * type Name of the class to check if the class is, or is a descendant of.

# Return value

Type: bool

# SafeCast

SafeCast makes sure the input object is of a class that can be cast into spMaterialTable, and if this is the case, returns the object cast into spMaterialTable. (Inherited from Object)

# Syntax

static spMaterialTable SafeCast( const spObject & object ) const;

# Parameters

Type Name Min Max Description
Object object Object to cast.

# Return value

Type: MaterialTable