Typedefs | Functions | Variables
AtMatrix API

Typedefs

typedef float AtMatrix [4][4]
 4-by-4 matrix
 

Functions

AI_API void AiM4Identity (AtMatrix mout)
 Create an identity matrix. More...
 
AI_API void AiM4Translation (AtMatrix mout, const AtVector *t)
 Create a translation matrix from a translation vector. More...
 
AI_API void AiM4RotationX (AtMatrix mout, float x)
 Create a X-axis rotation matrix. More...
 
AI_API void AiM4RotationY (AtMatrix mout, float y)
 Create a Y-axis rotation matrix. More...
 
AI_API void AiM4RotationZ (AtMatrix mout, float z)
 Create a Z-axis rotation matrix. More...
 
AI_API void AiM4Scaling (AtMatrix mout, const AtVector *s)
 Create a scaling matrix from a scaling vector. More...
 
AI_API void AiM4Frame (AtMatrix mout, const AtVector *o, const AtVector *u, const AtVector *v, const AtVector *w)
 Create a matrix that transforms into a new coordinate frame. More...
 
AI_API void AiM4PointByMatrixMult (AtPoint *pout, const AtMatrix m, const AtPoint *pin)
 Left-multiply a point by a matrix. More...
 
AI_API void AiM4HPointByMatrixMult (AtHPoint *pout, const AtMatrix m, const AtHPoint *pin)
 Left-multiply a 4D point by a matrix. More...
 
AI_API void AiM4VectorByMatrixMult (AtVector *vout, const AtMatrix m, const AtVector *vin)
 Left-multiply a vector by a matrix. More...
 
AI_API void AiM4VectorByMatrixTMult (AtVector *vout, const AtMatrix m, const AtVector *vin)
 Right-multiply a vector by a matrix. More...
 
AI_API void AiM4Mult (AtMatrix mout, const AtMatrix ma, const AtMatrix mb)
 Multiply two matrices. More...
 
AI_API void AiM4Copy (AtMatrix dest, const AtMatrix src)
 Copy a matrix. More...
 
AI_API void AiM4Transpose (const AtMatrix min, AtMatrix mout)
 Calculate the transpose of a matrix. More...
 
AI_API void AiM4Invert (const AtMatrix min, AtMatrix mout)
 Calculate the inverse of a matrix. More...
 
AI_API float AiM4Determinant (const AtMatrix m)
 Determinant of a matrix. More...
 
AI_API void AiM4Lerp (AtMatrix mout, float t, const AtMatrix ma, const AtMatrix mb)
 Linear interpolation of two matrices. More...
 
AI_API void AiM4Berp (float bu, float bv, const AtMatrix m0, const AtMatrix m1, const AtMatrix m2, AtMatrix mout)
 Perform barycentric interpolation on the three incoming matrices. More...
 
AI_API bool AiM4IsIdentity (const AtMatrix m)
 Is this an identity matrix? More...
 
AI_API bool AiM4IsSingular (const AtMatrix m)
 Is this a singular matrix? More...
 

Variables

AI_API AtMatrix AI_M4_IDENTITY
 
AI_API AtMatrix AI_M4_ZERO
 

Detailed Description

Function Documentation

AI_API void AiM4Identity ( AtMatrix  mout)

Create an identity matrix.

Parameters
[out]moutidentity matrix result
AI_API void AiM4Translation ( AtMatrix  mout,
const AtVector t 
)

Create a translation matrix from a translation vector.

Parameters
[out]moutmatrix result
ttranslation vector
AI_API void AiM4RotationX ( AtMatrix  mout,
float  x 
)

Create a X-axis rotation matrix.

Parameters
[out]moutmatrix result
xangle from the X axis (in degrees)
AI_API void AiM4RotationY ( AtMatrix  mout,
float  y 
)

Create a Y-axis rotation matrix.

Parameters
[out]moutmatrix result
yangle from the Y axis (in degrees)
AI_API void AiM4RotationZ ( AtMatrix  mout,
float  z 
)

Create a Z-axis rotation matrix.

Parameters
[out]moutmatrix result
zangle from the Z axis (in degrees)
AI_API void AiM4Scaling ( AtMatrix  mout,
const AtVector s 
)

