MapObjectOrientationToWorldSpace (XSIMath)

Description

Converts an Orientation described in a given ObjectSpace to WorldSpace.

Scripting Syntax

XSIMath.MapObjectOrientationToWorldSpace( ObjectSpace, Orientation )

C# Syntax

SIVector3 XSIMath.MapObjectOrientationToWorldSpace( SITransformation in_pObjectSpace, SIVector3 in_pOrientation );

Parameters

Parameter

Type

Description

ObjectSpace

SITransformation

ObjectSpace in which the orientation is described.

Orientation

SIVector3

Orientation to convert.

Return Value

SIVector3 (orientation)

Examples

1. JScript Example

NewScene(null, false);
var oRoot = Application.ActiveSceneRoot;
var oCube = oRoot.AddGeometry("Cube","MeshSurface");
oCube.Kinematics.Global.Parameters("posy").value = 4.0;
oCube.Kinematics.Global.Parameters("posx").value = 2.0;
oCube.Kinematics.Global.Parameters("rotx").value = 45.0;

var oTrans = oCube.Kinematics.Local.Transform;
var aNormal = new VBArray( oCube.ActivePrimitive.Geometry.Facets.NormalArray );
var oOri = XSIMath.CreateVector3();

oOri.x = aNormal.getItem(0,1);
oOri.y = aNormal.getItem(1,1);
oOri.z = aNormal.getItem(2,1);
Application.LogMessage (aNormal.getItem(0,1));
Application.LogMessage (aNormal.getItem(1,1));
Application.LogMessage (aNormal.getItem(2,1));

var oObjectOri = XSIMath.MapObjectOrientationToWorldSpace(oTrans, oOri);
Application.LogMessage  ("The y unit vector  is represented by (" + 
              XSIMath.RadiansToDegrees(oObjectOri.X) + "," + 
              XSIMath.RadiansToDegrees(oObjectOri.Y) + "," + 
              XSIMath.RadiansToDegrees(oObjectOri.Z) + ") in the cube object space");

// Expected results:
//INFO : The y unit vector  is represented by (0,-40.51423422706978,-40.51423422706977) 
//        in the cube object space

2. VBScript Example

set oRoot = Application.ActiveProject.ActiveScene.Root
set oCube = oRoot.AddGeometry("Cube","MeshSurface")
oCube.Kinematics.Global.Parameters("posy").value = 4.0
oCube.Kinematics.Global.Parameters("posx").value = 2.0
oCube.Kinematics.Global.Parameters("rotx").value = 45.0

set oTrans = oCube.Kinematics.Local.Transform
set oOri = XSIMath.CreateVector3
aNormal = oCube.ActivePrimitive.Geometry.Facets.NormalArray
oOri.x = aNormal(0,2)
oOri.y = aNormal(1,2)
oOri.z = aNormal(2,2)
set oObjectOri = XSIMath.MapObjectOrientationToWorldSpace(oTrans, oOri)
Application.LogMessage  "The y unit vector  is represented by (" & _
              XSIMath.RadiansToDegrees(oObjectOri.X) & "," & _
              XSIMath.RadiansToDegrees(oObjectOri.Y) & "," & _
              XSIMath.RadiansToDegrees(oObjectOri.Z) & ") in the cube object space"


Autodesk Softimage v7.5