osg::Matrixd Class Reference

Inheritance diagram for osg::Matrixd:

Inheritance graph
[legend]

List of all members.

Public Types

typedef double value_type

Public Member Functions

 Matrixd ()
 Matrixd (const Matrixd &mat)
 Matrixd (const Matrixf &mat)
 Matrixd (float const *const ptr)
 Matrixd (double const *const ptr)
 Matrixd (const Quat &quat)
 Matrixd (value_type a00, value_type a01, value_type a02, value_type a03, value_type a10, value_type a11, value_type a12, value_type a13, value_type a20, value_type a21, value_type a22, value_type a23, value_type a30, value_type a31, value_type a32, value_type a33)
 ~Matrixd ()
int compare (const Matrixd &m) const
bool operator< (const Matrixd &m) const
bool operator== (const Matrixd &m) const
bool operator!= (const Matrixd &m) const
value_typeoperator() (int row, int col)
value_type operator() (int row, int col) const
bool valid () const
bool isNaN () const
Matrixdoperator= (const Matrixd &rhs)
Matrixdoperator= (const Matrixf &other)
void set (const Matrixd &rhs)
void set (const Matrixf &rhs)
void set (float const *const ptr)
void set (double const *const ptr)
void set (value_type a00, value_type a01, value_type a02, value_type a03, value_type a10, value_type a11, value_type a12, value_type a13, value_type a20, value_type a21, value_type a22, value_type a23, value_type a30, value_type a31, value_type a32, value_type a33)
value_typeptr ()
const value_typeptr () const
bool isIdentity () const
void makeIdentity ()
void makeScale (const Vec3f &)
void makeScale (const Vec3d &)
void makeScale (value_type, value_type, value_type)
void makeTranslate (const Vec3f &)
void makeTranslate (const Vec3d &)
void makeTranslate (value_type, value_type, value_type)
void makeRotate (const Vec3f &from, const Vec3f &to)
void makeRotate (const Vec3d &from, const Vec3d &to)
void makeRotate (value_type angle, const Vec3f &axis)
void makeRotate (value_type angle, const Vec3d &axis)
void makeRotate (value_type angle, value_type x, value_type y, value_type z)
void makeRotate (const Quat &)
void makeRotate (value_type angle1, const Vec3f &axis1, value_type angle2, const Vec3f &axis2, value_type angle3, const Vec3f &axis3)
void makeRotate (value_type angle1, const Vec3d &axis1, value_type angle2, const Vec3d &axis2, value_type angle3, const Vec3d &axis3)
void decompose (osg::Vec3f &translation, osg::Quat &rotation, osg::Vec3f &scale, osg::Quat &so) const
 decompose the matrix into translation, rotation, scale and scale orietation.
void decompose (osg::Vec3d &translation, osg::Quat &rotation, osg::Vec3d &scale, osg::Quat &so) const
 decompose the matrix into translation, rotation, scale and scale orietation.
void makeOrtho (double left, double right, double bottom, double top, double zNear, double zFar)
 Set to an orthographic projection.
bool getOrtho (double &left, double &right, double &bottom, double &top, double &zNear, double &zFar) const
 Get the othogrraphic settings of the orthographic projection matrix.
void makeOrtho2D (double left, double right, double bottom, double top)
 Set to a 2D orthographic projection.
void makeFrustum (double left, double right, double bottom, double top, double zNear, double zFar)
 Set to a perspective projection.
bool getFrustum (double &left, double &right, double &bottom, double &top, double &zNear, double &zFar) const
 Get the frustum settings of a perspective projection matrix.
void makePerspective (double fovy, double aspectRatio, double zNear, double zFar)
 Set to a symmetrical perspective projection.
bool getPerspective (double &fovy, double &aspectRatio, double &zNear, double &zFar) const
 Get the frustum settings of a symmetric perspective projection matrix.
void makeLookAt (const Vec3d &eye, const Vec3d &center, const Vec3d &up)
 Set the position and orientation to be a view matrix, using the same convention as gluLookAt.
void getLookAt (Vec3f &eye, Vec3f &center, Vec3f &up, value_type lookDistance=1.0f) const
 Get to the position and orientation of a modelview matrix, using the same convention as gluLookAt.
void getLookAt (Vec3d &eye, Vec3d &center, Vec3d &up, value_type lookDistance=1.0f) const
 Get to the position and orientation of a modelview matrix, using the same convention as gluLookAt.
bool invert (const Matrixd &rhs)
 invert the matrix rhs, automatically select invert_4x3 or invert_4x4.
