Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 3931

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::gui::CDisplayWindow3D Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1gui.html">gui</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html">CDisplayWindow3D</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::gui::CDisplayWindow3D Class Reference<div class="ingroups"><a class="el" href="group__mrpt__gui__grp.html">[mrpt-gui]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::gui::CDisplayWindow3D" --><!-- doxytag: inherits="mrpt::gui::CBaseGUIWindow" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A graphical user interface (GUI) for efficiently rendering 3D scenes in real-time. </p>
<p>This class always contains internally an instance of <a class="el" href="classmrpt_1_1opengl_1_1_c_open_g_l_scene.html" title="This class allows the user to create, load, save, and render 3D scenes using OpenGL primitives...">opengl::COpenGLScene</a>, which the objects, viewports, etc. to be rendered.</p>
<p>Images can be grabbed automatically to disk for easy creation of videos. See <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a71d0697aff632b04ae8d73251ea73bd9" title="Start to save rendered images to disk.">CDisplayWindow3D::grabImagesStart</a> (and for creating videos, mrpt::utils::CVideoFileWriter).</p>
<p>Since the 3D rendering is performed in a detached thread, especial care must be taken when updating the 3D scene to be rendered. The process involves an internal critical section and it must always consist of these steps:</p>
<div class="fragment"><pre class="fragment">   <a class="code" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a9ddacd0940c481e3ce42751fc2a4dad1" title="Constructor.">CDisplayWindow3D</a>     win(<span class="stringliteral">&quot;My window&quot;</span>);

   <span class="comment">// Adquire the scene:</span>
   opengl::COpenGLScenePtr &amp;ptrScene = win.get3DSceneAndLock();

   <span class="comment">// Modify the scene:</span>
   ptrScene-&gt;...
   <span class="comment">// or replace by another scene:</span>
   ptrScene = otherScene;

   <span class="comment">// Unlock it, so the window can use it for redraw:</span>
   win.unlockAccess3DScene();

   <span class="comment">// Update window, if required</span>
   win.forceRepaint();
