## ImageClip.GetShaderParameterTargets

### Introduced

v7.0

### Description

Returns a ParameterCollection containing the object(s) connected to an image clip output. This traverses the render tree in the opposite direction as the Parameter.Source property:

### C# Syntax

    ParameterCollection ImageClip.GetShaderParameterTargets();

### Scripting Syntax

    oReturn = ImageClip.GetShaderParameterTargets();

### Return Value

ParameterCollection

### Examples

#### JScript Example

    /*
            This example creates a sample shader tree that uses 3 image clips and shows
            how to get to which input parameters thoses image clips are connected. An image clip
            can be shared across different materials.
    */
    NewScene(null, false);
    //Create 4 Image Nodes
    SIApplyShaderToCnxPoint("Image", "Sources.Materials.DefaultLib.Scene_Material.Phong.diffuse", null, null);
    SIApplyShaderToCnxPoint("Image", "Sources.Materials.DefaultLib.Scene_Material.Phong.ambient", null, null);
    SIApplyShaderToCnxPoint("Image", "Sources.Materials.DefaultLib.Scene_Material.Phong.specular", null, null);
    SIApplyShaderToCnxPoint("ScalarImage", "Sources.Materials.DefaultLib.Scene_Material.Phong.shiny", null, null);
    //Create 3 Image Clips From File
    SICreateImageClip("\Pictures\\chrom[1..3].tga", null, null);
    SICreateImageClip("\Pictures\\cloud02.pic", null, null);
    SICreateImageClip("\Pictures\\refmap2.tga", null, null);
    //Connect the first 2 Image Clip to different Shader Input Parameters
    SIConnectShaderToCnxPoint("Clips.chrom_1__3__tga", "Sources.Materials.DefaultLib.Scene_Material.Image.tex", false);
    SIConnectShaderToCnxPoint("Clips.cloud02_pic", "Sources.Materials.DefaultLib.Scene_Material.Image1.tex", false);
    //The last Image Clip is connected to 2 input parameters.
    SIConnectShaderToCnxPoint("Clips.refmap2_tga", "Sources.Materials.DefaultLib.Scene_Material.Image2.tex", false);
    SIConnectShaderToCnxPoint("Clips.refmap2_tga", "Sources.Materials.DefaultLib.Scene_Material.ScalarImage.tex", false);
    //Remove No-Icon from this material
    DisconnectAndDeleteOrUnnestShaders("Clips.noIcon_pic", "Sources.Materials.DefaultLib.Scene_Material");
    //Now Get the Image Clips and use the GetShaderParameterTarget method to get where they are connected.
    var oCloudClip, oChromeClip, oRefMapClip, oNoIconClip;
    SICreateImageClip("\Pictures\\refmap2.tga", null, null);
    oCloudClip = GetValue("Clips.cloud02_pic");
    oChromeClip = GetValue("Clips.chrom_1__3__tga");
    oRefMapClip = GetValue("Clips.refmap2_tga");
    oNoIconClip = GetValue("Clips.noIcon_pic");
    //Cloud and Chrome Should be connected to 1 target.
    var oCloudClipTargets, oChromeClipTargets;
    oCloudClipTargets = oCloudClip.GetShaderParameterTargets();
    oChromeClipTargets = oChromeClip.GetShaderParameterTargets();
    LogMessage( "Cloud and Chrome Should be connected to 1 target." );
    LogMessage( "Cloud is connected to " + oCloudClipTargets.Count + " Target(s)." );
    LogMessage( "Chromeis connected to " + oChromeClipTargets.Count + " Target(s)." );
    //RefMap Should be connected to 2 targets.
    var oRefMapClipTargets;
    oRefMapClipTargets= oRefMapClip.GetShaderParameterTargets();
    LogMessage( "RefMap Should be connected to 2 targets." );
    LogMessage( "RefMap is connected to " + oRefMapClipTargets.Count + " Target(s)." );
    //NoIcon Should be connected to 0 target.
    var oNoIconClipTargets;
    oNoIconClipTargets= oNoIconClip.GetShaderParameterTargets();
    LogMessage( "NoIcon Should be connected to 0 target." );
    LogMessage( "NoIcon is connected to " + oNoIconClipTargets.Count + " Target(s)." );

### See Also

Shader.GetShaderParameterTargets Parameter.Source