## ClusterProperty.Elements

### Description

Returns a ClusterElementCollection containing cluster property elements.

### C# Syntax

    // get accessor

    ClusterElementCollection ClusterProperty.get_Elements();

    // set accessor

    ClusterProperty.set_Elements( Object pVal );

### Examples

#### 1. VBScript Example

    '

    ' This example demonstrates how to access a vertex color cluster property

    '

    set oRoot = Application.ActiveSceneRoot

    set oObj = oRoot.AddGeometry("Cube", "MeshSurface")

    CreateVertexColorSupport, , oObj

    set oGeom = oObj.ActivePrimitive.Geometry

    set oSamplePointClusters = oGeom.Clusters.Filter("sample")

    ' Find vertexcolor for list of sample points

    set oVertexColor = Nothing

    for each oSamplePointCluster in oSamplePointClusters

    	set oVertexColor = oSamplePointCluster.Properties.Find("vertexcolor")

    	if TypeName(oVertexColor) <> "Nothing" then

    		exit for

    	end if

    next

    aClusterToGeometryMapping = oSamplePointCluster.Elements.Array

    aRGBA = oVertexColor.Elements.Array

    ' Print out the first 10 elements of the ClusterProperty

    ' (to go though the whole array use "0 to ubound(aRGBA,2)" )

    for iIndex = 0 to 9

    	Application.LogMessage "Sample [" &_

    		aClusterToGeometryMapping(iIndex) &_

    		"] has RGBA(" & _

    		round( aRGBA(0,iIndex), 2) & "," & _

    		round( aRGBA(1,iIndex), 2) & "," & _

    		round( aRGBA(2,iIndex), 2) & "," & _

    		round( aRGBA(3,iIndex), 2) & ")"

    next

    ' Results of this script:

    'INFO : "Sample [0] has RGBA(0.75,0.75,0.75,1)"

    'INFO : "Sample [1] has RGBA(0.75,0.75,0.75,1)"

    'INFO : "Sample [2] has RGBA(0.75,0.75,0.75,1)"

    'INFO : "Sample [3] has RGBA(0.75,0.75,0.75,1)"

    'INFO : "Sample [4] has RGBA(0.75,0.75,0.75,1)"

    'INFO : "Sample [5] has RGBA(0.75,0.75,0.75,1)"

    'INFO : "Sample [6] has RGBA(0.75,0.75,0.75,1)"

    'INFO : "Sample [7] has RGBA(0.75,0.75,0.75,1)"

    'INFO : "Sample [8] has RGBA(0.75,0.75,0.75,1)"

    'INFO : "Sample [9] has RGBA(0.75,0.75,0.75,1)"

#### 2. VBScript Example

    'vbscript example that randomizes the length of hairs on a sphere

    'by modifying a weight map cluster property

    option explicit

    'Step 1 - Create a little scene

    newscene ,false

    dim oObj, oObjVertexCluster, oWM, oWMOnHair, oHair

    set oObj = ActiveSceneRoot.AddGeometry("Grid","MeshSurface")

    SetValue oObj & ".polymsh.geom.subdivu", 4

    SetValue oObj & ".polymsh.geom.subdivv", 1

    ApplyHairOp oObj.Name

    set oHair = oObj.Children( "Hair" )

    'Step 2 - Create the weight map and connect it to the hair

    set oObjVertexCluster= oObj.ActivePrimitive.Geometry.AddCluster( siVertexCluster, "MyCluster" )

    'Create the weightmap on the sphere

    CreateWeightMap , oObjVertexCluster.FullName, "MyWeightMap"

    set oWM = oObjVertexCluster.Properties( "MyWeightMap" )

    PropertyTransfer oHair, oWM.FullName

    'Get pointer to the weight map that has been transfered

    set oWMOnHair = oHair.ActivePrimitive.Geometry.Clusters( "MyCluster" ).Properties( "MyWeightMap" )

    'Connect the weightmap to the Cut parameter.  The tricky thing is specifying the

    'three different objects that will be connected - the original weight map, the cut parameter

    'and transfered weight map on the qhair cluster.  However once the relationship is

    'established we just work with the original weight map

    ApplyOp "MapCompOp",  oWM.FullName & ";" & oHair.Name & ".hair.Cut;" & oWMOnHair

    'Step 3 - set random values in the original weight map

    dim oWMElements

    set oWMElements = oWM.Elements

    dim Cnt

    Cnt = oWMElements.count

    'Get an array of all the weights (it has dimensions 1 x NumberElements)

    dim ElArray

    ElArray = oWMElements.Array

    'We can adjust the values in this array as we see fit

    Randomize

    dim i

    for i = 0 to Cnt - 1

    	'Pick a number between 0 and 1

    	ElArray( 0, i ) = rnd

    	'Tip: To Pick a random number between 0.2 and 1.0

    	'the forumula would be 0.2 + (0.8 * rnd ) instead

    next

    'Set the values back

    oWMElements.Array = ElArray

    'If you render the hair now you will see that the lengths

    'have been randomized