|
Public Types |
enum | { N = 16
} |
Public Member Functions |
| MatrixEstimate () |
void | getMatrix (osg::Matrix &m) const |
void | setMatrix (const osg::Matrix &m) |
bool | getPerfectlyKnown () const |
void | setPerfectlyKnown (bool newPerfectlyKnown) |
bool | isInfinite () const |
void | setInfinite (bool infinite) |
void | setTrans (const osg::Vec3 &v) |
void | setTrans (const osg::Vec3 &v, const boost::numeric::ublas::matrix< double > &PV) |
osg::Vec3 | getTrans () const |
void | getTrans (osg::Vec3 &v) const |
void | set (const osg::Quat &q) |
void | set (const osg::Quat &q, const boost::numeric::ublas::matrix< double > &PQ) |
void | get (osg::Quat &quat) const |
void | makeFrustum (double left, double right, double bottom, double top, double zNear, double zFar) |
void | makeFrustum (double left, double right, double bottom, double top, double zNear, double zFar, const boost::numeric::ublas::matrix< double > &PF) |
void | makeOrtho (double left, double right, double bottom, double top, double zNear, double zFar) |
void | makeOrtho (double left, double right, double bottom, double top, double zNear, double zFar, const boost::numeric::ublas::matrix< double > &PO) |
void | makeOrtho2D (double left, double right, double bottom, double top) |
void | makeOrtho2D (double left, double right, double bottom, double top, const boost::numeric::ublas::matrix< double > &PO2) |
void | makePerspective (double fovy, double aspectRatio, double zNear, double zFar) |
void | makePerspective (double fovy, double aspectRatio, double zNear, double zFar, const boost::numeric::ublas::matrix< double > &PP) |
void | makeRotate (const osg::Quat &q) |
void | makeRotate (const osg::Quat &q, const boost::numeric::ublas::matrix< double > &PQ) |
void | makeScale (const osg::Vec3 &s) |
void | makeScale (const osg::Vec3 &s, const boost::numeric::ublas::matrix< double > &PS) |
void | makeTranslate (const osg::Vec3 &v) |
void | makeTranslate (const osg::Vec3 &v, const boost::numeric::ublas::matrix< double > &PV) |
void | resetP () |
bool | invert (const MatrixEstimate &me) |
MatrixEstimate & | operator= (const MatrixEstimate &rhs) |
Static Public Member Functions |
MatrixEstimate | inverse (const MatrixEstimate &me) |
The reason why we use this form is that it represents the most general way to handle any and all types of transforms which can turn up in OSG. There are two downsides. First, this is computationally much more expensive. Second, it looses some of the nonlinear constraints which occur. TODO: work out if this is a problem or not