Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > af7a4b7f1ee5a4a084c41b9005da5527 > files > 365

libfox1.1_46-devel-1.1.46-1mdk.i586.rpm

<html>
<head>
<link rel="stylesheet" href="page.css" type="text/css">
<title>fox-toolkit.org - Documentation</title>
</head>
<body bgcolor=#ffffff link=#990033 vlink=#990033 alink=#990033 text=#000000>
<font face='verdana,sans-serif' size=2 >

<!---- TOPIC TITLE WITH LOGO--->
<table border=0 cellpadding= cellspacing=2 width=100% ><tr><td><a href='http://www.fox-toolkit.org/doc.html'><img src='../art/foxlogo_small.jpg' border=0></a></td><td width=100% valign=bottom><font face='verdana,sans-serif' size=2 ><b>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a>
<br><img src='../art/line.gif' width=100% height=1></b></font></td></tr></table>
<p>
<!--- TOPIC TITLE WITH LOGO --->
<!-- Generated by Doxygen 1.3.3 -->
<h1>FXGLViewer.h</h1><div class="fragment"><pre>00001 <span class="comment">/********************************************************************************</span>
00002 <span class="comment">*                                                                               *</span>
00003 <span class="comment">*                      O p e n G L   V i e w e r   W i d g e t                  *</span>
00004 <span class="comment">*                                                                               *</span>
00005 <span class="comment">*********************************************************************************</span>
00006 <span class="comment">* Copyright (C) 1997,2004 by Jeroen van der Zijp.   All Rights Reserved.        *</span>
00007 <span class="comment">*********************************************************************************</span>
00008 <span class="comment">* This library is free software; you can redistribute it and/or                 *</span>
00009 <span class="comment">* modify it under the terms of the GNU Lesser General Public                    *</span>
00010 <span class="comment">* License as published by the Free Software Foundation; either                  *</span>
00011 <span class="comment">* version 2.1 of the License, or (at your option) any later version.            *</span>
00012 <span class="comment">*                                                                               *</span>
00013 <span class="comment">* This library is distributed in the hope that it will be useful,               *</span>
00014 <span class="comment">* but WITHOUT ANY WARRANTY; without even the implied warranty of                *</span>
00015 <span class="comment">* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU             *</span>
00016 <span class="comment">* Lesser General Public License for more details.                               *</span>
00017 <span class="comment">*                                                                               *</span>
00018 <span class="comment">* You should have received a copy of the GNU Lesser General Public              *</span>
00019 <span class="comment">* License along with this library; if not, write to the Free Software           *</span>
00020 <span class="comment">* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.    *</span>
00021 <span class="comment">*********************************************************************************</span>
00022 <span class="comment">* $Id: FXGLViewer.h,v 1.68 2004/02/08 17:17:33 fox Exp $                        *</span>
00023 <span class="comment">********************************************************************************/</span>
00024 <span class="preprocessor">#ifndef FXGLVIEWER_H</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#define FXGLVIEWER_H</span>
00026 <span class="preprocessor"></span>
00027 <span class="preprocessor">#ifndef FXGLCANVAS_H</span>
00028 <span class="preprocessor"></span><span class="preprocessor">#include "FXGLCanvas.h"</span>
00029 <span class="preprocessor">#endif</span>
00030 <span class="preprocessor"></span>
00031 <span class="keyword">namespace </span>FX {
00032 
00033 
00034 <span class="keyword">class </span>FXDCPrint;
00035 <span class="keyword">class </span>FXGLObject;
00036 <span class="keyword">class </span>FXGLVisual;
00037 
00038 
00039 <span class="comment">// GL Viewer options</span>
00040 <span class="keyword">enum</span> {
00041   <a class="code" href="group__FXGLViewer__0.html#a0a486">VIEWER_LIGHTING</a> = 0x00008000,    <span class="comment">/// Lighting is on</span>
00042 <span class="comment"></span>  <a class="code" href="group__FXGLViewer__0.html#a0a487">VIEWER_FOG</a>      = 0x00010000,    <span class="comment">/// Fog mode on</span>
00043 <span class="comment"></span>  <a class="code" href="group__FXGLViewer__0.html#a0a488">VIEWER_DITHER</a>   = 0x00020000     <span class="comment">/// Dithering</span>
00044 <span class="comment"></span>  };
00045 
00046 
00047 <span class="comment">/*******************************  Viewer  Structs  *****************************/</span>
00048 
00049 <span class="comment"></span>
00050 <span class="comment">/// OpenGL Viewer Viewport</span>
00051 <span class="comment"></span><span class="keyword">struct </span>FXViewport {
00052   FXint      w,h;               <span class="comment">// Viewport dimensions</span>
00053   FXdouble   left,right;        <span class="comment">// World box</span>
00054   FXdouble   bottom,top;
<a name="l00055"></a><a class="code" href="structFX_1_1FXViewport.html">00055</a>   FXdouble   hither,yon;
00056   };
00057 
00058 
00059 <span class="comment">// OpenGL Light Source</span>
00060 <span class="keyword">struct </span>FXAPI FXLight {
00061   FXVec4f    ambient;           <span class="comment">// Ambient light color</span>
00062   FXVec4f    diffuse;           <span class="comment">// Diffuse light color</span>
00063   FXVec4f    specular;          <span class="comment">// Specular light color</span>
00064   FXVec4f    position;          <span class="comment">// Light position</span>
00065   FXVec3f    direction;         <span class="comment">// Spot direction</span>
00066   FXfloat    exponent;          <span class="comment">// Spotlight exponent</span>
00067   FXfloat    cutoff;            <span class="comment">// Spotlight cutoff angle</span>
00068   FXfloat    c_attn;            <span class="comment">// Constant attenuation factor</span>
00069   FXfloat    l_attn;            <span class="comment">// Linear attenuation factor</span>
00070   FXfloat    q_attn;            <span class="comment">// Quadratic attenuation factor</span>
00071   };
00072 
00073 
00074 <span class="comment">// OpenGL Material Description</span>
00075 <span class="keyword">struct </span>FXAPI FXMaterial {
00076   FXVec4f    ambient;           <span class="comment">// Ambient material color</span>
00077   FXVec4f    diffuse;           <span class="comment">// Diffuse material color</span>
00078   FXVec4f    specular;          <span class="comment">// Specular material color</span>
00079   FXVec4f    emission;          <span class="comment">// Emissive material color</span>
00080   FXfloat    shininess;         <span class="comment">// Specular shininess</span>
00081   };
00082 
00083 
00084 <span class="comment">// Feedback buffer sort routine</span>
00085 <span class="keyword">typedef</span> FXbool (*FXZSortFunc)(FXfloat*&amp; buffer,FXint&amp; used,FXint&amp; size);
00086 
00087 
00088 <span class="comment">/********************************  Viewer  Class  ******************************/</span>
00089 
00090 <span class="comment"></span>
00091 <span class="comment">/// Canvas, an area drawn by another object</span>
00092 <span class="comment"></span><span class="keyword">class </span>FXAPI FXGLViewer : <span class="keyword">public</span> FXGLCanvas {
00093   FXDECLARE(FXGLViewer)
00094   <span class="keyword">friend</span> <span class="keyword">class </span>FXGLObject;
00095 <span class="keyword">protected</span>:
00096   FXViewport      wvt;              <span class="comment">// Window viewport transform</span>
00097   FXMat4f         transform;        <span class="comment">// Current transformation matrix</span>
00098   FXMat4f         itransform;       <span class="comment">// Inverse of current transformation matrix</span>
00099   FXuint          projection;       <span class="comment">// Projection mode</span>
<a name="l00100"></a><a class="code" href="classFX_1_1FXGLViewer.html">00100</a>   <a class="code" href="classFX_1_1FXQuatf.html">FXQuatf</a>         rotation;         <span class="comment">// Viewer orientation</span>
00101   FXdouble        fov;              <span class="comment">// Field of view</span>
00102   FXdouble        zoom;             <span class="comment">// Zoom factor</span>
00103   <a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a>         center;           <span class="comment">// Model center</span>
00104   <a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a>         scale;            <span class="comment">// Model scale</span>
00105   FXdouble        worldpx;          <span class="comment">// Pixel size in world</span>
00106   FXdouble        modelpx;          <span class="comment">// Pixel size in model</span>
00107   FXint           maxhits;          <span class="comment">// Maximum number of hits</span>
00108   FXdouble        ax,ay;            <span class="comment">// Quick view-&gt;world coordinate mapping</span>
00109   FXdouble        diameter;         <span class="comment">// Size of model diameter ( always &gt; 0)</span>
00110   FXdouble        distance;         <span class="comment">// Distance of PRP to target</span>
00111   <a class="code" href="classFX_1_1FXVec4f.html">FXVec4f</a>         background[2];    <span class="comment">// Background colors</span>
00112   <a class="code" href="classFX_1_1FXVec4f.html">FXVec4f</a>         ambient;          <span class="comment">// Global ambient light</span>
00113   FXLight         light;            <span class="comment">// Light source</span>
00114   FXMaterial      material;         <span class="comment">// Base material properties</span>
00115   FXint           dial[3];          <span class="comment">// Dial positions</span>
00116   <a class="code" href="classFX_1_1FXString.html">FXString</a>        help;             <span class="comment">// Status help</span>
00117   <a class="code" href="classFX_1_1FXString.html">FXString</a>        tip;              <span class="comment">// Tooltip for background</span>
00118   <a class="code" href="classFX_1_1FXGLObject.html">FXGLObject</a>     *dropped;          <span class="comment">// Object being dropped on</span>
00119   <a class="code" href="classFX_1_1FXGLObject.html">FXGLObject</a>     *selection;        <span class="comment">// Current object</span>
00120   FXZSortFunc     zsortfunc;        <span class="comment">// Routine to sort feedback buffer</span>
00121   <a class="code" href="classFX_1_1FXGLObject.html">FXGLObject</a>     *scene;            <span class="comment">// What we're looking at</span>
00122   FXbool          doesturbo;        <span class="comment">// Doing turbo mode</span>
00123   FXbool          turbomode;        <span class="comment">// Turbo mode</span>
00124   FXuchar         mode;             <span class="comment">// Mode the widget is in</span>
00125 <span class="keyword">public</span>:
00126 
00127   <span class="comment">// Common DND types</span>
00128   <span class="keyword">static</span> FXDragType objectType;     <span class="comment">// GL Object type</span>
00129 
00130 <span class="keyword">protected</span>:
00131 
00132   <span class="comment">// Mouse actions when in viewing window</span>
00133   <span class="keyword">enum</span> {
00134     HOVERING,                       <span class="comment">// Hovering mouse w/o doing anything</span>
00135     PICKING,                        <span class="comment">// Pick mode</span>
00136     ROTATING,                       <span class="comment">// Rotating camera around target</span>
00137     POSTING,                        <span class="comment">// Posting right-mouse menu</span>
00138     TRANSLATING,                    <span class="comment">// Translating camera</span>
00139     ZOOMING,                        <span class="comment">// Zooming</span>
00140     FOVING,                         <span class="comment">// Change field-of-view</span>
00141     DRAGGING,                       <span class="comment">// Dragging objects</span>
00142     TRUCKING,                       <span class="comment">// Trucking camera</span>
00143     GYRATING,                       <span class="comment">// Rotation of camera around eye</span>
00144     DO_LASSOSELECT,                 <span class="comment">// Lasso select when mouse pressed</span>
00145     LASSOSELECT,                    <span class="comment">// Anchor of lasso rectangle</span>
00146     DO_LASSOZOOM,                   <span class="comment">// Zoom when mouse pressed</span>
00147     LASSOZOOM                       <span class="comment">// Zoom rectangle</span>
00148     };
00149 
00150 <span class="keyword">protected</span>:
00151   FXGLViewer();
00152   <span class="keywordtype">void</span> glsetup();
00153   <span class="keywordtype">void</span> updateProjection();
00154   <span class="keywordtype">void</span> updateTransform();
00155   FXVec3f spherePoint(FXint px,FXint py);
00156   FXQuatf turn(FXint fx,FXint fy,FXint tx,FXint ty);
00157   <span class="keywordtype">void</span> drawWorld(FXViewport&amp; wv);
00158   <span class="keywordtype">void</span> drawAnti(FXViewport&amp; wv);
00159   <span class="keywordtype">void</span> drawLasso(FXint x0,FXint y0,FXint x1,FXint y1);
00160   FXint selectHits(FXuint*&amp; hits,FXint&amp; nhits,FXint x,FXint y,FXint w,FXint h);
00161   FXint renderFeedback(FXfloat *buffer,FXint x,FXint y,FXint w,FXint h,FXint maxbuffer);
00162   <span class="keywordtype">void</span> drawFeedback(FXDCPrint&amp; pdc,<span class="keyword">const</span> FXfloat* buffer,FXint used);
00163   <span class="keyword">virtual</span> FXGLObject* processHits(FXuint *pickbuffer,FXint nhits);
00164   <span class="keywordtype">void</span> setOp(FXuint o);
00165 <span class="keyword">private</span>:
00166   FXGLViewer(<span class="keyword">const</span> FXGLViewer&amp;);
00167   FXGLViewer &amp;operator=(<span class="keyword">const</span> FXGLViewer&amp;);
00168   <span class="keywordtype">void</span> initialize();
00169 <span class="keyword">public</span>:
00170 
00171   <span class="comment">// Events</span>
00172   <span class="keywordtype">long</span> onPaint(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00173   <span class="keywordtype">long</span> onEnter(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00174   <span class="keywordtype">long</span> onLeave(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00175   <span class="keywordtype">long</span> onMotion(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00176   <span class="keywordtype">long</span> onMouseWheel(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00177   <span class="keywordtype">long</span> onChanged(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00178   <span class="keywordtype">long</span> onPick(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00179   <span class="keywordtype">long</span> onClicked(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00180   <span class="keywordtype">long</span> onDoubleClicked(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00181   <span class="keywordtype">long</span> onTripleClicked(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00182   <span class="keywordtype">long</span> onLassoed(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00183   <span class="keywordtype">long</span> onSelected(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00184   <span class="keywordtype">long</span> onDeselected(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00185   <span class="keywordtype">long</span> onInserted(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00186   <span class="keywordtype">long</span> onDeleted(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00187   <span class="keywordtype">long</span> onLeftBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00188   <span class="keywordtype">long</span> onLeftBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00189   <span class="keywordtype">long</span> onMiddleBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00190   <span class="keywordtype">long</span> onMiddleBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00191   <span class="keywordtype">long</span> onRightBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00192   <span class="keywordtype">long</span> onRightBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00193   <span class="keywordtype">long</span> onUngrabbed(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00194   <span class="keywordtype">long</span> onKeyPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00195   <span class="keywordtype">long</span> onKeyRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00196   <span class="keywordtype">long</span> onFocusIn(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00197   <span class="keywordtype">long</span> onFocusOut(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00198   <span class="keywordtype">long</span> onClipboardLost(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00199   <span class="keywordtype">long</span> onClipboardGained(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00200   <span class="keywordtype">long</span> onClipboardRequest(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00201 
00202   <span class="comment">// Commands</span>
00203   <span class="keywordtype">long</span> onCmdPerspective(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00204   <span class="keywordtype">long</span> onUpdPerspective(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00205   <span class="keywordtype">long</span> onCmdParallel(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00206   <span class="keywordtype">long</span> onUpdParallel(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00207   <span class="keywordtype">long</span> onCmdFront(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00208   <span class="keywordtype">long</span> onUpdFront(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00209   <span class="keywordtype">long</span> onCmdBack(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00210   <span class="keywordtype">long</span> onUpdBack(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00211   <span class="keywordtype">long</span> onCmdLeft(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00212   <span class="keywordtype">long</span> onUpdLeft(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00213   <span class="keywordtype">long</span> onCmdRight(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00214   <span class="keywordtype">long</span> onUpdRight(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00215   <span class="keywordtype">long</span> onCmdTop(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00216   <span class="keywordtype">long</span> onUpdTop(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00217   <span class="keywordtype">long</span> onCmdBottom(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00218   <span class="keywordtype">long</span> onUpdBottom(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00219   <span class="keywordtype">long</span> onCmdResetView(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00220   <span class="keywordtype">long</span> onCmdFitView(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00221   <span class="keywordtype">long</span> onDNDEnter(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00222   <span class="keywordtype">long</span> onDNDLeave(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00223   <span class="keywordtype">long</span> onDNDMotion(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00224   <span class="keywordtype">long</span> onDNDDrop(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00225   <span class="keywordtype">long</span> onTipTimer(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00226   <span class="keywordtype">long</span> onCmdXYZDial(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00227   <span class="keywordtype">long</span> onUpdXYZDial(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00228   <span class="keywordtype">long</span> onCmdRollPitchYaw(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00229   <span class="keywordtype">long</span> onUpdRollPitchYaw(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00230   <span class="keywordtype">long</span> onCmdXYZScale(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00231   <span class="keywordtype">long</span> onUpdXYZScale(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00232   <span class="keywordtype">long</span> onUpdCurrent(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00233   <span class="keywordtype">long</span> onCmdCutSel(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00234   <span class="keywordtype">long</span> onCmdCopySel(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00235   <span class="keywordtype">long</span> onCmdPasteSel(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00236   <span class="keywordtype">long</span> onCmdDeleteSel(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00237   <span class="keywordtype">long</span> onUpdDeleteSel(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00238   <span class="keywordtype">long</span> onCmdBackColor(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00239   <span class="keywordtype">long</span> onUpdBackColor(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00240   <span class="keywordtype">long</span> onCmdGradientBackColor(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00241   <span class="keywordtype">long</span> onUpdGradientBackColor(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
<a name="l00242"></a><a class="code" href="classFX_1_1FXGLViewer.html#a6">00242</a>   <span class="keywordtype">long</span> onCmdAmbientColor(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00243   <span class="keywordtype">long</span> onUpdAmbientColor(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00244   <span class="keywordtype">long</span> onCmdLighting(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
<a name="l00245"></a><a class="code" href="classFX_1_1FXGLViewer.html#a7">00245</a>   <span class="keywordtype">long</span> onUpdLighting(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00246   <span class="keywordtype">long</span> onCmdFog(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00247   <span class="keywordtype">long</span> onUpdFog(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00248   <span class="keywordtype">long</span> onCmdDither(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00249   <span class="keywordtype">long</span> onUpdDither(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00250   <span class="keywordtype">long</span> onCmdFov(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00251   <span class="keywordtype">long</span> onUpdFov(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00252   <span class="keywordtype">long</span> onCmdZoom(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00253   <span class="keywordtype">long</span> onUpdZoom(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00254   <span class="keywordtype">long</span> onCmdLightAmbient(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00255   <span class="keywordtype">long</span> onUpdLightAmbient(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00256   <span class="keywordtype">long</span> onCmdLightDiffuse(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00257   <span class="keywordtype">long</span> onUpdLightDiffuse(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00258   <span class="keywordtype">long</span> onCmdLightSpecular(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00259   <span class="keywordtype">long</span> onUpdLightSpecular(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00260   <span class="keywordtype">long</span> onCmdTurbo(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00261   <span class="keywordtype">long</span> onUpdTurbo(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00262   <span class="keywordtype">long</span> onCmdPrintImage(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00263   <span class="keywordtype">long</span> onCmdPrintVector(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00264   <span class="keywordtype">long</span> onCmdLassoZoom(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00265   <span class="keywordtype">long</span> onCmdLassoSelect(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00266   <span class="keywordtype">long</span> onQueryHelp(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00267   <span class="keywordtype">long</span> onQueryTip(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00268   <span class="keyword">virtual</span> <span class="keywordtype">long</span> onDefault(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00269 
00270 <span class="keyword">public</span>:
00271 
00272   <span class="comment">// Projection modes</span>
00273   <span class="keyword">enum</span> {
00274     PARALLEL,     <span class="comment">// Parallel projection</span>
00275     PERSPECTIVE     <span class="comment">// Perspective projection</span>
00276     };
00277 
00278   <span class="comment">// Messages</span>
00279   <span class="keyword">enum</span> {
00280     ID_PERSPECTIVE=FXGLCanvas::ID_LAST,
00281     ID_PARALLEL,
00282     ID_FRONT,
00283     ID_BACK,
00284     ID_LEFT,
00285     ID_RIGHT,
00286     ID_TOP,
00287     ID_BOTTOM,
00288     ID_RESETVIEW,
00289     ID_FITVIEW,
00290     ID_TOP_COLOR,
00291     ID_BOTTOM_COLOR,
00292     ID_BACK_COLOR,
00293     ID_AMBIENT_COLOR,
00294     ID_LIGHT_AMBIENT,
00295     ID_LIGHT_DIFFUSE,
<a name="l00296"></a><a class="code" href="classFX_1_1FXGLViewer.html#a24">00296</a>     ID_LIGHT_SPECULAR,
00297     ID_LIGHTING,
00298     ID_TURBO,
00299     ID_FOG,
00300     ID_DITHER,
00301     ID_SCALE_X,
<a name="l00302"></a><a class="code" href="classFX_1_1FXGLViewer.html#a26">00302</a>     ID_SCALE_Y,
00303     ID_SCALE_Z,
00304     ID_DIAL_X,
00305     ID_DIAL_Y,
00306     ID_DIAL_Z,
00307     ID_ROLL,
<a name="l00308"></a><a class="code" href="classFX_1_1FXGLViewer.html#a28">00308</a>     ID_PITCH,
00309     ID_YAW,
00310     ID_FOV,
00311     ID_ZOOM,
00312     ID_CUT_SEL,
00313     ID_COPY_SEL,
<a name="l00314"></a><a class="code" href="classFX_1_1FXGLViewer.html#a30">00314</a>     ID_PASTE_SEL,
00315     ID_DELETE_SEL,
00316     ID_PRINT_IMAGE,
00317     ID_PRINT_VECTOR,
00318     ID_LASSO_ZOOM,
00319     ID_LASSO_SELECT,
<a name="l00320"></a><a class="code" href="classFX_1_1FXGLViewer.html#a32">00320</a>     ID_LAST
00321     };
00322 
00323 <span class="keyword">public</span>:
00324 
00325   <span class="comment">// Common DND type names</span>
<a name="l00326"></a><a class="code" href="classFX_1_1FXGLViewer.html#a34">00326</a>   <span class="keyword">static</span> <span class="keyword">const</span> FXchar objectTypeName[];
00327 
00328 <span class="keyword">public</span>:
00329 <span class="comment"></span>
00330 <span class="comment">  /// Construct GL viewer widget</span>
00331 <span class="comment"></span>  FXGLViewer(<a class="code" href="classFX_1_1FXComposite.html">FXComposite</a>* p,<a class="code" href="classFX_1_1FXGLVisual.html">FXGLVisual</a> *vis,<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
00332 <span class="comment"></span>
00333 <span class="comment">  /// Construct GL viewer widget sharing display list with another GL viewer</span>
00334 <span class="comment"></span>  FXGLViewer(<a class="code" href="classFX_1_1FXComposite.html">FXComposite</a>* p,<a class="code" href="classFX_1_1FXGLVisual.html">FXGLVisual</a> *vis,FXGLViewer* sharegroup,<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
00335 <span class="comment"></span>
00336 <span class="comment">  /// Create all of the server-side resources for this window</span>
00337 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> create();
00338 <span class="comment"></span>
00339 <span class="comment">  /// Detach server-side resources</span>
00340 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> detach();
00341 <span class="comment"></span>
00342 <span class="comment">  /// Perform layout</span>
00343 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> layout();
<a name="l00344"></a><a class="code" href="classFX_1_1FXGLViewer.html#a40">00344</a> <span class="comment"></span>
00345 <span class="comment">  /// Return size of pixel in world coordinates</span>
00346 <span class="comment"></span>  FXdouble worldPix()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> worldpx; }
00347 <span class="comment"></span>
00348 <span class="comment">  /// Return size of pixel in model coordinates</span>
00349 <span class="comment"></span>  FXdouble modelPix()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> modelpx; }
<a name="l00350"></a><a class="code" href="classFX_1_1FXGLViewer.html#a42">00350</a> <span class="comment"></span>
00351 <span class="comment">  /// Return a NULL-terminated list of all objects in the given rectangle, or NULL</span>
00352 <span class="comment"></span>  <a class="code" href="classFX_1_1FXGLObject.html">FXGLObject</a>** lasso(FXint x1,FXint y1,FXint x2,FXint y2);
<a name="l00353"></a><a class="code" href="classFX_1_1FXGLViewer.html#a43">00353</a> <span class="comment"></span>
00354 <span class="comment">  /// Return a NULL-terminated list of all objects in the given rectangle, or NULL</span>
00355 <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="classFX_1_1FXGLObject.html">FXGLObject</a>** select(FXint x,FXint y,FXint w,FXint h);
<a name="l00356"></a><a class="code" href="classFX_1_1FXGLViewer.html#a44">00356</a> <span class="comment"></span>
00357 <span class="comment">  /// Perform a pick operation, returning the object at the given x,y position, or NULL</span>
00358 <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="classFX_1_1FXGLObject.html">FXGLObject</a>* pick(FXint x,FXint y);
00359 <span class="comment"></span>
00360 <span class="comment">  /// Change the model bounding box; this adjusts the viewer</span>
00361 <span class="comment"></span>  FXbool setBounds(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXRange.html">FXRange</a>&amp; box);
<a name="l00362"></a><a class="code" href="classFX_1_1FXGLViewer.html#a46">00362</a> <span class="comment"></span>
00363 <span class="comment">  /// Fit viewer to the given bounding box</span>
00364 <span class="comment"></span>  FXbool fitToBounds(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXRange.html">FXRange</a>&amp; box);
00365 <span class="comment"></span>
00366 <span class="comment">  /// Return the viewer's viewport</span>
00367 <span class="comment"></span>  <span class="keywordtype">void</span> getViewport(<a class="code" href="structFX_1_1FXViewport.html">FXViewport</a>&amp; v) <span class="keyword">const</span>;
<a name="l00368"></a><a class="code" href="classFX_1_1FXGLViewer.html#a48">00368</a> <span class="comment"></span>
00369 <span class="comment">  /// Translate eye-coordinate to screen coordinate</span>
00370 <span class="comment"></span>  <span class="keywordtype">void</span> eyeToScreen(FXint&amp; sx,FXint&amp; sy,<a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> e);
00371 <span class="comment"></span>
00372 <span class="comment">  /// Translate screen coordinate to eye coordinate at the given depth</span>
00373 <span class="comment"></span>  <a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> screenToEye(FXint sx,FXint sy,FXfloat eyez=0.0);
<a name="l00374"></a><a class="code" href="classFX_1_1FXGLViewer.html#a50">00374</a> <span class="comment"></span>
00375 <span class="comment">  /// Translate screen coordinate to eye coordinate at the target point depth</span>
00376 <span class="comment"></span>  <a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> screenToTarget(FXint sx,FXint sy);
00377 <span class="comment"></span>
00378 <span class="comment">  /// Translate world coordinate to eye coordinate</span>
00379 <span class="comment"></span>  <a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> worldToEye(<a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> w);
<a name="l00380"></a><a class="code" href="classFX_1_1FXGLViewer.html#a52">00380</a> <span class="comment"></span>
00381 <span class="comment">  /// Translate world coordinate to eye coordinate depth</span>
00382 <span class="comment"></span>  FXfloat worldToEyeZ(<a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> w);
00383 <span class="comment"></span>
00384 <span class="comment">  /// Translate eye coordinate to eye coordinate</span>
00385 <span class="comment"></span>  <a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> eyeToWorld(<a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> e);
<a name="l00386"></a><a class="code" href="classFX_1_1FXGLViewer.html#a54">00386</a> <span class="comment"></span>
00387 <span class="comment">  /// Calculate world coordinate vector from screen movement</span>
00388 <span class="comment"></span>  <a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> worldVector(FXint fx,FXint fy,FXint tx,FXint ty);
00389 <span class="comment"></span>
00390 <span class="comment">  ///  Change default object material setting</span>
00391 <span class="comment"></span>  <span class="keywordtype">void</span> setMaterial(<span class="keyword">const</span> FXMaterial &amp;mtl);
00392 <span class="comment"></span>
00393 <span class="comment">  /// Return default object material setting</span>
00394 <span class="comment"></span>  <span class="keywordtype">void</span> getMaterial(FXMaterial &amp;mtl) <span class="keyword">const</span>;
00395 <span class="comment"></span>
00396 <span class="comment">  /// Change camera field of view angle (in degrees)</span>
00397 <span class="comment"></span>  <span class="keywordtype">void</span> setFieldOfView(FXdouble fv);
00398 <span class="comment"></span>
00399 <span class="comment">  /// Return camera field of view angle</span>
00400 <span class="comment"></span>  FXdouble getFieldOfView()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fov; }
00401 <span class="comment"></span>
00402 <span class="comment">  /// Change camera zoom factor</span>
00403 <span class="comment"></span>  <span class="keywordtype">void</span> setZoom(FXdouble zm);
00404 <span class="comment"></span>
<a name="l00405"></a><a class="code" href="classFX_1_1FXGLViewer.html#a57">00405</a> <span class="comment">  /// Return camera zoom factor</span>
00406 <span class="comment"></span>  FXdouble getZoom()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> zoom; }
00407 <span class="comment"></span>
<a name="l00408"></a><a class="code" href="classFX_1_1FXGLViewer.html#a58">00408</a> <span class="comment">  /// Change target point distance</span>
00409 <span class="comment"></span>  <span class="keywordtype">void</span> setDistance(FXdouble ed);
00410 <span class="comment"></span>
00411 <span class="comment">  /// Return target point distance</span>
00412 <span class="comment"></span>  FXdouble getDistance()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> distance; }
00413 <span class="comment"></span>
<a name="l00414"></a><a class="code" href="classFX_1_1FXGLViewer.html#a59">00414</a> <span class="comment">  /// Change unequal model scaling factors</span>
00415 <span class="comment"></span>  <span class="keywordtype">void</span> setScale(<a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> s);
00416 <span class="comment"></span>
<a name="l00417"></a><a class="code" href="classFX_1_1FXGLViewer.html#a60">00417</a> <span class="comment">  /// Return current scaling factors</span>
00418 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a>&amp; getScale()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> scale; }
00419 <span class="comment"></span>
00420 <span class="comment">  /// Change camera orientation from quaternion</span>
00421 <span class="comment"></span>  <span class="keywordtype">void</span> setOrientation(FXQuatf rot);
00422 <span class="comment"></span>
00423 <span class="comment">  /// Return current camera orientation quaternion</span>
00424 <span class="comment"></span>  <span class="keyword">const</span> FXQuatf&amp; getOrientation()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rotation; }
<a name="l00425"></a><a class="code" href="classFX_1_1FXGLViewer.html#a61">00425</a> <span class="comment"></span>
00426 <span class="comment">  /// Change object center (tranlation)</span>
00427 <span class="comment"></span>  <span class="keywordtype">void</span> setCenter(<a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a> cntr);
<a name="l00428"></a><a class="code" href="classFX_1_1FXGLViewer.html#a62">00428</a> <span class="comment"></span>
00429 <span class="comment">  /// Return object center</span>
00430 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classFX_1_1FXVec3f.html">FXVec3f</a>&amp; getCenter()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> center; }
00431 <span class="comment"></span>
00432 <span class="comment">  /// Translate object center</span>
00433 <span class="comment"></span>  <span class="keywordtype">void</span> translate(FXVec3f vec);
00434 <span class="comment"></span>
00435 <span class="comment">  /// Return boresight vector</span>
00436 <span class="comment"></span>  FXbool getBoreVector(FXint sx,FXint sy,FXVec3f&amp; point,FXVec3f&amp; dir);
00437 <span class="comment"></span>
00438 <span class="comment">  /// Return eyesight vector</span>
00439 <span class="comment"></span>  FXVec3f getEyeVector() <span class="keyword">const</span>;
00440 <span class="comment"></span>
00441 <span class="comment">  /// Return eye position</span>
00442 <span class="comment"></span>  FXVec3f getEyePosition() <span class="keyword">const</span>;
00443 <span class="comment"></span>
00444 <span class="comment">  /// Change help text</span>
00445 <span class="comment"></span>  <span class="keywordtype">void</span> setHelpText(<span class="keyword">const</span> FXString&amp; text);
00446 <span class="comment"></span>
00447 <span class="comment">  /// Return help text</span>
00448 <span class="comment"></span>  FXString getHelpText()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> help; }
00449 <span class="comment"></span>
00450 <span class="comment">  /// Change tip text</span>
00451 <span class="comment"></span>  <span class="keywordtype">void</span> setTipText(<span class="keyword">const</span> FXString&amp;  text);
00452 <span class="comment"></span>
00453 <span class="comment">  /// Return tip text</span>
00454 <span class="comment"></span>  FXString getTipText()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> tip; }
00455 <span class="comment"></span>
00456 <span class="comment">  /// Return the current transformation matrix</span>
00457 <span class="comment"></span>  <span class="keyword">const</span> FXMat4f&amp; getTransform()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> transform; }
00458 <span class="comment"></span>
00459 <span class="comment">  /// Return the inverse of the current transformation matrix</span>
00460 <span class="comment"></span>  <span class="keyword">const</span> FXMat4f&amp; getInvTransform()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> itransform; }
00461 <span class="comment"></span>
00462 <span class="comment">  /// Change the scene, i.e. the object being displayed.</span>
00463 <span class="comment"></span>  <span class="keywordtype">void</span> setScene(FXGLObject* sc);
00464 <span class="comment"></span>
00465 <span class="comment">  /// Return the current scene object</span>
00466 <span class="comment"></span>  FXGLObject* getScene()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> scene; }
00467 <span class="comment"></span>
00468 <span class="comment">  /// Change selection</span>
00469 <span class="comment"></span>  <span class="keywordtype">void</span> setSelection(FXGLObject* sel);
00470 <span class="comment"></span>
00471 <span class="comment">  /// Return selection</span>
00472 <span class="comment"></span>  FXGLObject* getSelection()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> selection; }
00473 <span class="comment"></span>
00474 <span class="comment">  /// Change the projection mode, PERSPECTIVE or PARALLEL</span>
00475 <span class="comment"></span>  <span class="keywordtype">void</span> setProjection(FXuint proj);
00476 <span class="comment"></span>
00477 <span class="comment">  /// Return the projection mode</span>
00478 <span class="comment"></span>  FXuint getProjection()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> projection; }
00479 <span class="comment"></span>
00480 <span class="comment">  /// Change top or bottom or both background colors</span>
00481 <span class="comment"></span>  <span class="keywordtype">void</span> setBackgroundColor(<span class="keyword">const</span> FXVec4f&amp; clr,FXbool bottom=MAYBE);
00482 <span class="comment"></span>
00483 <span class="comment">  /// Return top or bottom window background color.</span>
00484 <span class="comment"></span>  <span class="keyword">const</span> FXVec4f&amp; getBackgroundColor(FXbool bottom=FALSE)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> background[bottom]; }
00485 <span class="comment"></span>
00486 <span class="comment">  /// Change global ambient light color</span>
00487 <span class="comment"></span>  <span class="keywordtype">void</span> setAmbientColor(<span class="keyword">const</span> FXVec4f&amp; clr);
00488 <span class="comment"></span>
00489 <span class="comment">  /// Return global ambient light color</span>
00490 <span class="comment"></span>  <span class="keyword">const</span> FXVec4f&amp; getAmbientColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ambient; }
00491 <span class="comment"></span>
00492 <span class="comment">  /**</span>
00493 <span class="comment">  * Read the pixels off the screen as array of FXColor;</span>
00494 <span class="comment">  * this array can be directly passed to fxsaveBMP and other image</span>
00495 <span class="comment">  * output routines.</span>
00496 <span class="comment">  */</span>
00497   FXbool readPixels(FXColor*&amp; buffer,FXint x,FXint y,FXint w,FXint h);
00498 <span class="comment"></span>
00499 <span class="comment">  /**</span>
00500 <span class="comment">  * Read the feedback buffer containing the current scene, returning used</span>
00501 <span class="comment">  * and allocated size.</span>
00502 <span class="comment">  */</span>
00503   FXbool readFeedback(FXfloat*&amp; buffer,FXint&amp; used,FXint&amp; size,FXint x,FXint y,FXint w,FXint h);
00504 <span class="comment"></span>
00505 <span class="comment">  /**</span>
00506 <span class="comment">  * Change hidden-surface feedback buffer sorting algorithm.</span>
00507 <span class="comment">  * This can be used for move/draw printed output depth sorting.</span>
00508 <span class="comment">  */</span>
00509   <span class="keywordtype">void</span> setZSortFunc(FXZSortFunc func){ zsortfunc=func; }
00510 <span class="comment"></span>
00511 <span class="comment">  /// Return hidden surface sorting function.</span>
00512 <span class="comment"></span>  FXZSortFunc getZSortFunc()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> zsortfunc; }
00513 <span class="comment"></span>
00514 <span class="comment">  /**</span>
00515 <span class="comment">  * Change the maximum hits, i.e. the maximum size of the pick buffer.</span>
00516 <span class="comment">  * When set to less than or equal to zero, picking is essentially turned off.</span>
00517 <span class="comment">  */</span>
00518   <span class="keywordtype">void</span> setMaxHits(FXint maxh) { maxhits=maxh; }
00519 <span class="comment"></span>
00520 <span class="comment">  /// Return maximum pickbuffer size</span>
00521 <span class="comment"></span>  FXint getMaxHits()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> maxhits; }
00522 <span class="comment"></span>
00523 <span class="comment">  /**</span>
00524 <span class="comment">  * When drawing a GL object, if doesTurbo() is true, the object</span>
00525 <span class="comment">  * may choose to perform a reduced complexity drawing as the user is</span>
00526 <span class="comment">  * interactively manipulating; another update will be done later when</span>
00527 <span class="comment">  * the full complexity drawing can be performed again.</span>
00528 <span class="comment">  */</span>
00529   FXbool doesTurbo()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> doesturbo; }
00530 <span class="comment"></span>
00531 <span class="comment">  /// Return turbo mode setting</span>
00532 <span class="comment"></span>  FXbool getTurboMode()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> turbomode; }
00533 <span class="comment"></span>
00534 <span class="comment">  /// Set turbo mode</span>
00535 <span class="comment"></span>  <span class="keywordtype">void</span> setTurboMode(FXbool turbo=TRUE);
00536 <span class="comment"></span>
00537 <span class="comment">  /// Return light source settings</span>
00538 <span class="comment"></span>  <span class="keywordtype">void</span> getLight(FXLight&amp; lite) <span class="keyword">const</span>;
00539 <span class="comment"></span>
00540 <span class="comment">  /// Change light source settings</span>
00541 <span class="comment"></span>  <span class="keywordtype">void</span> setLight(<span class="keyword">const</span> FXLight&amp; lite);
00542 <span class="comment"></span>
00543 <span class="comment">  /// Save viewer to a stream</span>
00544 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> save(FXStream&amp; store) <span class="keyword">const</span>;
00545 <span class="comment"></span>
00546 <span class="comment">  /// Load viewer from a stream</span>
00547 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> load(FXStream&amp; store);
00548 <span class="comment"></span>
00549 <span class="comment">  /// Destructor</span>
00550 <span class="comment"></span>  <span class="keyword">virtual</span> ~FXGLViewer();
00551   };
00552 
00553 }
00554 
00555 <span class="preprocessor">#endif</span>
00556 <span class="preprocessor"></span>
</pre></div></font>

<!--- COPYRIGHT -->
<p>
<table width=100% cellpadding=0 cellspacing=0><tr><td width=100% valign=top id=HEADLINE align=right>
<img src='../art/line.gif' width=100% height=1><font size=-1>
Copyright &copy; 1997-2004 Jeroen van der Zijp</font>
</td></tr></table>
</p>
<!--- COPYRIGHT -->
</body>
</html>