XSIMath.MapObjectPoseToWorldSpace

Description

Converts a Pose described in a given ObjectSpace to WorldSpace.

C# Syntax

SITransformation XSIMath.MapObjectPoseToWorldSpace( SITransformation in_pObjectSpace, SITransformation in_pPose );

Scripting Syntax

oReturn = XSIMath.MapObjectPoseToWorldSpace( ObjectSpace, Pose );

Return Value

SITransformation (pose)

Parameters

Parameter Type Description
ObjectSpace SITransformation ObjectSpace in which the pose is described.
Pose SITransformation Pose to convert.

Examples

1. JScript Example

/*

	This example demonstrates how to map a cube's position relative to its parent 

	to global coordinates

*/

NewScene (null, false)

var oRoot = Application.ActiveProject.ActiveScene.Root

var oCubeParent = oRoot.AddGeometry("Cube","MeshSurface", "CubeParent")

oCubeParent.Kinematics.Global.Parameters("posx").value = 2.0

oCubeParent.Kinematics.Global.Parameters("posy").value = 4.0

var oCubeChild =  oCubeParent.AddGeometry("Cube","MeshSurface", "CubeChild" )

oCubeChild.Kinematics.Global.Parameters("posz").value = 3.0

oCubeChild.Kinematics.Global.Parameters("rotx").value = 45.0

var oTransParent = oCubeParent.Kinematics.Global.Transform

// This is the translation relative to the parent cube

var oTrans = oCubeChild.Kinematics.Local.Transform

var oVec3 = XSIMath.CreateVector3()

oTrans.GetTranslation (oVec3)

Application.LogMessage ("The translation of the cube relative to its parent: x " +

				 oVec3.x + " y " + oVec3.y + " z " + oVec3.z)

// oTrans is relative to the parent cube, but can be mapped back to

// global space like this:

var oWorldTrans = XSIMath.MapObjectPoseToWorldSpace(oTransParent, oTrans)

oWorldTrans.GetTranslation (oVec3)

Application.LogMessage ("The translation of the cube relative to the origin of the universe: x "

				+ oVec3.x + " y " + oVec3.y + " z " + oVec3.z)

// Note: The global KinematicState already expresses this information

var oTransGlobal = oCubeChild.Kinematics.Global.Transform

oTransGlobal.GetTranslation (oVec3)

Application.LogMessage ("The translation of the cube relative to the origin of the universe: x " +

				 oVec3.x + " y " + oVec3.y + " z " + oVec3.z)

// Expected output:

//INFO : The translation of the cube relative to its parent: x -2 y -4 z 3

//INFO : The translation of the cube relative to the origin of the universe: x 0 y 0 z 3

//INFO : The translation of the cube relative to the origin of the universe: x 0 y 0 z 3

2. VBScript Example

'

'	This example demonstrates how to map a cube's position relative to its parent 

'	to global coordinates

'

set oRoot = Application.ActiveProject.ActiveScene.Root

set oCubeParent = oRoot.AddGeometry("Cube","MeshSurface", "CubeParent")

oCubeParent.Kinematics.Global.Parameters("posx").value = 2.0

oCubeParent.Kinematics.Global.Parameters("posy").value = 4.0

set oCubeChild =  oCubeParent.AddGeometry("Cube","MeshSurface", "CubeChild" )

oCubeChild.Kinematics.Global.Parameters("posz").value = 3.0

oCubeChild.Kinematics.Global.Parameters("rotx").value = 45.0

set oTransParent = oCubeParent.Kinematics.Global.Transform

' This is the translation relative to the parent cube

set oTrans = oCubeChild.Kinematics.Local.Transform

set oVec3 = XSIMath.CreateVector3

oTrans.GetTranslation oVec3

Application.LogMessage "The translation of the cube relative to its parent: x " &_

				 oVec3.x & " y " & oVec3.y & " z " & oVec3.z

' oTrans is relative to the parent cube, but can be mapped back to

' global space like this:

set oWorldTrans = XSIMath.MapObjectPoseToWorldSpace(oTransParent, oTrans)

oWorldTrans.GetTranslation oVec3

Application.LogMessage "The translation of the cube relative to the origin of the universe: x " &_

				 oVec3.x & " y " & oVec3.y & " z " & oVec3.z

'

' Note: The global KinematicState already expresses this information

'

set oTransGlobal = oCubeChild.Kinematics.Global.Transform

oTransGlobal.GetTranslation oVec3

Application.LogMessage "The translation of the cube relative to the origin of the universe: x " &_

				 oVec3.x & " y " & oVec3.y & " z " & oVec3.z

' Expected output:

'INFO : The translation of the cube relative to its parent: x -2 y -4 z 3

'INFO : The translation of the cube relative to the origin of the universe: x 0 y 0 z 3

'INFO : The translation of the cube relative to the origin of the universe: x 0 y 0 z 3