## Material.TextureLayers

### Introduced

v4.0

### Description

Returns a TextureLayerCollection containing all TextureLayer objects owned by the material.

### C# Syntax

    // get accessor
    TextureLayerCollection rtn = Material.TextureLayers;

### Examples

#### 1. JScript Example

    /*
            This example shows creation of texture layers on a material, plus enumerating and removing them.
    */
    oRoot = ActiveProject.ActiveScene.Root;
    oSph = oRoot.AddGeometry( "Sphere", "MeshSurface" );
    oMat = oSph.AddMaterial( "Phong" );
    // Add a layer at the end (since there are no others the "After"
    // flag is irrelevant).
    oLayers = new Array(3);
    oLayers[0] = oMat.CreateTextureLayer( "B", true );
    // Add another layer before the other one.
    oLayers[1] = oMat.CreateTextureLayer( "A", false, oLayers[0] );
    // Create a third layer at the very start.
    oLayers[2] = oMat.CreateTextureLayer( "base", false );
    Application.LogMessage( "Created " + oMat.TextureLayers.Count + " layers." );
    for ( i = 0; i < oMat.TextureLayers.Count; i++ )
    {
            oLayer = oMat.TextureLayers(i);
            Application.LogMessage( (i+1) + ": " + oLayer );
    }
    oMat.RemoveTextureLayer( oLayers[1] );
    oMat.RemoveTextureLayer( oMat.FullName + "." + oLayers[2].Name );
    count = oMat.TextureLayers.Count;
    Application.LogMessage( "Only " + count + " remains) after removal." );
    for ( i = 0; i < count; i++ )
    {
            Application.LogMessage( (i+1) + ": " + oMat.TextureLayers.Item(i) );
    }
    // This example should log something like:
    //INFO : "Created 3 layers."
    //INFO : "1: sphere.Material.base"
    //INFO : "2: sphere.Material.A"
    //INFO : "3: sphere.Material.B"
    //INFO : "Only 1 remains after removal."
    //INFO : "1: sphere.Material.B"

#### 2. VBScript Example

    '
    ' This example shows creation of texture layers on
    ' a material, plus enumerating and removing them.
    '
    set oRoot = ActiveProject.ActiveScene.Root
    set oSph = oRoot.AddGeometry( "Sphere", "MeshSurface" )
    set oMat = oSph.AddMaterial( "Phong" )
    ' Add a layer at the end (since there are no others the "After"
    ' flag is irrelevant).
    dim oLayers(2)
    set oLayers(0) = oMat.CreateTextureLayer( "B", True )
    ' Add another layer before the other one.
    set oLayers(1) = oMat.CreateTextureLayer( "A", False, oLayers(0) )
    ' Create a third layer at the very start.
    set oLayers(2) = oMat.CreateTextureLayer( "base", False )
    Application.LogMessage "Created " & oMat.TextureLayers.Count & " layers."
    i = 1
    for each oLayer in oMat.TextureLayers
            Application.LogMessage i & ": " & oLayer
            i = i + 1
    next
    oMat.RemoveTextureLayer oLayers(1)
    oMat.RemoveTextureLayer oMat.FullName & "." & oLayers(2).Name
    count = oMat.TextureLayers.Count
    Application.LogMessage "Only " & count & " remains after removal."
    for i = 0 to count - 1
            Application.LogMessage i + 1 & ": " & oMat.TextureLayers.Item(i)
    next
    ' This example should log something like:
    'INFO : "Created 3 layers."
    'INFO : "1: sphere.Material.base"
    'INFO : "2: sphere.Material.A"
    'INFO : "3: sphere.Material.B"
    'INFO : "Only 1 remains after removal."
    'INFO : "1: sphere.Material.B"

### See Also

Shader.TextureLayers Material.CreateTextureLayer Material.AddSharedTextureLayer Shader.CreateTextureLayer Shader.AddSharedTextureLayer