IFXSGmatrix

The IFXSGmatrix interface stores a model's position, rotation, and scale data in a transformation matrix. Subsequent position, rotation, and scale adjustments are called transforms.

A model's actual position within the world coordinate system is always calculated in relation to its local coordinate system based on the object's transformation matrix. The origin of the local coordinate system is the center of the object's bounding box.

A model can have several modifiers, but only one set of transforms. Transform values can be changed from frame to frame, but each model always has only one position, one rotation, and one scale transform.

Interface Methods

Description

IFXSGMatrix (1)
IFXSGMatrix (2)
IFXSGMatrix (3)
IFXSGMatrix (4)

Constructor

reset

Resets to default

apply

Applies other transformations

preApply

Applies other transformations

translate

Applies translation

translate

Applies translation

preTranslate

Applies translation

preTranslate

Applies translation

rotateAboutX

Applies axis-oriented rotation about the x-axis

rotateAboutY

Applies axis-oriented rotation about the y-axis

rotateAboutZ

Applies axis-oriented rotation about the z-axis

preRotateAboutX

Applies axis-oriented rotation about the x-axis

preRotateAboutY

Applies axis-oriented rotation about the y-axis

preRotateAboutZ

Applies axis-oriented rotation about the z-axis

rotate

Applies euler angle rotation

rotate

Applies euler angle rotation

preRotate

Applies euler angle rotation

preRotate

Applies euler angle rotation

rotate

Applies generic rotation

rotate

Applies generic rotation

rotate

Applies generic rotation

preRotate

Applies generic rotation

preRotate

Applies generic rotation

preRotate

Applies generic rotation

scale

Applies scales

scale

Applies scales

scale

Applies scales

preScale

Applies scales

preScale

Applies scales

preScale

Applies scales

checkValidScale

Applies scales

position

Applies vector position

position

Applies vector position

getTranslation

Gets translation

setTranslation

Sets translation

removeTranslation

Removes translation

setRotation

Sets rotation

getRotation

Gets rotation

removeRotation

Removes rotation

setRotation

Sets rotation

getRotation

Gets rotation

setScale

Sets scale

getScale

Gets scale

removeScaling

Removes scale

decompose

Decomposes the matrix into a translation, a rotation, and a scale. A simplified version of the next method.

decompose

Decomposes the matrix into a translation, two shears, a rotation, and a scale.

rotate

Sets an up direction

direction

Sets a direction

up

Sets the direction as up

pointAt

Points at the up position

Operators

List of operators

transpose

Used in transform calculations

determinant

Used in transform calculations

inverse

Used in transform calculations

invert

Used in transform calculations

generalInverse

Used in transform calculations

reOrthogonalize

Used in transform calculations

ConstructSkewMatrix

Used in transform calculations


IFXSGmatrix::IFXSGMatrix()

Constructor.

Parameters:

None

Return Values:

None  


IFXSGmatrix::IFXSGMatrix( IFXSGVector& c0, IFXSGVector& c1, IFXSGVector& c2 )

Constructor.

Parameters:

c0

Reference to IFXSGVector position

c1

Reference to IFXSGVector position

c2

Reference to IFXSGVector position

Return Values:

None  


IIFXSGmatrix::IFXSGMatrix( IFXSGVector& c0,  IFXSGVector& c1, IFXSGVector& c2, IFXSGVector& c3 )

Constructor.

Parameters:

c0

Reference to IFXSGVector position

c1

Reference to IFXSGVector position

c2

Reference to IFXSGVector position

c3

Reference to IFXSGVector position

Return Values:

None  


IFXSGmatrix::IFXSGMatrix( IFXSGFloat a-p)

Constructor.

Parameters:

a-p

Indicates row order

Return Values:

None  


IFXSGmatrix::reset()

The method resets to default settings.

Parameters:

None

Return Values:

None  


IFXSGmatrix::apply(IFXSGMatrix& matrix)

This method applies other transformations.

Parameters:

matrix

Reference to the IFXSGMatrix

Return Values:

None  


IFXSGmatrix::preApply(IFXSGMatrix& matrix)

This method applies other transformations.

Parameters:

matrix

Reference to the IFXSGMatrix

Return Values:

None  


IFXSGmatrix::translate( IFXSGFloat x, IFXSGFloat y, IFXSGFloat z)

This method references the translated vector.

Parameters:

x

X-axis vector

y

Y-axis vector

z

Z-axis vector

Return Values:

None  


IFXSGmatrix::translate(IFXSGVector& translation)

This method references the translated vector.

Parameters:

v

Reference to IFXSGVector position

Return Values:

None  


