RemoveTextureLaye rs

Introduced

4.0

Description

Removes a list of texture layers from a container (shader or material). If no container is provided, then it removes the layer(s) from all containers, effectively deleting them.

Scripting Syntax

    RemoveTextureLayers( [InputObjs], [Container] )

Parameters

Parameter | Type | Description
InputObjs | String | List of layers which are to be removed from a container. Default Value: Current selection.
Container | String or object | The container from which to remove the layers (if it currently contains them). If not specified, then the layers will be deleted from all containers in which they are found.

Examples

VBScript Example

    '
    ' This example creates two shaders in a simple render tree, and applies
    ' texture layers to them.  Then it removes some of the layers, illustrating
    ' the RemoveTextureLayers command.
    ' In particular, it builds the following stacks of layers.
    '
    ' Phong      Fractal
    '   A           A
    '   B           B
    '   C           C
    '
    option explicit
    dim oSph, oPhong, oFractal, oLyr(2)

    ' Build our shaders (a Phong and a Fractal), which will be the "texture
    ' layer containers" that will each be able to hold a stack of layers.
    NewScene , False
    set oSph = CreatePrim( "Sphere", "MeshSurface" )
    set oPhong = SIApplyShader( "Phong", oSph )
    set oFractal = BlendInPresetsInsp( "Fractal", , , True, siReplaceNoBlend, False, False, True )

    ' Now create and add all the layers, as indicated above.
    ' Add 'A', 'B' and 'C' to both containers at the end.
    set oLyr(0) = AddTextureLayer( , oPhong & "," & oFractal, "A", True )
    set oLyr(1) = AddTextureLayer( , oPhong & "," & oFractal, "B", True )
    set oLyr(2) = AddTextureLayer( , oPhong & "," & oFractal, "C", True )

    '
    ' Now start removing.  First we'll remove layer 'A' from just one
    ' of the containers.
    RemoveTextureLayers oLyr(0), oPhong(0)

    ' Now we'll remove layer 'B' from all containers which hold it.
    RemoveTextureLayers oLyr(1)

    PrintTextureLayersInContainer oPhong
    PrintTextureLayersInContainer oFractal

    sub PrintTextureLayersInContainer( in_cont )
       dim oStack, oItem, oStr
       oStr = "Texture Layers in Container: " & in_cont & vbCrLf
       set oStack = EnumElements( in_cont & ".TextureLayers" )
       for each oItem in oStack
           oStr = oStr & "    " & oItem.name & vbCrLf
       next
       logmessage oStr
    end sub

    '
    ' The output from the example should look something like this:
    '
    'INFO : Texture Layers in Container: sphere.Material.Phong
    '    C
    '
    'INFO : Texture Layers in Container: sphere.Material.Phong.Fractal
    '    A
    '    C
    '

See Also

AddTextureLayer | MoveTextureLayers | AddTextureLayerPorts | Shader.RemoveTextureLayer
Material.RemoveTextureLayer |  |  |

Autodesk Softimage v7.5