SetClusterPropertyValues
 
 
 

SetClusterPropertyValues

Introduced

v9.0 (2011)

Description

Sets the values of a cluster property.

The offsets array designates the cluster elements offsets to modify. Specifying an empty value or an empty array will modify all cluster elements offsets with the specified values.

The values array designated the values to set for the specified cluster element offsets. The size of values array must match one of the following: the size of an element size (e.g. RGBA = 4 values) or the size of the number of offsets specified multiplicated by the size of an element size (e.g. 2 offsets * RGB = 6 values). In the first case, the specified values will be set to all the specified cluster element offsets, while in the case, the specified values will be applied to their corresponding specified cluster element offset.

Scripting Syntax

SetClusterPropertyValues( ClusterProp, Offsets, Values, [Mode], [ClampValues] );

Parameters

Parameter Type Description
ClusterProp ClusterProperty Cluster property to modify
Offsets Array Array of cluster element offsets to modify
Values Array Array of values to set for the specified cluster element offsets
Mode siSetValueMode Specifies the mathematical mode when setting a new value to a current value.

Default Value: siSetValueModeAbsolute

ClampValues Boolean True to clamp values

Currently, only meaningful when setting values on WeightMap properties, which have a minimum and a maximum parameters.

Default Value: false

Examples

1. VBScript Example

'
' This example shows how to set values on cluster elements of a WeightMap
'
' Create a WeightMap on a sphere
NewScene , False
CreatePrim "Sphere", "MeshSurface"
dim oWMapColl, oWMap, oWMapArray
set oWMapColl = CreateWeightMap
set oWMap = oWMapColl.Item(0)
SetClusterPropertyValues oWMap, Array(0, 1), Array(0.25, 0.5)
oWMapArray = oWMap.Elements.Array
LogMessage( "Setting different values on the first and second cluster elements" )
LogMessage( "WeightMap value for cluster element 0 : " & oWMapArray( 0 , 0 ) )
LogMessage( "WeightMap value for cluster element 1 : " & oWMapArray( 0 , 1 ) )
SetClusterPropertyValues oWMap, Array(10, 20, 30), 0.75
oWMapArray = oWMap.Elements.Array
LogMessage( "Setting the same value on many cluster elements" )
LogMessage( "WeightMap value for cluster element 10 : " & oWMapArray( 0 , 10 ) )
LogMessage( "WeightMap value for cluster element 20 : " & oWMapArray( 0 , 20 ) )
LogMessage( "WeightMap value for cluster element 30 : " & oWMapArray( 0 , 30 ) )
SetClusterPropertyValues oWMap, , Array(0.25), siSetValueModeAdditive
oWMapArray = oWMap.Elements.Array
LogMessage( "Adds the same value on all cluster elements" )
LogMessage( "WeightMap value for cluster element 0  : " & oWMapArray( 0 , 0 ) )
LogMessage( "WeightMap value for cluster element 1  : " & oWMapArray( 0 , 1 ) )
LogMessage( "WeightMap value for cluster element 10 : " & oWMapArray( 0 , 10 ) )
LogMessage( "WeightMap value for cluster element 20 : " & oWMapArray( 0 , 20 ) )
LogMessage( "WeightMap value for cluster element 30 : " & oWMapArray( 0 , 30 ) )
SetClusterPropertyValues oWMap, 10, -2, siSetValueModeAbsolute, True
SetClusterPropertyValues oWMap, 20, -2, siSetValueModeAbsolute, False
oWMapArray = oWMap.Elements.Array
LogMessage( "Playing with the ClampValues argument" )
LogMessage( "WeightMap value for cluster element 0  : " & oWMapArray( 0 , 0 ) )
LogMessage( "WeightMap value for cluster element 1  : " & oWMapArray( 0 , 1 ) )
LogMessage( "WeightMap value for cluster element 10 : " & oWMapArray( 0 , 10 ) )
LogMessage( "WeightMap value for cluster element 20 : " & oWMapArray( 0 , 20 ) )
LogMessage( "WeightMap value for cluster element 30 : " & oWMapArray( 0 , 30 ) )
' Output:
' INFO : Setting different values on the first and second cluster elements
' INFO : WeightMap value for cluster element 0 : 0.25
' INFO : WeightMap value for cluster element 1 : 0.5
' INFO : Setting the same value on many cluster elements
' INFO : WeightMap value for cluster element 10 : 0.75
' INFO : WeightMap value for cluster element 20 : 0.75
' INFO : WeightMap value for cluster element 30 : 0.75
' INFO : Adds the same value on all cluster elements
' INFO : WeightMap value for cluster element 0  : 0.5
' INFO : WeightMap value for cluster element 1  : 0.75
' INFO : WeightMap value for cluster element 10 : 1
' INFO : WeightMap value for cluster element 20 : 1
' INFO : WeightMap value for cluster element 30 : 1
' INFO : Playing with the ClampValues argument
' INFO : WeightMap value for cluster element 0  : 0.5
' INFO : WeightMap value for cluster element 1  : 0.75
' INFO : WeightMap value for cluster element 10 : 0
' INFO : WeightMap value for cluster element 20 : -2
' INFO : WeightMap value for cluster element 30 : 1