bool invert_4x3 (const Matrixd &rhs)
 4x3 matrix invert, not right hand column is assumed to be 0,0,0,1.
bool invert_4x4 (const Matrixd &rhs)
 full 4x4 matrix invert.
void orthoNormalize (const Matrixd &rhs)
 ortho-normalize the 3x3 rotation & scale matrix
Vec3f preMult (const Vec3f &v) const
Vec3d preMult (const Vec3d &v) const
Vec3f postMult (const Vec3f &v) const
Vec3d postMult (const Vec3d &v) const
Vec3f operator * (const Vec3f &v) const
Vec3d operator * (const Vec3d &v) const
Vec4f preMult (const Vec4f &v) const
Vec4d preMult (const Vec4d &v) const
Vec4f postMult (const Vec4f &v) const
Vec4d postMult (const Vec4d &v) const
Vec4f operator * (const Vec4f &v) const
Vec4d operator * (const Vec4d &v) const
void setRotate (const Quat &q)
Quat getRotate () const
void setTrans (value_type tx, value_type ty, value_type tz)
void setTrans (const Vec3f &v)
void setTrans (const Vec3d &v)
Vec3d getTrans () const
Vec3d getScale () const
void mult (const Matrixd &, const Matrixd &)
void preMult (const Matrixd &)
void postMult (const Matrixd &)
void operator *= (const Matrixd &other)
Matrixd operator * (const Matrixd &m) const

Static Public Member Functions

static Matrixd identity (void)
static Matrixd scale (const Vec3f &sv)
static Matrixd scale (const Vec3d &sv)
static Matrixd scale (value_type sx, value_type sy, value_type sz)
static Matrixd translate (const Vec3f &dv)
static Matrixd translate (const Vec3d &dv)
static Matrixd translate (value_type x, value_type y, value_type z)
static Matrixd rotate (const Vec3f &from, const Vec3f &to)
static Matrixd rotate (const Vec3d &from, const Vec3d &to)
static Matrixd rotate (value_type angle, value_type x, value_type y, value_type z)
static Matrixd rotate (value_type angle, const Vec3f &axis)
static Matrixd rotate (value_type angle, const Vec3d &axis)
static Matrixd rotate (value_type angle1, const Vec3f &axis1, value_type angle2, const Vec3f &axis2, value_type angle3, const Vec3f &axis3)
static Matrixd rotate (value_type angle1, const Vec3d &axis1, value_type angle2, const Vec3d &axis2, value_type angle3, const Vec3d &axis3)
static Matrixd rotate (const Quat &quat)
static Matrixd inverse (const Matrixd &matrix)
static Matrixd orthoNormal (const Matrixd &matrix)
static Matrixd ortho (double left, double right, double bottom, double top, double zNear, double zFar)
 Create an orthographic projection matrix.
static Matrixd ortho2D (double left, double right, double bottom, double top)
 Create a 2D orthographic projection.
static Matrixd frustum (double left, double right, double bottom, double top, double zNear, double zFar)
 Create a perspective projection.
static Matrixd perspective (double fovy, double aspectRatio, double zNear, double zFar)
 Create a symmetrical perspective projection.
static Matrixd lookAt (const Vec3f &eye, const Vec3f &center, const Vec3f &up)
 Create the position and orientation as per a camera, using the same convention as gluLookAt.
static Matrixd lookAt (const Vec3d &eye, const Vec3d &center, const Vec3d &up)
 Create the position and orientation as per a camera, using the same convention as gluLookAt.
