## Cluster.IsAlwaysComplete

### 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.

### C# Syntax

    Boolean Cluster.IsAlwaysComplete();

### 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