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 |
List of clusters (probably selected) against which all clusters will be tested for overlapping. Default Value: Current selection |
|
|
Property |
Example of a property the existing clusters must have in order to be tested. |
|
|
ActionWhenLocalMaterialsOverlap |
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
Autodesk Softimage v7.5