IFXSGmatrix::preTranslate( IFXSGFloat x, IFXSGFloat y, IFXSGFloat z)

This method references the translated vector.

Parameters:

v

Reference to IFXSGVector position

Return Values:

None  


IFXSGmatrix::preTranslate( IFXSGFloat x, IFXSGFloat y, IFXSGFloat z)

This method references the translated vector.

Parameters:

v

Reference to IFXSGVector position

Return Values:

None  


IFXSGmatrix::rotateAboutX( IFXSGFloat& a )

This method rotates about the x axis.

Parameters:

a

Reference to IFXSGFloat x-axis rotation angle

Return Values:

None  


IFXSGmatrix::rotateAboutY( IFXSGFloat& a )

This method rotates about the y axis.

Parameters:

a

Reference to IFXSGFloat y-axis rotation angle

Return Values:

None  


IFXSGmatrix::rotateAboutZ( IFXSGFloat& a )

This method rotates about the z axis.

Parameters:

a

Reference to IFXSGFloat z-axis rotation angle

Return Values:

None     


IFXSGmatrix::preRotateAboutX( IFXSGFloat& a )

This method rotates about the x axis.

Parameters:

a

Reference to IFXSGFloat x-axis rotation angle

Return Values:

None  


IFXSGmatrix::preRotateAboutY( IFXSGFloat& a )

This method rotates about the y axis.

Parameters:

a

Reference to IFXSGFloat y-axis rotation angle

Return Values:

None  


IFXSGmatrix::preRotateAboutZ( IFXSGFloat& a )

This method rotates about the z axis.

Parameters:

a

Reference to IFXSGFloat z-axis rotation angle

Return Values:

None     


IFXSGmatrix::rotate( IFXSGFloat x, IFXSGFloat y, IFXSGFloat z)

This method determines the euler angle rotation.

Parameters:

x

x-axis IFXSGFloat for rotation

y

y-axis IFXSGFloat for rotation

z

z-axis IFXSGFloat for rotation

Return Values:

None  


IFXSGmatrix::rotate(IFXSGVector& rotation )

This method determines euler angle rotation.

Parameters:

rotation

Reference to the IFXSGVector for rotation

Return Values:

None  


IFXSGmatrix::preRotate( IFXSGFloat x, IFXSGFloat y, IFXSGFloat z)

This method determines the euler angle rotation.

Parameters:

x

x-axis IFXSGFloat for rotation

y

y-axis IFXSGFloat for rotation

z

z-axis IFXSGFloat for rotation

Return Values:

None  


IFXSGmatrix::preRotate(IFXSGVector& rotation )

This method determines euler angle rotation.

Parameters:

rotation

Reference to the IFXSGVector for rotation

Return Values:

None  


IFXSGmatrix::rotate( IFXSGVector& axis, IFXSGFloat angle)

Parameters:

axis

Reference to the vector axis

angle

Angle degree

Return Values:

None   


IFXSGmatrix::rotate( IFXSGFloat x, IFXSGFloat y, IFXSGFloat z, IFXSGVector& axis, IFXSGFloat angle)

This method determines generic rotation.

Parameters:

x

IFXSGFloat on x axis

y

IFXSGFloat on y axis

z

IFXSGFloat on z axis

axis

IFXSGVector axis

angle

IFXSGFloat angle

Return Values:

None  


IFXSGmatrix::rotate( IFXSGVector& position, IFXSGVector& axis, IFXSGFloat angle)

Parameters:

position

Reference to the vector position

axis

Reference to the vector axis

angle

Reference to the vector angle

Return Values:

None   


IFXSGmatrix::preRotate( IFXSGVector& axis, IFXSGFloat angle)

Parameters:

axis

Reference to the vector axis

angle

Angle degree

Return Values:

None   


IFXSGmatrix::preRotate( IFXSGFloat x, IFXSGFloat y, IFXSGFloat z, IFXSGVector& axis, IFXSGFloat angle)

This method determines generic rotation.

Parameters:

x

IFXSGFloat on x axis

y

IFXSGFloat on y axis

z

IFXSGFloat on z axis

axis

IFXSGVector axis

angle

IFXSGFloat angle

Return Values:

None  


IFXSGmatrix::preRotate( IFXSGVector& position, IFXSGVector& axis, IFXSGFloat angle)

Parameters:

position

Reference to the vector position

axis

Reference to the vector axis

angle

Reference to the vector angle

Return Values:

None   


IFXSGmatrix::Scale( IFXSGFloat uniformScaleFactor)

Parameters:

uniformScaleFactor

scaling factor

Return Values   


IFXSGmatrix::Scale( IFXSGFloat x, IFXSGFloat y, IFXSGFloat z)

Parameters:

