DisconnectAndDeleteOrUnnestShaders
 
 
 

DisconnectAndDeleteOrUnnestShaders

Introduced

v7.0

Description

Deletes the specified list of shaders after disconnecting them and unnests image clips properly from the specified container. This command is similar to the DisconnectAndDeleteShaders command except that it cleans up disconnected clips (as of v7.0, unconnected nodes do not disappear automatically).

Note: Image clips are not deleted from the scene but just removed from the render tree.

Scripting Syntax

DisconnectAndDeleteOrUnnestShaders( Shaders, Containers );

Parameters

Parameter Type Description
Shaders String List of shaders to delete. This ensures that all the shaders are disconnected before they are deleted, which is important in the rendertree, where if you delete a node you only want that node to be deleted, and not the entire subtree.
Containers String List of shader containers from which to unnnest imageclips.

Examples

Python Example

#
# This example demonstrates how to use the DisconnectAndDeleteOrUnnestShaders 
# command by creating two shaders in a simple render tree, and deleting the 
# phong without deleting the attached fractal.
# 
null = None
true = 1
false = 0
app = Application
app.NewScene( "", 0 )
# Build our shaders (a Phong and a Fractal)
oSph = app.CreatePrim( "Sphere", "MeshSurface" )
oPhong = app.SIApplyShader( "Phong", oSph )
oFractal = app.BlendInPresets( "Fractal", None, None, true, siReplaceNoBlend, false, false, true )
# Now display the render tree. A message box appears so that you can see the 
# contents of the render tree before deleting one of the shaders. When you are
# ready to proceed, click OK...
app.OpenView( "Render Tree" )
lResponse = XSIUIToolkit.MsgBox( "When you are ready to proceed, click OK. "
        + "The message box will close and the DisconnectAndDeleteShaders command "
        + "will remove the shader node only.", siMsgOkCancel + siMsgInformation, 
        "DisconnectAndDeleteShaders Demo" )
if ( lResponse == siMsgOk ) :
        app.DisconnectAndDeleteShaders( oPhong )
else :
        app.LogMessage( "You opted not to complete the demonstration." )

See Also

SIApplyShader DeleteObj DisconnectAndDeleteOrUnnestShaders Shader