Cluster.IsAlwaysComplete operator

Introduced

v5.0

Description

Returns true if the cluster is maintained as always complete. An always-complete cluster always covers all the components of the Geometry, even when new components are added by a modeling operation; however, notice that a cluster which covers all components of a geometry is not necessarily always-complete. See Geometry.AddCluster in for details on how to create a cluster that is always-complete.

Notice that some ClusterProperty types can only be added to clusters that are always complete. These types are vertex color, uv and symmetry map properties.

Note: It is not possible to remove elements from an always-complete cluster.

Scripting Syntax

oBoolean = Cluster.IsAlwaysComplete();

Return Value

Boolean

Examples

JScript Example

NewScene(null);
// Create a 1X1 grid. Such geometry only have 4 sampled points: 0,1,2,3.
oGrid = CreatePrim("Grid", "MeshSurface", null, null);
SetValue("grid.polymsh.geom.subdivu", 1, null);
SetValue("grid.polymsh.geom.subdivv", 1, null);
// Add a sampled point cluster covering all sampled points. By passing an
// explicit array, it will create a cluster which is not always complete.
oCluster = oGrid.ActivePrimitive.Geometry.AddCluster( siSampledPointCluster,"NonCompleteCluster",Array(0,1,2,3));
logmessage("Is cluster " + oCluster + " complete? " + (oCluster.IsAlwaysComplete() ? "yes" : "no"));
// Add a sampled point cluster covering all sampled points. By passing no 
// explicit array, it will create a cluster which is always complete.
oCompleteCluster = oGrid.ActivePrimitive.Geometry.AddCluster( siSampledPointCluster,"CompleteCluster" );
logmessage("Is cluster " + oCompleteCluster + " complete? " + (oCompleteCluster.IsAlwaysComplete() ? "yes" : "no"));
try
{
        oProperty = oCluster.AddProperty("Texture Projection", false, "UV Property");
}
catch( e )
{
        logmessage("Error; can't add a UV cluster property on cluster" + oCluster);
}
oProperty = oCompleteCluster.AddProperty("Texture Projection", false, "UV Property");
logmessage("UV cluster property " + oProperty + " was added to complete cluster " + oCompleteCluster);
// The output of this script is:
//
//INFO : Is cluster grid.polymsh.cls.NonCompleteCluster complete? no
//INFO : Is cluster grid.polymsh.cls.CompleteCluster complete? yes
//ERROR : 2000 - The cluster property could not cannot be added. This type of cluster property requires the parent cluster to be always complete. See "AddProperty" method reference for more information about this.
//INFO : Error; can't add a UV cluster property on clustergrid.polymsh.cls.NonCompleteCluster
//INFO : UV cluster property grid.polymsh.cls.CompleteCluster.UV_Property was added to complete cluster grid.polymsh.cls.CompleteCluster

See Also

Geometry.AddCluster SceneItem.AddProperty