## TextureLayerPort

Object Hierarchy | Related C++ Class: TextureLayerPort

### Inheritance

###

SIObject

ProjectItem

TextureLayerPort

### Introduced

v4.0

### Description

The TextureLayerPort is an object used to describe which specific shader and material parameters a TextureLayer affects. Like shader connections, they indicate what shader ports are being driven by the layer.
The port has a few properties which describe how the layer affects a single shading parameter, generally these are used to modify the layer's settings in a port-specific way, for example by inverting or scaling the overall effect. A layer may be set up to blend its color by 50% with the layer beneath it. However, that layer's the ambient port effect may only be 25% whereas the diffuse port contribution could be set to 100%.

### Methods

AddCustomOp | AddICEAttribute | AddScriptedOp | AddScriptedOpFromFile
AnimatedParameters2 | BelongsTo | EvaluateAt | GetICEAttributeFromName
IsA | IsAnimated2 | IsClassOf | IsEqualTo
IsKindOf | IsLocked | IsSelected | LockOwners
RemoveICEAttribute | SetAsSelected | SetCapabilityFlag | SetLock
TaggedParameters | UnSetLock |  |

### Properties

Application | BranchFlag | Capabilities | Categories
EvaluationID | Families | FullName | Help
HierarchicalEvaluationID | ICEAttributes | LockLevel | LockMasters
LockType | Model | Name | NestedObjects
ObjectID | Origin | OriginPath | Owners
PPGLayout | Parameters | Parent | Parent3DObject
Selected | Target | Type |

### Examples

#### JScript Example

    /*

    	This example shows creation of texture layer ports,

    	plus enumerating and removing them.

    */

    oRoot = ActiveProject.ActiveScene.Root;

    oSph = oRoot.AddGeometry( "Torus", "MeshSurface" );

    oMat = oSph.AddMaterial( "Phong" );

    oPhong = oMat.Shaders(0);

    // Add a layer at the end.

    oLayer = oPhong.CreateTextureLayer( "DirtLayer" );

    // Add some texture layer port connections on this layer.

    oPorts = new Array(3);

    oPorts[0] = oLayer.AddTextureLayerPort( oPhong.parameters( "ambient" ) );

    oPorts[1] = oLayer.AddTextureLayerPort( oPhong.parameters( "diffuse" ) );

    oPorts[2] = oLayer.AddTextureLayerPort( oPhong.parameters( "specular" ) );

    Application.LogMessage( "Created " + oLayer.TextureLayerPorts.count + " ports." );

    for ( i = 0; i < oLayer.TextureLayerPorts.count; i++ )

    {

    	oPort = oLayer.TextureLayerPorts(i);

    	Application.LogMessage( (i+1) + ": " + oPort );

    }

    oLayer.RemoveTextureLayerPort( oPorts[1] );

    oLayer.RemoveTextureLayerPort( oLayer.fullname + "." + oPorts[2].name );

    count = oLayer.TextureLayerPorts.count;

    Application.LogMessage( "Only " + count + " remain(s) after removal." );

    for ( i = 0; i < count; i++ )

    {

    	Application.LogMessage( (i+1) + ": " + oLayer.TextureLayerPorts.item(i) );

    }

    // This example should log something like:

    //INFO : "Created 3 ports."

    //INFO : "1: torus.Material.Phong.DirtLayer.ambient"

    //INFO : "2: torus.Material.Phong.DirtLayer.diffuse"

    //INFO : "3: torus.Material.Phong.DirtLayer.specular"

    //INFO : "Only 1 remain(s) after removal."

    //INFO : "1: torus.Material.Phong.DirtLayer.ambient"

### See Also

TextureLayer.TextureLayerPorts TextureLayer.AddTextureLayerPort AddTextureLayerPorts