SIRotation

Object Hierarchy | Related C++ Class: CRotation

Description

This object represents a rotation in 3D space. It supports three representation methods: X, Y and Z Euler angles, Quaternion and 3 by 3 matrix.

Note: When represented as X,Y,Z Euler angles the values are always in Radians, not degrees.

Methods

Copy

GetAxisAngle

GetAxisAngle2

GetMatrix3

GetQuaternion

GetXYZAngles

GetXYZAnglesValues

GetXYZAnglesValues2

Invert

InvertInPlace

Mul

MulInPlace

SetFromAxisAngle

SetFromMatrix3

SetFromQuaternion

SetFromXYZAngles

SetFromXYZAnglesValues

SetFromXYZAxes

SetIdentity

 

Properties

Quaternion

RotX

RotY

RotZ

XYZAngles

 

 

 

Examples

JScript Example

/*
   Demonstrates different representations of a rotation: 

   -As a SIRotation object
   -As a 3x3 matrix
   -As a 4x4 matrix
   -As a SITransformation object
   -As a SIVector3 object
*/

var oSIRotation = XSIMath.CreateRotation( 
              XSIMath.DegreesToRadians( 45 ),
              XSIMath.DegreesToRadians( 30 ),
              XSIMath.DegreesToRadians( 15 ) ) ;

oSIMatrix3 = XSIMath.CreateMatrix3() ;
oSIRotation.GetMatrix3( oSIMatrix3 ) ;

oSIMatrix4 = ConvertMatrix3ToMatrix4( oSIMatrix3 ) ;

oSITransformation = XSIMath.CreateTransform() ;
oSITransformation.SetMatrix4( oSIMatrix4 ) ;

var oSIVector3 = XSIMath.CreateVector3() ;

oSITransformation.GetRotationXYZAngles( oSIVector3 ) ;

// Prove that we haven't lost the original rotation values
Application.LogMessage( "Rotation " + 
          XSIMath.RadiansToDegrees( oSIVector3.X ) + ", " +
          XSIMath.RadiansToDegrees( oSIVector3.Y ) + ", " +
          XSIMath.RadiansToDegrees( oSIVector3.Z ) ) ;

// Output (notice very small rounding problems that occur
// when dealing with pi and trig functions):
//INFO : Rotation 45, 29.999999999999996, 14.999999999999998

function ConvertMatrix3ToMatrix4( oM3 )
{
   // Helper function to convert 3x3 rotation matrix
   // to equivalent 4x4 transformation matrix:
   //
   // r11 r12 r13 0
   // r21 r22 r23 0
   // r31 r32 r33 0
   // 0   0    0  1

   oSIMatrix4 = XSIMath.CreateMatrix4(
       oM3(0,0), oM3(0,1), oM3(0,2), 0,
       oM3(1,0), oM3(1,1), oM3(1,2), 0,
       oM3(2,0), oM3(2,1), oM3(2,2), 0,
       0,        0,        0,        1 ) ;

   return oSIMatrix4 ;
       }

See Also

SIVector3

SIMatrix3

SIMatrix4

SIRotation

SITransformation

SIQuaternion

XSIMath.DegreesToRadians

 



Autodesk Softimage v7.5