ClusterNonOverlapE nforcement

Description

Resolves the ambiguity when clusters overlap in a context of a given property type (e.g.: material). This command is used primarily by ApplyShader.

It either removes the overlap from the selected clusters, from the existing clusters, or simply lets the overlap happen.

Scripting Syntax

    ClusterNonOverlapEnforcement( InputObjs, Property, ActionWhenLocalMaterialsOverlap )

Parameters

Parameter | Type | Description
InputObjs | String | List of clusters (probably selected) against which all clusters will be tested for overlapping. Default Value: Current selection
Property | String | Example of a property the existing clusters must have in order to be tested.
ActionWhenLocalMaterialsOverlap | siActionWhenLocalMaterialsOverlap | What to do with the clusters found to be overlapping with the target cluster(s). Default Value: siRemoveFromSelectedClusters

Return Value

Returns an XSICollection containing the clusters found to be overlapping with the target cluster(s).

Examples

VBScript Example

    ' The following example demonstrates how to use ClusterNonOverlapEnforcement to resolve conflicts
    ' when clusters with a given type of property (eg: material) overlaps.
    ' The example is not really a good one because ApplyShader already does all this internally

    ' let's create a grid
    NewScene
    CreatePrim "Grid", "MeshSurface"

    ' now lets make the four corners red
    ActivateRaycastPolySelTool
    SelectGeometryComponents "grid.poly[0]"
    AddToSelection "grid.poly[0,1,8,9]", , True
    AddToSelection "grid.poly[48,49,56,57]", , True
    AddToSelection "grid.poly[6,7,14,15]", , True
    AddToSelection "grid.poly[54,55,62,LAST]", , True
    set l_Shader = ApplyShader
    SetValue "grid.polymsh.cls.Polygon.Material.Phong.diffuse.red", 1
    SetValue "grid.polymsh.cls.Polygon.Material.Phong.diffuse.green", 0
    SetValue "grid.polymsh.cls.Polygon.Material.Phong.diffuse.blue", 0
    SetDisplayMode "Views.ViewA.TopCamera", "shaded"

    ' to make the remaining polygons green lets simply select
    ' all the polygons and use ClusterNonOverlapEnforcement with
    ' siRemoveFromSelectedClusters to not override the corners
    SelectAllUsingFilter "Polygon", siCheckComponentVisibility
    set l_Cluster = CreateCluster
    ClusterNonOverlapEnforcement l_Cluster, "grid.polymsh.cls.Polygon.Material", siRemoveFromSelectedClusters
    ApplyShader
    SetValue "grid.polymsh.cls.Polygon1.Material.Phong.diffuse.red", 0
    SetValue "grid.polymsh.cls.Polygon1.Material.Phong.diffuse.green", 1
    SetValue "grid.polymsh.cls.Polygon1.Material.Phong.diffuse.blue", 0

    ' now to make the 4 polygons blue in the center
    ' lets use ClusterNonOverlapEnforcement this time with siRemoveFromExistingClusters
    SelectGeometryComponents "grid.poly[27,28,35,36]"
    set l_Cluster = CreateCluster
    ClusterNonOverlapEnforcement l_Cluster, "grid.polymsh.cls.Polygon.Material", siRemoveFromExistingClusters
    ApplyShader
    SetValue "grid.polymsh.cls.Polygon2.Material.Phong.diffuse.red", 0
    SetValue "grid.polymsh.cls.Polygon2.Material.Phong.diffuse.green", 0
    SetValue "grid.polymsh.cls.Polygon2.Material.Phong.diffuse.blue", 1

    DeselectAll

See Also

ApplyShader

Autodesk Softimage v7.5