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

724 lines
38 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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.42.1">Camera</A></B>(<!1><A HREF="DisplaySettings.html">DisplaySettings</A>* ds=NULL)
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.42.2">Camera</A></B>(const <!1><A HREF="Camera.html#DOC.2.42.2">Camera</A>&amp;)
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html">Camera</A>&amp; <B><A HREF="#DOC.2.42.3">operator=</A></B>(const <!1><A HREF="Camera.html">Camera</A>&amp;)
2001-12-25 05:56:22 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.42.4">~Camera</A></B>()
2001-12-25 05:56:22 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.42.5">ProjectionType</A> <B><A HREF="#DOC.2.42.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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.7">setOrtho</A></B>(double <!1><A HREF="Camera.html#DOC.2.42.18">left</A>, double <!1><A HREF="Camera.html#DOC.2.42.19">right</A>, double <!1><A HREF="Camera.html#DOC.2.42.20">bottom</A>, double <!1><A HREF="Camera.html#DOC.2.42.21">top</A>, double <!1><A HREF="Camera.html#DOC.2.42.22">zNear</A>, double <!1><A HREF="Camera.html#DOC.2.42.23">zFar</A>)
2001-12-25 05:56:22 +08:00
<DD><I>Set a orthographic projection.</I>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.8">setOrtho2D</A></B>(double <!1><A HREF="Camera.html#DOC.2.42.18">left</A>, double <!1><A HREF="Camera.html#DOC.2.42.19">right</A>, double <!1><A HREF="Camera.html#DOC.2.42.20">bottom</A>, double <!1><A HREF="Camera.html#DOC.2.42.21">top</A>)
2001-12-25 05:56:22 +08:00
<DD><I>Set a 2D orthographic projection.</I>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.9">setFrustum</A></B>(double <!1><A HREF="Camera.html#DOC.2.42.18">left</A>, double <!1><A HREF="Camera.html#DOC.2.42.19">right</A>, double <!1><A HREF="Camera.html#DOC.2.42.20">bottom</A>, double <!1><A HREF="Camera.html#DOC.2.42.21">top</A>, double <!1><A HREF="Camera.html#DOC.2.42.22">zNear</A>, double <!1><A HREF="Camera.html#DOC.2.42.23">zFar</A>)
2001-09-20 05:19:47 +08:00
<DD><I>Set a perspective projection.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.10">setPerspective</A></B>(double fovy, double <!1><A HREF="Viewport.html#DOC.2.200.12">aspectRatio</A>, double <!1><A HREF="Camera.html#DOC.2.42.22">zNear</A>, double <!1><A HREF="Camera.html#DOC.2.42.23">zFar</A>)
2001-12-25 05:56:22 +08:00
<DD><I>Set a symmetrical perspective projection, See gluPerspective for further details.</I>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.11">setFOV</A></B>(double fovx, double fovy, double <!1><A HREF="Camera.html#DOC.2.42.22">zNear</A>, double <!1><A HREF="Camera.html#DOC.2.42.23">zFar</A>)
2001-12-25 05:56:22 +08:00
<DD><I>Set a sysmmetical perspective projection using field of view</I>
2001-09-22 10:42:08 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.12">setNearFar</A></B>(double <!1><A HREF="Camera.html#DOC.2.42.22">zNear</A>, double <!1><A HREF="Camera.html#DOC.2.42.23">zFar</A>)
2001-09-20 05:19:47 +08:00
<DD><I>Set the near and far clipping planes</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.14">setAdjustAspectRatioMode</A></B>(<!1><A HREF="Camera.html#DOC.2.42.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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.42.13">AdjustAspectRatioMode</A> <B><A HREF="#DOC.2.42.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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.16">adjustAspectRatio</A></B>(double newAspectRatio)
2001-12-25 05:56:22 +08:00
<DD><I>Adjust the clipping planes to account for a new window aspect ratio.</I>
2001-09-22 10:42:08 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.17">adjustAspectRatio</A></B>(double newAspectRatio, <!1><A HREF="Camera.html#DOC.2.42.13">AdjustAspectRatioMode</A> aa)
2001-12-25 05:56:22 +08:00
<DD><I>Adjust the clipping planes to account for a new window aspect ratio.</I>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.18">left</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.19">right</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.20">bottom</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.21">top</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.22">zNear</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.23">zFar</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.24">calc_fovy</A></B>() const
2001-12-25 05:56:22 +08:00
<DD><I>Calculate and return the equivalent fovx for the current project setting.</I>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.25">calc_fovx</A></B>() const
2001-12-25 05:56:22 +08:00
<DD><I>Calculate and return the equivalent fovy for the current project setting.</I>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.42.27">LookAtType</A> <B><A HREF="#DOC.2.42.28">getLookAtType</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.29">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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.30">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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.31">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.25.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)
2001-12-25 05:56:22 +08:00
<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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.32">setLookAt</A></B>(double eyeX, double eyeY, double eyeZ, double centerX, double centerY, double centerZ, double upX, double upY, double upZ)
2001-12-25 05:56:22 +08:00
<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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.33">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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.34">ensureOrthogonalUpVector</A></B>()
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; <B><A HREF="#DOC.2.42.35">getEyePoint</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>get the eye point.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; <B><A HREF="#DOC.2.42.36">getCenterPoint</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>get the center point.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; <B><A HREF="#DOC.2.42.37">getUpVector</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>get the up vector </I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.42.38">getLookVector</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>calculate look vector</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.42.39">getSideVector</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>calculate side vector</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.42.40">getLookDistance</A></B>() const
2001-12-25 05:56:22 +08:00
<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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.42">attachTransform</A></B>(<!1><A HREF="Camera.html#DOC.2.42.41">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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Matrix.html">Matrix</A>* <B><A HREF="#DOC.2.42.43">getTransform</A></B>(<!1><A HREF="Camera.html#DOC.2.42.41">TransformMode</A> mode)
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Matrix.html">Matrix</A>* <B><A HREF="#DOC.2.42.44">getTransform</A></B>(<!1><A HREF="Camera.html#DOC.2.42.41">TransformMode</A> mode) const
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.46">setFusionDistanceMode</A></B>(<!1><A HREF="Camera.html#DOC.2.42.45">FusionDistanceMode</A> mode)
2001-12-25 05:56:22 +08:00
<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.42.45">FusionDistanceMode</A> <B><A HREF="#DOC.2.42.47">getFusionDistanceMode</A></B>() const
2001-12-25 05:56:22 +08:00
<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.42.48">setFusionDistanceRatio</A></B>(float ratio)
2001-12-25 05:56:22 +08:00
<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.42.49">getFusionDistanceRatio</A></B>() const
2001-12-25 05:56:22 +08:00
<DD><I>Get the ratio of the fusion distance function</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.42.50">getFusionDistance</A></B>() const
2001-12-25 05:56:22 +08:00
<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.42.51">setScreenDistance</A></B>(float screenDistance)
2001-12-25 05:56:22 +08:00
<DD><I>Set the physical distance between the viewers eyes and the display system.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.42.52">getScreenDistance</A></B>() const
2001-12-25 05:56:22 +08:00
<DD><I>Get the physical distance between the viewers eyes and the display system</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.42.53">getProjectionMatrix</A></B>() const
<DD><I>Get the Projection Matrix</I>
2001-12-25 05:56:22 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Matrix.html">Matrix</A> <B><A HREF="#DOC.2.42.54">getModelViewMatrix</A></B>() const
<DD><I>Get the ModelView matrix.</I>
2002-08-29 22:29:49 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Polytope.html">Polytope</A> <B><A HREF="#DOC.2.42.55">getViewFrustum</A></B>() const
2002-08-29 22:29:49 +08:00
<DD><I>Get the camera view frustum</I>
2001-09-20 05:19:47 +08:00
</DL></P>
<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.42.5">ProjectionType</A></B>
2001-09-20 05:19:47 +08:00
<DD><I>Range of projection types.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.42.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>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.42.27">LookAtType</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.42.41">TransformMode</A></B>
2001-12-25 05:56:22 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.42.45">FusionDistanceMode</A></B>
2001-09-20 05:19:47 +08:00
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.42.5">ProjectionType</A> <B><A HREF="#DOC.2.42.57">_projectionType</A></B>
2001-12-25 05:56:22 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.42.13">AdjustAspectRatioMode</A> <B><A HREF="#DOC.2.42.58">_adjustAspectRatioMode</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.59">_left</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.60">_right</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.61">_bottom</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.62">_top</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.63">_zNear</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.42.64">_zFar</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.42.27">LookAtType</A> <B><A HREF="#DOC.2.42.65">_lookAtType</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.42.66">_eye</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.42.67">_center</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.42.68">_up</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.42.41">TransformMode</A> <B><A HREF="#DOC.2.42.69">_attachedTransformMode</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<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.42.70">_eyeToModelTransform</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<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.42.71">_modelToEyeTransform</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.42.72">_screenDistance</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Camera.html#DOC.2.42.45">FusionDistanceMode</A> <B><A HREF="#DOC.2.42.73">_fusionDistanceMode</A></B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.42.74">_fusionDistanceRatio</A></B>
2001-09-20 05:19:47 +08:00
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.42.56">copy</A></B>(const <!1><A HREF="Camera.html">Camera</A>&amp;)
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 void <B>unref_nodelete</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline int <B>referenceCount</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline static int <B>createdCount</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline static int <B>deletedCount</B>()
2001-09-20 05:19:47 +08:00
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>mutable int <B>_refCount</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>static int <B>_createdCount</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>static int <B>_deletedCount</B>
2001-09-20 05:19:47 +08:00
</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.42.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>
<A NAME="DOC.2.42.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Camera(const <!1><A HREF="Camera.html#DOC.2.42.2">Camera</A>&amp;)</B></TT>
2001-12-25 05:56:22 +08:00
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.42.3"></A>
2001-12-25 05:56:22 +08:00
<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.42.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>
<A NAME="DOC.2.42.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>
<A NAME="DOC.2.42.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>
<A NAME="DOC.2.42.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>
<A NAME="DOC.2.42.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>
<A NAME="DOC.2.42.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>
<A NAME="DOC.2.42.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.42.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>
<A NAME="DOC.2.42.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setOrtho(double <!1><A HREF="Camera.html#DOC.2.42.18">left</A>, double <!1><A HREF="Camera.html#DOC.2.42.19">right</A>, double <!1><A HREF="Camera.html#DOC.2.42.20">bottom</A>, double <!1><A HREF="Camera.html#DOC.2.42.21">top</A>, double <!1><A HREF="Camera.html#DOC.2.42.22">zNear</A>, double <!1><A HREF="Camera.html#DOC.2.42.23">zFar</A>)</B></TT>
2001-12-25 05:56:22 +08:00
<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>
<A NAME="DOC.2.42.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setOrtho2D(double <!1><A HREF="Camera.html#DOC.2.42.18">left</A>, double <!1><A HREF="Camera.html#DOC.2.42.19">right</A>, double <!1><A HREF="Camera.html#DOC.2.42.20">bottom</A>, double <!1><A HREF="Camera.html#DOC.2.42.21">top</A>)</B></TT>
2001-12-25 05:56:22 +08:00
<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>
<A NAME="DOC.2.42.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setFrustum(double <!1><A HREF="Camera.html#DOC.2.42.18">left</A>, double <!1><A HREF="Camera.html#DOC.2.42.19">right</A>, double <!1><A HREF="Camera.html#DOC.2.42.20">bottom</A>, double <!1><A HREF="Camera.html#DOC.2.42.21">top</A>, double <!1><A HREF="Camera.html#DOC.2.42.22">zNear</A>, double <!1><A HREF="Camera.html#DOC.2.42.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>
<A NAME="DOC.2.42.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setPerspective(double fovy, double <!1><A HREF="Viewport.html#DOC.2.200.12">aspectRatio</A>, double <!1><A HREF="Camera.html#DOC.2.42.22">zNear</A>, double <!1><A HREF="Camera.html#DOC.2.42.23">zFar</A>)</B></TT>
2001-12-25 05:56:22 +08:00
<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>
<A NAME="DOC.2.42.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setFOV(double fovx, double fovy, double <!1><A HREF="Camera.html#DOC.2.42.22">zNear</A>, double <!1><A HREF="Camera.html#DOC.2.42.23">zFar</A>)</B></TT>
2001-12-25 05:56:22 +08:00
<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>
<A NAME="DOC.2.42.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setNearFar(double <!1><A HREF="Camera.html#DOC.2.42.22">zNear</A>, double <!1><A HREF="Camera.html#DOC.2.42.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>
<A NAME="DOC.2.42.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>
<A NAME="DOC.2.42.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>
<A NAME="DOC.2.42.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>
2002-02-09 18:54:18 +08:00
<DL><DT><DD></DL><P>
<A NAME="ADJUST_NONE"></A>
<A NAME="DOC.2.42.13.3"></A>
2002-02-09 18:54:18 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ADJUST_NONE</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P></DL>
2001-09-22 10:42:08 +08:00
<A NAME="setAdjustAspectRatioMode"></A>
<A NAME="DOC.2.42.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setAdjustAspectRatioMode(<!1><A HREF="Camera.html#DOC.2.42.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>
<A NAME="DOC.2.42.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.42.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>
<A NAME="DOC.2.42.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void adjustAspectRatio(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>
<A NAME="DOC.2.42.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void adjustAspectRatio(double newAspectRatio, <!1><A HREF="Camera.html#DOC.2.42.13">AdjustAspectRatioMode</A> aa)</B></TT>
2001-12-25 05:56:22 +08:00
<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>
<A NAME="DOC.2.42.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double left() const </B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="right"></A>
<A NAME="DOC.2.42.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double right() const </B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="bottom"></A>
<A NAME="DOC.2.42.20"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double bottom() const </B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="top"></A>
<A NAME="DOC.2.42.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double top() const </B></TT>
<DL><DT><DD></DL><P>
2001-09-20 05:19:47 +08:00
<A NAME="zNear"></A>
<A NAME="DOC.2.42.22"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double zNear() const </B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="zFar"></A>
<A NAME="DOC.2.42.23"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double zFar() const </B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="calc_fovy"></A>
<A NAME="DOC.2.42.24"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>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>
<A NAME="DOC.2.42.25"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>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>
<A NAME="DOC.2.42.26"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double calc_aspectRatio() const </B></TT>
2001-09-20 05:19:47 +08:00
<DD>Calculate and return the projection aspect ratio.
Aspect ratio is defined as width/height.
<DL><DT><DD></DL><P>
<A NAME="LookAtType"></A>
<A NAME="DOC.2.42.27"></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>
<A NAME="DOC.2.42.27.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>
<A NAME="DOC.2.42.27.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>
<A NAME="DOC.2.42.27.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>
<A NAME="DOC.2.42.28"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.42.27">LookAtType</A> getLookAtType() const </B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="home"></A>
<A NAME="DOC.2.42.29"></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>
<A NAME="DOC.2.42.30"></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>
<A NAME="DOC.2.42.31"></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.25.8">center</A>, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up)</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="setLookAt"></A>
<A NAME="DOC.2.42.32"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setLookAt(double eyeX, double eyeY, double eyeZ, double centerX, double centerY, double centerZ, double upX, double upY, 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>
<A NAME="DOC.2.42.33"></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>
<A NAME="DOC.2.42.34"></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>
<A NAME="DOC.2.42.35"></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>
<A NAME="DOC.2.42.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; getCenterPoint() const </B></TT>
<DD>get the center point.
<DL><DT><DD></DL><P>
<A NAME="getUpVector"></A>
<A NAME="DOC.2.42.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; getUpVector() const </B></TT>
<DD>get the up vector
<DL><DT><DD></DL><P>
<A NAME="getLookVector"></A>
<A NAME="DOC.2.42.38"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec3.html">Vec3</A> getLookVector() const </B></TT>
2001-09-20 05:19:47 +08:00
<DD>calculate look vector
<DL><DT><DD></DL><P>
<A NAME="getSideVector"></A>
<A NAME="DOC.2.42.39"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec3.html">Vec3</A> getSideVector() const </B></TT>
2001-09-20 05:19:47 +08:00
<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.42.40"></A>
2001-12-25 05:56:22 +08:00
<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>
<A NAME="DOC.2.42.41"></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>
<A NAME="DOC.2.42.41.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>
<A NAME="DOC.2.42.41.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>
<A NAME="DOC.2.42.41.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>
<A NAME="DOC.2.42.42"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void attachTransform(<!1><A HREF="Camera.html#DOC.2.42.41">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
2002-07-17 04:07:32 +08:00
internally and ensures that they are the inverse of one another.
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="getTransform"></A>
<A NAME="DOC.2.42.43"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Matrix.html">Matrix</A>* getTransform(<!1><A HREF="Camera.html#DOC.2.42.41">TransformMode</A> mode)</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="getTransform"></A>
<A NAME="DOC.2.42.44"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Matrix.html">Matrix</A>* getTransform(<!1><A HREF="Camera.html#DOC.2.42.41">TransformMode</A> mode) const </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="FusionDistanceMode"></A>
<A NAME="DOC.2.42.45"></A>
2001-12-25 05:56:22 +08:00
<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.42.45.1"></A>
2001-12-25 05:56:22 +08:00
<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.42.45.2"></A>
2001-12-25 05:56:22 +08:00
<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.42.46"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setFusionDistanceMode(<!1><A HREF="Camera.html#DOC.2.42.45">FusionDistanceMode</A> mode)</B></TT>
2001-12-25 05:56:22 +08:00
<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.42.47"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.42.45">FusionDistanceMode</A> getFusionDistanceMode() const </B></TT>
2001-12-25 05:56:22 +08:00
<DD>Get the mode of the fusion distance function
<DL><DT><DD></DL><P>
<A NAME="setFusionDistanceRatio"></A>
<A NAME="DOC.2.42.48"></A>
2001-12-25 05:56:22 +08:00
<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.42.49"></A>
2001-12-25 05:56:22 +08:00
<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.42.50"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float getFusionDistance() const </B></TT>
2001-12-25 05:56:22 +08:00
<DD>Calculate and return the fusion distance, using the FusionDistanceFunction
<DL><DT><DD></DL><P>
<A NAME="setScreenDistance"></A>
<A NAME="DOC.2.42.51"></A>
2001-12-25 05:56:22 +08:00
<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.42.52"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float getScreenDistance() const </B></TT>
2001-12-25 05:56:22 +08:00
<DD>Get the physical distance between the viewers eyes and the display system
<DL><DT><DD></DL><P>
<A NAME="getProjectionMatrix"></A>
<A NAME="DOC.2.42.53"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Matrix.html">Matrix</A> getProjectionMatrix() const </B></TT>
<DD>Get the Projection Matrix
2001-12-25 05:56:22 +08:00
<DL><DT><DD></DL><P>
<A NAME="getModelViewMatrix"></A>
<A NAME="DOC.2.42.54"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Matrix.html">Matrix</A> getModelViewMatrix() const </B></TT>
<DD>Get the ModelView matrix.
If a ModelTransform is supplied then the ModelView matrix is
created by multiplying the current LookAt by ModelTransform.
Otherwise it is simply created by using the current LookAt,
equivalent to using gluLookAt.
2001-12-25 05:56:22 +08:00
<DL><DT><DD></DL><P>
2002-08-29 22:29:49 +08:00
<A NAME="getViewFrustum"></A>
<A NAME="DOC.2.42.55"></A>
2002-08-29 22:29:49 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Polytope.html">Polytope</A> getViewFrustum() const </B></TT>
<DD>Get the camera view frustum
<DL><DT><DD></DL><P>
<A NAME="copy"></A>
<A NAME="DOC.2.42.56"></A>
2001-12-25 05:56:22 +08:00
<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>
<A NAME="DOC.2.42.57"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.42.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>
<A NAME="DOC.2.42.58"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.42.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>
<A NAME="DOC.2.42.59"></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>
<A NAME="DOC.2.42.60"></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>
<A NAME="DOC.2.42.61"></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>
<A NAME="DOC.2.42.62"></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>
<A NAME="DOC.2.42.63"></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>
<A NAME="DOC.2.42.64"></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>
<A NAME="DOC.2.42.65"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.42.27">LookAtType</A> _lookAtType</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="_eye"></A>
<A NAME="DOC.2.42.66"></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>
<A NAME="DOC.2.42.67"></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>
<A NAME="DOC.2.42.68"></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>
<A NAME="DOC.2.42.69"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.42.41">TransformMode</A> _attachedTransformMode</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="_eyeToModelTransform"></A>
<A NAME="DOC.2.42.70"></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>
<A NAME="DOC.2.42.71"></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>
2001-12-25 05:56:22 +08:00
<A NAME="_screenDistance"></A>
<A NAME="DOC.2.42.72"></A>
2001-12-25 05:56:22 +08:00
<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.42.73"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Camera.html#DOC.2.42.45">FusionDistanceMode</A> _fusionDistanceMode</B></TT>
2001-12-25 05:56:22 +08:00
<DL><DT><DD></DL><P>
<A NAME="_fusionDistanceRatio"></A>
<A NAME="DOC.2.42.74"></A>
2001-12-25 05:56:22 +08:00
<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>