OpenSceneGraph/doc/doc++/osg/Matrix.html
2002-08-29 14:29:49 +00:00

660 lines
47 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class SG_EXPORT osg::Matrix</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::Matrix</A></H2></H2><HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="CReferenced,MReferenced.html,CObject,MObject.html,CMatrix,MMatrix.html">
<param name=before value="M,M,M">
<param name=after value="Md_SP,Md_,M">
<param name=indent value="0,1,2">
<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> <B><A HREF="#DOC.2.73.1">Matrix</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.73.2">Matrix</A></B>( const <!1><A HREF="Matrix.html#DOC.2.73.2">Matrix</A>&amp; other)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>explicit <B><A HREF="#DOC.2.73.3">Matrix</A></B>( float const* const def )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.73.4">Matrix</A></B>( float a00, float a01, float a02, float a03, float a10, float a11, float a12, float a13, float a20, float a21, float a22, float a23, float a30, float a31, float a32, float a33)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <!1><A HREF="Object.html">Object</A>* <B><A HREF="#DOC.2.73.5">cloneType</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <!1><A HREF="Object.html">Object</A>* <B><A HREF="#DOC.2.73.6">clone</A></B>(const <!1><A HREF="CopyOp.html">CopyOp</A>&amp;) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.73.7">isSameKindAs</A></B>(const <!1><A HREF="Object.html">Object</A>* obj) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const char* <B><A HREF="#DOC.2.73.8">libraryName</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const char* <B><A HREF="#DOC.2.73.9">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.73.10">~Matrix</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.73.11">compare</A></B>(const <!1><A HREF="Matrix.html">Matrix</A>&amp; m) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.73.12">operator < </A></B>(const <!1><A HREF="Matrix.html">Matrix</A>&amp; m) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.73.13">operator == </A></B>(const <!1><A HREF="Matrix.html">Matrix</A>&amp; m) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.73.14">operator != </A></B>(const <!1><A HREF="Matrix.html">Matrix</A>&amp; m) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float&amp; <B><A HREF="#DOC.2.73.15">operator()</A></B>(int row, int col)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.73.16">operator()</A></B>(int row, int col) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const bool <B><A HREF="#DOC.2.73.17">valid</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const bool <B><A HREF="#DOC.2.73.18">isNaN</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A>&amp; <B><A HREF="#DOC.2.73.19">operator = </A></B>(const <!1><A HREF="Matrix.html">Matrix</A>&amp; other)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.73.20">set</A></B>(const <!1><A HREF="Matrix.html">Matrix</A>&amp; other)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.73.21">set</A></B>(float const* const <!1><A HREF="Matrix.html#DOC.2.73.23">ptr</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.22">set</A></B>( float a00, float a01, float a02, float a03, float a10, float a11, float a12, float a13, float a20, float a21, float a22, float a23, float a30, float a31, float a32, float a33)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float* <B><A HREF="#DOC.2.73.23">ptr</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const float* <B><A HREF="#DOC.2.73.24">ptr</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.25">makeIdentity</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.26">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.73.27">makeScale</A></B>( float, float, float )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.28">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.73.29">makeTranslate</A></B>( float, float, float )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.30">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.73.31">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.73.32">makeRotate</A></B>( float angle, float <!1><A HREF="Viewport.html#DOC.2.153.7">x</A>, float <!1><A HREF="Viewport.html#DOC.2.153.8">y</A>, float <!1><A HREF="Vec4.html#DOC.2.150.15">z</A> )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.33">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.73.34">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.73.35">makeOrtho</A></B>(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)
<DD><I>Set to a orthographic projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.73.36">makeOrtho2D</A></B>(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>)
<DD><I>Set to a 2D orthographic projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.37">makeFrustum</A></B>(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)
<DD><I>Set to a perspective projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.38">makePerspective</A></B>(const double fovy, const double <!1><A HREF="Viewport.html#DOC.2.153.12">aspectRatio</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)
<DD><I>Set to a symmetrical perspective projection, See gluPerspective for further details.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.39">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.9.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)
<DD><I>Set to the position and orientation as per a camera, using the same convention as gluLookAt.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.73.40">invert</A></B>( const <!1><A HREF="Matrix.html">Matrix</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.41">identity</A></B>( void )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.42">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.43">scale</A></B>( float sx, float sy, float sz)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.44">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.45">translate</A></B>( float <!1><A HREF="Viewport.html#DOC.2.153.7">x</A>, float <!1><A HREF="Viewport.html#DOC.2.153.8">y</A>, float <!1><A HREF="Vec4.html#DOC.2.150.15">z</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.46">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.47">rotate</A></B>( float angle, float <!1><A HREF="Viewport.html#DOC.2.153.7">x</A>, float <!1><A HREF="Viewport.html#DOC.2.153.8">y</A>, float <!1><A HREF="Vec4.html#DOC.2.150.15">z</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.48">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.49">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.50">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.51">inverse</A></B>( const <!1><A HREF="Matrix.html">Matrix</A>&amp; matrix)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.52">ortho</A></B>(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)
<DD><I>Create a orthographic projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.53">ortho2D</A></B>(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>)
<DD><I>Create a 2D orthographic projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.54">frustum</A></B>(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)
<DD><I>Create a perspective projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline static <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.55">perspective</A></B>(const double fovy, const double <!1><A HREF="Viewport.html#DOC.2.153.12">aspectRatio</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)
<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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.56">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.9.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.73.57">setTrans</A></B>( float tx, float ty, float tz )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.58">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.73.59">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.73.60">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.73.61">transform3x3</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v, const <!1><A HREF="Matrix.html">Matrix</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.73.62">transform3x3</A></B>(const <!1><A HREF="Matrix.html">Matrix</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.73.63">mult</A></B>( const <!1><A HREF="Matrix.html">Matrix</A>&amp;, const <!1><A HREF="Matrix.html">Matrix</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.64">preMult</A></B>( const <!1><A HREF="Matrix.html">Matrix</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.73.65">postMult</A></B>( const <!1><A HREF="Matrix.html">Matrix</A>&amp; )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.73.66">operator *= </A></B>( const <!1><A HREF="Matrix.html">Matrix</A>&amp; other )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.67">operator * </A></B>( const <!1><A HREF="Matrix.html">Matrix</A> &amp;m ) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.69">identity</A></B>(void)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.70">scale</A></B>(float sx, float sy, float sz)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.71">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.72">translate</A></B>(float tx, float ty, float tz)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.73">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.74">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.75">rotate</A></B>(float angle, float <!1><A HREF="Viewport.html#DOC.2.153.7">x</A>, float <!1><A HREF="Viewport.html#DOC.2.153.8">y</A>, float <!1><A HREF="Vec4.html#DOC.2.150.15">z</A> )
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.76">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.77">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.78">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="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.79">inverse</A></B>( const <!1><A HREF="Matrix.html">Matrix</A>&amp; matrix)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.80">ortho</A></B>(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.81">ortho2D</A></B>(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.82">frustum</A></B>(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.83">perspective</A></B>(const double fovy, const double <!1><A HREF="Viewport.html#DOC.2.153.12">aspectRatio</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.73.84">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.9.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.73.85">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.73.86">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.73.87">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.73.88">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.73.89">transform3x3</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; v, const <!1><A HREF="Matrix.html">Matrix</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.73.90">transform3x3</A></B>(const <!1><A HREF="Matrix.html">Matrix</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.73.91">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.73.92">operator* </A></B>(const <!1><A HREF="Vec4.html">Vec4</A>&amp; v) const
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Object.html">Object</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setDataVariance</B>(const <!1><A HREF="Object.html#DOC.2.90.8">DataVariance</A> dv)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Object.html#DOC.2.90.8">DataVariance</A> <B>getDataVariance</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setUserData</B>(<!1><A HREF="Referenced.html">Referenced</A>* obj)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Referenced.html">Referenced</A>* <B>getUserData</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Referenced.html">Referenced</A>* <B>getUserData</B>() const
</DL></P>
<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>enum <B>DataVariance</B>
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Object.html#DOC.2.90.8">DataVariance</A> <B>_dataVariance</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Referenced.html">Referenced</A>&gt; <B>_userData</B>
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Referenced.html">Referenced</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>ref</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref_nodelete</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const int <B>referenceCount</B>() const
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>mutable int <B>_refCount</B>
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<DL>
<A NAME="Matrix"></A>
<A NAME="DOC.2.73.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Matrix()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Matrix"></A>
<A NAME="DOC.2.73.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Matrix( const <!1><A HREF="Matrix.html#DOC.2.73.2">Matrix</A>&amp; other)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Matrix"></A>
<A NAME="DOC.2.73.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>explicit Matrix( float const* const def )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Matrix"></A>
<A NAME="DOC.2.73.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Matrix( float a00, float a01, float a02, float a03, float a10, float a11, float a12, float a13, float a20, float a21, float a22, float a23, float a30, float a31, float a32, float a33)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="cloneType"></A>
<A NAME="DOC.2.73.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual <!1><A HREF="Object.html">Object</A>* cloneType() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="clone"></A>
<A NAME="DOC.2.73.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual <!1><A HREF="Object.html">Object</A>* clone(const <!1><A HREF="CopyOp.html">CopyOp</A>&amp;) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.73.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const <!1><A HREF="Object.html">Object</A>* obj) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="libraryName"></A>
<A NAME="DOC.2.73.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* libraryName() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="className"></A>
<A NAME="DOC.2.73.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="~Matrix"></A>
<A NAME="DOC.2.73.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Matrix()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="compare"></A>
<A NAME="DOC.2.73.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int compare(const <!1><A HREF="Matrix.html">Matrix</A>&amp; m) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator < "></A>
<A NAME="DOC.2.73.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool operator < (const <!1><A HREF="Matrix.html">Matrix</A>&amp; m) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator == "></A>
<A NAME="DOC.2.73.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool operator == (const <!1><A HREF="Matrix.html">Matrix</A>&amp; m) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator != "></A>
<A NAME="DOC.2.73.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool operator != (const <!1><A HREF="Matrix.html">Matrix</A>&amp; m) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator()"></A>
<A NAME="DOC.2.73.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float&amp; operator()(int row, int col)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator()"></A>
<A NAME="DOC.2.73.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float operator()(int row, int col) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="valid"></A>
<A NAME="DOC.2.73.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const bool valid() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isNaN"></A>
<A NAME="DOC.2.73.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const bool isNaN() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator = "></A>
<A NAME="DOC.2.73.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A>&amp; operator = (const <!1><A HREF="Matrix.html">Matrix</A>&amp; other)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="set"></A>
<A NAME="DOC.2.73.20"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void set(const <!1><A HREF="Matrix.html">Matrix</A>&amp; other)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="set"></A>
<A NAME="DOC.2.73.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void set(float const* const <!1><A HREF="Matrix.html#DOC.2.73.23">ptr</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="set"></A>
<A NAME="DOC.2.73.22"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void set( float a00, float a01, float a02, float a03, float a10, float a11, float a12, float a13, float a20, float a21, float a22, float a23, float a30, float a31, float a32, float a33)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ptr"></A>
<A NAME="DOC.2.73.23"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float* ptr()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ptr"></A>
<A NAME="DOC.2.73.24"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const float* ptr() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeIdentity"></A>
<A NAME="DOC.2.73.25"></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.73.26"></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.73.27"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeScale( float, float, float )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeTranslate"></A>
<A NAME="DOC.2.73.28"></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.73.29"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeTranslate( float, float, float )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeRotate"></A>
<A NAME="DOC.2.73.30"></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.73.31"></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.73.32"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeRotate( float angle, float <!1><A HREF="Viewport.html#DOC.2.153.7">x</A>, float <!1><A HREF="Viewport.html#DOC.2.153.8">y</A>, float <!1><A HREF="Vec4.html#DOC.2.150.15">z</A> )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="makeRotate"></A>
<A NAME="DOC.2.73.33"></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.73.34"></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.73.35"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeOrtho(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)</B></TT>
<DD>Set to a orthographic projection. See glOrtho for further details.
<DL><DT><DD></DL><P>
<A NAME="makeOrtho2D"></A>
<A NAME="DOC.2.73.36"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void makeOrtho2D(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>)</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.73.37"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makeFrustum(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)</B></TT>
<DD>Set to a perspective projection. See glFrustum for further details.
<DL><DT><DD></DL><P>
<A NAME="makePerspective"></A>
<A NAME="DOC.2.73.38"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void makePerspective(const double fovy, const double <!1><A HREF="Viewport.html#DOC.2.153.12">aspectRatio</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)</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="makeLookAt"></A>
<A NAME="DOC.2.73.39"></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.9.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)</B></TT>
<DD>Set to the position and orientation as per a camera, using the same convention as gluLookAt.
<DL><DT><DD></DL><P>
<A NAME="invert"></A>
<A NAME="DOC.2.73.40"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool invert( const <!1><A HREF="Matrix.html">Matrix</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="identity"></A>
<A NAME="DOC.2.73.41"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</A> identity( void )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="scale"></A>
<A NAME="DOC.2.73.42"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</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.73.43"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</A> scale( float sx, float sy, float sz)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="translate"></A>
<A NAME="DOC.2.73.44"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</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.73.45"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</A> translate( float <!1><A HREF="Viewport.html#DOC.2.153.7">x</A>, float <!1><A HREF="Viewport.html#DOC.2.153.8">y</A>, float <!1><A HREF="Vec4.html#DOC.2.150.15">z</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.73.46"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</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.73.47"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</A> rotate( float angle, float <!1><A HREF="Viewport.html#DOC.2.153.7">x</A>, float <!1><A HREF="Viewport.html#DOC.2.153.8">y</A>, float <!1><A HREF="Vec4.html#DOC.2.150.15">z</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.73.48"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</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.73.49"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</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.73.50"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</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.73.51"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</A> inverse( const <!1><A HREF="Matrix.html">Matrix</A>&amp; matrix)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ortho"></A>
<A NAME="DOC.2.73.52"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</A> ortho(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)</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.73.53"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</A> ortho2D(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>)</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.73.54"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</A> frustum(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)</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.73.55"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</A> perspective(const double fovy, const double <!1><A HREF="Viewport.html#DOC.2.153.12">aspectRatio</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)</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.73.56"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline static <!1><A HREF="Matrix.html">Matrix</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.9.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.73.57"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setTrans( float tx, float ty, float tz )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="setTrans"></A>
<A NAME="DOC.2.73.58"></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.73.59"></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.73.60"></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.73.61"></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="Matrix.html">Matrix</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.73.62"></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="Matrix.html">Matrix</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.73.63"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void mult( const <!1><A HREF="Matrix.html">Matrix</A>&amp;, const <!1><A HREF="Matrix.html">Matrix</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="preMult"></A>
<A NAME="DOC.2.73.64"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void preMult( const <!1><A HREF="Matrix.html">Matrix</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="postMult"></A>
<A NAME="DOC.2.73.65"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void postMult( const <!1><A HREF="Matrix.html">Matrix</A>&amp; )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator *= "></A>
<A NAME="DOC.2.73.66"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void operator *= ( const <!1><A HREF="Matrix.html">Matrix</A>&amp; other )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator * "></A>
<A NAME="DOC.2.73.67"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A> operator * ( const <!1><A HREF="Matrix.html">Matrix</A> &amp;m ) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="identity"></A>
<A NAME="DOC.2.73.69"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A> identity(void)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="scale"></A>
<A NAME="DOC.2.73.70"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A> scale(float sx, float sy, float sz)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="scale"></A>
<A NAME="DOC.2.73.71"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</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.73.72"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A> translate(float tx, float ty, float tz)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="translate"></A>
<A NAME="DOC.2.73.73"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</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.73.74"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</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.73.75"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A> rotate(float angle, float <!1><A HREF="Viewport.html#DOC.2.153.7">x</A>, float <!1><A HREF="Viewport.html#DOC.2.153.8">y</A>, float <!1><A HREF="Vec4.html#DOC.2.150.15">z</A> )</B></TT>
<DL><DT><DD></DL><P>
<A NAME="rotate"></A>
<A NAME="DOC.2.73.76"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</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.73.77"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</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.73.78"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</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.73.79"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A> inverse( const <!1><A HREF="Matrix.html">Matrix</A>&amp; matrix)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ortho"></A>
<A NAME="DOC.2.73.80"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A> ortho(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ortho2D"></A>
<A NAME="DOC.2.73.81"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A> ortho2D(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="frustum"></A>
<A NAME="DOC.2.73.82"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A> frustum(const double <!1><A HREF="Camera.html#DOC.2.25.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.25.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.25.20">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.25.21">top</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="perspective"></A>
<A NAME="DOC.2.73.83"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</A> perspective(const double fovy, const double <!1><A HREF="Viewport.html#DOC.2.153.12">aspectRatio</A>, const double <!1><A HREF="Camera.html#DOC.2.25.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.25.23">zFar</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="lookAt"></A>
<A NAME="DOC.2.73.84"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Matrix.html">Matrix</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.9.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.73.85"></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.73.86"></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.73.87"></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.73.88"></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.73.89"></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="Matrix.html">Matrix</A>&amp; m)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="transform3x3"></A>
<A NAME="DOC.2.73.90"></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="Matrix.html">Matrix</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.73.91"></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.73.92"></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>This class has no child classes.</B></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>