OpenSceneGraph/doc/doc++/osg/Camera.html

887 lines
49 KiB
HTML
Raw Normal View History

2001-09-20 05:19:47 +08:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class SG_EXPORT osg::Camera</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::Camera</A></H2></H2><BLOCKQUOTE>Camera class for encapsulating the view position and orientation and projection (lens) used.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=65>
<param name=classes value="CReferenced,MReferenced.html,CCamera,MCamera.html">
<param name=before value="M,M">
<param name=after value="Md_,M">
<param name=indent value="0,1">
<param name=arrowdir value="down">
</APPLET>
<HR>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.20.1">Camera</A></B>(<!1><A HREF="DisplaySettings.html">DisplaySettings</A>* ds=NULL)
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.20.2">Camera</A></B>(const <!1><A HREF="Camera.html#DOC.2.20.2">Camera</A>&amp;)
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html">Camera</A>&amp; <B><A HREF="#DOC.2.20.3">operator=</A></B>(const <!1><A HREF="Camera.html">Camera</A>&amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.20.4">~Camera</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Camera.html#DOC.2.20.5">ProjectionType</A> <B><A HREF="#DOC.2.20.6">getProjectionType</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>Get the projection type set by setOtho,setOtho2D,setFrustum, and set perspective methods</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.7">setOrtho</A></B>(const double <!1><A HREF="Camera.html#DOC.2.20.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.20.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.20.21">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.20.20">top</A>, const double <!1><A HREF="Camera.html#DOC.2.20.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.20.23">zFar</A>)
<DD><I>Set a orthographic projection.</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.8">setOrtho2D</A></B>(const double <!1><A HREF="Camera.html#DOC.2.20.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.20.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.20.21">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.20.20">top</A>)
<DD><I>Set a 2D orthographic projection.</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.9">setFrustum</A></B>(const double <!1><A HREF="Camera.html#DOC.2.20.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.20.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.20.21">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.20.20">top</A>, const double <!1><A HREF="Camera.html#DOC.2.20.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.20.23">zFar</A>)
2001-09-20 05:19:47 +08:00
<DD><I>Set a perspective projection.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.10">setPerspective</A></B>(const double fovy, const double <!1><A HREF="Viewport.html#DOC.2.112.11">aspectRatio</A>, const double <!1><A HREF="Camera.html#DOC.2.20.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.20.23">zFar</A>)
<DD><I>Set a symmetrical perspective projection, See gluPerspective for further details.</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.11">setFOV</A></B>(const double fovx, const double fovy, const double <!1><A HREF="Camera.html#DOC.2.20.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.20.23">zFar</A>)
<DD><I>Set a sysmmetical perspective projection using field of view</I>
2001-09-22 10:42:08 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.12">setNearFar</A></B>(const double <!1><A HREF="Camera.html#DOC.2.20.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.20.23">zFar</A>)
2001-09-20 05:19:47 +08:00
<DD><I>Set the near and far clipping planes</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.14">setAdjustAspectRatioMode</A></B>(const <!1><A HREF="Camera.html#DOC.2.20.13">AdjustAspectRatioMode</A> aam)
2001-09-22 10:42:08 +08:00
<DD><I>Set the way that the vertical or horizontal dimensions of the window are adjusted on a resize.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Camera.html#DOC.2.20.13">AdjustAspectRatioMode</A> <B><A HREF="#DOC.2.20.15">getAdjustAspectRatioMode</A></B>() const
2001-09-22 10:42:08 +08:00
<DD><I>Get the way that the vertical or horizontal dimensions of the window are adjusted on a resize.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.16">adjustAspectRatio</A></B>(const double newAspectRatio)
<DD><I>Adjust the clipping planes to account for a new window aspect ratio.</I>
2001-09-22 10:42:08 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.17">adjustAspectRatio</A></B>(const double newAspectRatio, const <!1><A HREF="Camera.html#DOC.2.20.13">AdjustAspectRatioMode</A> aa)
<DD><I>Adjust the clipping planes to account for a new window aspect ratio.</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const double <B><A HREF="#DOC.2.20.18">left</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const double <B><A HREF="#DOC.2.20.19">right</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const double <B><A HREF="#DOC.2.20.20">top</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const double <B><A HREF="#DOC.2.20.21">bottom</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const double <B><A HREF="#DOC.2.20.22">zNear</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const double <B><A HREF="#DOC.2.20.23">zFar</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const double <B><A HREF="#DOC.2.20.24">calc_fovy</A></B>() const
<DD><I>Calculate and return the equivalent fovx for the current project setting.</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const double <B><A HREF="#DOC.2.20.25">calc_fovx</A></B>() const
<DD><I>Calculate and return the equivalent fovy for the current project setting.</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const double <B><A HREF="#DOC.2.20.26">calc_aspectRatio</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>Calculate and return the projection aspect ratio.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Matrix.html">Matrix</A>&amp; <B><A HREF="#DOC.2.20.27">getProjectionMatrix</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Camera.html#DOC.2.20.28">LookAtType</A> <B><A HREF="#DOC.2.20.29">getLookAtType</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.30">home</A></B>()
2001-09-20 05:19:47 +08:00
<DD><I> hardwired home view for now, looking straight down the Z axis at the origin, with 'up' being the y axis</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.31">setView</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; eyePoint, const <!1><A HREF="Vec3.html">Vec3</A>&amp; lookPoint, const <!1><A HREF="Vec3.html">Vec3</A>&amp; upVector)
2001-09-20 05:19:47 +08:00
<DD><I> Set the View, the up vector should be orthogonal to the look vector.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.32">setLookAt</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.4.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)
<DD><I>set the position and orientation of the camera, using the same convention as gluLookAt</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.33">setLookAt</A></B>(const double eyeX, const double eyeY, const double eyeZ, const double centerX, const double centerY, const double centerZ, const double upX, const double upY, const double upZ)
<DD><I>set the position and orientation of the camera, using the same convention as gluLookAt</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.34">transformLookAt</A></B>(const <!1><A HREF="Matrix.html">Matrix</A>&amp; matrix)
2001-09-20 05:19:47 +08:00
<DD><I>post multiple the existing eye point and orientation by matrix.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.35">ensureOrthogonalUpVector</A></B>()
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; <B><A HREF="#DOC.2.20.36">getEyePoint</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>get the eye point.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; <B><A HREF="#DOC.2.20.37">getCenterPoint</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>get the center point.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; <B><A HREF="#DOC.2.20.38">getUpVector</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>get the up vector </I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.20.39">getLookVector</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>calculate look vector</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.20.40">getSideVector</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>calculate side vector</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.20.41">getLookDistance</A></B>() const
<DD><I>calculate the look distance which is the distance between the eye and the center</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.43">attachTransform</A></B>(const <!1><A HREF="Camera.html#DOC.2.20.42">TransformMode</A> mode, <!1><A HREF="Matrix.html">Matrix</A>* modelTransform=0)
2001-09-20 05:19:47 +08:00
<DD><I>Attach a transform matrix which is applied after the camera look at.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.44">dirtyTransform</A></B>()
2001-09-20 05:19:47 +08:00
<DD><I>must be called after you modify an attachedTransform.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Matrix.html">Matrix</A>* <B><A HREF="#DOC.2.20.45">getTransform</A></B>(const <!1><A HREF="Camera.html#DOC.2.20.42">TransformMode</A> mode)
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Matrix.html">Matrix</A>* <B><A HREF="#DOC.2.20.46">getTransform</A></B>(const <!1><A HREF="Camera.html#DOC.2.20.42">TransformMode</A> mode) const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.20.47">getEyePoint_Model</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.20.48">getCenterPoint_Model</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.20.49">getLookVector_Model</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.20.50">getUpVector_Model</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.20.51">getSideVector_Model</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Matrix.html">Matrix</A>&amp; <B><A HREF="#DOC.2.20.52">getModelViewMatrix</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>Get the ModelView matrix.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.53">setUseNearClippingPlane</A></B>(const bool use)
<DD><I>Switch on/off the use of the near clipping plane which creating the getClippingVolume(), uses the camera _znear value for the position of the near clipping plane.</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const bool <B><A HREF="#DOC.2.20.54">getUseNearClippingPlane</A></B>() const
<DD><I>get whether the ClippingVolume uses a near clipping plane</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.55">setUseFarClippingPlane</A></B>(const bool use)
<DD><I>Switch on/off the use of the far clipping plane which creating the getClippingVolume(), uses the camera _zfar value for the position of the far clipping plane.</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const bool <B><A HREF="#DOC.2.20.56">getUseFarClippingPlane</A></B>() const
<DD><I>Get whether the ClippingVolume uses a far clipping plane</I>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="ClippingVolume.html">ClippingVolume</A>&amp; <B><A HREF="#DOC.2.20.57">getClippingVolume</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>get the view frustum clipping in model coordinates </I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const bool <B><A HREF="#DOC.2.20.58">project</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; obj, const <!1><A HREF="Viewport.html">Viewport</A>&amp; viewport, <!1><A HREF="Vec3.html">Vec3</A>&amp; win) const
2001-09-20 05:19:47 +08:00
<DD><I>Map object coordinates into windows coordinates.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const bool <B><A HREF="#DOC.2.20.59">unproject</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; win, const <!1><A HREF="Viewport.html">Viewport</A>&amp; viewport, <!1><A HREF="Vec3.html">Vec3</A>&amp; obj) const
2001-09-20 05:19:47 +08:00
<DD><I>Map window coordinates into object coordinates.</I>
2001-12-25 05:56:22 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.61">setFusionDistanceMode</A></B>(<!1><A HREF="Camera.html#DOC.2.20.60">FusionDistanceMode</A> mode)
<DD><I>Set the mode of the fusion distance function which in use to calculate the fusion distance used in stereo rendering.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.20.60">FusionDistanceMode</A> <B><A HREF="#DOC.2.20.62">getFusionDistanceMode</A></B>() const
<DD><I>Get the mode of the fusion distance function</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.63">setFusionDistanceRatio</A></B>(float ratio)
<DD><I>Set the ratio of the fusion distance function which in use to calculate the fusion distance used in stereo rendering.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.20.64">getFusionDistanceRatio</A></B>() const
<DD><I>Get the ratio of the fusion distance function</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const float <B><A HREF="#DOC.2.20.65">getFusionDistance</A></B>() const
<DD><I>Calculate and return the fusion distance, using the FusionDistanceFunction</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.66">setScreenDistance</A></B>(float screenDistance)
<DD><I>Set the physical distance between the viewers eyes and the display system.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const float <B><A HREF="#DOC.2.20.67">getScreenDistance</A></B>() const
<DD><I>Get the physical distance between the viewers eyes and the display system</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.68">adjustEyeOffsetForStereo</A></B>(const <!1><A HREF="Vec3.html">osg::Vec3</A>&amp; offset)
<DD><I>Convinience method for adjusting the project and model view to account for and eye offset, as used in stereo work, assumes that the users will use a seperate camera for each eye, adjustEyePointForStereo() being used to specialize the camera for each eye view</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.20.69">apply</A></B>(<!1><A HREF="State.html">State</A>&amp; state)
<DD><I>Set up the OpenGL projection and model view matrices</I>
2001-09-20 05:19:47 +08:00
</DL></P>
<P><DL>
<DT><H3>Public Members</H3><DD><DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.20.5">ProjectionType</A></B>
2001-09-20 05:19:47 +08:00
<DD><I>Range of projection types.</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.20.13">AdjustAspectRatioMode</A></B>
2001-09-20 05:19:47 +08:00
<DD><I>Use in combination with adjustAspectRatio, to control the change in frustum clipping planes to account for changes in windows aspect ratio,</I>
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.20.28">LookAtType</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.20.42">TransformMode</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.20.60">FusionDistanceMode</A></B>
2001-09-20 05:19:47 +08:00
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.20.5">ProjectionType</A> <B><A HREF="#DOC.2.20.71">_projectionType</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.20.13">AdjustAspectRatioMode</A> <B><A HREF="#DOC.2.20.72">_adjustAspectRatioMode</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.20.73">_left</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.20.74">_right</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.20.75">_bottom</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.20.76">_top</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.20.77">_zNear</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.20.78">_zFar</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.20.28">LookAtType</A> <B><A HREF="#DOC.2.20.79">_lookAtType</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.20.80">_eye</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.20.81">_center</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.20.82">_up</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.20.42">TransformMode</A> <B><A HREF="#DOC.2.20.83">_attachedTransformMode</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; <B><A HREF="#DOC.2.20.84">_eyeToModelTransform</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; <B><A HREF="#DOC.2.20.85">_modelToEyeTransform</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.20.86">_useNearClippingPlane</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.20.87">_useFarClippingPlane</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>mutable bool <B><A HREF="#DOC.2.20.88">_dirty</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>mutable <!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; <B><A HREF="#DOC.2.20.89">_projectionMatrix</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>mutable <!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; <B><A HREF="#DOC.2.20.90">_modelViewMatrix</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>mutable <!1><A HREF="ClippingVolume.html">ClippingVolume</A> <B><A HREF="#DOC.2.20.91">_clippingVolume</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>mutable <!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; <B><A HREF="#DOC.2.20.92">_mp</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>mutable <!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; <B><A HREF="#DOC.2.20.93">_inversemp</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.20.95">_useEyeOffset</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">osg::Vec3</A> <B><A HREF="#DOC.2.20.96">_eyeOffset</A></B>
2001-09-22 10:42:08 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.20.97">_screenDistance</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.20.60">FusionDistanceMode</A> <B><A HREF="#DOC.2.20.98">_fusionDistanceMode</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.20.99">_fusionDistanceRatio</A></B>
2001-09-20 05:19:47 +08:00
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.70">copy</A></B>(const <!1><A HREF="Camera.html">Camera</A>&amp;)
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.20.94">calculateMatricesAndClippingVolume</A></B>() const
2001-09-20 05:19:47 +08:00
</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 <!1><A HREF="Referenced.html">Referenced</A>&amp; <B>operator = </B>(<!1><A HREF="Referenced.html">Referenced</A>&amp;)
<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 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>
<BLOCKQUOTE>Camera class for encapsulating the view position and orientation and
projection (lens) used. Creates a projection and modelview matrices
which can be used to set OpenGL's PROJECTION and MODELVIEW matrices
2001-12-25 05:56:22 +08:00
respectively.</BLOCKQUOTE>
2001-09-20 05:19:47 +08:00
<DL>
<A NAME="Camera"></A>
<A NAME="DOC.2.20.1"></A>
2001-12-25 05:56:22 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Camera(<!1><A HREF="DisplaySettings.html">DisplaySettings</A>* ds=NULL)</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
2001-12-25 05:56:22 +08:00
<A NAME="Camera"></A>
2001-09-20 05:19:47 +08:00
<A NAME="DOC.2.20.2"></A>
2001-12-25 05:56:22 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Camera(const <!1><A HREF="Camera.html#DOC.2.20.2">Camera</A>&amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.20.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html">Camera</A>&amp; operator=(const <!1><A HREF="Camera.html">Camera</A>&amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~Camera"></A>
<A NAME="DOC.2.20.4"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Camera()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ProjectionType"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.5"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum ProjectionType</B></TT>
<DD>Range of projection types.
2001-12-25 05:56:22 +08:00
ORTHO2D is a special case of ORTHO where the near and far planes
2001-09-20 05:19:47 +08:00
are equal to -1 and 1 respectively.
2001-12-25 05:56:22 +08:00
PERSPECTIVE is a special case of FRUSTUM where the left & right
and bottom and top and symmetrical.
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P><DL>
<A NAME="ORTHO"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.5.1"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ORTHO</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ORTHO2D"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.5.2"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ORTHO2D</B></TT>
<DL><DT><DD></DL><P>
<A NAME="FRUSTUM"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.5.3"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> FRUSTUM</B></TT>
<DL><DT><DD></DL><P>
<A NAME="PERSPECTIVE"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.5.4"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> PERSPECTIVE</B></TT>
<DL><DT><DD></DL><P></DL>
<A NAME="getProjectionType"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Camera.html#DOC.2.20.5">ProjectionType</A> getProjectionType() const </B></TT>
2001-09-20 05:19:47 +08:00
<DD>Get the projection type set by setOtho,setOtho2D,setFrustum,
and set perspective methods
<DL><DT><DD></DL><P>
<A NAME="setOrtho"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setOrtho(const double <!1><A HREF="Camera.html#DOC.2.20.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.20.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.20.21">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.20.20">top</A>, const double <!1><A HREF="Camera.html#DOC.2.20.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.20.23">zFar</A>)</B></TT>
<DD>Set a orthographic projection. See glOrtho for further details.
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="setOrtho2D"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setOrtho2D(const double <!1><A HREF="Camera.html#DOC.2.20.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.20.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.20.21">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.20.20">top</A>)</B></TT>
<DD>Set a 2D orthographic projection. See gluOrtho2D for further details.
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="setFrustum"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setFrustum(const double <!1><A HREF="Camera.html#DOC.2.20.18">left</A>, const double <!1><A HREF="Camera.html#DOC.2.20.19">right</A>, const double <!1><A HREF="Camera.html#DOC.2.20.21">bottom</A>, const double <!1><A HREF="Camera.html#DOC.2.20.20">top</A>, const double <!1><A HREF="Camera.html#DOC.2.20.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.20.23">zFar</A>)</B></TT>
2001-09-20 05:19:47 +08:00
<DD>Set a perspective projection. See glFrustum for further details.
<DL><DT><DD></DL><P>
<A NAME="setPerspective"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setPerspective(const double fovy, const double <!1><A HREF="Viewport.html#DOC.2.112.11">aspectRatio</A>, const double <!1><A HREF="Camera.html#DOC.2.20.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.20.23">zFar</A>)</B></TT>
<DD>Set a symmetrical perspective projection, See gluPerspective for further details.
2001-09-20 05:19:47 +08:00
Aspect ratio is defined as width/height.
<DL><DT><DD></DL><P>
2001-09-22 10:42:08 +08:00
<A NAME="setFOV"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setFOV(const double fovx, const double fovy, const double <!1><A HREF="Camera.html#DOC.2.20.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.20.23">zFar</A>)</B></TT>
<DD>Set a sysmmetical perspective projection using field of view
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
2001-09-22 10:42:08 +08:00
<A NAME="setNearFar"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setNearFar(const double <!1><A HREF="Camera.html#DOC.2.20.22">zNear</A>, const double <!1><A HREF="Camera.html#DOC.2.20.23">zFar</A>)</B></TT>
2001-09-22 10:42:08 +08:00
<DD>Set the near and far clipping planes
<DL><DT><DD></DL><P>
<A NAME="AdjustAspectRatioMode"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.13"></A>
2001-09-22 10:42:08 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum AdjustAspectRatioMode</B></TT>
2001-09-20 05:19:47 +08:00
<DD>Use in combination with adjustAspectRatio, to control
the change in frustum clipping planes to account for
changes in windows aspect ratio,
<DL><DT><DD></DL><P><DL>
<A NAME="ADJUST_VERTICAL"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.13.1"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ADJUST_VERTICAL</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ADJUST_HORIZONTAL"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.13.2"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ADJUST_HORIZONTAL</B></TT>
<DL><DT><DD></DL><P></DL>
2001-09-22 10:42:08 +08:00
<A NAME="setAdjustAspectRatioMode"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setAdjustAspectRatioMode(const <!1><A HREF="Camera.html#DOC.2.20.13">AdjustAspectRatioMode</A> aam)</B></TT>
2001-09-22 10:42:08 +08:00
<DD>Set the way that the vertical or horizontal dimensions of the window
are adjusted on a resize.
<DL><DT><DD></DL><P>
<A NAME="getAdjustAspectRatioMode"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Camera.html#DOC.2.20.13">AdjustAspectRatioMode</A> getAdjustAspectRatioMode() const </B></TT>
2001-09-22 10:42:08 +08:00
<DD>Get the way that the vertical or horizontal dimensions of the window
are adjusted on a resize.
<DL><DT><DD></DL><P>
2001-09-20 05:19:47 +08:00
<A NAME="adjustAspectRatio"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.16"></A>
2001-09-22 10:42:08 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void adjustAspectRatio(const double newAspectRatio)</B></TT>
2001-12-25 05:56:22 +08:00
<DD>Adjust the clipping planes to account for a new window aspect ratio.
Typically used after resizing a window. Aspect ratio is defined as
2001-09-22 10:42:08 +08:00
width/height.
<DL><DT><DD></DL><P>
<A NAME="adjustAspectRatio"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void adjustAspectRatio(const double newAspectRatio, const <!1><A HREF="Camera.html#DOC.2.20.13">AdjustAspectRatioMode</A> aa)</B></TT>
<DD>Adjust the clipping planes to account for a new window aspect ratio.
2001-09-20 05:19:47 +08:00
Typicall used after resizeing a window. Aspect ratio is defined as
width/height.
<DL><DT><DD></DL><P>
<A NAME="left"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.18"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const double left() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="right"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.19"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const double right() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="top"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.20"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const double top() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="bottom"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.21"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const double bottom() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="zNear"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.22"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const double zNear() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="zFar"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.23"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const double zFar() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="calc_fovy"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.24"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const double calc_fovy() const </B></TT>
2001-12-25 05:56:22 +08:00
<DD>Calculate and return the equivalent fovx for the current project setting.
This value is only valid for when a symmetric perspective projection exists.
2001-09-20 05:19:47 +08:00
i.e. getProjectionType()==PERSPECTIVE.
<DL><DT><DD></DL><P>
<A NAME="calc_fovx"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.25"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const double calc_fovx() const </B></TT>
2001-12-25 05:56:22 +08:00
<DD>Calculate and return the equivalent fovy for the current project setting.
This value is only valid for when a symmetric perspective projection exists.
2001-09-20 05:19:47 +08:00
i.e. getProjectionType()==PERSPECTIVE.
<DL><DT><DD></DL><P>
<A NAME="calc_aspectRatio"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.26"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const double calc_aspectRatio() const </B></TT>
<DD>Calculate and return the projection aspect ratio.
Aspect ratio is defined as width/height.
<DL><DT><DD></DL><P>
<A NAME="getProjectionMatrix"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.27"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Matrix.html">Matrix</A>&amp; getProjectionMatrix() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="LookAtType"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.28"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum LookAtType</B></TT>
<DL><DT><DD></DL><P><DL>
<A NAME="USE_HOME_POSITON"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.28.1"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> USE_HOME_POSITON</B></TT>
<DL><DT><DD></DL><P>
<A NAME="USE_EYE_AND_QUATERNION"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.28.2"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> USE_EYE_AND_QUATERNION</B></TT>
<DL><DT><DD></DL><P>
<A NAME="USE_EYE_CENTER_AND_UP"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.28.3"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> USE_EYE_CENTER_AND_UP</B></TT>
<DL><DT><DD></DL><P></DL>
<A NAME="getLookAtType"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.29"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Camera.html#DOC.2.20.28">LookAtType</A> getLookAtType() const </B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="home"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.30"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void home()</B></TT>
<DD>
hardwired home view for now, looking straight down the
Z axis at the origin, with 'up' being the y axis
<DL><DT><DD></DL><P>
<A NAME="setView"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.31"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setView(const <!1><A HREF="Vec3.html">Vec3</A>&amp; eyePoint, const <!1><A HREF="Vec3.html">Vec3</A>&amp; lookPoint, const <!1><A HREF="Vec3.html">Vec3</A>&amp; upVector)</B></TT>
<DD>
Set the View, the up vector should be orthogonal to the look vector.
setView is now mapped to setLookAt(eye,center,up), and is only
kept for backwards compatibility.
<DL><DT><DD></DL><P>
<A NAME="setLookAt"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.32"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setLookAt(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.4.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)</B></TT>
<DD>set the position and orientation of the camera, using the same convention as
2001-09-20 05:19:47 +08:00
gluLookAt
<DL><DT><DD></DL><P>
<A NAME="setLookAt"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.33"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setLookAt(const double eyeX, const double eyeY, const double eyeZ, const double centerX, const double centerY, const double centerZ, const double upX, const double upY, const double upZ)</B></TT>
2001-12-25 05:56:22 +08:00
<DD>set the position and orientation of the camera, using the same convention as
2001-09-20 05:19:47 +08:00
gluLookAt
<DL><DT><DD></DL><P>
<A NAME="transformLookAt"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.34"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void transformLookAt(const <!1><A HREF="Matrix.html">Matrix</A>&amp; matrix)</B></TT>
<DD>post multiple the existing eye point and orientation by matrix.
note, does not affect any ModelTransforms that are applied.
<DL><DT><DD></DL><P>
<A NAME="ensureOrthogonalUpVector"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.35"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void ensureOrthogonalUpVector()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getEyePoint"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.36"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; getEyePoint() const </B></TT>
<DD>get the eye point.
<DL><DT><DD></DL><P>
<A NAME="getCenterPoint"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.37"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; getCenterPoint() const </B></TT>
<DD>get the center point.
<DL><DT><DD></DL><P>
<A NAME="getUpVector"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.38"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; getUpVector() const </B></TT>
<DD>get the up vector
<DL><DT><DD></DL><P>
<A NAME="getLookVector"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.39"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Vec3.html">Vec3</A> getLookVector() const </B></TT>
<DD>calculate look vector
<DL><DT><DD></DL><P>
<A NAME="getSideVector"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.40"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Vec3.html">Vec3</A> getSideVector() const </B></TT>
<DD>calculate side vector
<DL><DT><DD></DL><P>
2001-12-25 05:56:22 +08:00
<A NAME="getLookDistance"></A>
<A NAME="DOC.2.20.41"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getLookDistance() const </B></TT>
<DD>calculate the look distance which is the distance between the eye and the center
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="TransformMode"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.42"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum TransformMode</B></TT>
<DL><DT><DD></DL><P><DL>
<A NAME="EYE_TO_MODEL"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.42.1"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> EYE_TO_MODEL</B></TT>
<DL><DT><DD></DL><P>
<A NAME="MODEL_TO_EYE"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.42.2"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> MODEL_TO_EYE</B></TT>
<DL><DT><DD></DL><P>
<A NAME="NO_ATTACHED_TRANSFORM"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.42.3"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> NO_ATTACHED_TRANSFORM</B></TT>
<DL><DT><DD></DL><P></DL>
<A NAME="attachTransform"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.43"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void attachTransform(const <!1><A HREF="Camera.html#DOC.2.20.42">TransformMode</A> mode, <!1><A HREF="Matrix.html">Matrix</A>* modelTransform=0)</B></TT>
2001-09-20 05:19:47 +08:00
<DD>Attach a transform matrix which is applied after the camera look at.
The attached matrix can work in two ways, either as transform of the eye
into the model coordinates - EYE_TO_MODEL, or as a transform of the
2001-12-25 05:56:22 +08:00
model to the eye - MODEL_TO_EYE. The former is equivalent to attaching
a camera internal to the scene graph. The later is equivalent to adding
2001-09-20 05:19:47 +08:00
a osg::Transform at root of the scene to move the scene to the eye point.
Typical used in conjunction with the LookAt position set to home,
in which case it is simply treated as a model view matrix.
2001-12-25 05:56:22 +08:00
If the same behavior as IRIS Performer's setViewMat is desired
2001-09-20 05:19:47 +08:00
then set the LookAt to be (0,0,0),(0,1,0),(0,0,1) since Performer's
default direction is along the y axis, unlike OpenGL and the default OSG.
If modelTransfor is NULL then do not use any model transform - just use the
basic LookAt values.
note: Camera internals maintains the both EYE_TO_MODEL and MODEL_TO_EYE
internally and ensures that they are the inverse of one another. However,
if you modify the attached transform then you must call dirtyTransform, to
allow the OSG to update matrices accordingly.
<DL><DT><DD></DL><P>
<A NAME="dirtyTransform"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.44"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void dirtyTransform()</B></TT>
<DD>must be called after you modify an attachedTransform.
<DL><DT><DD></DL><P>
<A NAME="getTransform"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.45"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Matrix.html">Matrix</A>* getTransform(const <!1><A HREF="Camera.html#DOC.2.20.42">TransformMode</A> mode)</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="getTransform"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.46"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Matrix.html">Matrix</A>* getTransform(const <!1><A HREF="Camera.html#DOC.2.20.42">TransformMode</A> mode) const </B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="getEyePoint_Model"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.47"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Vec3.html">Vec3</A> getEyePoint_Model() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="getCenterPoint_Model"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.48"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Vec3.html">Vec3</A> getCenterPoint_Model() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="getLookVector_Model"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.49"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Vec3.html">Vec3</A> getLookVector_Model() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="getUpVector_Model"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.50"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Vec3.html">Vec3</A> getUpVector_Model() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="getSideVector_Model"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.51"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Vec3.html">Vec3</A> getSideVector_Model() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="getModelViewMatrix"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.52"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Matrix.html">Matrix</A>&amp; getModelViewMatrix() const </B></TT>
<DD>Get the ModelView matrix.
If a ModelTransform is supplied then the ModelView matrix is
2001-12-25 05:56:22 +08:00
created by multiplying the current LookAt by ModelTransform.
2001-09-20 05:19:47 +08:00
Otherwise it is simply created by using the current LookAt,
2001-12-25 05:56:22 +08:00
equivalent to using gluLookAt.
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="setUseNearClippingPlane"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.53"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setUseNearClippingPlane(const bool use)</B></TT>
2001-12-25 05:56:22 +08:00
<DD>Switch on/off the use of the near clipping plane which creating the
getClippingVolume(), uses the camera _znear value for the position of the
near clipping plane. By default this value is off.
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="getUseNearClippingPlane"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.54"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const bool getUseNearClippingPlane() const </B></TT>
2001-12-25 05:56:22 +08:00
<DD>get whether the ClippingVolume uses a near clipping plane
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="setUseFarClippingPlane"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.55"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setUseFarClippingPlane(const bool use)</B></TT>
2001-12-25 05:56:22 +08:00
<DD>Switch on/off the use of the far clipping plane which creating the
getClippingVolume(), uses the camera _zfar value for the position
of the far clipping plane. By default this value is off.
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="getUseFarClippingPlane"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.56"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const bool getUseFarClippingPlane() const </B></TT>
2001-12-25 05:56:22 +08:00
<DD>Get whether the ClippingVolume uses a far clipping plane
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="getClippingVolume"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.57"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="ClippingVolume.html">ClippingVolume</A>&amp; getClippingVolume() const </B></TT>
<DD>get the view frustum clipping in model coordinates
<DL><DT><DD></DL><P>
<A NAME="project"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.58"></A>
2001-09-22 10:42:08 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const bool project(const <!1><A HREF="Vec3.html">Vec3</A>&amp; obj, const <!1><A HREF="Viewport.html">Viewport</A>&amp; viewport, <!1><A HREF="Vec3.html">Vec3</A>&amp; win) const </B></TT>
2001-09-20 05:19:47 +08:00
<DD>Map object coordinates into windows coordinates.
2001-12-25 05:56:22 +08:00
Equivalent to gluProject(...).
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="unproject"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.59"></A>
2001-09-22 10:42:08 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const bool unproject(const <!1><A HREF="Vec3.html">Vec3</A>&amp; win, const <!1><A HREF="Viewport.html">Viewport</A>&amp; viewport, <!1><A HREF="Vec3.html">Vec3</A>&amp; obj) const </B></TT>
2001-09-20 05:19:47 +08:00
<DD>Map window coordinates into object coordinates.
2001-12-25 05:56:22 +08:00
Equivalent to gluUnProject(...).
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
2001-12-25 05:56:22 +08:00
<A NAME="FusionDistanceMode"></A>
<A NAME="DOC.2.20.60"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum FusionDistanceMode</B></TT>
<DL><DT><DD></DL><P><DL>
<A NAME="PROPORTIONAL_TO_LOOK_DISTANCE"></A>
<A NAME="DOC.2.20.60.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> PROPORTIONAL_TO_LOOK_DISTANCE</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
2001-12-25 05:56:22 +08:00
<A NAME="PROPORTIONAL_TO_SCREEN_DISTANCE"></A>
<A NAME="DOC.2.20.60.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> PROPORTIONAL_TO_SCREEN_DISTANCE</B></TT>
<DL><DT><DD></DL><P></DL>
<A NAME="setFusionDistanceMode"></A>
<A NAME="DOC.2.20.61"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setFusionDistanceMode(<!1><A HREF="Camera.html#DOC.2.20.60">FusionDistanceMode</A> mode)</B></TT>
<DD>Set the mode of the fusion distance function which in use to calculate the
fusion distance used in stereo rendering. Default value is
PROPORTIONAL_TO_LOOK_DISTANCE. Use in conjunction with setFusionDistanceRatio(float).
<DL><DT><DD></DL><P>
<A NAME="getFusionDistanceMode"></A>
<A NAME="DOC.2.20.62"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.20.60">FusionDistanceMode</A> getFusionDistanceMode() const </B></TT>
<DD>Get the mode of the fusion distance function
<DL><DT><DD></DL><P>
<A NAME="setFusionDistanceRatio"></A>
<A NAME="DOC.2.20.63"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setFusionDistanceRatio(float ratio)</B></TT>
<DD>Set the ratio of the fusion distance function which in use to calculate the
fusion distance used in stereo rendering. Default value is 1.0f
Use in conjunction with setFusionDistanceMode(..).
<DL><DT><DD></DL><P>
<A NAME="getFusionDistanceRatio"></A>
<A NAME="DOC.2.20.64"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float getFusionDistanceRatio() const </B></TT>
<DD>Get the ratio of the fusion distance function
<DL><DT><DD></DL><P>
<A NAME="getFusionDistance"></A>
<A NAME="DOC.2.20.65"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const float getFusionDistance() const </B></TT>
<DD>Calculate and return the fusion distance, using the FusionDistanceFunction
<DL><DT><DD></DL><P>
<A NAME="setScreenDistance"></A>
<A NAME="DOC.2.20.66"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setScreenDistance(float screenDistance)</B></TT>
<DD>Set the physical distance between the viewers eyes and the display system.
Note, only used when rendering in stereo.
<DL><DT><DD></DL><P>
<A NAME="getScreenDistance"></A>
<A NAME="DOC.2.20.67"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const float getScreenDistance() const </B></TT>
<DD>Get the physical distance between the viewers eyes and the display system
<DL><DT><DD></DL><P>
<A NAME="adjustEyeOffsetForStereo"></A>
<A NAME="DOC.2.20.68"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void adjustEyeOffsetForStereo(const <!1><A HREF="Vec3.html">osg::Vec3</A>&amp; offset)</B></TT>
<DD>Convinience method for adjusting the project and model view to account for
and eye offset, as used in stereo work, assumes that the users will use
a seperate camera for each eye, adjustEyePointForStereo() being used to
specialize the camera for each eye view
<DL><DT><DD></DL><P>
<A NAME="apply"></A>
<A NAME="DOC.2.20.69"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="State.html">State</A>&amp; state)</B></TT>
<DD>Set up the OpenGL projection and model view matrices
<DL><DT><DD></DL><P>
<A NAME="copy"></A>
<A NAME="DOC.2.20.70"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void copy(const <!1><A HREF="Camera.html">Camera</A>&amp;)</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="_projectionType"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.71"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.20.5">ProjectionType</A> _projectionType</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
2001-09-22 10:42:08 +08:00
<A NAME="_adjustAspectRatioMode"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.72"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.20.13">AdjustAspectRatioMode</A> _adjustAspectRatioMode</B></TT>
2001-09-22 10:42:08 +08:00
<DL><DT><DD></DL><P>
2001-09-20 05:19:47 +08:00
<A NAME="_left"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.73"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double _left</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_right"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.74"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double _right</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_bottom"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.75"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double _bottom</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_top"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.76"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double _top</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_zNear"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.77"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double _zNear</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_zFar"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.78"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double _zFar</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_lookAtType"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.79"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.20.28">LookAtType</A> _lookAtType</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="_eye"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.80"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec3.html">Vec3</A> _eye</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_center"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.81"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec3.html">Vec3</A> _center</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_up"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.82"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec3.html">Vec3</A> _up</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_attachedTransformMode"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.83"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.20.42">TransformMode</A> _attachedTransformMode</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="_eyeToModelTransform"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.84"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; _eyeToModelTransform</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_modelToEyeTransform"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.85"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; _modelToEyeTransform</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_useNearClippingPlane"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.86"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool _useNearClippingPlane</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_useFarClippingPlane"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.87"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool _useFarClippingPlane</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_dirty"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.88"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>mutable bool _dirty</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_projectionMatrix"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.89"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>mutable <!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; _projectionMatrix</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_modelViewMatrix"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.90"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>mutable <!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; _modelViewMatrix</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_clippingVolume"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.91"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>mutable <!1><A HREF="ClippingVolume.html">ClippingVolume</A> _clippingVolume</B></TT>
<DL><DT><DD></DL><P>
2001-12-25 05:56:22 +08:00
<A NAME="_mp"></A>
<A NAME="DOC.2.20.92"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>mutable <!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; _mp</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
2001-12-25 05:56:22 +08:00
<A NAME="_inversemp"></A>
<A NAME="DOC.2.20.93"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>mutable <!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Matrix.html">Matrix</A>&gt; _inversemp</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="calculateMatricesAndClippingVolume"></A>
2001-12-25 05:56:22 +08:00
<A NAME="DOC.2.20.94"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void calculateMatricesAndClippingVolume() const </B></TT>
2001-12-25 05:56:22 +08:00
<DL><DT><DD></DL><P>
<A NAME="_useEyeOffset"></A>
<A NAME="DOC.2.20.95"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool _useEyeOffset</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_eyeOffset"></A>
<A NAME="DOC.2.20.96"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec3.html">osg::Vec3</A> _eyeOffset</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_screenDistance"></A>
<A NAME="DOC.2.20.97"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float _screenDistance</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_fusionDistanceMode"></A>
<A NAME="DOC.2.20.98"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.20.60">FusionDistanceMode</A> _fusionDistanceMode</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_fusionDistanceRatio"></A>
<A NAME="DOC.2.20.99"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float _fusionDistanceRatio</B></TT>
2001-09-20 05:19:47 +08:00
<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>