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_type & | operator() (int row, int col) |
value_type | operator() (int row, int col) const |
bool | valid () const |
bool | isNaN () const |
Matrixd & | operator= (const Matrixd &rhs) |
Matrixd & | operator= (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_type * | ptr () |
const value_type * | ptr () 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 ¢er, const Vec3d &up) |
Set the position and orientation to be a view matrix, using the same convention as gluLookAt. | |
void | getLookAt (Vec3f &eye, Vec3f ¢er, 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 ¢er, 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 ¢er, 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 ¢er, 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] |
typedef double osg::Matrixd::value_type |
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] |
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] |
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 | ( | 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.
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 | ( | value_type | sx, | |
value_type | sy, | |||
value_type | sz | |||
) | [inline, static] |
Matrixd osg::Matrixd::translate | ( | value_type | x, | |
value_type | y, | |||
value_type | z | |||
) | [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::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.
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] |
apply a 3x3 transform of v*M[0.
.2,0..2].
apply a 3x3 transform of v*M[0.
.2,0..2].
apply a 3x3 transform of M[0.
.2,0..2]*v.
apply a 3x3 transform of M[0.
.2,0..2]*v.
void osg::Matrixd::preMult | ( | const Matrixd & | ) |
void osg::Matrixd::postMult | ( | const Matrixd & | ) |
void osg::Matrixd::operator *= | ( | const Matrixd & | other | ) | [inline] |
value_type osg::Matrixd::_mat[4][4] [protected] |