x

X-axis

y

Y-axis

z

Z-axis

Return Values    


IFXSGmatrix::Scale( IFXSGVector& scale)

Parameters:

scale

Reference to the vector scale

Return Values    


IFXSGmatrix::preScale( IFXSGFloat uniformScaleFactor)

Parameters:

uniformScaleFactor

scaling factor

Return Values   


IFXSGmatrix::preScale( IFXSGFloat x, IFXSGFloat y, IFXSGFloat z)

Parameters:

x

X-axis

y

Y-axis

z

Z-axis

Return Values    


IFXSGmatrix::preScale( IFXSGVector& scale)

Parameters:

scale

Reference to the vector scale

Return Values    


IFXSGmatrix::checkValidScale( IFXSGFloat xScale, IFXSGFloat yScale, IFXSGFloat z)

Parameters:

xScale

X-axis scale

yScale

Y-axis scale

zScale

Z-axis scale

Return Values 


IFXSGmatrix::position(IFXSGVector& v)

Parameters:

v

Reference to the vector position

Return Values:

None   


IFXSGmatrix::position()

Parameters:

None

Return Values:

Reference to IFXSGVector   


IFXSGmatrix::getTranslation(IFXSGFloat& x, IFXSGFloat& y, IFXSGFloat& z)

This method gets translation.

Parameters:

x

Reference to the x-axis

y

Reference to the y-axis

z

Reference to the z-axis

Return Values:

bool


IFXSGmatrix::setTranslation(IFXSGFloat x, IFXSGFloat y, IFXSGFloat z)

This method sets translation.

Parameters:

x

The x-axis

y

The y-axis

z

The z-axis

Return Values:

bool


IFXSGmatrix::removeTranslation()

This method removes translation.

Parameters:

None

Return Values:

bool


IFXSGmatrix::setRotation(IFXSGVector& axis, IFXSGFloat angle)

This method sets rotation.

Parameters:

axis

Reference to the IFXSGVector axis

angle

The IFXSGFloat for axis rotation

Return Values:

bool


IFXSGmatrix::getRotation(IFXSGVector& axis, IFXSGFloat& angle)

This method gets rotation.

Parameters:

axis

Reference to the IFXSGVector axis

angle

Reference to the IFXSGFloat for axis rotation

Return Values:

bool


IFXSGmatrix::setRotation(IFXSGFloat xRadians, IFXSGFloat yRadians, IFXSGFloat zRadians)

This method sets rotation.

Parameters:

xRadians

IFXSGFloat for x axis rotation

yRadians

IFXSGFloat for y axis rotation

zRadians

IFXSGFloat for z axis rotation

Return Values:

bool


IFXSGmatrix::getRotation(IFXSGFloat& xRadians, IFXSGFloat& yRadians, IFXSGFloat& zRadians)

This method gets rotation.

Parameters:

xRadians

Reference to the IFXSGFloat for x axis rotation

yRadians

Reference to the IFXSGFloat for y axis rotation

zRadians

Reference to the IFXSGFloat for z axis rotation

Return Values:

bool


IFXSGmatrix::removeRotation()

This method removes rotation.

Parameters:

None

Return Values:

bool


IFXSGmatrix::setScale(IFXSGFloat xScale, IFXSGFloat yScale, IFXSGFloat zScale)

This method sets scale.

Parameters:

xScale

IFXSGFloat for x axis scale

yScale

IFXSGFloat for y axis scale

zScale

IFXSGFloat for z axis scale

Return Values:

bool


IFXSGmatrix::getScale(IFXSGFloat& xScale, IFXSGFloat& yScale, IFXSGFloat& zScale)

This method gets scale.

Parameters:

xScale

Reference to the IFXSGFloat for x axis scale

yScale

Reference to the IFXSGFloat for y axis scale

zScale

Reference to the IFXSGFloat for z axis scale

Return Values:

bool


IFXSGmatrix::removeScaling()

This method removes scale.

Parameters:

None

Return Values:

bool


IFXSGmatrix::decompose(IFXSGVector& translation, IFXSGMatrix& rotation, IFXSGVector& scale)

This method decomposes the matrix into a translation, a rotation, and a scale. A simplified version of the next method.

Parameters:

translation

Reference to the IFXSGVector for translation

rotation

Reference to the IFXSGMatrix for rotation

scale

Reference to the IFXSGVector for scale

Return Values:

bool


IFXSGmatrix::decompose(IFXSGVector& translation, IFXSGMatrix& shear1, IFXSGMatrix& shear2, IFXSGMatrix& rotation, IFXSGVector& scale)

This method decomposes the matrix into a translation, two shears, a rotation, and a scale.

Parameters:

translation

Reference to the IFXSGVector for translation

shear1

Reference to the IFXSGMatrix for a shear (1)

shear2

Reference to the IFXSGMatrix for a shear (2)

rotation

Reference to the IFXSGMatrix for rotation

scale

Reference to the IFXSGVector for scale

Return Values:

bool


IFXSGmatrix::rotate( IFXSGVector& direction, IFXSGVector& up )

This method sets an up direction.

Parameters:

direction

Reference to IFXSGVector rotate direction

up

Reference to IFXSGVector up position

Return Values:

None


IFXSGmatrix::direction()

This method sets a direction.

Parameters:

None

Return Values:

const IFXSGVector 


IFXSGmatrix::up()

This method sets a direction as up.

Parameters:

None

Return Values:

const IFXSGVector 


IFXSGmatrix::pointAt( IFXSGVector &position, IFXSGVector &up )

This method points at the up position.

Parameters:

position

Reference to IFXSGVector position

up

Reference to IFXSGVector up position

Return Values:

None


IFXSGmatrix::operator[]( long i )

Parameters:

i

Long integer

Return Values:

IFXSGVector reference


IFXSGmatrix::operator==( IFXSGMatrix& m )

Parameters:

m

Reference to IFXSGMatrix

Return Values:

 bool


IFXSGmatrix::operator!=( IFXSGMatrix& m )

Parameters:

m

Reference to IFXSGMatrix

Return Values:

 bool


IFXSGmatrix::operator=( IFXSGMatrix& m )

Parameters:

m

Reference to IFXSGMatrix

Return Values:

 IFXSGMatrix reference


IFXSGmatrix::operator+=( IFXSGMatrix& m )

Parameters:

m

Reference to IFXSGMatrix

Return Values:

 IFXSGMatrix reference


IFXSGmatrix::operator-=( IFXSGMatrix& m )

Parameters:

m

Reference to IFXSGMatrix

Return Values:

 IFXSGMatrix reference


IFXSGmatrix::operator*=( IFXSGFloat& s )

Parameters:

s

Reference to IFXSGFloat

Return Values:

 IFXSGMatrix reference


IFXSGmatrix::operator*=( IFXSGVector& v )

Parameters:

v

Reference to IFXSGVector

Return Values:

 IFXSGMatrix reference


IFXSGmatrix::operator*=( IFXSGMatrix& m )

Parameters:

m

Reference to IFXSGMatrix

Return Values:

 IFXSGMatrix reference


IFXSGmatrix::operator+( IFXSGMatrix& m )

Parameters:

m

Reference to IFXSGMatrix

Return Values:

 IFXSGMatrix


IFXSGmatrix::operator-( IFXSGMatrix& m )

Parameters:

m

Reference to IFXSGMatrix

Return Values:

 IFXSGMatrix


IFXSGmatrix::operator*( IFXSGFloat& s )

Parameters:

s

Reference to IFXSGFloat

Return Values:

 IFXSGMatrix


IFXSGmatrix::operator*( IFXSGFloat& s,  IFXSGMatrix& m )

Parameters:

s

Reference to IFXSGFloat

m

Reference to IFXSGMatrix

Return Values:

 IFXSGMatrix


IFXSGmatrix::operator*( IFXSGVector& v )

Parameters:

v

Reference to IFXSGVector

Return Values:

 IFXSGVector


IFXSGmatrix::operator*( IFXSGVector& v,  IFXSGMatrix& m )

Parameters:

v

Reference to IFXSGVector

m

Reference to IFXSGMatrix

Return Values:

 IFXSGVector


IFXSGmatrix::operator*( IFXSGMatrix& m )

Parameters:

m

Reference to IFXSGMatrix

Return Values:

 IFXSGMatrix 


IFXSGmatrix::transpose()

Parameters:

None

Return Values:

Reference to IFXSGMatrix 


IFXSGmatrix::determinant()

Parameters:

None

Return Values:

Reference to IFXSGFloat  


IFXSGmatrix::inverse()

Parameters:

None

Return Values:

Reference to IFXSGMatrix  


IFXSGmatrix::invert()

Parameters:

None

Return Values:

None  


IFXSGmatrix::generalInverse()

Parameters:

None

Return Values:

Reference to IFXSGMatrix  


IFXSGmatrix::reOrthogonalize( )

Parameters:

None

Return Values:

Reference to IFXSGMatrix  


IFXSGmatrix::ConstructSkewMatrix(IFXSGVector& v)

Parameters:

v

Reference to IFXSGVector

Return Values:

Reference to IFXSGMatrix  

 

 

§See asterisked (*) statement at Legal Information © 2001 Intel Corporation.