TransferPropertiesAcrossGenOp

Introduced

4.0

Description

Transfers a set of properties from the specified input objects on a generator operator to a specified output object as a new property. It can be optionally shared.

Note: To transfer cluster properties alone, use the TransferClusterPropertiesAcrossGenOp command.

Scripting Syntax

TransferPropertiesAcrossGenOp( Operator, Object, PropertiesToTransfer, PropertyName, ShareProperty, TransferClusterProperties )

Parameters

Parameter

Type

Description

Operator

String

Specifies the generator operator on which the property transfer will be performed.

Object

String

Specifies an output object to which the new property will be added.

PropertiesToTransfer

Selection list

Specifies the properties to transfer to the new property. Properties are not cluster properties.

Possible Values:

Material: Material on an object or cluster.

PropertyName

String

Specifies the name of the new property.

ShareProperty

Boolean

True implies that the property will be shared.

Default Value: True

TransferClusterProperties

Boolean

True implies that the cluster property references by name are also transfered according to an internal heuristic that considers all input properties equivalent.

Default Value: True

Return Value

Returns the created Property.

Examples

1. VBScript Example

'This example transfers properties across generator 
'operators that admit transfer of properties.

Dim l_NewMaterial

newscene ,false

'Create objects
CreatePrim "Grid", "MeshSurface", "grid"
CreatePrim "Grid", "MeshSurface", "grid1"
Translate "grid1", 8.2, 0, 0, siRelative, siView, siObj, siXYZ

'Add some properties to objects: Materials and texture coordinates.
ApplyShader , , , , siLetLocalMaterialsOverlap
SetValue "grid1.Material.Phong.diffuse.red", 0.750
SIApplyShaderToCnxPoint "Image", "grid1.Material.Phong.diffuse"

SelectObj "grid", , True
SetSelFilter "Polygon"
AddToSelection "grid.poly[18-21,26-29,34-37,42-45,50-53]", , True
ApplyShader , , , , siLetLocalMaterialsOverlap
SetValue "grid.polymsh.cls.Polygon.Material.Phong.diffuse.green", 0.250
SIApplyShaderToCnxPoint "Image", "grid.polymsh.cls.Polygon.Material.Phong.diffuse"
CreateProjection "grid", siTxtPlanarXZ, siTxtDefaultSpherical, "Texture_Support", "Texture_Projection"
SetInstanceDataValue , "grid.polymsh.cls.Polygon.Material.Phong.Image.tspace_id", "Texture_Projection"

SelectObj "grid1", , True
CreateProjection "grid1", siTxtPlanarXZ, siTxtDefaultSpherical, "Texture_Support", "Texture_Projection"
SetInstanceDataValue , "grid1.Material.Phong.Image.tspace_id", "Texture_Projection"

' Apply merge operator. 
ApplyGenOp "MeshMerge", , "grid,grid1", 3, siPersistentOperation, siKeepGenOpInputs
SetValue "polymsh.polymsh.mergemesh.tolerance", 2.0
Translate , -4.0, 3.0, -0.0, siRelative, siView, siObj, siXYZ

' Transfer properties across the merge operator.
set l_NewMaterial = TransferPropertiesAcrossGenOp( "polymsh.polymsh.mergemesh", "polymsh",_
"grid.polymsh.cls.Polygon.Material,grid1.Material", "Material_Gen", , True )

' View results.  
SetDisplayMode "Camera", "texturedecal"
SetValue "Camera.camvis.objctrlpropmaps", True
ActivateObjectSelTool
SelectObj "grid"
AddToSelection "grid1", , True
AddToSelection l_NewMaterial.Parent

2. JScript Example

//This example transfers properties across generator 
//operators that admit transfer of properties.

NewScene( null, false )

// Create objects
CreatePrim("Grid", "MeshSurface", "grid", null);
CreatePrim("Grid", "MeshSurface", "grid1", null);
Translate( "grid1", 8.2, 0.0, 0.0, 
siRelative, siView, siObj, siXYZ, 
null, null, null, null, null, null, null, null, null);

// Add some properties to objects: Materials and texture coordinates.

ApplyShader(null, "", null, "", siLetLocalMaterialsOverlap);
SetValue("grid1.Material.Phong.diffuse.red", 1, null);
SIApplyShaderToCnxPoint("Image", "grid1.Material.Phong.diffuse", null, null);
CreateProjection("grid1", 
   siTxtPlanarXZ, 
   siTxtDefaultSpherical, 
   "Texture_Support", 
   "Texture_Projection", 
   null, null, "");
SetInstanceDataValue(null, 
   "grid1.Material.Phong.Image.tspace_id", 
   "Texture_Projection");

SelectObj("grid", null, true);
SetSelFilter("Polygon");
AddToSelection("grid.poly[26-29,34-37,42-45]", null, true);
ApplyShader(null, "", null, "", siLetLocalMaterialsOverlap);
SetValue("grid.polymsh.cls.Polygon.Material.Phong.diffuse.blue", 0.006, null);
SIApplyShaderToCnxPoint("Image", 
   "grid.polymsh.cls.Polygon.Material.Phong.diffuse", 
   null, null);
CreateProjection("grid", 
   siTxtPlanarXZ, 
   siTxtDefaultSpherical, 
   "Texture_Support", 
   "Texture_Projection1", 
   null, null, "");
SetInstanceDataValue(null, 
   "grid.polymsh.cls.Polygon.Material.Phong.Image.tspace_id", 
   "Texture_Projection1");

// Apply merge operator. 
ApplyGenOp("MeshMerge", "", "grid,grid1", 3, siPersistentOperation, siKeepGenOpInputs);
SetValue("polymsh.polymsh.mergemesh.tolerance", 2, null);
Translate( "polymsh", -4.0, 4.0, -5.0, 
   siRelative, siView, siObj, siXYZ,
   null, null, null, null, null, null, null, null, null);

// Transfer properties across the merge operator.
l_NewMaterial = TransferPropertiesAcrossGenOp(
   "polymsh.polymsh.mergemesh", 
   "polymsh", 
   "grid.polymsh.cls.Polygon.Material, grid1.Material", 
   "Material_Gen", 
   null, 
   true);

// Transfer properties across the merge operator.
SelectObj("grid", null, true);
AddToSelection("grid1", null, true);
AddToSelection( l_NewMaterial , null, true);
SetDisplayMode("Camera", "texturedecal");
SetValue("Camera.camvis.objctrlpropmaps", true, null);

See Also

TransferClusterPropertiesAcrossGenOp

TransferAllPropertiesAcrossGenOp

CopyAnimationAcrossGenerator



Autodesk Softimage v7.5