# class MaterialTable

MaterialTable keeps information on materials used while rendering.

# 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().
AddMaterial Adds a material to the table. The returned value is the id of the material within the table.
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.
Copy Clears the current table and copies the items from a source 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.
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.
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.
GetItem Returns the i:th item, using the id of the item.
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.
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.
IsNull Returns true if the MaterialTable object is invalid.
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.
RemoveMaterial Removes a material. If GetMaterial is subsequently called with the same material id, the value returned will be null.
SetItem Sets an item in the table. The id must exist in the 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.
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.

# 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().

    # AddMaterial

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

      # 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.

          # Copy

          Clears the current table and copies the items from a source 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.

                    # 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.

                      # 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.

                            # GetItem

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

                              # 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.

                                # 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.

                                          # IsNull

                                          Returns true if the MaterialTable object is invalid.

                                            # 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.

                                              # RemoveMaterial

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

                                                # SetItem

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

                                                  # SetMaterial

                                                  Sets a material in 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.

                                                      # 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.