Create a scaling matrix from a scaling vector.

Parameters
[out]moutmatrix result
sscaling vector
AI_API void AiM4Frame ( AtMatrix  mout,
const AtVector o,
const AtVector u,
const AtVector v,
const AtVector w 
)

Create a matrix that transforms into a new coordinate frame.

The new coordinate frame is formed from an origin and a set of orthonormal vectors {U,V,W}, all expressed in world coordinates.

Parameters
[out]moutmatrix result
oorigin vector
uU basis vector
vV basis vector
wW basis vector
AI_API void AiM4PointByMatrixMult ( AtPoint pout,
const AtMatrix  m,
const AtPoint pin 
)

Left-multiply a point by a matrix.

Parameters
[out]poutmultiplied point pout = m pin
minput matrix
pininput point
AI_API void AiM4HPointByMatrixMult ( AtHPoint pout,
const AtMatrix  m,
const AtHPoint pin 
)

Left-multiply a 4D point by a matrix.

Parameters
[out]poutmultiplied 4D point, pout = m pin
minput matrix
pininput 4D point
AI_API void AiM4VectorByMatrixMult ( AtVector vout,
const AtMatrix  m,
const AtVector vin 
)

Left-multiply a vector by a matrix.

Note that multiplying a vector by a matrix is different than multiplying a point by a matrix.

Parameters
[out]voutmultiplied vector, vout = m vin
minput matrix
vininput vector
AI_API void AiM4VectorByMatrixTMult ( AtVector vout,
const AtMatrix  m,
const AtVector vin 
)

Right-multiply a vector by a matrix.

This is equivalent to left-multiply vector by transpose of a matrix: vout = (m^T) vin

Parameters
[out]voutmultiplied vector, vout = vin m
minput matrix
vininput vector
AI_API void AiM4Mult ( AtMatrix  mout,
const AtMatrix  ma,
const AtMatrix  mb 
)

Multiply two matrices.

Parameters
[out]moutmultiplied matrix result, mout = ma mb
mainput matrix
mbinput matrix
AI_API void AiM4Copy ( AtMatrix  dest,
const AtMatrix  src 
)

Copy a matrix.

Parameters
[out]destdestination matrix
srcsource matrix
AI_API void AiM4Transpose ( const AtMatrix  min,
AtMatrix  mout 
)

Calculate the transpose of a matrix.

Parameters
mininput matrix
[out]mouttranspose matrix: mout = min^T
AI_API void AiM4Invert ( const AtMatrix  min,
AtMatrix  mout 
)

Calculate the inverse of a matrix.

Parameters
mininput matrix to be inverted
[out]moutinverted matrix: mout = min^-1
AI_API float AiM4Determinant ( const AtMatrix  m)

Determinant of a matrix.

Parameters
minput matrix
Returns
determinant of m
AI_API void AiM4Lerp ( AtMatrix  mout,
float  t,
const AtMatrix  ma,
const AtMatrix  mb 
)

Linear interpolation of two matrices.

Parameters
[out]moutinterpolated matrix: mout = (1-t)*ma + t*mb
tinterpolation parameter, in [0,1]
mainput matrix at t=0
mbinput matrix at t=1
AI_API void AiM4Berp ( float  bu,
float  bv,
const AtMatrix  m0,
const AtMatrix  m1,
const AtMatrix  m2,
AtMatrix  mout 
)

Perform barycentric interpolation on the three incoming matrices.

Parameters
buU barycentric coordinate
bvV barycentric coordinate
m0matrix at barycentric coords (0,0)
m1matrix at barycentric coords (1,0)
m2matrix at barycentric coords (0,1)
[out]moutinterpolated matrix at (bu,bv)
AI_API bool AiM4IsIdentity ( const AtMatrix  m)

Is this an identity matrix?

Parameters
minput matrix
Returns
true if m is the identity
AI_API bool AiM4IsSingular ( const AtMatrix  m)

Is this a singular matrix?

Parameters
minput matrix
Returns
true if m is singular (its determinant is zero or almost zero)

© 2009-2013 Solid Angle SL · all rights reserved · www.solidangle.com