v4.0
Removes a texture layer from the container. If this container is the only owner
of the layer, then the layer will be deleted from the scene, otherwise it is simply removed
from this container (but still owned by other containers).
Tip: A Material can also be a texture layer container, and has the same set
of related methods.
Shader.RemoveTextureLayer( Object in_varLayerToRemove ); |
Shader.RemoveTextureLayer( Layer ); |
Parameter | Type | Description |
---|---|---|
Layer | TextureLayer or String | Texture layer to remove from this container. |
/* This JScript example shows creating texture layers on a shader, plus enumerating and removing them. */ oRoot = ActiveProject.ActiveScene.Root; oSph = oRoot.AddGeometry( "Sphere", "MeshSurface" ); oMat = oSph.AddMaterial( "Phong" ); oPhong = oMat.Shaders(0); // Add a layer at the end (since there are no others the "After" // flag is irrelevant). oLayers = new Array(3); oLayers[0] = oPhong.CreateTextureLayer( "B", true ); // Add another layer before the other one. oLayers[1] = oPhong.CreateTextureLayer( "A", false, oLayers[0] ); // Create a third layer at the very start. oLayers[2] = oPhong.CreateTextureLayer( "base", false ); Application.LogMessage( "Created " + oPhong.TextureLayers.Count + " layers." ); for ( i = 0; i < oPhong.TextureLayers.Count; i++ ) { oLayer = oPhong.TextureLayers(i); Application.LogMessage( (i+1) + ": " + oLayer ); } oPhong.RemoveTextureLayer( oLayers[1] ); oPhong.RemoveTextureLayer( oPhong.FullName + "." + oLayers[2].Name ); count = oPhong.TextureLayers.Count; Application.LogMessage( "Only " + count + " remains after removal." ); for ( i = 0; i < count; i++ ) { Application.LogMessage( (i+1) + ": " + oPhong.TextureLayers.Item(i) ); } // This example should log something like: //INFO : "Created 3 layers." //INFO : "1: sphere.Material.Phong.base" //INFO : "2: sphere.Material.Phong.A" //INFO : "3: sphere.Material.Phong.B" //INFO : "Only 1 remains after removal." //INFO : "1: sphere.Material.Phong.B" |
' ' This VBScript example shows creating texture layers on ' a shader, plus enumerating and removing them. ' set oRoot = ActiveProject.ActiveScene.Root set oSph = oRoot.AddGeometry( "Sphere", "MeshSurface" ) set oMat = oSph.AddMaterial( "Phong" ) set oPhong = oMat.Shaders(0) ' Add a layer at the end (since there are no others the "After" ' flag is irrelevant). dim oLayers(2) set oLayers(0) = oPhong.CreateTextureLayer( "B", True ) ' Add another layer before the other one. set oLayers(1) = oPhong.CreateTextureLayer( "A", False, oLayers(0) ) ' Create a third layer at the very start. set oLayers(2) = oPhong.CreateTextureLayer( "base", False ) LogMessage "Created " & oPhong.TextureLayers.Count & " layers." i = 1 for each oLayer in oPhong.TextureLayers LogMessage i & ": " & oLayer i = i + 1 next oPhong.RemoveTextureLayer oLayers(1) oPhong.RemoveTextureLayer oPhong.FullName & "." & oLayers(2).Name count = oPhong.TextureLayers.Count LogMessage "Only " & count & " remains after removal." for i = 0 to count - 1 LogMessage i + 1 & ": " & oPhong.TextureLayers.Item(i) next ' This example should log something like: 'INFO : "Created 3 layers." 'INFO : "1: sphere.Material.Phong.base" 'INFO : "2: sphere.Material.Phong.A" 'INFO : "3: sphere.Material.Phong.B" 'INFO : "Only 1 remains after removal." 'INFO : "1: sphere.Material.Phong.B" |