OpenSceneGraph/doc/doc++/osg/Matrixd.html
2003-10-02 14:28:30 +00:00

689 lines
51 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class SG_EXPORT osg::Matrixd</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.10">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::Matrixd</A></H2></H2><HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=65>
<param name=classes value="CMatrixd,MMatrixd.html,CRefMatrixd,MRefMatrixd.html">
<param name=before value="M,M^_">
<param name=after value="M,M">
<param name=indent value="0,0">
<param name=arrowdir value="down">
</APPLET>
<HR>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.107.2">Matrixd</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.107.3">Matrixd</A></B>( const <!1><A HREF="Matrixd.html#DOC.2.107.3">Matrixd</A>&amp; mat)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.107.4">Matrixd</A></B>( const <!1><A HREF="Matrixf.html">Matrixf</A>&amp; mat )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline explicit <B><A HREF="#DOC.2.107.5">Matrixd</A></B>( float const* const <!1><A HREF="Matrixd.html#DOC.2.107.27">ptr</A> )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline explicit <B><A HREF="#DOC.2.107.6">Matrixd</A></B>( double const* const <!1><A HREF="Matrixd.html#DOC.2.107.27">ptr</A> )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline explicit <B><A HREF="#DOC.2.107.7">Matrixd</A></B>( const <!1><A HREF="Quat.html">Quat</A>&amp; quat )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.107.8">Matrixd</A></B>( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a00, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a01, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a02, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a03, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a10, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a11, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a12, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a13, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a20, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a21, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a22, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a23, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a30, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a31, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a32, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a33)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.107.9">~Matrixd</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.107.10">compare</A></B>(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.107.11">operator < </A></B>(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.107.12">operator == </A></B>(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.107.13">operator != </A></B>(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>&amp; <B><A HREF="#DOC.2.107.14">operator()</A></B>(int row, int col)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> <B><A HREF="#DOC.2.107.15">operator()</A></B>(int row, int col) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.107.16">valid</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.107.17">isNaN</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A>&amp; <B><A HREF="#DOC.2.107.18">operator = </A></B>(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; rhs)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A>&amp; <B><A HREF="#DOC.2.107.19">operator = </A></B>(const <!1><A HREF="Matrixf.html">Matrixf</A>&amp; other)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.107.20">set</A></B>(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; rhs)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.21">set</A></B>(const <!1><A HREF="Matrixf.html">Matrixf</A>&amp; rhs)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.107.22">set</A></B>(float const* const <!1><A HREF="Matrixd.html#DOC.2.107.27">ptr</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.107.23">set</A></B>(double const* const <!1><A HREF="Matrixd.html#DOC.2.107.27">ptr</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.24">set</A></B>( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a00, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a01, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a02, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a03, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a10, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a11, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a12, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a13, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a20, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a21, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a22, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a23, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a30, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a31, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a32, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a33)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.25">set</A></B>(const <!1><A HREF="Quat.html">Quat</A>&amp; q)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.26">get</A></B>(<!1><A HREF="Quat.html">Quat</A>&amp; q) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>* <B><A HREF="#DOC.2.107.27">ptr</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>* <B><A HREF="#DOC.2.107.28">ptr</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.29">makeIdentity</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.30">makeScale</A></B>( const <!1><A HREF="Vec3.html">Vec3</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.31">makeScale</A></B>( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.32">makeTranslate</A></B>( const <!1><A HREF="Vec3.html">Vec3</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.33">makeTranslate</A></B>( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.34">makeRotate</A></B>( const <!1><A HREF="Vec3.html">Vec3</A>&amp; from, const <!1><A HREF="Vec3.html">Vec3</A>&amp; to )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.35">makeRotate</A></B>( float angle, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.36">makeRotate</A></B>( float angle, float <!1><A HREF="Viewport.html#DOC.2.233.8">x</A>, float <!1><A HREF="Viewport.html#DOC.2.233.9">y</A>, float <!1><A HREF="Vec4.html#DOC.2.229.15">z</A> )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.37">makeRotate</A></B>( const <!1><A HREF="Quat.html">Quat</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.38">makeRotate</A></B>( float angle1, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis1, float angle2, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis2, float angle3, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis3)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.39">makeOrtho</A></B>(double left, double right, double bottom, double top, double zNear, double zFar)
<DD><I>Set to a orthographic projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.107.40">getOrtho</A></B>(double&amp; left, double&amp; right, double&amp; bottom, double&amp; top, double&amp; zNear, double&amp; zFar)
<DD><I>Get the othorgraphic settings of the orthographic projection matrix.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.107.41">makeOrtho2D</A></B>(double left, double right, double bottom, double top)
<DD><I>Set to a 2D orthographic projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.42">makeFrustum</A></B>(double left, double right, double bottom, double top, double zNear, double zFar)
<DD><I>Set to a perspective projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.107.43">getFrustum</A></B>(double&amp; left, double&amp; right, double&amp; bottom, double&amp; top, double&amp; zNear, double&amp; zFar)
<DD><I>Get the frustum setting of a perspective projection matrix.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.44">makePerspective</A></B>(double fovy, double <!1><A HREF="Viewport.html#DOC.2.233.13">aspectRatio</A>, double zNear, double zFar)
<DD><I>Set to a symmetrical perspective projection, See gluPerspective for further details.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.107.45">getPerspective</A></B>(double&amp; fovy, double&amp; <!1><A HREF="Viewport.html#DOC.2.233.13">aspectRatio</A>, double&amp; zNear, double&amp; zFar)
<DD><I>Get the frustum setting of a symetric perspective projection matrix.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.46">makeLookAt</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye, const <!1><A HREF="Vec3.html">Vec3</A>&amp; <!1><A HREF="BoundingSphere.html#DOC.2.31.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)
<DD><I>Set to the position and orientation modelview matrix, using the same convention as gluLookAt.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.47">getLookAt</A></B>(<!1><A HREF="Vec3.html">Vec3</A>&amp; eye, <!1><A HREF="Vec3.html">Vec3</A>&amp; <!1><A HREF="BoundingSphere.html#DOC.2.31.8">center</A>, <!1><A HREF="Vec3.html">Vec3</A>&amp; up, float lookDistance=1.0f)
<DD><I>Get to the position and orientation of a modelview matrix, using the same convention as gluLookAt.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.107.48">invert</A></B>( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.49">identity</A></B>( void )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.50">scale</A></B>( const <!1><A HREF="Vec3.html">Vec3</A>&amp; sv)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.51">scale</A></B>( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sx, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sy, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sz)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.52">translate</A></B>( const <!1><A HREF="Vec3.html">Vec3</A>&amp; dv)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.53">translate</A></B>( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> <!1><A HREF="Viewport.html#DOC.2.233.8">x</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> <!1><A HREF="Viewport.html#DOC.2.233.9">y</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> <!1><A HREF="Vec4.html#DOC.2.229.15">z</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.54">rotate</A></B>( const <!1><A HREF="Vec3.html">Vec3</A>&amp; from, const <!1><A HREF="Vec3.html">Vec3</A>&amp; to)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.55">rotate</A></B>( float angle, float <!1><A HREF="Viewport.html#DOC.2.233.8">x</A>, float <!1><A HREF="Viewport.html#DOC.2.233.9">y</A>, float <!1><A HREF="Vec4.html#DOC.2.229.15">z</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.56">rotate</A></B>( float angle, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.57">rotate</A></B>( float angle1, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis1, float angle2, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis2, float angle3, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis3)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.58">rotate</A></B>( const <!1><A HREF="Quat.html">Quat</A>&amp; quat)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.59">inverse</A></B>( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; matrix)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.60">ortho</A></B>(double left, double right, double bottom, double top, double zNear, double zFar)
<DD><I>Create a orthographic projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.61">ortho2D</A></B>(double left, double right, double bottom, double top)
<DD><I>Create a 2D orthographic projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.62">frustum</A></B>(double left, double right, double bottom, double top, double zNear, double zFar)
<DD><I>Create a perspective projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.63">perspective</A></B>(double fovy, double <!1><A HREF="Viewport.html#DOC.2.233.13">aspectRatio</A>, double zNear, double zFar)
<DD><I>Create a symmetrical perspective projection, See gluPerspective for further details.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.64">lookAt</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye, const <!1><A HREF="Vec3.html">Vec3</A>&amp; <!1><A HREF="BoundingSphere.html#DOC.2.31.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)
<DD><I>Create the position and orientation as per a camera, using the same convention as gluLookAt.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.65">setTrans</A></B>( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> tx, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> ty, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> tz )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.66">setTrans</A></B>( const <!1><A HREF="Vec3.html">Vec3</A>&amp; v )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.107.67">getTrans</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.107.68">getScale</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.107.69">transform3x3</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v, const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m)
<DD><I>apply apply an 3x3 transform of v*M[02,02] </I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.107.70">transform3x3</A></B>(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m, const <!1><A HREF="Vec3.html">Vec3</A>&amp; v)
<DD><I>apply apply an 3x3 transform of M[02,02]*v </I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.71">mult</A></B>( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp;, const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.72">preMult</A></B>( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.107.73">postMult</A></B>( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.107.74">operator *= </A></B>( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; other )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.75">operator * </A></B>( const <!1><A HREF="Matrixd.html">Matrixd</A> &amp;m ) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.77">identity</A></B>(void)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.78">scale</A></B>(<!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sx, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sy, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sz)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.79">scale</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.80">translate</A></B>(<!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> tx, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> ty, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> tz)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.81">translate</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.82">rotate</A></B>( const <!1><A HREF="Quat.html">Quat</A>&amp; q )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.83">rotate</A></B>(float angle, float <!1><A HREF="Viewport.html#DOC.2.233.8">x</A>, float <!1><A HREF="Viewport.html#DOC.2.233.9">y</A>, float <!1><A HREF="Vec4.html#DOC.2.229.15">z</A> )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.84">rotate</A></B>(float angle, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.85">rotate</A></B>( float angle1, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis1, float angle2, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis2, float angle3, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis3)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.86">rotate</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; from, const <!1><A HREF="Vec3.html">Vec3</A>&amp; to )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.87">inverse</A></B>( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; matrix)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.88">ortho</A></B>(double left, double right, double bottom, double top, double zNear, double zFar)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.89">ortho2D</A></B>(double left, double right, double bottom, double top)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.90">frustum</A></B>(double left, double right, double bottom, double top, double zNear, double zFar)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.91">perspective</A></B>(double fovy, double <!1><A HREF="Viewport.html#DOC.2.233.13">aspectRatio</A>, double zNear, double zFar)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrixd.html">Matrixd</A> <B><A HREF="#DOC.2.107.92">lookAt</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye, const <!1><A HREF="Vec3.html">Vec3</A>&amp; <!1><A HREF="BoundingSphere.html#DOC.2.31.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.107.93">postMult</A></B>( const <!1><A HREF="Vec3.html">Vec3</A>&amp; v ) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.107.94">preMult</A></B>( const <!1><A HREF="Vec3.html">Vec3</A>&amp; v ) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Vec4.html">Vec4</A> <B><A HREF="#DOC.2.107.95">postMult</A></B>( const <!1><A HREF="Vec4.html">Vec4</A>&amp; v ) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Vec4.html">Vec4</A> <B><A HREF="#DOC.2.107.96">preMult</A></B>( const <!1><A HREF="Vec4.html">Vec4</A>&amp; v ) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.107.97">transform3x3</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v, const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.107.98">transform3x3</A></B>(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m, const <!1><A HREF="Vec3.html">Vec3</A>&amp; v)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.107.99">operator* </A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Vec4.html">Vec4</A> <B><A HREF="#DOC.2.107.100">operator* </A></B>(const <!1><A HREF="Vec4.html">Vec4</A>&amp; v) const
</DL></P>
<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef double <B><A HREF="#DOC.2.107.1">value_type</A></B>
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> <B><A HREF="#DOC.2.107.76">_mat</A></B>[4][4]
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<DL>
<A NAME="value_type"></A>
<A NAME="DOC.2.107.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef double value_type</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Matrixd"></A>
<A NAME="DOC.2.107.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Matrixd()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Matrixd"></A>
<A NAME="DOC.2.107.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Matrixd( const <!1><A HREF="Matrixd.html#DOC.2.107.3">Matrixd</A>&amp; mat)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Matrixd"></A>
<A NAME="DOC.2.107.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Matrixd( const <!1><A HREF="Matrixf.html">Matrixf</A>&amp; mat )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Matrixd"></A>
<A NAME="DOC.2.107.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline explicit Matrixd( float const* const <!1><A HREF="Matrixd.html#DOC.2.107.27">ptr</A> )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Matrixd"></A>
<A NAME="DOC.2.107.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline explicit Matrixd( double const* const <!1><A HREF="Matrixd.html#DOC.2.107.27">ptr</A> )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Matrixd"></A>
<A NAME="DOC.2.107.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline explicit Matrixd( const <!1><A HREF="Quat.html">Quat</A>&amp; quat )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Matrixd"></A>
<A NAME="DOC.2.107.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Matrixd( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a00, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a01, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a02, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a03, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a10, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a11, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a12, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a13, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a20, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a21, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a22, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a23, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a30, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a31, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a32, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a33)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~Matrixd"></A>
<A NAME="DOC.2.107.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ~Matrixd()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="compare"></A>
<A NAME="DOC.2.107.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int compare(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator < "></A>
<A NAME="DOC.2.107.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool operator < (const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator == "></A>
<A NAME="DOC.2.107.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool operator == (const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator != "></A>
<A NAME="DOC.2.107.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool operator != (const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator()"></A>
<A NAME="DOC.2.107.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>&amp; operator()(int row, int col)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator()"></A>
<A NAME="DOC.2.107.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> operator()(int row, int col) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="valid"></A>
<A NAME="DOC.2.107.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool valid() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isNaN"></A>
<A NAME="DOC.2.107.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool isNaN() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator = "></A>
<A NAME="DOC.2.107.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A>&amp; operator = (const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; rhs)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator = "></A>
<A NAME="DOC.2.107.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A>&amp; operator = (const <!1><A HREF="Matrixf.html">Matrixf</A>&amp; other)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="set"></A>
<A NAME="DOC.2.107.20"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void set(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; rhs)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="set"></A>
<A NAME="DOC.2.107.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void set(const <!1><A HREF="Matrixf.html">Matrixf</A>&amp; rhs)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="set"></A>
<A NAME="DOC.2.107.22"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void set(float const* const <!1><A HREF="Matrixd.html#DOC.2.107.27">ptr</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="set"></A>
<A NAME="DOC.2.107.23"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void set(double const* const <!1><A HREF="Matrixd.html#DOC.2.107.27">ptr</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="set"></A>
<A NAME="DOC.2.107.24"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void set( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a00, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a01, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a02, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a03, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a10, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a11, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a12, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a13, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a20, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a21, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a22, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a23, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a30, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a31, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a32, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> a33)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="set"></A>
<A NAME="DOC.2.107.25"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void set(const <!1><A HREF="Quat.html">Quat</A>&amp; q)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="get"></A>
<A NAME="DOC.2.107.26"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void get(<!1><A HREF="Quat.html">Quat</A>&amp; q) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="ptr"></A>
<A NAME="DOC.2.107.27"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>* ptr()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ptr"></A>
<A NAME="DOC.2.107.28"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>* ptr() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeIdentity"></A>
<A NAME="DOC.2.107.29"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeIdentity()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeScale"></A>
<A NAME="DOC.2.107.30"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeScale( const <!1><A HREF="Vec3.html">Vec3</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeScale"></A>
<A NAME="DOC.2.107.31"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeScale( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeTranslate"></A>
<A NAME="DOC.2.107.32"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeTranslate( const <!1><A HREF="Vec3.html">Vec3</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeTranslate"></A>
<A NAME="DOC.2.107.33"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeTranslate( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeRotate"></A>
<A NAME="DOC.2.107.34"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeRotate( const <!1><A HREF="Vec3.html">Vec3</A>&amp; from, const <!1><A HREF="Vec3.html">Vec3</A>&amp; to )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeRotate"></A>
<A NAME="DOC.2.107.35"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeRotate( float angle, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeRotate"></A>
<A NAME="DOC.2.107.36"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeRotate( float angle, float <!1><A HREF="Viewport.html#DOC.2.233.8">x</A>, float <!1><A HREF="Viewport.html#DOC.2.233.9">y</A>, float <!1><A HREF="Vec4.html#DOC.2.229.15">z</A> )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeRotate"></A>
<A NAME="DOC.2.107.37"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeRotate( const <!1><A HREF="Quat.html">Quat</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeRotate"></A>
<A NAME="DOC.2.107.38"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeRotate( float angle1, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis1, float angle2, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis2, float angle3, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis3)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeOrtho"></A>
<A NAME="DOC.2.107.39"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeOrtho(double left, double right, double bottom, double top, double zNear, double zFar)</B></TT>
<DD>Set to a orthographic projection. See glOrtho for further details.
<DL><DT><DD></DL><P>
<A NAME="getOrtho"></A>
<A NAME="DOC.2.107.40"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool getOrtho(double&amp; left, double&amp; right, double&amp; bottom, double&amp; top, double&amp; zNear, double&amp; zFar)</B></TT>
<DD>Get the othorgraphic settings of the orthographic projection matrix.
Note, if matrix is not an orthographic matrix then invalid values will be returned.
<DL><DT><DD></DL><P>
<A NAME="makeOrtho2D"></A>
<A NAME="DOC.2.107.41"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void makeOrtho2D(double left, double right, double bottom, double top)</B></TT>
<DD>Set to a 2D orthographic projection. See glOrtho2D for further details.
<DL><DT><DD></DL><P>
<A NAME="makeFrustum"></A>
<A NAME="DOC.2.107.42"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeFrustum(double left, double right, double bottom, double top, double zNear, double zFar)</B></TT>
<DD>Set to a perspective projection. See glFrustum for further details.
<DL><DT><DD></DL><P>
<A NAME="getFrustum"></A>
<A NAME="DOC.2.107.43"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool getFrustum(double&amp; left, double&amp; right, double&amp; bottom, double&amp; top, double&amp; zNear, double&amp; zFar)</B></TT>
<DD>Get the frustum setting of a perspective projection matrix.
Note, if matrix is not an perspective matrix then invalid values will be returned.
<DL><DT><DD></DL><P>
<A NAME="makePerspective"></A>
<A NAME="DOC.2.107.44"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makePerspective(double fovy, double <!1><A HREF="Viewport.html#DOC.2.233.13">aspectRatio</A>, double zNear, double zFar)</B></TT>
<DD>Set to a symmetrical perspective projection, See gluPerspective for further details.
Aspect ratio is defined as width/height.
<DL><DT><DD></DL><P>
<A NAME="getPerspective"></A>
<A NAME="DOC.2.107.45"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool getPerspective(double&amp; fovy, double&amp; <!1><A HREF="Viewport.html#DOC.2.233.13">aspectRatio</A>, double&amp; zNear, double&amp; zFar)</B></TT>
<DD>Get the frustum setting of a symetric perspective projection matrix.
Returns false if matrix is not a perspective matrix, where parameter values are undefined.
Note, if matrix is not a symetric perspective matrix then the shear will be lost.
Asymetric metrices occur when stereo, power walls, caves and reality center display are used.
In these configuration one should use the AsFrustum method instead.
<DL><DT><DD></DL><P>
<A NAME="makeLookAt"></A>
<A NAME="DOC.2.107.46"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeLookAt(const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye, const <!1><A HREF="Vec3.html">Vec3</A>&amp; <!1><A HREF="BoundingSphere.html#DOC.2.31.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)</B></TT>
<DD>Set to the position and orientation modelview matrix, using the same convention as gluLookAt.
<DL><DT><DD></DL><P>
<A NAME="getLookAt"></A>
<A NAME="DOC.2.107.47"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void getLookAt(<!1><A HREF="Vec3.html">Vec3</A>&amp; eye, <!1><A HREF="Vec3.html">Vec3</A>&amp; <!1><A HREF="BoundingSphere.html#DOC.2.31.8">center</A>, <!1><A HREF="Vec3.html">Vec3</A>&amp; up, float lookDistance=1.0f)</B></TT>
<DD>Get to the position and orientation of a modelview matrix, using the same convention as gluLookAt.
<DL><DT><DD></DL><P>
<A NAME="invert"></A>
<A NAME="DOC.2.107.48"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool invert( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="identity"></A>
<A NAME="DOC.2.107.49"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> identity( void )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="scale"></A>
<A NAME="DOC.2.107.50"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> scale( const <!1><A HREF="Vec3.html">Vec3</A>&amp; sv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="scale"></A>
<A NAME="DOC.2.107.51"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> scale( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sx, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sy, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sz)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="translate"></A>
<A NAME="DOC.2.107.52"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> translate( const <!1><A HREF="Vec3.html">Vec3</A>&amp; dv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="translate"></A>
<A NAME="DOC.2.107.53"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> translate( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> <!1><A HREF="Viewport.html#DOC.2.233.8">x</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> <!1><A HREF="Viewport.html#DOC.2.233.9">y</A>, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> <!1><A HREF="Vec4.html#DOC.2.229.15">z</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.107.54"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> rotate( const <!1><A HREF="Vec3.html">Vec3</A>&amp; from, const <!1><A HREF="Vec3.html">Vec3</A>&amp; to)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.107.55"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> rotate( float angle, float <!1><A HREF="Viewport.html#DOC.2.233.8">x</A>, float <!1><A HREF="Viewport.html#DOC.2.233.9">y</A>, float <!1><A HREF="Vec4.html#DOC.2.229.15">z</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.107.56"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> rotate( float angle, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.107.57"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> rotate( float angle1, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis1, float angle2, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis2, float angle3, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis3)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.107.58"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> rotate( const <!1><A HREF="Quat.html">Quat</A>&amp; quat)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="inverse"></A>
<A NAME="DOC.2.107.59"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> inverse( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; matrix)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ortho"></A>
<A NAME="DOC.2.107.60"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> ortho(double left, double right, double bottom, double top, double zNear, double zFar)</B></TT>
<DD>Create a orthographic projection. See glOrtho for further details.
<DL><DT><DD></DL><P>
<A NAME="ortho2D"></A>
<A NAME="DOC.2.107.61"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> ortho2D(double left, double right, double bottom, double top)</B></TT>
<DD>Create a 2D orthographic projection. See glOrtho for further details.
<DL><DT><DD></DL><P>
<A NAME="frustum"></A>
<A NAME="DOC.2.107.62"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> frustum(double left, double right, double bottom, double top, double zNear, double zFar)</B></TT>
<DD>Create a perspective projection. See glFrustum for further details.
<DL><DT><DD></DL><P>
<A NAME="perspective"></A>
<A NAME="DOC.2.107.63"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> perspective(double fovy, double <!1><A HREF="Viewport.html#DOC.2.233.13">aspectRatio</A>, double zNear, double zFar)</B></TT>
<DD>Create a symmetrical perspective projection, See gluPerspective for further details.
Aspect ratio is defined as width/height.
<DL><DT><DD></DL><P>
<A NAME="lookAt"></A>
<A NAME="DOC.2.107.64"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrixd.html">Matrixd</A> lookAt(const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye, const <!1><A HREF="Vec3.html">Vec3</A>&amp; <!1><A HREF="BoundingSphere.html#DOC.2.31.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)</B></TT>
<DD>Create the position and orientation as per a camera, using the same convention as gluLookAt.
<DL><DT><DD></DL><P>
<A NAME="setTrans"></A>
<A NAME="DOC.2.107.65"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setTrans( <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> tx, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> ty, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> tz )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="setTrans"></A>
<A NAME="DOC.2.107.66"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setTrans( const <!1><A HREF="Vec3.html">Vec3</A>&amp; v )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getTrans"></A>
<A NAME="DOC.2.107.67"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Vec3.html">Vec3</A> getTrans() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="getScale"></A>
<A NAME="DOC.2.107.68"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Vec3.html">Vec3</A> getScale() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="transform3x3"></A>
<A NAME="DOC.2.107.69"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Vec3.html">Vec3</A> transform3x3(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v, const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m)</B></TT>
<DD>apply apply an 3x3 transform of v*M[02,02]
<DL><DT><DD></DL><P>
<A NAME="transform3x3"></A>
<A NAME="DOC.2.107.70"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Vec3.html">Vec3</A> transform3x3(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m, const <!1><A HREF="Vec3.html">Vec3</A>&amp; v)</B></TT>
<DD>apply apply an 3x3 transform of M[02,02]*v
<DL><DT><DD></DL><P>
<A NAME="mult"></A>
<A NAME="DOC.2.107.71"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void mult( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp;, const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="preMult"></A>
<A NAME="DOC.2.107.72"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void preMult( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="postMult"></A>
<A NAME="DOC.2.107.73"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void postMult( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator *= "></A>
<A NAME="DOC.2.107.74"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void operator *= ( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; other )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator * "></A>
<A NAME="DOC.2.107.75"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> operator * ( const <!1><A HREF="Matrixd.html">Matrixd</A> &amp;m ) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="_mat"></A>
<A NAME="DOC.2.107.76"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> _mat[4][4]</B></TT>
<DL><DT><DD></DL><P>
<A NAME="identity"></A>
<A NAME="DOC.2.107.77"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> identity(void)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="scale"></A>
<A NAME="DOC.2.107.78"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> scale(<!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sx, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sy, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> sz)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="scale"></A>
<A NAME="DOC.2.107.79"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> scale(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="translate"></A>
<A NAME="DOC.2.107.80"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> translate(<!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> tx, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> ty, <!1><A HREF="Matrixd.html#DOC.2.107.1">value_type</A> tz)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="translate"></A>
<A NAME="DOC.2.107.81"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> translate(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.107.82"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> rotate( const <!1><A HREF="Quat.html">Quat</A>&amp; q )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.107.83"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> rotate(float angle, float <!1><A HREF="Viewport.html#DOC.2.233.8">x</A>, float <!1><A HREF="Viewport.html#DOC.2.233.9">y</A>, float <!1><A HREF="Vec4.html#DOC.2.229.15">z</A> )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.107.84"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> rotate(float angle, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.107.85"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> rotate( float angle1, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis1, float angle2, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis2, float angle3, const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis3)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.107.86"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> rotate(const <!1><A HREF="Vec3.html">Vec3</A>&amp; from, const <!1><A HREF="Vec3.html">Vec3</A>&amp; to )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="inverse"></A>
<A NAME="DOC.2.107.87"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> inverse( const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; matrix)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ortho"></A>
<A NAME="DOC.2.107.88"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> ortho(double left, double right, double bottom, double top, double zNear, double zFar)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ortho2D"></A>
<A NAME="DOC.2.107.89"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> ortho2D(double left, double right, double bottom, double top)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="frustum"></A>
<A NAME="DOC.2.107.90"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> frustum(double left, double right, double bottom, double top, double zNear, double zFar)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="perspective"></A>
<A NAME="DOC.2.107.91"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> perspective(double fovy, double <!1><A HREF="Viewport.html#DOC.2.233.13">aspectRatio</A>, double zNear, double zFar)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="lookAt"></A>
<A NAME="DOC.2.107.92"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrixd.html">Matrixd</A> lookAt(const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye, const <!1><A HREF="Vec3.html">Vec3</A>&amp; <!1><A HREF="BoundingSphere.html#DOC.2.31.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="postMult"></A>
<A NAME="DOC.2.107.93"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Vec3.html">Vec3</A> postMult( const <!1><A HREF="Vec3.html">Vec3</A>&amp; v ) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="preMult"></A>
<A NAME="DOC.2.107.94"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Vec3.html">Vec3</A> preMult( const <!1><A HREF="Vec3.html">Vec3</A>&amp; v ) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="postMult"></A>
<A NAME="DOC.2.107.95"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Vec4.html">Vec4</A> postMult( const <!1><A HREF="Vec4.html">Vec4</A>&amp; v ) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="preMult"></A>
<A NAME="DOC.2.107.96"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Vec4.html">Vec4</A> preMult( const <!1><A HREF="Vec4.html">Vec4</A>&amp; v ) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="transform3x3"></A>
<A NAME="DOC.2.107.97"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Vec3.html">Vec3</A> transform3x3(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v, const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="transform3x3"></A>
<A NAME="DOC.2.107.98"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Vec3.html">Vec3</A> transform3x3(const <!1><A HREF="Matrixd.html">Matrixd</A>&amp; m, const <!1><A HREF="Vec3.html">Vec3</A>&amp; v)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator* "></A>
<A NAME="DOC.2.107.99"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Vec3.html">Vec3</A> operator* (const <!1><A HREF="Vec3.html">Vec3</A>&amp; v) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator* "></A>
<A NAME="DOC.2.107.100"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Vec4.html">Vec4</A> operator* (const <!1><A HREF="Vec4.html">Vec4</A>&amp; v) const </B></TT>
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="RefMatrixd.html">RefMatrixd</A><BR>
</DL>
<DL><DT><DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR>
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>