</pre></div><p>An alternative way of updating the scene is by creating, before locking the 3D window, a new object of class COpenGLScene, then locking the window only for replacing the smart pointer. This may be advantageous is generating the 3D scene takes a long time, since while the window is locked it will not be responsive to the user input or window redraw.</p>
<p>The window can also display a set of 2D text messages overlapped to the 3D scene. See CDisplayWindow3D::add2DTextMessage</p>
<p>For a list of supported events with the observer/observable pattern, see the discussion in <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html" title="The base class for GUI window classes.">mrpt::gui::CBaseGUIWindow</a>. In addition to those events, this class introduces <a class="el" href="classmrpt_1_1gui_1_1mrpt_event3_d_window_grab_image_file.html" title="An event sent by a CDisplayWindow3D window when an image is saved after enabling this feature with CD...">mrpt::gui::mrptEvent3DWindowGrabImageFile</a></p>
<dl class="see"><dt><b>See also:</b></dt><dd>The example /samples/display3D, the <a href="http://www.mrpt.org/Tutorial_3D_Scenes">tutorial only</a>. </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_display_window3_d_8h_source.html">mrpt/gui/CDisplayWindow3D.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::gui::CDisplayWindow3D:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1gui_1_1_c_display_window3_d__inherit__graph.png" border="0" usemap="#mrpt_1_1gui_1_1_c_display_window3_d_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1gui_1_1_c_display_window3_d_inherit__map" id="mrpt_1_1gui_1_1_c_display_window3_d_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html" title="The base class for GUI window classes." alt="" coords="63,80,255,107"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_object.html" title="The virtual base class of all MRPT classes with a unified RTTI system." alt="" coords="4,5,139,32"/><area shape="rect" id="node6" href="classmrpt_1_1utils_1_1_c_observable.html" title="Inherit from this class for those objects capable of being observed by a CObserver class..." alt="" coords="165,5,328,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1gui_1_1_c_display_window3_d-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a9ddacd0940c481e3ce42751fc2a4dad1">CDisplayWindow3D</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;windowCaption=<a class="el" href="classstd_1_1string.html">std::string</a>(), unsigned int initialWindowWidth=400, unsigned int initialWindowHeight=300)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a9ddacd0940c481e3ce42751fc2a4dad1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a9a0dfe4f5182ead9cf445c294974d53e">~CDisplayWindow3D</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a9a0dfe4f5182ead9cf445c294974d53e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1opengl_1_1_c_open_g_l_scene_ptr.html">opengl::COpenGLScenePtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#aabdf239ab06f278a6c323bdd718d34c1">get3DSceneAndLock</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a reference to the smart shared pointer that holds the internal scene (carefuly read introduction in <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html" title="A graphical user interface (GUI) for efficiently rendering 3D scenes in real-time.">gui::CDisplayWindow3D</a> before use!) This also locks the critical section for accesing the scene, thus the window will not be repainted until it is unlocked.  <a href="#aabdf239ab06f278a6c323bdd718d34c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a3bf55967847c5e443aa3a5cfad112faf">unlockAccess3DScene</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlocks the access to the internal 3D scene.  <a href="#a3bf55967847c5e443aa3a5cfad112faf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a28291163d380f8a50ff78612a309c033">forceRepaint</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repaints the window.  <a href="#a28291163d380f8a50ff78612a309c033"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ad7f8e4c6a63a9a6508f987db05083de4">repaint</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repaints the window.  <a href="#ad7f8e4c6a63a9a6508f987db05083de4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a23d25bf3228caf6480ffbafb602504be">updateWindow</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repaints the window.  <a href="#a23d25bf3228caf6480ffbafb602504be"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#abf4235fe6f2b6c758ecf49e9e255a166">getFOV</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the camera field of view (in degrees) (used for gluPerspective).  <a href="#abf4235fe6f2b6c758ecf49e9e255a166"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ad7ecaf7c2be57d487ee32af719ee3c8c">setMinRange</a> (float v)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the camera min range (z) (used for gluPerspective).  <a href="#ad7ecaf7c2be57d487ee32af719ee3c8c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#accdb7b6b28f53b9a7fbfe6cb76594a1c">setMaxRange</a> (float v)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the camera max range (z) (used for gluPerspective).  <a href="#accdb7b6b28f53b9a7fbfe6cb76594a1c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ac5ad9ed8cabf9bde9789ec361eec9460">setFOV</a> (float v)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the camera field of view (in degrees) (used for gluPerspective).  <a href="#ac5ad9ed8cabf9bde9789ec361eec9460"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a7cb75d72eb8bdd63efc5cfcc01088a9e">resize</a> (unsigned int width, unsigned int height)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes the window, stretching the image to fit into the display area.  <a href="#a7cb75d72eb8bdd63efc5cfcc01088a9e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a5f599349398ff81d23c17f6761e128ec">setPos</a> (int x, int y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the position of the window on the screen.  <a href="#a5f599349398ff81d23c17f6761e128ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a6cf8464ef574611ca952804b9e81529a">setWindowTitle</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the window title.  <a href="#a6cf8464ef574611ca952804b9e81529a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a6790d5a4d35b452dbfd95b4205cd0c40">setCameraElevationDeg</a> (float deg)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the camera parameters programatically.  <a href="#a6790d5a4d35b452dbfd95b4205cd0c40"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a1866bac46cf1b8930ea97220d9b46475">setCameraAzimuthDeg</a> (float deg)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the camera parameters programatically.  <a href="#a1866bac46cf1b8930ea97220d9b46475"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a7c8465b65263b919a1bb33530818207e">setCameraPointingToPoint</a> (float x, float y, float z)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the camera parameters programatically.  <a href="#a7c8465b65263b919a1bb33530818207e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a0dbcb19beb056ab59435e3f177127f13">setCameraZoom</a> (float zoom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the camera parameters programatically.  <a href="#a0dbcb19beb056ab59435e3f177127f13"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ab6edc4b4aa4b109a275653b156264228">setCameraProjective</a> (bool isProjective)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the camera as projective, or orthogonal.  <a href="#ab6edc4b4aa4b109a275653b156264228"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ab7998b2140743e386b581b2719457999">getCameraElevationDeg</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get camera parameters programatically.  <a href="#ab7998b2140743e386b581b2719457999"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#aac421bc2718aefc1d3f0a06c48b6483e">getCameraAzimuthDeg</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get camera parameters programatically.  <a href="#aac421bc2718aefc1d3f0a06c48b6483e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a1344dfc06c4229ad91dd3bbe253ba3d6">getCameraPointingToPoint</a> (float &amp;x, float &amp;y, float &amp;z) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get camera parameters programatically.  <a href="#a1344dfc06c4229ad91dd3bbe253ba3d6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a44e8fcab684b6568f814cb483d011c81">getCameraZoom</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get camera parameters programatically.  <a href="#a44e8fcab684b6568f814cb483d011c81"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#abf150744c262be8b9810546da0fa45b4">isCameraProjective</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the camera as projective, or orthogonal.  <a href="#abf150744c262be8b9810546da0fa45b4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a523804003758a7d8ba8efd95e1d0ebe7">useCameraFromScene</a> (bool useIt=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to true (default = false), the mouse-based scene navigation will be disabled and the camera position will be determined by the opengl viewports in the 3D scene.  <a href="#a523804003758a7d8ba8efd95e1d0ebe7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a9f477fb7818561749ac045673512b428">getLastMousePositionRay</a> (<a class="el" href="structmrpt_1_1math_1_1_t_line3_d.html">mrpt::math::TLine3D</a> &amp;ray) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the 3D ray for the direction line of the pixel where the mouse cursor is at.  <a href="#a9f477fb7818561749ac045673512b428"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ad6870ed19744cc81242afdc8d9f0a4c0">getLastMousePosition</a> (int &amp;x, int &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the last x,y pixel coordinates of the mouse.  <a href="#ad6870ed19744cc81242afdc8d9f0a4c0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a709b4e6367aeaa2b311d368f1fa34eea">setCursorCross</a> (bool cursorIsCross)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set cursor style to default (cursorIsCross=false) or to a cross (cursorIsCross=true)  <a href="#a709b4e6367aeaa2b311d368f1fa34eea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a71d0697aff632b04ae8d73251ea73bd9">grabImagesStart</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;grab_imgs_prefix=<a class="el" href="classstd_1_1string.html">std::string</a>(&quot;video_&quot;))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Start to save rendered images to disk.  <a href="#a71d0697aff632b04ae8d73251ea73bd9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ab73abf00607e05543845aa19a325fb2f">grabImagesStop</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops image grabbing started by grabImagesStart.  <a href="#ab73abf00607e05543845aa19a325fb2f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a8dd06a361527d2f8e3617ec848bb7587">captureImagesStart</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the grabbing of CImage objects from screenshots of the window.  <a href="#a8dd06a361527d2f8e3617ec848bb7587"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a92f0255b20f0c247198f50e0372ff113">captureImagesStop</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop image grabbing.  <a href="#a92f0255b20f0c247198f50e0372ff113"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a123b17324c18342adfb94b861e594cc1">getLastWindowImage</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">mrpt::utils::CImage</a> &amp;out_img) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the last captured image from the window.  <a href="#a123b17324c18342adfb94b861e594cc1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1utils_1_1_c_image_ptr.html">mrpt::utils::CImagePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#afc2290ea4dc79a70a207832a04670259">getLastWindowImagePtr</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the last captured image from the window, as a smart pointer.  <a href="#afc2290ea4dc79a70a207832a04670259"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a492e59cabaaacd41418f80bb33988604">grabImageGetNextFile</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Increments by one the image counter and return the next image file name (Users normally don't want to call this method).  <a href="#a492e59cabaaacd41418f80bb33988604"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#abb152d83dceb9e581a7b870c3bd6d85f">isCapturingImgs</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ac5665826075d8cee4e7e23259cbfa1bd">addTextMessage</a> (const double x, const double y, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;text, const <a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a> &amp;color=<a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a>(1.0, 1.0, 1.0), const size_t unique_index=0, const <a class="el" href="group__mrpt__opengl__grp.html#ga4e54252970d0b0a6dd251335064a2346">TOpenGLFont</a> font=MRPT_GLUT_BITMAP_TIMES_ROMAN_24)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add 2D text messages overlapped to the 3D rendered scene.  <a href="#ac5665826075d8cee4e7e23259cbfa1bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#af097208ab76a196919cfb297d0398d8a">addTextMessage</a> (const double x_frac, const double y_frac, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;text, const <a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a> &amp;color, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;font_name, const double font_size, const <a class="el" href="namespacemrpt_1_1opengl.html#a2a3950732480ac3cffe2c391a45fb4ef">mrpt::opengl::TOpenGLFontStyle</a> font_style=mrpt::opengl::NICE, const size_t unique_index=0, const double font_spacing=1.5, const double font_kerning=0.1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a6c638277b9e5916bb1d84e27b5b13f81">clearTextMessages</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all text messages created with <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ac5665826075d8cee4e7e23259cbfa1bd" title="Add 2D text messages overlapped to the 3D rendered scene.">addTextMessage()</a>.  <a href="#a6c638277b9e5916bb1d84e27b5b13f81"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#afd69c044e6364fc3341dfa3abd3930b5">getRenderingFPS</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the average Frames Per Second (FPS) value from the last 250 rendering events.  <a href="#afd69c044e6364fc3341dfa3abd3930b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a5093996f5b658744cad949d8ed541a5e">getWxObject</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read-only access to the wxDialog object.  <a href="#a5093996f5b658744cad949d8ed541a5e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a1e0f2b9fd235028827d9d7914887ce0f">notifyChildWindowDestruction</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by wx main thread to set m_hwnd to NULL.  <a href="#a1e0f2b9fd235028827d9d7914887ce0f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#aea8d92b2da808705a1c2bc78f1b994cf">notifySemThreadReady</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by wx main thread to signal the semaphore that the wx window is built and ready.  <a href="#aea8d92b2da808705a1c2bc78f1b994cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a55bc3a4360b03882516628a65050280c">isOpen</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns false if the user has already closed the window.  <a href="#a55bc3a4360b03882516628a65050280c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#ac3c1c14a30af0d92bb28d5c4930099f0">waitForKey</a> (bool ignoreControlKeys=true, <a class="el" href="namespacemrpt_1_1gui.html#a1957927b66a163637ab90d2bf3220e11">mrptKeyModifier</a> *out_pushModifier=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for any key to be pushed on the image or the console, and returns the key code.  <a href="#ac3c1c14a30af0d92bb28d5c4930099f0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a3efeaeb6155ab518c50e54568b7d9858">keyHit</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if a key has been pushed, without blocking waiting for a new key being pushed.  <a href="#a3efeaeb6155ab518c50e54568b7d9858"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a80f82740d0cc3b394fbcb7dbc26cd1a4">clearKeyHitFlag</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assure that "keyHit" will return false until the next pushed key.  <a href="#a80f82740d0cc3b394fbcb7dbc26cd1a4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a8f3aa3dff651d269f127165e084bd936">getPushedKey</a> (<a class="el" href="namespacemrpt_1_1gui.html#a1957927b66a163637ab90d2bf3220e11">mrptKeyModifier</a> *out_pushModifier=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the latest pushed key, or 0 if there is no new key stroke.  <a href="#a8f3aa3dff651d269f127165e084bd936"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object_ptr.html">mrpt::utils::CObjectPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a534695890364f4b916bba07dad311bcf">duplicateGetSmartPtr</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).  <a href="#a534695890364f4b916bba07dad311bcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a9ef7857a0b36059c078e195a0a65ac00">clone</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cloning interface for smart pointers.  <a href="#a9ef7857a0b36059c078e195a0a65ac00"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1gui_1_1_c_display_window3_d_ptr.html">CDisplayWindow3DPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a0962c316dedd404e09c260dfa99c1d84">Create</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;windowCaption=<a class="el" href="classstd_1_1string.html">std::string</a>(), unsigned int initialWindowWidth=400, unsigned int initialWindowHeight=300)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class factory returning a smart pointer.  <a href="#a0962c316dedd404e09c260dfa99c1d84"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">classCObject</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#abf41aada31d381a14a80d6033bb6e8e0">createOpenGLContext</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Throws an exception on initialization error.  <a href="#abf41aada31d381a14a80d6033bb6e8e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a222bd6b3dfc9557a9c2361affe65bbf1">doRender</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#aa0b5275c8095b9b6b5a54820d1744032">internalSetMinMaxRange</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a58a5261bc4b82d1146c2de25d1585900">internal_setRenderingFPS</a> (double FPS)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the rendering FPS (users don't call this, the method is for internal MRPT objects only)  <a href="#a58a5261bc4b82d1146c2de25d1585900"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a56ffecf9e00f269d9acd6d92fb2fa708">internal_emitGrabImageEvent</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;fil)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">called by CMyGLCanvas_DisplayWindow3D::OnPostRenderSwapBuffers  <a href="#a56ffecf9e00f269d9acd6d92fb2fa708"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#af0376c6ced9aab68c9b3c0c5be32e167">createWxWindow</a> (unsigned int initialWidth, unsigned int initialHeight)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Must be called by child classes just within the constructor.  <a href="#af0376c6ced9aab68c9b3c0c5be32e167"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#adfb7b5a646301cad462f3c42ed6071b5">destroyWxWindow</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Must be called by child classes in their destructors. The code cannot be put into this class' destructor.  <a href="#adfb7b5a646301cad462f3c42ed6071b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observable.html#a0c384e00c06199bc2ff37ff5ecb520c9">publishEvent</a> (const <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html">mrptEvent</a> &amp;e) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when you want this object to emit an event to all the observers currently subscribed to this object.  <a href="#a0c384e00c06199bc2ff37ff5ecb520c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observable.html#a1c1e8c7d0d184ccdaa7d5a0ee5184e1e">hasSubscribers</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be called by a derived class before preparing an event for publishing with <em>publishEvent</em> to determine if there is no one subscribed, so it can save the wasted time preparing an event that will be not read.  <a href="#a1c1e8c7d0d184ccdaa7d5a0ee5184e1e"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a991d65a488fb4e18eda85b415ec616ad">m_FOV</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1opengl_1_1_c_open_g_l_scene_ptr.html">opengl::COpenGLScenePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a68b6c5505a99e263001f0a541bd5d360">m_3Dscene</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal OpenGL object (see general discussion in about usage of this object)  <a href="#a68b6c5505a99e263001f0a541bd5d360"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">synch::CCriticalSection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a85ed58091d40a3a381a9d4f92c1ca9e8">m_csAccess3DScene</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Critical section for accesing m_3Dscene.  <a href="#a85ed58091d40a3a381a9d4f92c1ca9e8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1utils.html#ac3912bceb5e2a4662830ec51584d134b">void_ptr_noncopy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ac1b838528ac1483cc6ddbc6db22d1a03">m_DisplayDeviceContext</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1utils.html#ac3912bceb5e2a4662830ec51584d134b">void_ptr_noncopy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a416d3d265b7661fdda37fd4165d30138">m_GLRenderingContext</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a8ccfc144c2b27b74beb40dddbb60eeb0">m_grab_imgs_prefix</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a2fa49c7fdd4fc6d0ffe492ec207c214b">m_grab_imgs_idx</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ae4bc81ff03353bd2ed307eeb915f35c7">m_is_capturing_imgs</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1utils_1_1_c_image_ptr.html">CImagePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a721f49a3b7b164868965e18810b55bc7">m_last_captured_img</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">synch::CCriticalSection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#aa561e6d4d8b641c0159f9cf970b2a737">m_last_captured_img_cs</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ad227235bebd10d250a73c0e6707e3856">m_lastFullScreen</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#aa655c746d5fbebaf414805e2f43f849d">m_last_FPS</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1synch_1_1_c_semaphore.html">synch::CSemaphore</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#ab6436ed238c7c83c5c7683342eeb2949">m_semThreadReady</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This semaphore will be signaled when the wx window is built and ready.  <a href="#ab6436ed238c7c83c5c7683342eeb2949"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1synch_1_1_c_semaphore.html">synch::CSemaphore</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a7184a4e0fd8ddb22c4759d02434cda8d">m_semWindowDestroyed</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This semaphore will be signaled when the wx window is destroyed.  <a href="#a7184a4e0fd8ddb22c4759d02434cda8d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a207639d38e14fbc7c6e85b479c7b9051">m_caption</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The caption of the window.  <a href="#a207639d38e14fbc7c6e85b479c7b9051"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1utils.html#ac3912bceb5e2a4662830ec51584d134b">void_ptr_noncopy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a2dd4af8ac076bd4f893025eb1d98bf7b">m_hwnd</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The window handle.  <a href="#a2dd4af8ac076bd4f893025eb1d98bf7b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">volatile bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#ada8b99456263a89ffce9ca28e3f3c102">m_keyPushed</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">volatile int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a92fb3fbae072d0387e72fc8e5fa409ac">m_keyPushedCode</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="namespacemrpt_1_1gui.html#a1957927b66a163637ab90d2bf3220e11">mrptKeyModifier</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#aa181ad72efea9497dbbaa13020afa5c4">m_keyPushedModifier</a></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#af363eff8a66db772f89467af51a862bb">C3DWindowDialog</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a4bf71221b5cfa6c266d84d73b8a732e9">CMyGLCanvas_DisplayWindow3D</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a0a4caba1199fdb1b990d4f1dd5abedf6">CWindowDialog</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a0eab80c3eb0251b2f663e3d0e010573e">CWindowDialogPlots</a></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#acc47d68903ba7394adf6b6743a94a6fe">classCBaseGUIWindow</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::utils::CStream</a></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmrpt_1_1gui_1_1_c_display_window3_d_ptr.html">CDisplayWindow3DPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#aa9adecc5e844d81664b85845ded2bb1a">SmartPtr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_c_l_a_s_s_i_n_i_t.html">mrpt::utils::CLASSINIT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a4816f77c34b3da354309f70f4176aabc">_init_CDisplayWindow3D</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a2330d060a127e70d5b851ce8d60c1151">classCDisplayWindow3D</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a92d9d7782ed110adc2ea29b9f846cb30">classinfo</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a9ca1ae1d30462bd9a458e82c1b0f47a9">_GetBaseClass</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a2439965870e85e0a3453630305038a14">GetRuntimeClass</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns information about the class of an object in runtime.  <a href="#a2439965870e85e0a3453630305038a14"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#af1330a1e443ddb156f55966a204404d3">duplicate</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class.  <a href="#af1330a1e443ddb156f55966a204404d3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a3ef6f7b5ad61c11921819538582f4844">CreateObject</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1gui_1_1_c_display_window3_d_ptr.html">CDisplayWindow3DPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ad216360ac7fb1a990c57fdca44810c37">Create</a> ()</td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="aa9adecc5e844d81664b85845ded2bb1a"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::SmartPtr" ref="aa9adecc5e844d81664b85845ded2bb1a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmrpt_1_1gui_1_1_c_display_window3_d_ptr.html">CDisplayWindow3DPtr</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#aa9adecc5e844d81664b85845ded2bb1a">mrpt::gui::CDisplayWindow3D::SmartPtr</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A typedef for the associated smart pointer </p>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00098">98</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a9ddacd0940c481e3ce42751fc2a4dad1"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::CDisplayWindow3D" ref="a9ddacd0940c481e3ce42751fc2a4dad1" args="(const std::string &amp;windowCaption=std::string(), unsigned int initialWindowWidth=400, unsigned int initialWindowHeight=300)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::gui::CDisplayWindow3D::CDisplayWindow3D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>windowCaption</em> = <code><a class="el" href="classstd_1_1string.html">std::string</a>()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>initialWindowWidth</em> = <code>400</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>initialWindowHeight</em> = <code>300</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>

</div>
</div>
<a class="anchor" id="a9a0dfe4f5182ead9cf445c294974d53e"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::~CDisplayWindow3D" ref="a9a0dfe4f5182ead9cf445c294974d53e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::gui::CDisplayWindow3D::~CDisplayWindow3D </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a9ca1ae1d30462bd9a458e82c1b0f47a9"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::_GetBaseClass" ref="a9ca1ae1d30462bd9a458e82c1b0f47a9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* mrpt::gui::CDisplayWindow3D::_GetBaseClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a333e2717ff37f546a049e8613e5476c7">mrpt::gui::CBaseGUIWindow</a>.</p>

</div>
</div>
<a class="anchor" id="ac5665826075d8cee4e7e23259cbfa1bd"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::addTextMessage" ref="ac5665826075d8cee4e7e23259cbfa1bd" args="(const double x, const double y, const std::string &amp;text, const mrpt::utils::TColorf &amp;color=mrpt::utils::TColorf(1.0, 1.0, 1.0), const size_t unique_index=0, const TOpenGLFont font=MRPT_GLUT_BITMAP_TIMES_ROMAN_24)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::addTextMessage </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a> &amp;&#160;</td>
          <td class="paramname"><em>color</em> = <code><a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a>(1.0,&#160;1.0,&#160;1.0)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>unique_index</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__mrpt__opengl__grp.html#ga4e54252970d0b0a6dd251335064a2346">TOpenGLFont</a>&#160;</td>
          <td class="paramname"><em>font</em> = <code>MRPT_GLUT_BITMAP_TIMES_ROMAN_24</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add 2D text messages overlapped to the 3D rendered scene. </p>
<p>The string will remain displayed in the 3D window until it's changed with subsequent calls to this same method, or all the texts are cleared with <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a6c638277b9e5916bb1d84e27b5b13f81" title="Clear all text messages created with addTextMessage().">clearTextMessages()</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>The X position, interpreted as absolute pixels from the left if X&gt;=1, absolute pixels from the left if X&lt;0 or as a width factor if in the range [0,1[. </td></tr>
    <tr><td class="paramname">y</td><td>The Y position, interpreted as absolute pixels from the bottom if Y&gt;=1, absolute pixels from the top if Y&lt;0 or as a height factor if in the range [0,1[. </td></tr>
    <tr><td class="paramname">text</td><td>The text string to display. </td></tr>
    <tr><td class="paramname">color</td><td>The text color. For example: TColorf(1.0,1.0,1.0) </td></tr>
    <tr><td class="paramname">unique_index</td><td>An "index" for this text message, so that subsequent calls with the same index will overwrite this text message instead of creating new ones.</td></tr>
  </table>
  </dd>
</dl>
<p>You'll need to refresh the display manually with <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a28291163d380f8a50ff78612a309c033" title="Repaints the window.">forceRepaint()</a>.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a6c638277b9e5916bb1d84e27b5b13f81" title="Clear all text messages created with addTextMessage().">clearTextMessages</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af097208ab76a196919cfb297d0398d8a"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::addTextMessage" ref="af097208ab76a196919cfb297d0398d8a" args="(const double x_frac, const double y_frac, const std::string &amp;text, const mrpt::utils::TColorf &amp;color, const std::string &amp;font_name, const double font_size, const mrpt::opengl::TOpenGLFontStyle font_style=mrpt::opengl::NICE, const size_t unique_index=0, const double font_spacing=1.5, const double font_kerning=0.1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::addTextMessage </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>x_frac</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>y_frac</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a> &amp;&#160;</td>
          <td class="paramname"><em>color</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>font_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>font_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1opengl.html#a2a3950732480ac3cffe2c391a45fb4ef">mrpt::opengl::TOpenGLFontStyle</a>&#160;</td>
          <td class="paramname"><em>font_style</em> = <code>mrpt::opengl::NICE</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>unique_index</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>font_spacing</em> = <code>1.5</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>font_kerning</em> = <code>0.1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a class="anchor" id="a8dd06a361527d2f8e3617ec848bb7587"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::captureImagesStart" ref="a8dd06a361527d2f8e3617ec848bb7587" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::captureImagesStart </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enables the grabbing of CImage objects from screenshots of the window. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a123b17324c18342adfb94b861e594cc1" title="Retrieve the last captured image from the window.">getLastWindowImage</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a92f0255b20f0c247198f50e0372ff113"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::captureImagesStop" ref="a92f0255b20f0c247198f50e0372ff113" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::captureImagesStop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Stop image grabbing. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a8dd06a361527d2f8e3617ec848bb7587" title="Enables the grabbing of CImage objects from screenshots of the window.">captureImagesStart</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a80f82740d0cc3b394fbcb7dbc26cd1a4"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::clearKeyHitFlag" ref="a80f82740d0cc3b394fbcb7dbc26cd1a4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CBaseGUIWindow::clearKeyHitFlag </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assure that "keyHit" will return false until the next pushed key. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a3efeaeb6155ab518c50e54568b7d9858" title="Returns true if a key has been pushed, without blocking waiting for a new key being pushed...">keyHit</a>, <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#ac3c1c14a30af0d92bb28d5c4930099f0" title="Waits for any key to be pushed on the image or the console, and returns the key code.">waitForKey</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00149">149</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6c638277b9e5916bb1d84e27b5b13f81"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::clearTextMessages" ref="a6c638277b9e5916bb1d84e27b5b13f81" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::clearTextMessages </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clear all text messages created with <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ac5665826075d8cee4e7e23259cbfa1bd" title="Add 2D text messages overlapped to the 3D rendered scene.">addTextMessage()</a>. </p>
<p>You'll need to refresh the display manually with <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a28291163d380f8a50ff78612a309c033" title="Repaints the window.">forceRepaint()</a>. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ac5665826075d8cee4e7e23259cbfa1bd" title="Add 2D text messages overlapped to the 3D rendered scene.">addTextMessage</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a9ef7857a0b36059c078e195a0a65ac00"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::clone" ref="a9ef7857a0b36059c078e195a0a65ac00" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a>* mrpt::utils::CObject::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cloning interface for smart pointers. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable.html#acb2597d6d93b406501d9f3530eb56adf">mrpt::opengl::CRenderizable</a>, and <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable_display_list.html#ac164cb1d2cf682778ce52967cbd56469">mrpt::opengl::CRenderizableDisplayList</a>.</p>

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00154">154</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad216360ac7fb1a990c57fdca44810c37"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::Create" ref="ad216360ac7fb1a990c57fdca44810c37" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structmrpt_1_1gui_1_1_c_display_window3_d_ptr.html">CDisplayWindow3DPtr</a> mrpt::gui::CDisplayWindow3D::Create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0962c316dedd404e09c260dfa99c1d84"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::Create" ref="a0962c316dedd404e09c260dfa99c1d84" args="(const std::string &amp;windowCaption=std::string(), unsigned int initialWindowWidth=400, unsigned int initialWindowHeight=300)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structmrpt_1_1gui_1_1_c_display_window3_d_ptr.html">CDisplayWindow3DPtr</a> mrpt::gui::CDisplayWindow3D::Create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>windowCaption</em> = <code><a class="el" href="classstd_1_1string.html">std::string</a>()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>initialWindowWidth</em> = <code>400</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>initialWindowHeight</em> = <code>300</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Class factory returning a smart pointer. </p>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00147">147</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3ef6f7b5ad61c11921819538582f4844"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::CreateObject" ref="a3ef6f7b5ad61c11921819538582f4844" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a>* mrpt::gui::CDisplayWindow3D::CreateObject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abf41aada31d381a14a80d6033bb6e8e0"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::createOpenGLContext" ref="abf41aada31d381a14a80d6033bb6e8e0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::createOpenGLContext </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Throws an exception on initialization error. </p>

</div>
</div>
<a class="anchor" id="af0376c6ced9aab68c9b3c0c5be32e167"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::createWxWindow" ref="af0376c6ced9aab68c9b3c0c5be32e167" args="(unsigned int initialWidth, unsigned int initialHeight)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CBaseGUIWindow::createWxWindow </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>initialWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>initialHeight</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Must be called by child classes just within the constructor. </p>

</div>
</div>
<a class="anchor" id="adfb7b5a646301cad462f3c42ed6071b5"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::destroyWxWindow" ref="adfb7b5a646301cad462f3c42ed6071b5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CBaseGUIWindow::destroyWxWindow </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Must be called by child classes in their destructors. The code cannot be put into this class' destructor. </p>

</div>
</div>
<a class="anchor" id="a222bd6b3dfc9557a9c2361affe65bbf1"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::doRender" ref="a222bd6b3dfc9557a9c2361affe65bbf1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::doRender </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af1330a1e443ddb156f55966a204404d3"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::duplicate" ref="af1330a1e443ddb156f55966a204404d3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a>* mrpt::gui::CDisplayWindow3D::duplicate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the object, indepently of its class. </p>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_c_object.html#aa1070e173c5f7e307b09c53f1fd256e2">mrpt::utils::CObject</a>.</p>

</div>
</div>
<a class="anchor" id="a534695890364f4b916bba07dad311bcf"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::duplicateGetSmartPtr" ref="a534695890364f4b916bba07dad311bcf" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_object_ptr.html">mrpt::utils::CObjectPtr</a> mrpt::utils::CObject::duplicateGetSmartPtr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer). </p>

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00151">151</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="a28291163d380f8a50ff78612a309c033"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::forceRepaint" ref="a28291163d380f8a50ff78612a309c033" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::forceRepaint </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Repaints the window. </p>
<p>forceRepaint, repaint and updateWindow are all aliases of the same method. </p>

</div>
</div>
<a class="anchor" id="aabdf239ab06f278a6c323bdd718d34c1"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::get3DSceneAndLock" ref="aabdf239ab06f278a6c323bdd718d34c1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1opengl_1_1_c_open_g_l_scene_ptr.html">opengl::COpenGLScenePtr</a>&amp; mrpt::gui::CDisplayWindow3D::get3DSceneAndLock </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets a reference to the smart shared pointer that holds the internal scene (carefuly read introduction in <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html" title="A graphical user interface (GUI) for efficiently rendering 3D scenes in real-time.">gui::CDisplayWindow3D</a> before use!) This also locks the critical section for accesing the scene, thus the window will not be repainted until it is unlocked. </p>

</div>
</div>
<a class="anchor" id="aac421bc2718aefc1d3f0a06c48b6483e"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getCameraAzimuthDeg" ref="aac421bc2718aefc1d3f0a06c48b6483e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::gui::CDisplayWindow3D::getCameraAzimuthDeg </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get camera parameters programatically. </p>

</div>
</div>
<a class="anchor" id="ab7998b2140743e386b581b2719457999"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getCameraElevationDeg" ref="ab7998b2140743e386b581b2719457999" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::gui::CDisplayWindow3D::getCameraElevationDeg </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get camera parameters programatically. </p>

</div>
</div>
<a class="anchor" id="a1344dfc06c4229ad91dd3bbe253ba3d6"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getCameraPointingToPoint" ref="a1344dfc06c4229ad91dd3bbe253ba3d6" args="(float &amp;x, float &amp;y, float &amp;z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::getCameraPointingToPoint </td>
          <td>(</td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get camera parameters programatically. </p>

</div>
</div>
<a class="anchor" id="a44e8fcab684b6568f814cb483d011c81"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getCameraZoom" ref="a44e8fcab684b6568f814cb483d011c81" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::gui::CDisplayWindow3D::getCameraZoom </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get camera parameters programatically. </p>

</div>
</div>
<a class="anchor" id="abf4235fe6f2b6c758ecf49e9e255a166"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getFOV" ref="abf4235fe6f2b6c758ecf49e9e255a166" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::gui::CDisplayWindow3D::getFOV </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the camera field of view (in degrees) (used for gluPerspective). </p>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00186">186</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad6870ed19744cc81242afdc8d9f0a4c0"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getLastMousePosition" ref="ad6870ed19744cc81242afdc8d9f0a4c0" args="(int &amp;x, int &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool mrpt::gui::CDisplayWindow3D::getLastMousePosition </td>
          <td>(</td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the last x,y pixel coordinates of the mouse. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>False if the window is closed. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a9f477fb7818561749ac045673512b428" title="Gets the 3D ray for the direction line of the pixel where the mouse cursor is at.">getLastMousePositionRay</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a19cec74df8767823690cc5e3ee54b5d5">mrpt::gui::CBaseGUIWindow</a>.</p>

</div>
</div>
<a class="anchor" id="a9f477fb7818561749ac045673512b428"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getLastMousePositionRay" ref="a9f477fb7818561749ac045673512b428" args="(mrpt::math::TLine3D &amp;ray) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::gui::CDisplayWindow3D::getLastMousePositionRay </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_line3_d.html">mrpt::math::TLine3D</a> &amp;&#160;</td>
          <td class="paramname"><em>ray</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the 3D ray for the direction line of the pixel where the mouse cursor is at. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>False if the window is closed. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ad6870ed19744cc81242afdc8d9f0a4c0" title="Gets the last x,y pixel coordinates of the mouse.">getLastMousePosition</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a123b17324c18342adfb94b861e594cc1"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getLastWindowImage" ref="a123b17324c18342adfb94b861e594cc1" args="(mrpt::utils::CImage &amp;out_img) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::getLastWindowImage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">mrpt::utils::CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>out_img</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the last captured image from the window. </p>
<p>You MUST CALL FIRST captureImagesStart to enable image grabbing. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a8dd06a361527d2f8e3617ec848bb7587" title="Enables the grabbing of CImage objects from screenshots of the window.">captureImagesStart</a>, <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#afc2290ea4dc79a70a207832a04670259" title="Retrieve the last captured image from the window, as a smart pointer.">getLastWindowImagePtr</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afc2290ea4dc79a70a207832a04670259"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getLastWindowImagePtr" ref="afc2290ea4dc79a70a207832a04670259" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_c_image_ptr.html">mrpt::utils::CImagePtr</a> mrpt::gui::CDisplayWindow3D::getLastWindowImagePtr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the last captured image from the window, as a smart pointer. </p>
<p>This method is more efficient than getLastWindowImage since only a copy of the pointer is performed, while getLastWindowImage would copy the entire image.</p>
<p>You MUST CALL FIRST captureImagesStart to enable image grabbing. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a8dd06a361527d2f8e3617ec848bb7587" title="Enables the grabbing of CImage objects from screenshots of the window.">captureImagesStart</a>, <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a123b17324c18342adfb94b861e594cc1" title="Retrieve the last captured image from the window.">getLastWindowImage</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8f3aa3dff651d269f127165e084bd936"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getPushedKey" ref="a8f3aa3dff651d269f127165e084bd936" args="(mrptKeyModifier *out_pushModifier=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::gui::CBaseGUIWindow::getPushedKey </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1gui.html#a1957927b66a163637ab90d2bf3220e11">mrptKeyModifier</a> *&#160;</td>
          <td class="paramname"><em>out_pushModifier</em> = <code>NULL</code></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the latest pushed key, or 0 if there is no new key stroke. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">out_pushModifier</td><td>If set to !=NULL, the modifiers of the key stroke will be saved here. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The virtual key code, as defined in &lt;<a class="el" href="keycodes_8h.html">mrpt/gui/keycodes.h</a>&gt; (a replication of wxWidgets key codes).</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a3efeaeb6155ab518c50e54568b7d9858" title="Returns true if a key has been pushed, without blocking waiting for a new key being pushed...">keyHit</a>, <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#ac3c1c14a30af0d92bb28d5c4930099f0" title="Waits for any key to be pushed on the image or the console, and returns the key code.">waitForKey</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afd69c044e6364fc3341dfa3abd3930b5"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getRenderingFPS" ref="afd69c044e6364fc3341dfa3abd3930b5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::gui::CDisplayWindow3D::getRenderingFPS </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the average Frames Per Second (FPS) value from the last 250 rendering events. </p>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00358">358</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2439965870e85e0a3453630305038a14"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::GetRuntimeClass" ref="a2439965870e85e0a3453630305038a14" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* mrpt::gui::CDisplayWindow3D::GetRuntimeClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns information about the class of an object in runtime. </p>

<p>Reimplemented from <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a64eac7fe898e5cd0395cfe251c903777">mrpt::gui::CBaseGUIWindow</a>.</p>

</div>
</div>
<a class="anchor" id="a5093996f5b658744cad949d8ed541a5e"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::getWxObject" ref="a5093996f5b658744cad949d8ed541a5e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* mrpt::gui::CBaseGUIWindow::getWxObject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read-only access to the wxDialog object. </p>

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00097">97</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

<p>References <a class="el" href="safe__pointers_8h_source.html#l00129">mrpt::utils::non_copiable_ptr_basic::get()</a>.</p>

</div>
</div>
<a class="anchor" id="a492e59cabaaacd41418f80bb33988604"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::grabImageGetNextFile" ref="a492e59cabaaacd41418f80bb33988604" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> mrpt::gui::CDisplayWindow3D::grabImageGetNextFile </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Increments by one the image counter and return the next image file name (Users normally don't want to call this method). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a71d0697aff632b04ae8d73251ea73bd9" title="Start to save rendered images to disk.">grabImagesStart</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a71d0697aff632b04ae8d73251ea73bd9"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::grabImagesStart" ref="a71d0697aff632b04ae8d73251ea73bd9" args="(const std::string &amp;grab_imgs_prefix=std::string(&quot;video_&quot;))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::grabImagesStart </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>grab_imgs_prefix</em> = <code><a class="el" href="classstd_1_1string.html">std::string</a>(&quot;video_&quot;)</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Start to save rendered images to disk. </p>
<p>Images will be saved independently as png files, depending on the template path passed to this method. For example:</p>
<p>path_prefix: "./video_"</p>
<p>Will generate "./video_000001.png", etc.</p>
<p>If this feature is enabled, the window will emit events of the type mrpt::gui::mrptEvent3DWindowGrabImageFile() which you can subscribe to.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ab73abf00607e05543845aa19a325fb2f" title="Stops image grabbing started by grabImagesStart.">grabImagesStop</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab73abf00607e05543845aa19a325fb2f"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::grabImagesStop" ref="ab73abf00607e05543845aa19a325fb2f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::grabImagesStop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Stops image grabbing started by grabImagesStart. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a71d0697aff632b04ae8d73251ea73bd9" title="Start to save rendered images to disk.">grabImagesStart</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a1c1e8c7d0d184ccdaa7d5a0ee5184e1e"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::hasSubscribers" ref="a1c1e8c7d0d184ccdaa7d5a0ee5184e1e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::utils::CObservable::hasSubscribers </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Can be called by a derived class before preparing an event for publishing with <em>publishEvent</em> to determine if there is no one subscribed, so it can save the wasted time preparing an event that will be not read. </p>

<p>Definition at line <a class="el" href="_c_observable_8h_source.html#l00069">69</a> of file <a class="el" href="_c_observable_8h_source.html">CObservable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a56ffecf9e00f269d9acd6d92fb2fa708"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::internal_emitGrabImageEvent" ref="a56ffecf9e00f269d9acd6d92fb2fa708" args="(const std::string &amp;fil)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::internal_emitGrabImageEvent </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>fil</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>called by CMyGLCanvas_DisplayWindow3D::OnPostRenderSwapBuffers </p>

</div>
</div>
<a class="anchor" id="a58a5261bc4b82d1146c2de25d1585900"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::internal_setRenderingFPS" ref="a58a5261bc4b82d1146c2de25d1585900" args="(double FPS)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::internal_setRenderingFPS </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>FPS</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the rendering FPS (users don't call this, the method is for internal MRPT objects only) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#afd69c044e6364fc3341dfa3abd3930b5" title="Get the average Frames Per Second (FPS) value from the last 250 rendering events.">getRenderingFPS</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aa0b5275c8095b9b6b5a54820d1744032"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::internalSetMinMaxRange" ref="aa0b5275c8095b9b6b5a54820d1744032" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::internalSetMinMaxRange </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abf150744c262be8b9810546da0fa45b4"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::isCameraProjective" ref="abf150744c262be8b9810546da0fa45b4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::gui::CDisplayWindow3D::isCameraProjective </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the camera as projective, or orthogonal. </p>

</div>
</div>
<a class="anchor" id="abb152d83dceb9e581a7b870c3bd6d85f"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::isCapturingImgs" ref="abb152d83dceb9e581a7b870c3bd6d85f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::gui::CDisplayWindow3D::isCapturingImgs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00312">312</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a55bc3a4360b03882516628a65050280c"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::isOpen" ref="a55bc3a4360b03882516628a65050280c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::gui::CBaseGUIWindow::isOpen </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns false if the user has already closed the window. </p>

</div>
</div>
<a class="anchor" id="a3efeaeb6155ab518c50e54568b7d9858"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::keyHit" ref="a3efeaeb6155ab518c50e54568b7d9858" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::gui::CBaseGUIWindow::keyHit </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if a key has been pushed, without blocking waiting for a new key being pushed. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#ac3c1c14a30af0d92bb28d5c4930099f0" title="Waits for any key to be pushed on the image or the console, and returns the key code.">waitForKey</a>, <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a80f82740d0cc3b394fbcb7dbc26cd1a4" title="Assure that &quot;keyHit&quot; will return false until the next pushed key.">clearKeyHitFlag</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00144">144</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1e0f2b9fd235028827d9d7914887ce0f"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::notifyChildWindowDestruction" ref="a1e0f2b9fd235028827d9d7914887ce0f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CBaseGUIWindow::notifyChildWindowDestruction </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called by wx main thread to set m_hwnd to NULL. </p>

</div>
</div>
<a class="anchor" id="aea8d92b2da808705a1c2bc78f1b994cf"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::notifySemThreadReady" ref="aea8d92b2da808705a1c2bc78f1b994cf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CBaseGUIWindow::notifySemThreadReady </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called by wx main thread to signal the semaphore that the wx window is built and ready. </p>

</div>
</div>
<a class="anchor" id="a0c384e00c06199bc2ff37ff5ecb520c9"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::publishEvent" ref="a0c384e00c06199bc2ff37ff5ecb520c9" args="(const mrptEvent &amp;e) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CObservable::publishEvent </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html">mrptEvent</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td> const<code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called when you want this object to emit an event to all the observers currently subscribed to this object. </p>

</div>
</div>
<a class="anchor" id="ad7f8e4c6a63a9a6508f987db05083de4"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::repaint" ref="ad7f8e4c6a63a9a6508f987db05083de4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::repaint </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Repaints the window. </p>
<p>forceRepaint, repaint and updateWindow are all aliases of the same method. </p>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00177">177</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7cb75d72eb8bdd63efc5cfcc01088a9e"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::resize" ref="a7cb75d72eb8bdd63efc5cfcc01088a9e" args="(unsigned int width, unsigned int height)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::resize </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resizes the window, stretching the image to fit into the display area. </p>

<p>Implements <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a86463b010eb453b5fb6b45e024730f78">mrpt::gui::CBaseGUIWindow</a>.</p>

</div>
</div>
<a class="anchor" id="a1866bac46cf1b8930ea97220d9b46475"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setCameraAzimuthDeg" ref="a1866bac46cf1b8930ea97220d9b46475" args="(float deg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::setCameraAzimuthDeg </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>deg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the camera parameters programatically. </p>

</div>
</div>
<a class="anchor" id="a6790d5a4d35b452dbfd95b4205cd0c40"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setCameraElevationDeg" ref="a6790d5a4d35b452dbfd95b4205cd0c40" args="(float deg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::setCameraElevationDeg </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>deg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the camera parameters programatically. </p>

</div>
</div>
<a class="anchor" id="a7c8465b65263b919a1bb33530818207e"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setCameraPointingToPoint" ref="a7c8465b65263b919a1bb33530818207e" args="(float x, float y, float z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::setCameraPointingToPoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the camera parameters programatically. </p>

</div>
</div>
<a class="anchor" id="ab6edc4b4aa4b109a275653b156264228"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setCameraProjective" ref="ab6edc4b4aa4b109a275653b156264228" args="(bool isProjective)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::setCameraProjective </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isProjective</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the camera as projective, or orthogonal. </p>

</div>
</div>
<a class="anchor" id="a0dbcb19beb056ab59435e3f177127f13"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setCameraZoom" ref="a0dbcb19beb056ab59435e3f177127f13" args="(float zoom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::setCameraZoom </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>zoom</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the camera parameters programatically. </p>

</div>
</div>
<a class="anchor" id="a709b4e6367aeaa2b311d368f1fa34eea"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setCursorCross" ref="a709b4e6367aeaa2b311d368f1fa34eea" args="(bool cursorIsCross)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::gui::CDisplayWindow3D::setCursorCross </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>cursorIsCross</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set cursor style to default (cursorIsCross=false) or to a cross (cursorIsCross=true) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a9f477fb7818561749ac045673512b428" title="Gets the 3D ray for the direction line of the pixel where the mouse cursor is at.">getLastMousePositionRay</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a7d9bba776ec29d60fa7f7ecdedfcd7d3">mrpt::gui::CBaseGUIWindow</a>.</p>

</div>
</div>
<a class="anchor" id="ac5ad9ed8cabf9bde9789ec361eec9460"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setFOV" ref="ac5ad9ed8cabf9bde9789ec361eec9460" args="(float v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::setFOV </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the camera field of view (in degrees) (used for gluPerspective). </p>
<p>The window is not updated with this method, call "forceRepaint" to update the 3D view. </p>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00201">201</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="accdb7b6b28f53b9a7fbfe6cb76594a1c"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setMaxRange" ref="accdb7b6b28f53b9a7fbfe6cb76594a1c" args="(float v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::setMaxRange </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the camera max range (z) (used for gluPerspective). </p>
<p>The window is not updated with this method, call "forceRepaint" to update the 3D view. </p>

</div>
</div>
<a class="anchor" id="ad7ecaf7c2be57d487ee32af719ee3c8c"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setMinRange" ref="ad7ecaf7c2be57d487ee32af719ee3c8c" args="(float v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::setMinRange </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the camera min range (z) (used for gluPerspective). </p>
<p>The window is not updated with this method, call "forceRepaint" to update the 3D view. </p>

</div>
</div>
<a class="anchor" id="a5f599349398ff81d23c17f6761e128ec"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setPos" ref="a5f599349398ff81d23c17f6761e128ec" args="(int x, int y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::setPos </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the position of the window on the screen. </p>

<p>Implements <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a07ed0ab1228962705ac077f8d788e47e">mrpt::gui::CBaseGUIWindow</a>.</p>

</div>
</div>
<a class="anchor" id="a6cf8464ef574611ca952804b9e81529a"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::setWindowTitle" ref="a6cf8464ef574611ca952804b9e81529a" args="(const std::string &amp;str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::setWindowTitle </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the window title. </p>

<p>Implements <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#af877c8001eef3292f9affc04ca4aa137">mrpt::gui::CBaseGUIWindow</a>.</p>

</div>
</div>
<a class="anchor" id="a3bf55967847c5e443aa3a5cfad112faf"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::unlockAccess3DScene" ref="a3bf55967847c5e443aa3a5cfad112faf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::unlockAccess3DScene </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unlocks the access to the internal 3D scene. </p>
<p>Typically user will want to call forceRepaint after updating the scene. </p>

</div>
</div>
<a class="anchor" id="a23d25bf3228caf6480ffbafb602504be"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::updateWindow" ref="a23d25bf3228caf6480ffbafb602504be" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::updateWindow </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Repaints the window. </p>
<p>forceRepaint, repaint and updateWindow are all aliases of the same method. </p>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00182">182</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a523804003758a7d8ba8efd95e1d0ebe7"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::useCameraFromScene" ref="a523804003758a7d8ba8efd95e1d0ebe7" args="(bool useIt=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::gui::CDisplayWindow3D::useCameraFromScene </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>useIt</em> = <code>true</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If set to true (default = false), the mouse-based scene navigation will be disabled and the camera position will be determined by the opengl viewports in the 3D scene. </p>

</div>
</div>
<a class="anchor" id="ac3c1c14a30af0d92bb28d5c4930099f0"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::waitForKey" ref="ac3c1c14a30af0d92bb28d5c4930099f0" args="(bool ignoreControlKeys=true, mrptKeyModifier *out_pushModifier=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::gui::CBaseGUIWindow::waitForKey </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>ignoreControlKeys</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1gui.html#a1957927b66a163637ab90d2bf3220e11">mrptKeyModifier</a> *&#160;</td>
          <td class="paramname"><em>out_pushModifier</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Waits for any key to be pushed on the image or the console, and returns the key code. </p>
<p>This method remove key strokes previous to its call, so it will always wait. To get the latest pushed key, see</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">ignoreControlKeys</td><td>If set to false, any push of shift, cmd, control, etc... will make this method to return. </td></tr>
    <tr><td class="paramname">out_pushModifier</td><td>If set to !=NULL, the modifiers of the key stroke will be saved here. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The virtual key code, as defined in mrptKeyCode (a replication of wxWidgets key codes).</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a8f3aa3dff651d269f127165e084bd936" title="Returns the latest pushed key, or 0 if there is no new key stroke.">getPushedKey</a>, Key codes in the enum <a class="el" href="namespacemrpt_1_1gui.html#a008f54840a1b448a0206e871c6d15e8f">mrptKeyCode</a> </dd></dl>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="af363eff8a66db772f89467af51a862bb"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::C3DWindowDialog" ref="af363eff8a66db772f89467af51a862bb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class C3DWindowDialog<code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#af363eff8a66db772f89467af51a862bb">mrpt::gui::CBaseGUIWindow</a>.</p>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00101">101</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4bf71221b5cfa6c266d84d73b8a732e9"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::CMyGLCanvas_DisplayWindow3D" ref="a4bf71221b5cfa6c266d84d73b8a732e9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class CMyGLCanvas_DisplayWindow3D<code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00102">102</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0a4caba1199fdb1b990d4f1dd5abedf6"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::CWindowDialog" ref="a0a4caba1199fdb1b990d4f1dd5abedf6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class CWindowDialog<code> [friend, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00073">73</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0eab80c3eb0251b2f663e3d0e010573e"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::CWindowDialogPlots" ref="a0eab80c3eb0251b2f663e3d0e010573e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class CWindowDialogPlots<code> [friend, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classmrpt_1_1gui_1_1_c_display_window_plots.html#a0eab80c3eb0251b2f663e3d0e010573e">mrpt::gui::CDisplayWindowPlots</a>.</p>

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00075">75</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6fec28a53e20dfc1c4d046c26f9f7b48"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::mrpt::utils::CStream" ref="a6fec28a53e20dfc1c4d046c26f9f7b48" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a><code> [friend, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00071">71</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a4816f77c34b3da354309f70f4176aabc"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::_init_CDisplayWindow3D" ref="a4816f77c34b3da354309f70f4176aabc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_c_l_a_s_s_i_n_i_t.html">mrpt::utils::CLASSINIT</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a4816f77c34b3da354309f70f4176aabc">mrpt::gui::CDisplayWindow3D::_init_CDisplayWindow3D</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00098">98</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="acc47d68903ba7394adf6b6743a94a6fe"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::classCBaseGUIWindow" ref="acc47d68903ba7394adf6b6743a94a6fe" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#acc47d68903ba7394adf6b6743a94a6fe">mrpt::gui::CBaseGUIWindow::classCBaseGUIWindow</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00071">71</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2330d060a127e70d5b851ce8d60c1151"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::classCDisplayWindow3D" ref="a2330d060a127e70d5b851ce8d60c1151" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a2330d060a127e70d5b851ce8d60c1151">mrpt::gui::CDisplayWindow3D::classCDisplayWindow3D</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00098">98</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="acb51e4dd811d62c2696aee449d0a4715"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::classCObject" ref="acb51e4dd811d62c2696aee449d0a4715" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">mrpt::utils::CObject::classCObject</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00139">139</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="a92d9d7782ed110adc2ea29b9f846cb30"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::classinfo" ref="a92d9d7782ed110adc2ea29b9f846cb30" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a92d9d7782ed110adc2ea29b9f846cb30">mrpt::gui::CDisplayWindow3D::classinfo</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00098">98</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a68b6c5505a99e263001f0a541bd5d360"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_3Dscene" ref="a68b6c5505a99e263001f0a541bd5d360" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1opengl_1_1_c_open_g_l_scene_ptr.html">opengl::COpenGLScenePtr</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a68b6c5505a99e263001f0a541bd5d360">mrpt::gui::CDisplayWindow3D::m_3Dscene</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal OpenGL object (see general discussion in about usage of this object) </p>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00110">110</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a207639d38e14fbc7c6e85b479c7b9051"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_caption" ref="a207639d38e14fbc7c6e85b479c7b9051" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a207639d38e14fbc7c6e85b479c7b9051">mrpt::gui::CBaseGUIWindow::m_caption</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The caption of the window. </p>

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00085">85</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="a85ed58091d40a3a381a9d4f92c1ca9e8"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_csAccess3DScene" ref="a85ed58091d40a3a381a9d4f92c1ca9e8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">synch::CCriticalSection</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a85ed58091d40a3a381a9d4f92c1ca9e8">mrpt::gui::CDisplayWindow3D::m_csAccess3DScene</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Critical section for accesing m_3Dscene. </p>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00114">114</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac1b838528ac1483cc6ddbc6db22d1a03"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_DisplayDeviceContext" ref="ac1b838528ac1483cc6ddbc6db22d1a03" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1utils.html#ac3912bceb5e2a4662830ec51584d134b">void_ptr_noncopy</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ac1b838528ac1483cc6ddbc6db22d1a03">mrpt::gui::CDisplayWindow3D::m_DisplayDeviceContext</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00120">120</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a991d65a488fb4e18eda85b415ec616ad"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_FOV" ref="a991d65a488fb4e18eda85b415ec616ad" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a991d65a488fb4e18eda85b415ec616ad">mrpt::gui::CDisplayWindow3D::m_FOV</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00105">105</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a416d3d265b7661fdda37fd4165d30138"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_GLRenderingContext" ref="a416d3d265b7661fdda37fd4165d30138" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1utils.html#ac3912bceb5e2a4662830ec51584d134b">void_ptr_noncopy</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a416d3d265b7661fdda37fd4165d30138">mrpt::gui::CDisplayWindow3D::m_GLRenderingContext</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00121">121</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2fa49c7fdd4fc6d0ffe492ec207c214b"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_grab_imgs_idx" ref="a2fa49c7fdd4fc6d0ffe492ec207c214b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a2fa49c7fdd4fc6d0ffe492ec207c214b">mrpt::gui::CDisplayWindow3D::m_grab_imgs_idx</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00124">124</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8ccfc144c2b27b74beb40dddbb60eeb0"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_grab_imgs_prefix" ref="a8ccfc144c2b27b74beb40dddbb60eeb0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a8ccfc144c2b27b74beb40dddbb60eeb0">mrpt::gui::CDisplayWindow3D::m_grab_imgs_prefix</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00123">123</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2dd4af8ac076bd4f893025eb1d98bf7b"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_hwnd" ref="a2dd4af8ac076bd4f893025eb1d98bf7b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1utils.html#ac3912bceb5e2a4662830ec51584d134b">void_ptr_noncopy</a> <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a2dd4af8ac076bd4f893025eb1d98bf7b">mrpt::gui::CBaseGUIWindow::m_hwnd</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The window handle. </p>

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00086">86</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae4bc81ff03353bd2ed307eeb915f35c7"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_is_capturing_imgs" ref="ae4bc81ff03353bd2ed307eeb915f35c7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ae4bc81ff03353bd2ed307eeb915f35c7">mrpt::gui::CDisplayWindow3D::m_is_capturing_imgs</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00126">126</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ada8b99456263a89ffce9ca28e3f3c102"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_keyPushed" ref="ada8b99456263a89ffce9ca28e3f3c102" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile bool <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#ada8b99456263a89ffce9ca28e3f3c102">mrpt::gui::CBaseGUIWindow::m_keyPushed</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00089">89</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="a92fb3fbae072d0387e72fc8e5fa409ac"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_keyPushedCode" ref="a92fb3fbae072d0387e72fc8e5fa409ac" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile int <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a92fb3fbae072d0387e72fc8e5fa409ac">mrpt::gui::CBaseGUIWindow::m_keyPushedCode</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00090">90</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa181ad72efea9497dbbaa13020afa5c4"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_keyPushedModifier" ref="aa181ad72efea9497dbbaa13020afa5c4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile <a class="el" href="namespacemrpt_1_1gui.html#a1957927b66a163637ab90d2bf3220e11">mrptKeyModifier</a> <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#aa181ad72efea9497dbbaa13020afa5c4">mrpt::gui::CBaseGUIWindow::m_keyPushedModifier</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00091">91</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="a721f49a3b7b164868965e18810b55bc7"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_last_captured_img" ref="a721f49a3b7b164868965e18810b55bc7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_c_image_ptr.html">CImagePtr</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#a721f49a3b7b164868965e18810b55bc7">mrpt::gui::CDisplayWindow3D::m_last_captured_img</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00127">127</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa561e6d4d8b641c0159f9cf970b2a737"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_last_captured_img_cs" ref="aa561e6d4d8b641c0159f9cf970b2a737" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">synch::CCriticalSection</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#aa561e6d4d8b641c0159f9cf970b2a737">mrpt::gui::CDisplayWindow3D::m_last_captured_img_cs</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00128">128</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa655c746d5fbebaf414805e2f43f849d"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_last_FPS" ref="aa655c746d5fbebaf414805e2f43f849d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#aa655c746d5fbebaf414805e2f43f849d">mrpt::gui::CDisplayWindow3D::m_last_FPS</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#afd69c044e6364fc3341dfa3abd3930b5" title="Get the average Frames Per Second (FPS) value from the last 250 rendering events.">getRenderingFPS</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00134">134</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad227235bebd10d250a73c0e6707e3856"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_lastFullScreen" ref="ad227235bebd10d250a73c0e6707e3856" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#ad227235bebd10d250a73c0e6707e3856">mrpt::gui::CDisplayWindow3D::m_lastFullScreen</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_display_window3_d_8h_source.html#l00132">132</a> of file <a class="el" href="_c_display_window3_d_8h_source.html">CDisplayWindow3D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab6436ed238c7c83c5c7683342eeb2949"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_semThreadReady" ref="ab6436ed238c7c83c5c7683342eeb2949" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1synch_1_1_c_semaphore.html">synch::CSemaphore</a> <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#ab6436ed238c7c83c5c7683342eeb2949">mrpt::gui::CBaseGUIWindow::m_semThreadReady</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This semaphore will be signaled when the wx window is built and ready. </p>

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00083">83</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7184a4e0fd8ddb22c4759d02434cda8d"></a><!-- doxytag: member="mrpt::gui::CDisplayWindow3D::m_semWindowDestroyed" ref="a7184a4e0fd8ddb22c4759d02434cda8d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1synch_1_1_c_semaphore.html">synch::CSemaphore</a> <a class="el" href="classmrpt_1_1gui_1_1_c_base_g_u_i_window.html#a7184a4e0fd8ddb22c4759d02434cda8d">mrpt::gui::CBaseGUIWindow::m_semWindowDestroyed</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This semaphore will be signaled when the wx window is destroyed. </p>

<p>Definition at line <a class="el" href="_c_base_g_u_i_window_8h_source.html#l00084">84</a> of file <a class="el" href="_c_base_g_u_i_window_8h_source.html">CBaseGUIWindow.h</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>