CreateTransformGroup

Introduced

v5.0

Description

Reparents the objects in the input list under a transform group object. A transform group is a special type of null that allows you to parent a number of objects for group transformations. Transform groups are not visible by default. Transform groups can be made visible in Camera Visibility > Objects > Control Objects > Transform Groups. Note that a transform group is not the same as a Group. Unlike transform groups, groups are not 3D objects and do not affect the parenting of their members.

This command positions a transform group null at the location of the nearest common ancestor of all the objects in the input list. If there are no input objects, the transform group will be placed under the scene root. The command branch selects the new transform group.

Note: Bones cannot be part of a transform group because they cannot be reparented.

Scripting Syntax

oReturn = CreateTransformGroup( [Name], [InputObjs] );

Return Value

Returns the transform-group (an X3DObject object).

Parameters

Parameter Type Description
Name String Name of the group

Default Value: "Group"

InputObjs String List of objects to put in the group.

Default Value: Selected objects

Examples

JScript Example

/*

	This example will transform group a cone twice, making a hierarchy 3 objects deep. 

	Each object will be offset by 5 units in Y.

*/

// Make transform groups visible in the camera view

SetValue("Camera.camvis.objctrltransfogroups", true, null);

// Create and position the cone

var oCone = CreatePrim("Cone", "MeshSurface");

var pos = XSIMath.CreateVector3();

pos.Set(0,5,0);

oCone.LocalTranslation = pos;

// Transform group the cone and offset the group 5 units in Y

var oXfmGroup = CreateTransformGroup(null, "cone");

LogMessage("---1st group created---");

LogMessage("1st group's parent:" + oXfmGroup.Parent);

LogMessage("1st group         :" + oXfmGroup.Name);

LogMessage("1st group's child :" + oXfmGroup.Children(0));

oXfmGroup.LocalTranslation = pos;

// Group the cone again offset the new group.

var oXfmGroup2 = CreateTransformGroup(null, "cone");

//Move the Transform Group up

oXfmGroup2.LocalTranslation = pos;

LogMessage("-----------------------");

LogMessage("---2nd group created---");

LogMessage("1st group's parent:" + oXfmGroup.Parent);

LogMessage("1st group         :" + oXfmGroup.Name);

LogMessage("1st group's child :" + oXfmGroup.Children(0));

LogMessage("-----------------------");

LogMessage("2nd group's parent:" + oXfmGroup2.Parent);

LogMessage("2nd group         :" + oXfmGroup2.Name);

LogMessage("2nd group's child :" + oXfmGroup2.Children(0));

/////////////////////////////////////

// Output from running this script:

/////////////////////////////////////

//INFO : ---1st group created---

//INFO : 1st group's parent:Scene_Root

//INFO : 1st group         :transfogroup

//INFO : 1st group's child :cone

//INFO : -----------------------

//INFO : ---2nd group created---

//INFO : 1st group's parent:Scene_Root

//INFO : 1st group         :transfogroup

//INFO : 1st group's child :transfogroup1

//INFO : -----------------------

//INFO : 2nd group's parent:transfogroup

//INFO : 2nd group         :transfogroup1

//INFO : 2nd group's child :cone

See Also

RemoveTransformGroup