2. Python Example

#
# This example shows how to set values on cluster elements of a CAV
#
from win32com.client import constants as c
# Create a CAV on a sphere
app = Application
app.NewScene("", False)
app.CreatePrim("Sphere", "MeshSurface", "", "")
oCAVColl = app.CreateVertexColorSupport("", "", "", "")
oCAV = app.Dictionary.GetObject("sphere.polymsh.cls.UV_Cluster_AUTO.Vertex_Color")
app.ChangeVertexColorDatatype(oCAV, 1)
app.SetClusterPropertyValues(oCAV, [0, 1], [0.25, 0.5, 0.75, 1, 1, 0.75, 0.5, 0.25])
oCAVArray = oCAV.Elements.Array
app.LogMessage( "Setting different values on the first and second cluster elements" )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 0, Red    : " + str(oCAVArray[ 0 ][ 0 ]) )
app.LogMessage( "CAV value for cluster element 0, Green  : " + str(oCAVArray[ 1 ][ 0 ]) )
app.LogMessage( "CAV value for cluster element 0, Blue   : " + str(oCAVArray[ 2 ][ 0 ]) )
app.LogMessage( "CAV value for cluster element 0, Alpha  : " + str(oCAVArray[ 3 ][ 0 ]) )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 1, Red    : " + str(oCAVArray[ 0 ][ 1 ]) )
app.LogMessage( "CAV value for cluster element 1, Green  : " + str(oCAVArray[ 1 ][ 1 ]) )
app.LogMessage( "CAV value for cluster element 1, Blue   : " + str(oCAVArray[ 2 ][ 1 ]) )
app.LogMessage( "CAV value for cluster element 1, Alpha  : " + str(oCAVArray[ 3 ][ 1 ]) )
app.SetClusterPropertyValues(oCAV, [10, 20, 30], [0.5, 1, 0.25, 0.75])
oCAVArray = oCAV.Elements.Array
app.LogMessage( "Setting the same value on many cluster elements" )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 10, Red   : " + str(oCAVArray[ 0 ][ 10 ]) )
app.LogMessage( "CAV value for cluster element 10, Green : " + str(oCAVArray[ 1 ][ 10 ]) )
app.LogMessage( "CAV value for cluster element 10, Blue  : " + str(oCAVArray[ 2 ][ 10 ]) )
app.LogMessage( "CAV value for cluster element 10, Alpha : " + str(oCAVArray[ 3 ][ 10 ]) )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 20, Red   : " + str(oCAVArray[ 0 ][ 20 ]) )
app.LogMessage( "CAV value for cluster element 20, Green : " + str(oCAVArray[ 1 ][ 20 ]) )
app.LogMessage( "CAV value for cluster element 20, Blue  : " + str(oCAVArray[ 2 ][ 20 ]) )
app.LogMessage( "CAV value for cluster element 20, Alpha : " + str(oCAVArray[ 3 ][ 20 ]) )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 30, Red   : " + str(oCAVArray[ 0 ][ 30 ]) )
app.LogMessage( "CAV value for cluster element 30, Green : " + str(oCAVArray[ 1 ][ 30 ]) )
app.LogMessage( "CAV value for cluster element 30, Blue  : " + str(oCAVArray[ 2 ][ 30 ]) )
app.LogMessage( "CAV value for cluster element 30, Alpha : " + str(oCAVArray[ 3 ][ 30 ]) )
app.SetClusterPropertyValues(oCAV, None, [0.75, 0.25, 1, 0.5])
oCAVArray = oCAV.Elements.Array
app.LogMessage( "Setting the same value on all cluster elements" )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 0, Red    : " + str(oCAVArray[ 0 ][ 0 ]) )
app.LogMessage( "CAV value for cluster element 0, Green  : " + str(oCAVArray[ 1 ][ 0 ]) )
app.LogMessage( "CAV value for cluster element 0, Blue   : " + str(oCAVArray[ 2 ][ 0 ]) )
app.LogMessage( "CAV value for cluster element 0, Alpha  : " + str(oCAVArray[ 3 ][ 0 ]) )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 1, Red    : " + str(oCAVArray[ 0 ][ 1 ]) )
app.LogMessage( "CAV value for cluster element 1, Green  : " + str(oCAVArray[ 1 ][ 1 ]) )
app.LogMessage( "CAV value for cluster element 1, Blue   : " + str(oCAVArray[ 2 ][ 1 ]) )
app.LogMessage( "CAV value for cluster element 1, Alpha  : " + str(oCAVArray[ 3 ][ 1 ]) )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 10, Red   : " + str(oCAVArray[ 0 ][ 10 ]) )
app.LogMessage( "CAV value for cluster element 10, Green : " + str(oCAVArray[ 1 ][ 10 ]) )
app.LogMessage( "CAV value for cluster element 10, Blue  : " + str(oCAVArray[ 2 ][ 10 ]) )
app.LogMessage( "CAV value for cluster element 10, Alpha : " + str(oCAVArray[ 3 ][ 10 ]) )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 20, Red   : " + str(oCAVArray[ 0 ][ 20 ]) )
app.LogMessage( "CAV value for cluster element 20, Green : " + str(oCAVArray[ 1 ][ 20 ]) )
app.LogMessage( "CAV value for cluster element 20, Blue  : " + str(oCAVArray[ 2 ][ 20 ]) )
app.LogMessage( "CAV value for cluster element 20, Alpha : " + str(oCAVArray[ 3 ][ 20 ]) )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 30, Red   : " + str(oCAVArray[ 0 ][ 30 ]) )
app.LogMessage( "CAV value for cluster element 30, Green : " + str(oCAVArray[ 1 ][ 30 ]) )
app.LogMessage( "CAV value for cluster element 30, Blue  : " + str(oCAVArray[ 2 ][ 30 ]) )
app.LogMessage( "CAV value for cluster element 30, Alpha : " + str(oCAVArray[ 3 ][ 30 ]) )
app.SetClusterPropertyValues(oCAV, [10, 20, 30], [-10, None, None, None], c.siSetValueModeAddPercentage)
oCAVArray = oCAV.Elements.Array
app.LogMessage( "Removing a 10% of the Red channel on many cluster elements" )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 10, Red   : " + str(oCAVArray[ 0 ][ 10 ]) )
app.LogMessage( "CAV value for cluster element 10, Green : " + str(oCAVArray[ 1 ][ 10 ]) )
app.LogMessage( "CAV value for cluster element 10, Blue  : " + str(oCAVArray[ 2 ][ 10 ]) )
app.LogMessage( "CAV value for cluster element 10, Alpha : " + str(oCAVArray[ 3 ][ 10 ]) )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 20, Red   : " + str(oCAVArray[ 0 ][ 20 ]) )
app.LogMessage( "CAV value for cluster element 20, Green : " + str(oCAVArray[ 1 ][ 20 ]) )
app.LogMessage( "CAV value for cluster element 20, Blue  : " + str(oCAVArray[ 2 ][ 20 ]) )
app.LogMessage( "CAV value for cluster element 20, Alpha : " + str(oCAVArray[ 3 ][ 20 ]) )
app.LogMessage( "--------------------------------------" )
app.LogMessage( "CAV value for cluster element 30, Red   : " + str(oCAVArray[ 0 ][ 30 ]) )
app.LogMessage( "CAV value for cluster element 30, Green : " + str(oCAVArray[ 1 ][ 30 ]) )
app.LogMessage( "CAV value for cluster element 30, Blue  : " + str(oCAVArray[ 2 ][ 30 ]) )
app.LogMessage( "CAV value for cluster element 30, Alpha : " + str(oCAVArray[ 3 ][ 30 ]) )
# Output:
# INFO : Setting different values on the first and second cluster elements
# INFO : --------------------------------------
# INFO : CAV value for cluster element 0, Red    : 0.25
# INFO : CAV value for cluster element 0, Green  : 0.5
# INFO : CAV value for cluster element 0, Blue   : 0.75
# INFO : CAV value for cluster element 0, Alpha  : 1.0
# INFO : --------------------------------------
# INFO : CAV value for cluster element 1, Red    : 1.0
# INFO : CAV value for cluster element 1, Green  : 0.75
# INFO : CAV value for cluster element 1, Blue   : 0.5
# INFO : CAV value for cluster element 1, Alpha  : 0.25
# INFO : Setting the same value on many cluster elements
# INFO : --------------------------------------
# INFO : CAV value for cluster element 10, Red   : 0.5
# INFO : CAV value for cluster element 10, Green : 1.0
# INFO : CAV value for cluster element 10, Blue  : 0.25
# INFO : CAV value for cluster element 10, Alpha : 0.75
# INFO : --------------------------------------
# INFO : CAV value for cluster element 20, Red   : 0.5
# INFO : CAV value for cluster element 20, Green : 1.0
# INFO : CAV value for cluster element 20, Blue  : 0.25
# INFO : CAV value for cluster element 20, Alpha : 0.75
# INFO : --------------------------------------
# INFO : CAV value for cluster element 30, Red   : 0.5
# INFO : CAV value for cluster element 30, Green : 1.0
# INFO : CAV value for cluster element 30, Blue  : 0.25
# INFO : CAV value for cluster element 30, Alpha : 0.75
# INFO : Setting the same value on all cluster elements
# INFO : --------------------------------------
# INFO : CAV value for cluster element 0, Red    : 0.75
# INFO : CAV value for cluster element 0, Green  : 0.25
# INFO : CAV value for cluster element 0, Blue   : 1.0
# INFO : CAV value for cluster element 0, Alpha  : 0.5
# INFO : --------------------------------------
# INFO : CAV value for cluster element 1, Red    : 0.75
# INFO : CAV value for cluster element 1, Green  : 0.25
# INFO : CAV value for cluster element 1, Blue   : 1.0
# INFO : CAV value for cluster element 1, Alpha  : 0.5
# INFO : --------------------------------------
# INFO : CAV value for cluster element 10, Red   : 0.75
# INFO : CAV value for cluster element 10, Green : 0.25
# INFO : CAV value for cluster element 10, Blue  : 1.0
# INFO : CAV value for cluster element 10, Alpha : 0.5
# INFO : --------------------------------------
# INFO : CAV value for cluster element 20, Red   : 0.75
# INFO : CAV value for cluster element 20, Green : 0.25
# INFO : CAV value for cluster element 20, Blue  : 1.0
# INFO : CAV value for cluster element 20, Alpha : 0.5
# INFO : --------------------------------------
# INFO : CAV value for cluster element 30, Red   : 0.75
# INFO : CAV value for cluster element 30, Green : 0.25
# INFO : CAV value for cluster element 30, Blue  : 1.0
# INFO : CAV value for cluster element 30, Alpha : 0.5
# INFO : Removing a 10% of the Red channel on many cluster elements
# INFO : --------------------------------------
# INFO : CAV value for cluster element 10, Red   : 0.675
# INFO : CAV value for cluster element 10, Green : 0.25
# INFO : CAV value for cluster element 10, Blue  : 1.0
# INFO : CAV value for cluster element 10, Alpha : 0.5
# INFO : --------------------------------------
# INFO : CAV value for cluster element 20, Red   : 0.675
# INFO : CAV value for cluster element 20, Green : 0.25
# INFO : CAV value for cluster element 20, Blue  : 1.0
# INFO : CAV value for cluster element 20, Alpha : 0.5
# INFO : --------------------------------------
# INFO : CAV value for cluster element 30, Red   : 0.675
# INFO : CAV value for cluster element 30, Green : 0.25
# INFO : CAV value for cluster element 30, Blue  : 1.0
# INFO : CAV value for cluster element 30, Alpha : 0.5