static Vec3f transform3x3 (const Vec3f &v, const Matrixd &m)
 apply a 3x3 transform of v*M[0.
static Vec3d transform3x3 (const Vec3d &v, const Matrixd &m)
 apply a 3x3 transform of v*M[0.
static Vec3f transform3x3 (const Matrixd &m, const Vec3f &v)
 apply a 3x3 transform of M[0.
static Vec3d transform3x3 (const Matrixd &m, const Vec3d &v)
 apply a 3x3 transform of M[0.

Protected Attributes

value_type _mat [4][4]


Member Typedef Documentation

typedef double osg::Matrixd::value_type


Constructor & Destructor Documentation

osg::Matrixd::Matrixd (  )  [inline]

osg::Matrixd::Matrixd ( const Matrixd mat  )  [inline]

osg::Matrixd::Matrixd ( const Matrixf mat  ) 

osg::Matrixd::Matrixd ( float const *const   ptr  )  [inline, explicit]

osg::Matrixd::Matrixd ( double const *const   ptr  )  [inline, explicit]

osg::Matrixd::Matrixd ( const Quat quat  )  [inline, explicit]

osg::Matrixd::Matrixd ( value_type  a00,
value_type  a01,
value_type  a02,
value_type  a03,
value_type  a10,
value_type  a11,
value_type  a12,
value_type  a13,
value_type  a20,
value_type  a21,
value_type  a22,
value_type  a23,
value_type  a30,
value_type  a31,
value_type  a32,
value_type  a33 
)

osg::Matrixd::~Matrixd (  )  [inline]


Member Function Documentation

int osg::Matrixd::compare ( const Matrixd m  )  const

bool osg::Matrixd::operator< ( const Matrixd m  )  const [inline]

bool osg::Matrixd::operator== ( const Matrixd m  )  const [inline]

bool osg::Matrixd::operator!= ( const Matrixd m  )  const [inline]

value_type& osg::Matrixd::operator() ( int  row,
int  col 
) [inline]

value_type osg::Matrixd::operator() ( int  row,
int  col 
) const [inline]

bool osg::Matrixd::valid (  )  const [inline]

bool osg::Matrixd::isNaN (  )  const [inline]

Matrixd& osg::Matrixd::operator= ( const Matrixd rhs  )  [inline]

Matrixd& osg::Matrixd::operator= ( const Matrixf other  ) 

void osg::Matrixd::set ( const Matrixd rhs  )  [inline]

void osg::Matrixd::set ( const Matrixf rhs  ) 

void osg::Matrixd::set ( float const *const   ptr  )  [inline]

void osg::Matrixd::set ( double const *const   ptr  )  [inline]

void osg::Matrixd::set ( value_type  a00,
value_type  a01,
value_type  a02,
value_type  a03,
value_type  a10,
value_type  a11,
value_type  a12,
value_type  a13,
value_type  a20,
value_type  a21,
value_type  a22,
value_type  a23,
value_type  a30,
value_type  a31,
value_type  a32,
value_type  a33 
)

value_type* osg::Matrixd::ptr (  )  [inline]

const value_type* osg::Matrixd::ptr (  )  const [inline]

bool osg::Matrixd::isIdentity (  )  const [inline]

void osg::Matrixd::makeIdentity (  ) 

void osg::Matrixd::makeScale ( const Vec3f  ) 

void osg::Matrixd::makeScale ( const Vec3d  ) 

void osg::Matrixd::makeScale ( value_type  ,
value_type  ,
value_type   
)

void osg::Matrixd::makeTranslate ( const Vec3f  ) 

void osg::Matrixd::makeTranslate ( const Vec3d  ) 

void osg::Matrixd::makeTranslate ( value_type  ,
value_type  ,
value_type   
)

void osg::Matrixd::makeRotate ( const Vec3f from,
const Vec3f to 
)

void osg::Matrixd::makeRotate ( const Vec3d from,
const Vec3d to 
)

void osg::Matrixd::makeRotate ( value_type  angle,
const Vec3f axis 
)

void osg::Matrixd::makeRotate ( value_type  angle,
const Vec3d axis 
)

void osg::Matrixd::makeRotate ( value_type  angle,
value_type  x,
value_type  y,
value_type  z 
)

void osg::Matrixd::makeRotate ( const Quat  ) 

void osg::Matrixd::makeRotate ( value_type  angle1,
const Vec3f axis1,
value_type  angle2,
const Vec3f axis2,
value_type  angle3,
const Vec3f axis3 
)

void osg::Matrixd::makeRotate ( value_type  angle1,
const Vec3d axis1,
value_type  angle2,
const Vec3d axis2,
value_type  angle3,
const Vec3d axis3 
)

void osg::Matrixd::decompose ( osg::Vec3f translation,
osg::Quat rotation,
osg::Vec3f scale,
osg::Quat so 
) const

decompose the matrix into translation, rotation, scale and scale orietation.

void osg::Matrixd::decompose ( osg::Vec3d translation,
osg::Quat rotation,
osg::Vec3d scale,
osg::Quat so 
) const

decompose the matrix into translation, rotation, scale and scale orietation.

void osg::Matrixd::makeOrtho ( double  left,
double  right,
double  bottom,
double  top,
double  zNear,
double  zFar 
)

Set to an orthographic projection.

See glOrtho for further details.

bool osg::Matrixd::getOrtho ( double &  left,
double &  right,
double &  bottom,
double &  top,
double &  zNear,
double &  zFar 
) const

Get the othogrraphic settings of the orthographic projection matrix.

Note, if matrix is not an orthographic matrix then invalid values will be returned.

void osg::Matrixd::makeOrtho2D ( double  left,
double  right,
double  bottom,
double  top 
) [inline]

Set to a 2D orthographic projection.

See glOrtho2D for further details.

void osg::Matrixd::makeFrustum ( double  left,
double  right,
double  bottom,
double  top,
double  zNear,
double  zFar 
)

Set to a perspective projection.

See glFrustum for further details.

bool osg::Matrixd::getFrustum ( double &  left,
double &  right,
double &  bottom,
double &  top,
double &  zNear,
double &  zFar 
) const

Get the frustum settings of a perspective projection matrix.

Note, if matrix is not a perspective matrix then invalid values will be returned.

void osg::Matrixd::makePerspective ( double  fovy,
double  aspectRatio,
double  zNear,
double  zFar 
)

Set to a symmetrical perspective projection.

See gluPerspective for further details. Aspect ratio is defined as width/height.

bool osg::Matrixd::getPerspective ( double &  fovy,
double &  aspectRatio,
double &  zNear,
double &  zFar 
) const

Get the frustum settings of a symmetric perspective projection matrix.

Return false if matrix is not a perspective matrix, where parameter values are undefined. Note, if matrix is not a symmetric perspective matrix then the shear will be lost. Asymmetric matrices occur when stereo, power walls, caves and reality center display are used. In these configuration one should use the AsFrustum method instead.

void osg::Matrixd::makeLookAt ( const Vec3d eye,
const Vec3d center,
const Vec3d up 
)

Set the position and orientation to be a view matrix, using the same convention as gluLookAt.

void osg::Matrixd::getLookAt ( Vec3f eye,
Vec3f center,
Vec3f up,
value_type  lookDistance = 1.0f 
) const

Get to the position and orientation of a modelview matrix, using the same convention as gluLookAt.

void osg::Matrixd::getLookAt ( Vec3d eye,
Vec3d center,
Vec3d up,
value_type  lookDistance = 1.0f 
) const

Get to the position and orientation of a modelview matrix, using the same convention as gluLookAt.

bool osg::Matrixd::invert ( const Matrixd rhs  )  [inline]

invert the matrix rhs, automatically select invert_4x3 or invert_4x4.

bool osg::Matrixd::invert_4x3 ( const Matrixd rhs  ) 

4x3 matrix invert, not right hand column is assumed to be 0,0,0,1.

bool osg::Matrixd::invert_4x4 ( const Matrixd rhs  ) 

full 4x4 matrix invert.

void osg::Matrixd::orthoNormalize ( const Matrixd rhs  ) 

ortho-normalize the 3x3 rotation & scale matrix

Matrixd osg::Matrixd::identity ( void   )  [inline, static]

Matrixd osg::Matrixd::scale ( const Vec3f sv  )  [inline, static]

Matrixd osg::Matrixd::scale ( const Vec3d sv  )  [inline, static]

Matrixd osg::Matrixd::scale ( value_type  sx,
value_type  sy,
value_type  sz 
) [inline, static]

Matrixd osg::Matrixd::translate ( const Vec3f dv  )  [inline, static]

Matrixd osg::Matrixd::translate ( const Vec3d dv  )  [inline, static]

Matrixd osg::Matrixd::translate ( value_type  x,
value_type  y,
value_type  z 
) [inline, static]

Matrixd osg::Matrixd::rotate ( const Vec3f from,
const Vec3f to 
) [inline, static]

Matrixd osg::Matrixd::rotate ( const Vec3d from,
const Vec3d to 
) [inline, static]

Matrixd osg::Matrixd::rotate ( value_type  angle,
value_type  x,
value_type  y,
value_type  z 
) [inline, static]

Matrixd osg::Matrixd::rotate ( value_type  angle,
const Vec3f axis 
) [inline, static]

Matrixd osg::Matrixd::rotate ( value_type  angle,
const Vec3d axis 
) [inline, static]

Matrixd osg::Matrixd::rotate ( value_type  angle1,
const Vec3f axis1,
value_type  angle2,
const Vec3f axis2,
value_type  angle3,
const Vec3f axis3 
) [inline, static]

Matrixd osg::Matrixd::rotate ( value_type  angle1,
const Vec3d axis1,
value_type  angle2,
const Vec3d axis2,
value_type  angle3,
const Vec3d axis3 
) [inline, static]

Matrixd osg::Matrixd::rotate ( const Quat quat  )  [inline, static]

Matrixd osg::Matrixd::inverse ( const Matrixd matrix  )  [inline, static]

Matrixd osg::Matrixd::orthoNormal ( const Matrixd matrix  )  [inline, static]

Matrixd osg::Matrixd::ortho ( double  left,
double  right,
double  bottom,
double  top,
double  zNear,
double  zFar 
) [inline, static]

Create an orthographic projection matrix.

See glOrtho for further details.

Matrixd osg::Matrixd::ortho2D ( double  left,
double  right,
double  bottom,
double  top 
) [inline, static]

Create a 2D orthographic projection.

See glOrtho for further details.

Matrixd osg::Matrixd::frustum ( double  left,
double  right,
double  bottom,
double  top,
double  zNear,
double  zFar 
) [inline, static]

Create a perspective projection.

See glFrustum for further details.

Matrixd osg::Matrixd::perspective ( double  fovy,
double  aspectRatio,
double  zNear,
double  zFar 
) [inline, static]

Create a symmetrical perspective projection.

See gluPerspective for further details. Aspect ratio is defined as width/height.

Matrixd osg::Matrixd::lookAt ( const Vec3f eye,
const Vec3f center,
const Vec3f up 
) [inline, static]

Create the position and orientation as per a camera, using the same convention as gluLookAt.

Matrixd osg::Matrixd::lookAt ( const Vec3d eye,
const Vec3d center,
const Vec3d up 
) [inline, static]

Create the position and orientation as per a camera, using the same convention as gluLookAt.

Vec3f osg::Matrixd::preMult ( const Vec3f v  )  const [inline]

Vec3d osg::Matrixd::preMult ( const Vec3d v  )  const [inline]

Vec3f osg::Matrixd::postMult ( const Vec3f v  )  const [inline]

Vec3d osg::Matrixd::postMult ( const Vec3d v  )  const [inline]

Vec3f osg::Matrixd::operator * ( const Vec3f v  )  const [inline]

Vec3d osg::Matrixd::operator * ( const Vec3d v  )  const [inline]

Vec4f osg::Matrixd::preMult ( const Vec4f v  )  const [inline]

Vec4d osg::Matrixd::preMult ( const Vec4d v  )  const [inline]

Vec4f osg::Matrixd::postMult ( const Vec4f v  )  const [inline]

Vec4d osg::Matrixd::postMult ( const Vec4d v  )  const [inline]

Vec4f osg::Matrixd::operator * ( const Vec4f v  )  const [inline]

Vec4d osg::Matrixd::operator * ( const Vec4d v  )  const [inline]

void osg::Matrixd::setRotate ( const Quat q  ) 

Quat osg::Matrixd::getRotate (  )  const

void osg::Matrixd::setTrans ( value_type  tx,
value_type  ty,
value_type  tz 
)

void osg::Matrixd::setTrans ( const Vec3f v  ) 

void osg::Matrixd::setTrans ( const Vec3d v  ) 

Vec3d osg::Matrixd::getTrans (  )  const [inline]

Vec3d osg::Matrixd::getScale (  )  const [inline]

Vec3f osg::Matrixd::transform3x3 ( const Vec3f v,
const Matrixd m 
) [inline, static]

apply a 3x3 transform of v*M[0.

.2,0..2].

Vec3d osg::Matrixd::transform3x3 ( const Vec3d v,
const Matrixd m 
) [inline, static]

apply a 3x3 transform of v*M[0.

.2,0..2].

Vec3f osg::Matrixd::transform3x3 ( const Matrixd m,
const Vec3f v 
) [inline, static]

apply a 3x3 transform of M[0.

.2,0..2]*v.

Vec3d osg::Matrixd::transform3x3 ( const Matrixd m,
const Vec3d v 
) [inline, static]

apply a 3x3 transform of M[0.

.2,0..2]*v.

void osg::Matrixd::mult ( const Matrixd ,
const Matrixd  
)

void osg::Matrixd::preMult ( const Matrixd  ) 

void osg::Matrixd::postMult ( const Matrixd  ) 

void osg::Matrixd::operator *= ( const Matrixd other  )  [inline]

Matrixd osg::Matrixd::operator * ( const Matrixd m  )  const [inline]


Member Data Documentation

value_type osg::Matrixd::_mat[4][4] [protected]


The documentation for this class was generated from the following file:
Generated at Sun Oct 14 02:12:11 2007 for the OpenSceneGraph by doxygen 1.5.3.