Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > by-pkgid > 052d79447130ebaf90b2730395954d11 > files > 66

openvrml-doc-0.18.3-1mdv2010.0.i586.rpm

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
               "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>OpenVRML: openvrml::browser Class Reference</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<link rel="icon" href="../vrml-16">
<link rel="start" href="http://openvrml.org/index" title="OpenVRML Home">
<link rel="prev" href="http://openvrml.org/discussion" title="Discussion">
<link rel="contents" href="index" title="Documentation Main Page">
<link rel="index" href="functions" title="OpenVRML Compound Members">
<link rel="appendix" href="conformance" title="Conformance Test Results">
<style type="text/css">
@import url("tabs.css");
@import url("http://openvrml.org/openvrml.css");

table {
  width: 100%;
}

h2 {
  border-bottom-style: solid;
  border-bottom-width: 1px;
}

/*
 * Doxygen as of 1.5.4-20071217 uses the class "navpath" instead of "nav".
 * For now, we'll do both.
 */

div.nav,
div.navpath {
  background-color: transparent;
  text-align: left;
  margin-top: 1em;
  margin-bottom: 1em;
  border-color: black;
  border-left: none;
  border-right: none;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
}

div.nav :link, div.nav :visited,
div.navpath :link, div.navpath :visited {
  border-width: 1px;
  border-style: solid;
  border-color: silver;
  padding: 2px;
}

div.nav :link:hover, div.nav :visited:hover,
div.navpath :link:hover, div.navpath :visited:hover {
  border-style: outset;
  border-color: gray;
}

div.nav :active,
div.navpath :active {
  border-style: inset;
  border-color: gray;
}

.body td {
  background-color: transparent;
}

.el {
  text-decoration: inherit;
  font-weight: inherit
}
.elRef {
  font-weight: inherit
}
.code:link, .code:visited {
  text-decoration: inherit;
  font-weight: inherit;
  color: inherit;
}
.codeRef:link {
  font-weight: normal;
  color: inherit;
}
:visited {
  color: silver;
}
:link:hover {
  color: inherit;
  text-decoration: inherit;
  background-color: transparent;
}

h1 {
  line-height: 1.2em;
}

td.memItemLeft, td.memItemRight,
td.memTemplParams, td.memTemplItemLeft, td.memTemplItemRight,
.memtemplate, .memname td {
  font-family: Consolas, "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Lucida Console", LucidaTypewriter, monospace;
}

td.memItemLeft, td.memItemRight, td.mdescLeft, td.mdescRight {
  background-color: rgb(95%, 95%, 95%);
  border-color: rgb(65%, 65%, 65%);
  border-width: 1px;
  font-size: smaller;
}

.memItemLeft {
  margin-top: 0.5em;
  border-top-style: solid;
}
.mdescLeft {
  border-bottom-style: solid;
}
.memItemRight {
  border-top-style: solid;
  margin-top: 0.5em;
}
.mdescRight {
  border-bottom-style: solid;
}

.mdescRight {
  font-style: italic;
}

.mdTable {
  background-color: rgb(95%, 95%, 95%);
}

.memproto td code {
  font-family: inherit;
  font-style: italic;
}

td.pass {
  background-color: rgb(50%, 100%, 50%);
}

td.fail {
  background-color: rgb(100%, 50%, 50%);
}

td.invalid {
  background-color: rgb(75%, 75%, 75%);
}

.memitem {
  padding: 0;
}

.memitem table {
  width: auto;
}

.memproto, .memdoc {
  border-width: 1px;
  border-color: rgb(65%, 65%, 65%);
}

.memproto {
  background-color: rgb(90%, 90%, 90%);
  font-weight: inherit;
  font-size: smaller;
  border-top-style: solid;
  border-left-style: solid;
  border-right-style: solid;
  -webkit-border-top-left-radius: 0.6em;
  -webkit-border-top-right-radius: 0.6em;
  -moz-border-radius-topleft: 0.6em;
  -moz-border-radius-topright: 0.6em;
}

.memdoc {
  background-color: rgb(95%, 95%, 95%);
  padding: 2px 5px;
  border-style: solid;
  -webkit-border-bottom-left-radius: 0.6em;
  -webkit-border-bottom-right-radius: 0.6em;
  -moz-border-radius-bottomleft: 0.6em;
  -moz-border-radius-bottomright: 0.6em;
}

.memname {
  font-weight: inherit;
}

div.tabs {
  background-image: url("tab_b-openvrml.png");
}

div.tabs span {
  background-image: url("tab_l-openvrml.png");
}

div.tabs a {
  background-image: url("tab_r-openvrml.png");
  border-bottom: 1px solid #a5a5a5;
}

div.tabs a:link, div.tabs a:visited, div.tabs a:active, div.tabs a:hover {
  color: black;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

.note {
  border: 1px solid rgb(65%, 65%, 65%);
  background-color: rgb(95%, 95%, 95%);
  margin-left: 10%;
  margin-right: 10%;
}
</style>
</head>
<body>
<table class="sitenav">
  <tr>
    <th><a href="http://openvrml.org/index" title="Home">Home</a></th>
    <th><a href="http://openvrml.org/download" title="Download">Download</a></th>
    <th><a href="http://openvrml.org/screenshots/index" title="Screen shots">Screen shots</a></th>
    <th><a href="http://openvrml.org/discussion" title="Mailing lists and IRC">Discussion</a></th>
    <th>Documentation</th>
  </tr>
</table>
<div class="body">
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</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><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceopenvrml.html">openvrml</a>::<a class="el" href="classopenvrml_1_1browser.html">browser</a>
  </div>
</div>
<div class="contents">
<h1>openvrml::browser Class Reference</h1><!-- doxytag: class="openvrml::browser" -->Encapsulates a VRML <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;openvrml/browser.h&gt;</code>
<p>

<p>
<a href="classopenvrml_1_1browser-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#0f9f05d810ecdc2725d358b624307f63">browser</a> (<a class="el" href="classopenvrml_1_1resource__fetcher.html">resource_fetcher</a> &amp;fetcher, std::ostream &amp;out, std::ostream &amp;err)  throw (  std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#0f9f05d810ecdc2725d358b624307f63"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#6b39fa2f85adf7f1971f8d590f25ad35">~browser</a> ()  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#6b39fa2f85adf7f1971f8d590f25ad35"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#ec7949eb6c742406146b7695628ef3cb">add_node_metatype</a> (const <a class="el" href="classopenvrml_1_1node__metatype__id.html">node_metatype_id</a> &amp;id, const boost::shared_ptr&lt; <a class="el" href="classopenvrml_1_1node__metatype.html">openvrml::node_metatype</a> &gt; &amp;metatype)  throw (  std::invalid_argument  ,   std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code>.  <a href="#ec7949eb6c742406146b7695628ef3cb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const boost::shared_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1node__metatype.html">openvrml::node_metatype</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#2c42862dcdea585b503e0fb603221d48">node_metatype</a> (const <a class="el" href="classopenvrml_1_1node__metatype__id.html">node_metatype_id</a> &amp;id) const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> corresponding to <code>id</code>.  <a href="#2c42862dcdea585b503e0fb603221d48"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1scene.html">scene</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#d07736269ef1aca866c40a854b1b4ef0">root_scene</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the root <code><a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a></code>.  <a href="#d07736269ef1aca866c40a854b1b4ef0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="namespaceopenvrml.html#d3b4db07943059d992d020092a414605">node_path</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#1be00554757e6758c80b60e22857904f">find_node</a> (const <a class="el" href="classopenvrml_1_1node.html">node</a> &amp;n) const   throw (  std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the path to a <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> in the <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a> graph.  <a href="#1be00554757e6758c80b60e22857904f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#38d15d244bf92e45ab12239a6321c730">active_viewpoint</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the active <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code>.  <a href="#38d15d244bf92e45ab12239a6321c730"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#20fe827fe62d966e3fb81045e014b110">active_viewpoint</a> (<a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> &amp;viewpoint)  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the active <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code>.  <a href="#20fe827fe62d966e3fb81045e014b110"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#69f0e9887d74c58badba5eb281513995">reset_default_viewpoint</a> ()  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the active <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> to the default.  <a href="#69f0e9887d74c58badba5eb281513995"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1navigation__info__node.html">navigation_info_node</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#2905dc52390208a74a1e54111072cd74">active_navigation_info</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the active <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code>.  <a href="#2905dc52390208a74a1e54111072cd74"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#032c9756895f2183d5cffeae539e10dc">active_navigation_info</a> (<a class="el" href="classopenvrml_1_1navigation__info__node.html">navigation_info_node</a> &amp;nav_info)  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the active <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code>.  <a href="#032c9756895f2183d5cffeae539e10dc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#da41b7e7ec7dfe60e34076bbca9b0792">reset_default_navigation_info</a> ()  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the active <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code> to the default.  <a href="#da41b7e7ec7dfe60e34076bbca9b0792"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#9bc2106ee652e85d657b688fbd9b236f">add_viewpoint</a> (<a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> &amp;viewpoint)  throw (  std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> to the list of <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a>s</code> for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#9bc2106ee652e85d657b688fbd9b236f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#5712b4012cc98e0970ca44a218527165">remove_viewpoint</a> (<a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> &amp;viewpoint)  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> from the list of <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a>s</code> for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#5712b4012cc98e0970ca44a218527165"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::list&lt; <a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#ccde08280e5e1a4f5080e13821814013">viewpoints</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the list of <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a>s</code> for the world.  <a href="#ccde08280e5e1a4f5080e13821814013"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#019b9e804d19492554d0525f0951deab">viewer</a> (<a class="el" href="classopenvrml_1_1viewer.html">openvrml::viewer</a> *v)  throw (  viewer_in_use  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the current <code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code>.  <a href="#019b9e804d19492554d0525f0951deab"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1viewer.html">openvrml::viewer</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#e85de9ef849d1c0007d0896b8370449e">viewer</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The current <code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code>.  <a href="#e85de9ef849d1c0007d0896b8370449e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#7ef9bd827c7a62de095fa41a188a096f">name</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a> name.  <a href="#7ef9bd827c7a62de095fa41a188a096f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#93760b62f947f9db323355b94369faa3">version</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> version.  <a href="#93760b62f947f9db323355b94369faa3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#d714fc1e85efabb41a391e04d524442c">current_speed</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the average navigation speed in meters per second.  <a href="#d714fc1e85efabb41a391e04d524442c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#c0b9f2168f41ff430474b03efe4a9f6d">world_url</a> () const   throw (  std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the URI for the world.  <a href="#c0b9f2168f41ff430474b03efe4a9f6d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#4ee9533bb00900d14ddba97e0976d813">set_world</a> (<a class="el" href="classopenvrml_1_1resource__istream.html">resource_istream</a> &amp;in)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the world from a stream.  <a href="#4ee9533bb00900d14ddba97e0976d813"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#242fedcbb26c52f682d18c4095445543">replace_world</a> (const std::vector&lt; boost::intrusive_ptr&lt; <a class="el" href="classopenvrml_1_1node.html">node</a> &gt; &gt; &amp;nodes)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Replace the root nodes of the world.  <a href="#242fedcbb26c52f682d18c4095445543"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#0a9206f515d8d5858dd4dc9554ba6f0c">load_url</a> (const std::vector&lt; std::string &gt; &amp;url, const std::vector&lt; std::string &gt; &amp;parameter)  throw (  std::bad_alloc  ,   boost::thread_resource_error  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Asynchronously load a VRML world into the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#0a9206f515d8d5858dd4dc9554ba6f0c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#0f55f33361cefeb456eaf1eec52bac45">description</a> (const std::string &amp;description)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a string to the user interface.  <a href="#0f55f33361cefeb456eaf1eec52bac45"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::vector<br class="typebreak">
&lt; boost::intrusive_ptr&lt; <a class="el" href="classopenvrml_1_1node.html">node</a> &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#b7de1a15f71653422bebcd74a1a1d906">create_vrml_from_stream</a> (std::istream &amp;in, const std::string &amp;type=<a class="el" href="namespaceopenvrml.html#b271737a62b4e27e3272775a00838c3d">vrml_media_type</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate nodes from a stream of VRML syntax.  <a href="#b7de1a15f71653422bebcd74a1a1d906"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#16524b09e8eb4a8cd21e503207e46de1">create_vrml_from_url</a> (const std::vector&lt; std::string &gt; &amp;url, const boost::intrusive_ptr&lt; <a class="el" href="classopenvrml_1_1node.html">node</a> &gt; &amp;<a class="el" href="classopenvrml_1_1node.html">node</a>, const std::string &amp;event)  throw (  unsupported_interface  ,   std::bad_cast  ,   boost::thread_resource_error  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create nodes from a URI.  <a href="#16524b09e8eb4a8cd21e503207e46de1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#58137b0dfaa7f46252e1006fbcced97f">add_listener</a> (<a class="el" href="classopenvrml_1_1browser__listener.html">browser_listener</a> &amp;listener)  throw (  std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a listener for <code><a class="el" href="classopenvrml_1_1browser__event.html" title="A browser-wide event.">browser_event</a>s</code>.  <a href="#58137b0dfaa7f46252e1006fbcced97f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#732d31db2fcd58e0d2d3cfbc509158af">remove_listener</a> (<a class="el" href="classopenvrml_1_1browser__listener.html">browser_listener</a> &amp;listener)  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a listener for <code><a class="el" href="classopenvrml_1_1browser__event.html" title="A browser-wide event.">browser_event</a>s</code>.  <a href="#732d31db2fcd58e0d2d3cfbc509158af"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#7a0553440ed3cdda2c81c228084804cd">sensitive_event</a> (<a class="el" href="classopenvrml_1_1node.html">node</a> *object, double timestamp, bool is_over, bool is_active, const double(&amp;point)[3])</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#e566e3c5a17297dd8d5cba746f9a3310">frame_rate</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current frame rate.  <a href="#e566e3c5a17297dd8d5cba746f9a3310"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#e93d72bf67d51b84c5ab8d2ef60ffa44">update</a> (double current_time=-1.0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process events (update the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>).  <a href="#e93d72bf67d51b84c5ab8d2ef60ffa44"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#b9e6dd463b20bc2549c40f6060a26e24">render</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draw this <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> into the specified <code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code>.  <a href="#b9e6dd463b20bc2549c40f6060a26e24"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#f6d89a1a77e598727987895550f4319f">modified</a> (bool value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indicate whether rendering is necessary.  <a href="#f6d89a1a77e598727987895550f4319f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#fc87923d57dc3ddab360630df137821f">modified</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a> has been modified.  <a href="#fc87923d57dc3ddab360630df137821f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#bf79a05b58a27d5a974384187ce61241">delta</a> (double d)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the time until the next update is needed.  <a href="#bf79a05b58a27d5a974384187ce61241"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#3fba4190859ac578d84fdf51f1015e92">delta</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the time interval between <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> updates.  <a href="#3fba4190859ac578d84fdf51f1015e92"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#743e470c69a659c6e0e5313fee1ba7cd">add_scoped_light</a> (<a class="el" href="classopenvrml_1_1scoped__light__node.html">scoped_light_node</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a scoped light <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> to the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#743e470c69a659c6e0e5313fee1ba7cd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#d33eabea2bcb7b2a4bcb953d03f54496">remove_scoped_light</a> (<a class="el" href="classopenvrml_1_1scoped__light__node.html">scoped_light_node</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a scoped light <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> from the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#d33eabea2bcb7b2a4bcb953d03f54496"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#1b5f6a4dae8ccf69af904f6c5ae125ef">add_time_dependent</a> (<a class="el" href="classopenvrml_1_1time__dependent__node.html">time_dependent_node</a> &amp;n)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a time-dependent <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> to the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>.  <a href="#1b5f6a4dae8ccf69af904f6c5ae125ef"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#c00e5df33a77e3ed9114ed9bb7c4c790">remove_time_dependent</a> (<a class="el" href="classopenvrml_1_1time__dependent__node.html">time_dependent_node</a> &amp;n)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a time-dependent <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> from the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>.  <a href="#c00e5df33a77e3ed9114ed9bb7c4c790"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#ade0bd4df099f27276ab4b59bcec83ac">add_script</a> (<a class="el" href="classopenvrml_1_1script__node.html">script_node</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> to the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>.  <a href="#ade0bd4df099f27276ab4b59bcec83ac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#cf669622a73ae18352ea904e2a701ef8">remove_script</a> (<a class="el" href="classopenvrml_1_1script__node.html">script_node</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> from the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>.  <a href="#cf669622a73ae18352ea904e2a701ef8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#d8244d2e4eb05b9f3aedb493cfd4f56d">update_flags</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Propagate the bvolume dirty flag from children to ancestors.  <a href="#d8244d2e4eb05b9f3aedb493cfd4f56d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#bfd54c27c694b36b583ba171ef7bdb92">out</a> (const std::string &amp;str) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print a message to the output stream.  <a href="#bfd54c27c694b36b583ba171ef7bdb92"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#275f7c5f39f947d15775b49cdeb4251e">err</a> (const std::string &amp;str) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print a message to the error stream.  <a href="#275f7c5f39f947d15775b49cdeb4251e"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#944cfce3eae3ad352c9a214f27ef3d71">current_time</a> ()  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current time.  <a href="#944cfce3eae3ad352c9a214f27ef3d71"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#598f4c204c82b890f45f56b7acb52133">flags_need_updating</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set by <code>node::bounding_volume_dirty</code> on any <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> in this <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a> graph, cleared by <code><a class="el" href="classopenvrml_1_1browser.html#d8244d2e4eb05b9f3aedb493cfd4f56d" title="Propagate the bvolume dirty flag from children to ancestors.">update_flags</a></code>.  <a href="#598f4c204c82b890f45f56b7acb52133"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#13d37c2420ecf8a85d82179075da228f">headlight_on</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indicate whether the headlight is on.  <a href="#13d37c2420ecf8a85d82179075da228f"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="215049f7706a3ecf2de8a2caaca463d3"></a><!-- doxytag: member="openvrml::browser::node_metatype_registry_" ref="215049f7706a3ecf2de8a2caaca463d3" args="" -->
boost::scoped_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1node__metatype__registry.html">node_metatype_registry</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>node_metatype_registry_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const boost::scoped_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1null__node__metatype.html">null_node_metatype</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#07a8ec098a735a6f513b97f7f963f117">null_node_metatype_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">&ldquo;Null&rdquo; class object for default nodes (e.g., <code>default_viewpoint</code>).  <a href="#07a8ec098a735a6f513b97f7f963f117"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const boost::scoped_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1null__node__type.html">null_node_type</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#02f90f8e33869f4ae70639dc0b171ef9">null_node_type_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">&ldquo;Null&rdquo; type object for default nodes (e.g., <code>default_viewpoint</code>).  <a href="#02f90f8e33869f4ae70639dc0b171ef9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#757780a38caf93530c576d93392f2e92">load_root_scene_thread_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#fcfc9c5b000b81da9d4afad6d593824a" title="The thread that loads the root scene.">load_root_scene_thread_</a></code>.  <a href="#757780a38caf93530c576d93392f2e92"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::scoped_ptr&lt; boost::thread &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#fcfc9c5b000b81da9d4afad6d593824a">load_root_scene_thread_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The thread that loads the root <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a>.  <a href="#fcfc9c5b000b81da9d4afad6d593824a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::thread_group&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#4449d662945bd1af0e6c85b899caf60b">load_proto_thread_group_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The threads that load <code>EXTERNPROTO</code> implementations.  <a href="#4449d662945bd1af0e6c85b899caf60b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1script__node__metatype.html">script_node_metatype</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#3e9a201fcfe23e84e9b92a8ae177e805">script_node_metatype_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> for Script <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#3e9a201fcfe23e84e9b92a8ae177e805"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1resource__fetcher.html">resource_fetcher</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#a5e5862cb592399f24e12393bbd1e2ed">fetcher_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A reference to the <code><a class="el" href="classopenvrml_1_1resource__fetcher.html" title="An abstract factory for resource_istreams.">resource_fetcher</a></code> associated with the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#a5e5862cb592399f24e12393bbd1e2ed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#a84ba53d5ab020402edcdd103ce5f6d8">scene_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#2617a804c939e4062a0a029247fb9a59" title="Pointer to the root scene.">scene_</a></code>.  <a href="#a84ba53d5ab020402edcdd103ce5f6d8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::scoped_ptr&lt; <a class="el" href="classopenvrml_1_1scene.html">scene</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#2617a804c939e4062a0a029247fb9a59">scene_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pointer to the root <code><a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a></code>.  <a href="#2617a804c939e4062a0a029247fb9a59"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const boost::intrusive_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#ed7822d928ba070cc8abae47f83d5fc6">default_viewpoint_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The &ldquo;default&rdquo; <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> used when no <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> in the <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a> is bound.  <a href="#ed7822d928ba070cc8abae47f83d5fc6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#c82f8bd9655963e49febbaeb5434a84f">active_viewpoint_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#b9c20eff8555d2b7c1923a86c6a75206" title="The currently &ldquo;active&rdquo; viewpoint_node.">active_viewpoint_</a></code>.  <a href="#c82f8bd9655963e49febbaeb5434a84f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#b9c20eff8555d2b7c1923a86c6a75206">active_viewpoint_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The currently &ldquo;active&rdquo; <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code>.  <a href="#b9c20eff8555d2b7c1923a86c6a75206"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const boost::intrusive_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1navigation__info__node.html">navigation_info_node</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#03b57e32fe96b57c8ac09152a8674ce1">default_navigation_info_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The &ldquo;default&rdquo; <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code> used when no <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code> in the <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a> is bound.  <a href="#03b57e32fe96b57c8ac09152a8674ce1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#552c909a30ec6fa28d1b53a447137318">active_navigation_info_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#6ad0d5fbc94d94f4082d22899e851598" title="The currently &ldquo;active&rdquo; navigation_info_node.">active_navigation_info_</a></code>.  <a href="#552c909a30ec6fa28d1b53a447137318"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1navigation__info__node.html">navigation_info_node</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#6ad0d5fbc94d94f4082d22899e851598">active_navigation_info_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The currently &ldquo;active&rdquo; <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code>.  <a href="#6ad0d5fbc94d94f4082d22899e851598"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#4d7c885c85be42613df4863c464c2a57">viewpoint_list_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#79d7a99d6f751c7dc0e5634cf567146e" title="A list of all the Viewpoint nodes in the browser.">viewpoint_list_</a></code>.  <a href="#4d7c885c85be42613df4863c464c2a57"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::list&lt; <a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#79d7a99d6f751c7dc0e5634cf567146e">viewpoint_list_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A list of all the Viewpoint <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#79d7a99d6f751c7dc0e5634cf567146e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#13e9d7ed2eaadb9f18d75171e56c3cb9">scoped_lights_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#d0ea7da28f90a07bcf567ca2f891a973" title="A list of all the scoped light nodes in the browser.">scoped_lights_</a></code>.  <a href="#13e9d7ed2eaadb9f18d75171e56c3cb9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::list&lt; <a class="el" href="classopenvrml_1_1scoped__light__node.html">scoped_light_node</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#d0ea7da28f90a07bcf567ca2f891a973">scoped_lights_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A list of all the scoped light <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#d0ea7da28f90a07bcf567ca2f891a973"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#425ff7af9aa700f529221a04c9197c60">scripts_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#6ed99a0abb0c47adf86b31f869d466a4" title="A list of all the Script nodes in the browser.">scripts_</a></code>.  <a href="#425ff7af9aa700f529221a04c9197c60"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::list&lt; <a class="el" href="classopenvrml_1_1script__node.html">script_node</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#6ed99a0abb0c47adf86b31f869d466a4">scripts_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A list of all the Script <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#6ed99a0abb0c47adf86b31f869d466a4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#5ae64e2a5a0a6cb3ecc5d5c4d9071258">timers_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#160b5a5af65f946a99c7ea8e722d6808" title="A list of all the TimeSensor nodes in the browser.">timers_</a></code>.  <a href="#5ae64e2a5a0a6cb3ecc5d5c4d9071258"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::list&lt; <a class="el" href="classopenvrml_1_1time__dependent__node.html">time_dependent_node</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#160b5a5af65f946a99c7ea8e722d6808">timers_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A list of all the TimeSensor <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>.  <a href="#160b5a5af65f946a99c7ea8e722d6808"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#52a2a42286881c87b4755865a5025879">listeners_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex to guard <code><a class="el" href="classopenvrml_1_1browser.html#801f32885a5bdc2166c75fa057cb2092" title="The set of browser_listeners that will receive browser_events.">listeners_</a></code>.  <a href="#52a2a42286881c87b4755865a5025879"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::set&lt; <a class="el" href="classopenvrml_1_1browser__listener.html">browser_listener</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#801f32885a5bdc2166c75fa057cb2092">listeners_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The set of <code><a class="el" href="classopenvrml_1_1browser__listener.html" title="This class should be inherited by classes that want to listen for browser_events...">browser_listener</a>s</code> that will receive <code><a class="el" href="classopenvrml_1_1browser__event.html" title="A browser-wide event.">browser_event</a>s</code>.  <a href="#801f32885a5bdc2166c75fa057cb2092"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#299212aea2bc91ac73b450908466a86b">new_view</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flag to indicate if the user has changed to a new view.  <a href="#299212aea2bc91ac73b450908466a86b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#265136f5d8882bd5b8aca40cecc39468">delta_time_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#57c21a3c998692a6797174f9f6e16098" title="Time elapsed since the last update.">delta_time</a></code>.  <a href="#265136f5d8882bd5b8aca40cecc39468"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#57c21a3c998692a6797174f9f6e16098">delta_time</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Time elapsed since the last update.  <a href="#57c21a3c998692a6797174f9f6e16098"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#380e00ef449bcb211a2bdefd179334ab">viewer_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#1e8f03a122638b08400655ca4849b751" title="The current viewer.">viewer_</a></code>.  <a href="#380e00ef449bcb211a2bdefd179334ab"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1viewer.html">openvrml::viewer</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#1e8f03a122638b08400655ca4849b751">viewer_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The current <code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code>.  <a href="#1e8f03a122638b08400655ca4849b751"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#fe175c04bc510b0e75c5354ee13a5b7a">modified_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flag to indicate whether the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> has been modified.  <a href="#fe175c04bc510b0e75c5354ee13a5b7a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#90f95c16ebe2b49ce9a981496e9e278b">modified_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#fe175c04bc510b0e75c5354ee13a5b7a" title="Flag to indicate whether the browser has been modified.">modified_</a></code>.  <a href="#90f95c16ebe2b49ce9a981496e9e278b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#750cb18a46c165f7128a7ce40f7f9899">frame_rate_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#385b07f9af7bed3bfdc339f1aae77993" title="Frame rate.">frame_rate_</a></code>.  <a href="#750cb18a46c165f7128a7ce40f7f9899"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#385b07f9af7bed3bfdc339f1aae77993">frame_rate_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frame rate.  <a href="#385b07f9af7bed3bfdc339f1aae77993"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#1b713f0135e3c49ec60a263ff057d3d9">out_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex guarding <code><a class="el" href="classopenvrml_1_1browser.html#bc28e27d6ce4a208a3e67c89730b603d" title="Output stream, generally for console output.">out_</a></code>.  <a href="#1b713f0135e3c49ec60a263ff057d3d9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::ostream *const&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#bc28e27d6ce4a208a3e67c89730b603d">out_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output stream, generally for console output.  <a href="#bc28e27d6ce4a208a3e67c89730b603d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::mutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#14fd6bfb0ea939bd37bdad6f61d8e91f">err_mutex_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mutex guarding <code><a class="el" href="classopenvrml_1_1browser.html#ae6b0d0e2683fa985161c90568ee2133" title="Error output stream.">err_</a></code>.  <a href="#14fd6bfb0ea939bd37bdad6f61d8e91f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::ostream *const&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#ae6b0d0e2683fa985161c90568ee2133">err_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Error output stream.  <a href="#ae6b0d0e2683fa985161c90568ee2133"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#5b1ec1027a7d5f661e4ac83adb4d3dae">scene</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a>.  <a href="#5b1ec1027a7d5f661e4ac83adb4d3dae"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fdc69e0e92683fe4043e348d43b22c26"></a><!-- doxytag: member="openvrml::browser::script_node" ref="fdc69e0e92683fe4043e348d43b22c26" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>script_node</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ea5d6e8c166c517c372aef5f3d9db241"></a><!-- doxytag: member="openvrml::browser::local::externproto_node" ref="ea5d6e8c166c517c372aef5f3d9db241" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>local::externproto_node</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f566c72df40106ed8e8479bf364e4e86"></a><!-- doxytag: member="openvrml::browser::local::externproto_node_type" ref="f566c72df40106ed8e8479bf364e4e86" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>local::externproto_node_type</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="88bfdea72a9f69badaeb71106222e77a"></a><!-- doxytag: member="openvrml::browser::local::externproto_node_metatype" ref="88bfdea72a9f69badaeb71106222e77a" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>local::externproto_node_metatype</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="311aec8cace510b02cf6793464cefe30"></a><!-- doxytag: member="openvrml::browser::local::vrml97_parse_actions" ref="311aec8cace510b02cf6793464cefe30" args="" -->
struct&nbsp;</td><td class="memItemRight" valign="bottom"><b>local::vrml97_parse_actions</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="49a08eb1c0b3f92bc1191dee2c565400"></a><!-- doxytag: member="openvrml::browser::local::x3d_vrml_parse_actions" ref="49a08eb1c0b3f92bc1191dee2c565400" args="" -->
struct&nbsp;</td><td class="memItemRight" valign="bottom"><b>local::x3d_vrml_parse_actions</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2a86244651b71394b760e8a0b27f1ab1"></a><!-- doxytag: member="openvrml::browser::operator==" ref="2a86244651b71394b760e8a0b27f1ab1" args="(const node_type &amp;, const node_type &amp;)" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="classopenvrml_1_1node__type.html">node_type</a> &amp;, const <a class="el" href="classopenvrml_1_1node__type.html">node_type</a> &amp;)  throw ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="21a2dc80588f83561e3f278d583108d0"></a><!-- doxytag: member="openvrml::browser::local::parse_vrml" ref="21a2dc80588f83561e3f278d583108d0" args="(std::istream &amp;in, const std::string &amp;uri, const std::string &amp;type, const openvrml::scene &amp;scene, std::vector&lt; boost::intrusive_ptr&lt; node &gt; &gt; &amp;nodes, std::map&lt; std::string, std::string &gt; &amp;meta)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local::parse_vrml</b> (std::istream &amp;in, const std::string &amp;uri, const std::string &amp;type, const <a class="el" href="classopenvrml_1_1scene.html">openvrml::scene</a> &amp;<a class="el" href="classopenvrml_1_1scene.html">scene</a>, std::vector&lt; boost::intrusive_ptr&lt; <a class="el" href="classopenvrml_1_1node.html">node</a> &gt; &gt; &amp;nodes, std::map&lt; std::string, std::string &gt; &amp;meta)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Encapsulates a VRML <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>. 
<p>
<code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> is the foundation of the OpenVRML runtime. <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> is instantiated with an implementation of <code><a class="el" href="classopenvrml_1_1resource__fetcher.html" title="An abstract factory for resource_istreams.">resource_fetcher</a></code>, which is provided by application code. The <code><a class="el" href="classopenvrml_1_1resource__fetcher.html" title="An abstract factory for resource_istreams.">resource_fetcher</a></code> instance must have a longer lifetime than the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> instance, since the <code><a class="el" href="classopenvrml_1_1resource__fetcher.html" title="An abstract factory for resource_istreams.">resource_fetcher</a></code> instance could be used during destruction of the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. Note, however, that <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>'s destructor will block until all threads that may use the <code><a class="el" href="classopenvrml_1_1resource__fetcher.html" title="An abstract factory for resource_istreams.">resource_fetcher</a></code> have completed. So it is sufficient to have the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> and the <code><a class="el" href="classopenvrml_1_1resource__fetcher.html" title="An abstract factory for resource_istreams.">resource_fetcher</a></code> destroyed sequentially in the same thread.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classopenvrml_1_1resource__fetcher.html" title="An abstract factory for resource_istreams.">openvrml::resource_fetcher</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>

<p>
<a class="el" href="sdl__viewer_8cpp-example.html#_a0">sdl_viewer.cpp</a>.</dl><hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="0f9f05d810ecdc2725d358b624307f63"></a><!-- doxytag: member="openvrml::browser::browser" ref="0f9f05d810ecdc2725d358b624307f63" args="(resource_fetcher &amp;fetcher, std::ostream &amp;out, std::ostream &amp;err)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">openvrml::browser::browser           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1resource__fetcher.html">resource_fetcher</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>fetcher</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::ostream &amp;&nbsp;</td>
          <td class="paramname"> <em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::ostream &amp;&nbsp;</td>
          <td class="paramname"> <em>err</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  std::bad_alloc  )</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fetcher</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1resource__fetcher.html" title="An abstract factory for resource_istreams.">resource_fetcher</a></code> implementation. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>out</em>&nbsp;</td><td>output stream for console output. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>err</em>&nbsp;</td><td>output stream for error console output.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="6b39fa2f85adf7f1971f8d590f25ad35"></a><!-- doxytag: member="openvrml::browser::~browser" ref="6b39fa2f85adf7f1971f8d590f25ad35" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">openvrml::browser::~browser           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor. 
<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="944cfce3eae3ad352c9a214f27ef3d71"></a><!-- doxytag: member="openvrml::browser::current_time" ref="944cfce3eae3ad352c9a214f27ef3d71" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double openvrml::browser::current_time           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the current time. 
<p>

</div>
</div><p>
<a class="anchor" name="ec7949eb6c742406146b7695628ef3cb"></a><!-- doxytag: member="openvrml::browser::add_node_metatype" ref="ec7949eb6c742406146b7695628ef3cb" args="(const node_metatype_id &amp;id, const boost::shared_ptr&lt; openvrml::node_metatype &gt; &amp;metatype)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::add_node_metatype           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classopenvrml_1_1node__metatype__id.html">node_metatype_id</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::shared_ptr&lt; <a class="el" href="classopenvrml_1_1node__metatype.html">openvrml::node_metatype</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>metatype</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  std::invalid_argument  ,   std::bad_alloc  )</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code>. 
<p>
If a <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> identified by <code>id</code> has already been added to the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>, it will be replaced.<p>
<dl class="warning" compact><dt><b>Warning:</b></dt><dd>If <code>std::bad_alloc</code> is thrown here, the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>'s <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> map is left in an unknown state. In all likelihood any preexisting entry in the map with the same implementation identifier as <code>id</code> will have been removed.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> identifier. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>nc</em>&nbsp;</td><td>a <code>boost::shared_ptr</code> to a <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> </td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::invalid_argument</em>&nbsp;</td><td>if <code>nc</code> is null. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="2c42862dcdea585b503e0fb603221d48"></a><!-- doxytag: member="openvrml::browser::node_metatype" ref="2c42862dcdea585b503e0fb603221d48" args="(const node_metatype_id &amp;id) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const boost::shared_ptr&lt; <a class="el" href="classopenvrml_1_1node__metatype.html">openvrml::node_metatype</a> &gt; openvrml::browser::node_metatype           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classopenvrml_1_1node__metatype__id.html">node_metatype_id</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> corresponding to <code>id</code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> identifier.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> corresponding to <code>id</code>; or a null pointer if no such <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> exists. </dd></dl>

</div>
</div><p>
<a class="anchor" name="d07736269ef1aca866c40a854b1b4ef0"></a><!-- doxytag: member="openvrml::browser::root_scene" ref="d07736269ef1aca866c40a854b1b4ef0" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1scene.html">openvrml::scene</a> * openvrml::browser::root_scene           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the root <code><a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a></code>. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the root <code><a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a></code>, or 0 if no <code><a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a></code> is loaded. </dd></dl>

</div>
</div><p>
<a class="anchor" name="1be00554757e6758c80b60e22857904f"></a><!-- doxytag: member="openvrml::browser::find_node" ref="1be00554757e6758c80b60e22857904f" args="(const node &amp;n) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespaceopenvrml.html#d3b4db07943059d992d020092a414605">openvrml::node_path</a> openvrml::browser::find_node           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classopenvrml_1_1node.html">node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw (  std::bad_alloc  )</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the path to a <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> in the <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a> graph. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>n</em>&nbsp;</td><td>the objective <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code>.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the path to <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code>, starting with a root <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code>, and ending with <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code>. If <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> is not in the <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a> graph, the returned <code>node_path</code> is empty.</dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="38d15d244bf92e45ab12239a6321c730"></a><!-- doxytag: member="openvrml::browser::active_viewpoint" ref="38d15d244bf92e45ab12239a6321c730" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1viewpoint__node.html">openvrml::viewpoint_node</a> &amp; openvrml::browser::active_viewpoint           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the active <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code>. 
<p>
The active <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> is the one currently associated with the user view.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the active <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="20fe827fe62d966e3fb81045e014b110"></a><!-- doxytag: member="openvrml::browser::active_viewpoint" ref="20fe827fe62d966e3fb81045e014b110" args="(viewpoint_node &amp;viewpoint)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::active_viewpoint           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>viewpoint</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the active <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>viewpoint</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code>.</td></tr>
  </table>
</dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>viewpoint.scene()</code> == <code>this-&gt;<a class="el" href="classopenvrml_1_1browser.html#d07736269ef1aca866c40a854b1b4ef0" title="Get the root scene.">root_scene()</a></code> </dd></dl>

</div>
</div><p>
<a class="anchor" name="69f0e9887d74c58badba5eb281513995"></a><!-- doxytag: member="openvrml::browser::reset_default_viewpoint" ref="69f0e9887d74c58badba5eb281513995" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::reset_default_viewpoint           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reset the active <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> to the default. 
<p>

</div>
</div><p>
<a class="anchor" name="2905dc52390208a74a1e54111072cd74"></a><!-- doxytag: member="openvrml::browser::active_navigation_info" ref="2905dc52390208a74a1e54111072cd74" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1navigation__info__node.html">openvrml::navigation_info_node</a> &amp; openvrml::browser::active_navigation_info           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the active <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code>. 
<p>
The active <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code> is the one currently associated with the user view.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the active <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="032c9756895f2183d5cffeae539e10dc"></a><!-- doxytag: member="openvrml::browser::active_navigation_info" ref="032c9756895f2183d5cffeae539e10dc" args="(navigation_info_node &amp;nav_info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::active_navigation_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1navigation__info__node.html">navigation_info_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>nav_info</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the active <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>nav_info</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code>.</td></tr>
  </table>
</dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>viewpoint.scene()</code> == <code>this-&gt;<a class="el" href="classopenvrml_1_1browser.html#d07736269ef1aca866c40a854b1b4ef0" title="Get the root scene.">root_scene()</a></code> </dd></dl>

</div>
</div><p>
<a class="anchor" name="da41b7e7ec7dfe60e34076bbca9b0792"></a><!-- doxytag: member="openvrml::browser::reset_default_navigation_info" ref="da41b7e7ec7dfe60e34076bbca9b0792" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::reset_default_navigation_info           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reset the active <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code> to the default. 
<p>

</div>
</div><p>
<a class="anchor" name="9bc2106ee652e85d657b688fbd9b236f"></a><!-- doxytag: member="openvrml::browser::add_viewpoint" ref="9bc2106ee652e85d657b688fbd9b236f" args="(viewpoint_node &amp;viewpoint)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::add_viewpoint           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>viewpoint</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw (  std::bad_alloc  )</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> to the list of <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a>s</code> for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>viewpoint</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code>.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails.</td></tr>
  </table>
</dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>viewpoint</code> is not in the list of <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a>s</code> for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="5712b4012cc98e0970ca44a218527165"></a><!-- doxytag: member="openvrml::browser::remove_viewpoint" ref="5712b4012cc98e0970ca44a218527165" args="(viewpoint_node &amp;viewpoint)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::remove_viewpoint           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>viewpoint</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove a <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> from the list of <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a>s</code> for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>viewpoint</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code>.</td></tr>
  </table>
</dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>viewpoint</code> is in the list of <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a>s</code> for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ccde08280e5e1a4f5080e13821814013"></a><!-- doxytag: member="openvrml::browser::viewpoints" ref="ccde08280e5e1a4f5080e13821814013" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::list&lt; <a class="el" href="classopenvrml_1_1viewpoint__node.html">openvrml::viewpoint_node</a> * &gt; openvrml::browser::viewpoints           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the list of <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a>s</code> for the world. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the list of <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a>s</code> for the world. </dd></dl>

</div>
</div><p>
<a class="anchor" name="019b9e804d19492554d0525f0951deab"></a><!-- doxytag: member="openvrml::browser::viewer" ref="019b9e804d19492554d0525f0951deab" args="(openvrml::viewer *v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::viewer           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1viewer.html">openvrml::viewer</a> *&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw (  <a class="el" href="classopenvrml_1_1viewer__in__use.html">viewer_in_use</a>  )</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the current <code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>v</em>&nbsp;</td><td><code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code>.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classopenvrml_1_1viewer__in__use.html" title="Exception thrown when attempting to associate a viewer with a browser when the viewer...">viewer_in_use</a></em>&nbsp;</td><td>if <code>v</code> is already associated with a <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="e85de9ef849d1c0007d0896b8370449e"></a><!-- doxytag: member="openvrml::browser::viewer" ref="e85de9ef849d1c0007d0896b8370449e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1viewer.html">openvrml::viewer</a> * openvrml::browser::viewer           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The current <code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code>. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the current <code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="7ef9bd827c7a62de095fa41a188a096f"></a><!-- doxytag: member="openvrml::browser::name" ref="7ef9bd827c7a62de095fa41a188a096f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * openvrml::browser::name           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a> name. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>"OpenVRML"</dd></dl>
Specific browsers may wish to override this method. 
</div>
</div><p>
<a class="anchor" name="93760b62f947f9db323355b94369faa3"></a><!-- doxytag: member="openvrml::browser::version" ref="93760b62f947f9db323355b94369faa3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * openvrml::browser::version           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> version. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the version of OpenVRML.</dd></dl>
Specific browsers may wish to override this method. 
</div>
</div><p>
<a class="anchor" name="d714fc1e85efabb41a391e04d524442c"></a><!-- doxytag: member="openvrml::browser::current_speed" ref="d714fc1e85efabb41a391e04d524442c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float openvrml::browser::current_speed           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the average navigation speed in meters per second. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the average navigation speed. </dd></dl>

</div>
</div><p>
<a class="anchor" name="c0b9f2168f41ff430474b03efe4a9f6d"></a><!-- doxytag: member="openvrml::browser::world_url" ref="c0b9f2168f41ff430474b03efe4a9f6d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::string openvrml::browser::world_url           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw (  std::bad_alloc  )</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the URI for the world. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the URI for the world. </dd></dl>

</div>
</div><p>
<a class="anchor" name="4ee9533bb00900d14ddba97e0976d813"></a><!-- doxytag: member="openvrml::browser::set_world" ref="4ee9533bb00900d14ddba97e0976d813" args="(resource_istream &amp;in)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::set_world           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1resource__istream.html">resource_istream</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>in</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the world from a stream. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>in</em>&nbsp;</td><td>an input stream.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classopenvrml_1_1bad__media__type.html" title="Thrown when an unexpected media type is received.">bad_media_type</a></em>&nbsp;</td><td>if <code>in.type()</code> is not <code>model/vrml</code>, <code>x-world/x-vrml</code>, or <code>model/x3d-vrml</code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classopenvrml_1_1invalid__vrml.html" title="Exception thrown when the parser fails due to errors in the VRML input.">invalid_vrml</a></em>&nbsp;</td><td>if <code>in</code> has invalid syntax. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="242fedcbb26c52f682d18c4095445543"></a><!-- doxytag: member="openvrml::browser::replace_world" ref="242fedcbb26c52f682d18c4095445543" args="(const std::vector&lt; boost::intrusive_ptr&lt; node &gt; &gt; &amp;nodes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::replace_world           </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; boost::intrusive_ptr&lt; <a class="el" href="classopenvrml_1_1node.html">node</a> &gt; &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>nodes</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Replace the root nodes of the world. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>nodes</em>&nbsp;</td><td>new root nodes for the world. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="0a9206f515d8d5858dd4dc9554ba6f0c"></a><!-- doxytag: member="openvrml::browser::load_url" ref="0a9206f515d8d5858dd4dc9554ba6f0c" args="(const std::vector&lt; std::string &gt; &amp;url, const std::vector&lt; std::string &gt; &amp;parameter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::load_url           </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; std::string &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>url</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; std::string &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>parameter</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  std::bad_alloc  ,   boost::thread_resource_error  )</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Asynchronously load a VRML world into the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
This function takes an alternative URI list consistent with such lists as they appear in VRML nodes. <code><a class="el" href="classopenvrml_1_1browser__event.html#0fb72d4d79d031f467622111c192d77000d034c8473f96f3c4210619837241e2" title="An initialized event is sent once the world has loaded and all nodes in the initial...">openvrml::browser_event::initialized</a></code> will be emitted once the world has been loaded and initialized.<p>
For synchronously loading a world, see <code><a class="el" href="classopenvrml_1_1browser.html#4ee9533bb00900d14ddba97e0976d813" title="Set the world from a stream.">set_world</a></code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>url</em>&nbsp;</td><td>a URI. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>parameter</em>&nbsp;</td><td>parameters for <code>url</code>.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>boost::thread_resource_error</em>&nbsp;</td><td>if thread creation fails.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classopenvrml_1_1browser.html#4ee9533bb00900d14ddba97e0976d813" title="Set the world from a stream.">set_world</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="0f55f33361cefeb456eaf1eec52bac45"></a><!-- doxytag: member="openvrml::browser::description" ref="0f55f33361cefeb456eaf1eec52bac45" args="(const std::string &amp;description)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::description           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>description</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Send a string to the user interface. 
<p>
The default implementation of this method simply prints <code>description</code> to <em>out</em>. Subclasses can override this method to direct messages to an application's UI; for instance, a status bar.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>description</em>&nbsp;</td><td>a string. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="b7de1a15f71653422bebcd74a1a1d906"></a><!-- doxytag: member="openvrml::browser::create_vrml_from_stream" ref="b7de1a15f71653422bebcd74a1a1d906" args="(std::istream &amp;in, const std::string &amp;type=vrml_media_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt; boost::intrusive_ptr&lt; <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &gt; &gt; openvrml::browser::create_vrml_from_stream           </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&nbsp;</td>
          <td class="paramname"> <em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>type</em> = <code><a class="el" href="namespaceopenvrml.html#b271737a62b4e27e3272775a00838c3d">vrml_media_type</a></code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Generate nodes from a stream of VRML syntax. 
<p>
In addition to the exceptions listed, this method may throw any exception that may result from reading the input stream.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>in</em>&nbsp;</td><td>an input stream. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>type</em>&nbsp;</td><td>MIME content type of <code>in</code>.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the root nodes generated from <code>in</code>.</dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classopenvrml_1_1invalid__vrml.html" title="Exception thrown when the parser fails due to errors in the VRML input.">invalid_vrml</a></em>&nbsp;</td><td>if <code>in</code> has invalid VRML syntax. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::invalid_argument</em>&nbsp;</td><td>if <code>type</code> refers to an unsupported content type. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="16524b09e8eb4a8cd21e503207e46de1"></a><!-- doxytag: member="openvrml::browser::create_vrml_from_url" ref="16524b09e8eb4a8cd21e503207e46de1" args="(const std::vector&lt; std::string &gt; &amp;url, const boost::intrusive_ptr&lt; node &gt; &amp;node, const std::string &amp;event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::create_vrml_from_url           </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; std::string &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>url</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::intrusive_ptr&lt; <a class="el" href="classopenvrml_1_1node.html">node</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  <a class="el" href="classopenvrml_1_1unsupported__interface.html">unsupported_interface</a>  ,   std::bad_cast  ,   boost::thread_resource_error  )</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create nodes from a URI. 
<p>
This function executes asynchronously. When the nodes have been completely loaded, they are sent to the <code>event</code> MFNode eventIn of <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>url</em>&nbsp;</td><td>an alternative URI list. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></em>&nbsp;</td><td>the <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> to which the nodes loaded from <code>url</code> should be sent as an event. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>event</em>&nbsp;</td><td>the event of <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> to which the new nodes will be sent.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classopenvrml_1_1unsupported__interface.html" title="Exception to indicate that a node interface is not supported.">unsupported_interface</a></em>&nbsp;</td><td>if <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> has no eventIn <code>event</code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_cast</em>&nbsp;</td><td>if the <code>event</code> eventIn of <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> is not an MFNode. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>boost::thread_resource_error</em>&nbsp;</td><td>if thread creation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="58137b0dfaa7f46252e1006fbcced97f"></a><!-- doxytag: member="openvrml::browser::add_listener" ref="58137b0dfaa7f46252e1006fbcced97f" args="(browser_listener &amp;listener)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool openvrml::browser::add_listener           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1browser__listener.html">browser_listener</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>listener</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw (  std::bad_alloc  )</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a listener for <code><a class="el" href="classopenvrml_1_1browser__event.html" title="A browser-wide event.">browser_event</a>s</code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>listener</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1browser__listener.html" title="This class should be inherited by classes that want to listen for browser_events...">browser_listener</a></code>.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>true</code> if <code>listener</code> is added successfully; <code>false</code> otherwise (if <code>listener</code> is already listening for events from the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>).</dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="732d31db2fcd58e0d2d3cfbc509158af"></a><!-- doxytag: member="openvrml::browser::remove_listener" ref="732d31db2fcd58e0d2d3cfbc509158af" args="(browser_listener &amp;listener)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool openvrml::browser::remove_listener           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1browser__listener.html">browser_listener</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>listener</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove a listener for <code><a class="el" href="classopenvrml_1_1browser__event.html" title="A browser-wide event.">browser_event</a>s</code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>listener</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1browser__listener.html" title="This class should be inherited by classes that want to listen for browser_events...">browser_listener</a></code>.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>true</code> if <code>listener</code> is removed successfully; <code>false</code> otherwise (if <code>listener</code> is not listening for events from the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>). </dd></dl>

</div>
</div><p>
<a class="anchor" name="7a0553440ed3cdda2c81c228084804cd"></a><!-- doxytag: member="openvrml::browser::sensitive_event" ref="7a0553440ed3cdda2c81c228084804cd" args="(node *object, double timestamp, bool is_over, bool is_active, const double(&amp;point)[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::sensitive_event           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1node.html">node</a> *&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>timestamp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>is_over</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>is_active</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double(&amp;)&nbsp;</td>
          <td class="paramname"> <em>point</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called by the <code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code> when the cursor passes over, clicks, drags, or releases a sensitive object (an Anchor or another grouping <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> with an enabled TouchSensor child). 
</div>
</div><p>
<a class="anchor" name="e566e3c5a17297dd8d5cba746f9a3310"></a><!-- doxytag: member="openvrml::browser::frame_rate" ref="e566e3c5a17297dd8d5cba746f9a3310" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double openvrml::browser::frame_rate           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the current frame rate. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the current frame rate. </dd></dl>

</div>
</div><p>
<a class="anchor" name="e93d72bf67d51b84c5ab8d2ef60ffa44"></a><!-- doxytag: member="openvrml::browser::update" ref="e93d72bf67d51b84c5ab8d2ef60ffa44" args="(double current_time=&#45;1.0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool openvrml::browser::update           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>current_time</em> = <code>-1.0</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Process events (update the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>). 
<p>
This method should be called after each frame is rendered.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>true</code> if the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> needs to be rerendered, <code>false</code> otherwise. </dd></dl>

</div>
</div><p>
<a class="anchor" name="b9e6dd463b20bc2549c40f6060a26e24"></a><!-- doxytag: member="openvrml::browser::render" ref="b9e6dd463b20bc2549c40f6060a26e24" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::render           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Draw this <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> into the specified <code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code>. 
<p>

</div>
</div><p>
<a class="anchor" name="f6d89a1a77e598727987895550f4319f"></a><!-- doxytag: member="openvrml::browser::modified" ref="f6d89a1a77e598727987895550f4319f" args="(bool value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::modified           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>value</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indicate whether rendering is necessary. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>value</em>&nbsp;</td><td><code>true</code> to indicate that the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a> state has changed and rerendering is necessary; <code>false</code> once rendering has occurred. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="fc87923d57dc3ddab360630df137821f"></a><!-- doxytag: member="openvrml::browser::modified" ref="fc87923d57dc3ddab360630df137821f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool openvrml::browser::modified           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check if the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a> has been modified. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>true</code> if the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a> has been modified, <code>false</code> otherwise. </dd></dl>

</div>
</div><p>
<a class="anchor" name="bf79a05b58a27d5a974384187ce61241"></a><!-- doxytag: member="openvrml::browser::delta" ref="bf79a05b58a27d5a974384187ce61241" args="(double d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::delta           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>d</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the time until the next update is needed. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>d</em>&nbsp;</td><td>a time interval. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="3fba4190859ac578d84fdf51f1015e92"></a><!-- doxytag: member="openvrml::browser::delta" ref="3fba4190859ac578d84fdf51f1015e92" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double openvrml::browser::delta           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the time interval between <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> updates. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the time interval between <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> updates. </dd></dl>

</div>
</div><p>
<a class="anchor" name="743e470c69a659c6e0e5313fee1ba7cd"></a><!-- doxytag: member="openvrml::browser::add_scoped_light" ref="743e470c69a659c6e0e5313fee1ba7cd" args="(scoped_light_node &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::add_scoped_light           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1scoped__light__node.html">scoped_light_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>light</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a scoped light <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> to the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>light</em>&nbsp;</td><td>a light <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>.</td></tr>
  </table>
</dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>light</code> is not in the list of light nodes for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="d33eabea2bcb7b2a4bcb953d03f54496"></a><!-- doxytag: member="openvrml::browser::remove_scoped_light" ref="d33eabea2bcb7b2a4bcb953d03f54496" args="(scoped_light_node &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::remove_scoped_light           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1scoped__light__node.html">scoped_light_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>light</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove a scoped light <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> from the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>light</em>&nbsp;</td><td>the light <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> to remove.</td></tr>
  </table>
</dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>light</code> is in the list of light nodes for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="1b5f6a4dae8ccf69af904f6c5ae125ef"></a><!-- doxytag: member="openvrml::browser::add_time_dependent" ref="1b5f6a4dae8ccf69af904f6c5ae125ef" args="(time_dependent_node &amp;n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::add_time_dependent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1time__dependent__node.html">time_dependent_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a time-dependent <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> to the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>n</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1time__dependent__node.html" title="Abstract base class for time-dependent nodes.">time_dependent_node</a></code>.</td></tr>
  </table>
</dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>n</code> is not in the list of <code><a class="el" href="classopenvrml_1_1time__dependent__node.html" title="Abstract base class for time-dependent nodes.">time_dependent_node</a>s</code> for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="c00e5df33a77e3ed9114ed9bb7c4c790"></a><!-- doxytag: member="openvrml::browser::remove_time_dependent" ref="c00e5df33a77e3ed9114ed9bb7c4c790" args="(time_dependent_node &amp;n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::remove_time_dependent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1time__dependent__node.html">time_dependent_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove a time-dependent <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> from the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>n</em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1time__dependent__node.html" title="Abstract base class for time-dependent nodes.">time_dependent_node</a></code> to remove.</td></tr>
  </table>
</dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>n</code> is in the list of <code><a class="el" href="classopenvrml_1_1time__dependent__node.html" title="Abstract base class for time-dependent nodes.">time_dependent_node</a>s</code> for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ade0bd4df099f27276ab4b59bcec83ac"></a><!-- doxytag: member="openvrml::browser::add_script" ref="ade0bd4df099f27276ab4b59bcec83ac" args="(script_node &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::add_script           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1script__node.html">script_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>script</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> to the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></em>&nbsp;</td><td>a Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>.</td></tr>
  </table>
</dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></code> is not in the list of Script nodes for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="cf669622a73ae18352ea904e2a701ef8"></a><!-- doxytag: member="openvrml::browser::remove_script" ref="cf669622a73ae18352ea904e2a701ef8" args="(script_node &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::remove_script           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1script__node.html">script_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>script</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove a Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> from the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></em>&nbsp;</td><td>the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> to remove.</td></tr>
  </table>
</dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></code> is in the list of Script nodes for the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="d8244d2e4eb05b9f3aedb493cfd4f56d"></a><!-- doxytag: member="openvrml::browser::update_flags" ref="d8244d2e4eb05b9f3aedb493cfd4f56d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::update_flags           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Propagate the bvolume dirty flag from children to ancestors. 
<p>
The invariant is that if a <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code>'s bounding volume is out of date, then the bounding volumes of all that <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code>'s ancestors must be out of date. However, <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> does not maintain a parent pointer. So we must do a traversal of the entire <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a> graph to do the propagation.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd>node::setBVolumeDirty <p>
node::isBVolumeDirty </dd></dl>

</div>
</div><p>
<a class="anchor" name="bfd54c27c694b36b583ba171ef7bdb92"></a><!-- doxytag: member="openvrml::browser::out" ref="bfd54c27c694b36b583ba171ef7bdb92" args="(const std::string &amp;str) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::out           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>str</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Print a message to the output stream. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>str</em>&nbsp;</td><td>a string. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="275f7c5f39f947d15775b49cdeb4251e"></a><!-- doxytag: member="openvrml::browser::err" ref="275f7c5f39f947d15775b49cdeb4251e" args="(const std::string &amp;str) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::browser::err           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>str</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Print a message to the error stream. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>str</em>&nbsp;</td><td>a string. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="13d37c2420ecf8a85d82179075da228f"></a><!-- doxytag: member="openvrml::browser::headlight_on" ref="13d37c2420ecf8a85d82179075da228f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool openvrml::browser::headlight_on           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indicate whether the headlight is on. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>true</code> if the headlight is on; <code>false</code> otherwise. </dd></dl>

</div>
</div><p>
<hr><h2>Friends And Related Function Documentation</h2>
<a class="anchor" name="5b1ec1027a7d5f661e4ac83adb4d3dae"></a><!-- doxytag: member="openvrml::browser::scene" ref="5b1ec1027a7d5f661e4ac83adb4d3dae" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">class openvrml::browser::scene<code> [friend]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a>. 
<p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="07a8ec098a735a6f513b97f7f963f117"></a><!-- doxytag: member="openvrml::browser::null_node_metatype_" ref="07a8ec098a735a6f513b97f7f963f117" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::auto_ptr&lt; <a class="el" href="classopenvrml_1_1null__node__metatype.html">openvrml::null_node_metatype</a> &gt; <a class="el" href="classopenvrml_1_1browser.html#07a8ec098a735a6f513b97f7f963f117">openvrml::browser::null_node_metatype_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
&ldquo;Null&rdquo; class object for default nodes (e.g., <code>default_viewpoint</code>). 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="02f90f8e33869f4ae70639dc0b171ef9"></a><!-- doxytag: member="openvrml::browser::null_node_type_" ref="02f90f8e33869f4ae70639dc0b171ef9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::auto_ptr&lt; <a class="el" href="classopenvrml_1_1null__node__type.html">openvrml::null_node_type</a> &gt; <a class="el" href="classopenvrml_1_1browser.html#02f90f8e33869f4ae70639dc0b171ef9">openvrml::browser::null_node_type_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
&ldquo;Null&rdquo; type object for default nodes (e.g., <code>default_viewpoint</code>). 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="757780a38caf93530c576d93392f2e92"></a><!-- doxytag: member="openvrml::browser::load_root_scene_thread_mutex_" ref="757780a38caf93530c576d93392f2e92" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#757780a38caf93530c576d93392f2e92">openvrml::browser::load_root_scene_thread_mutex_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#fcfc9c5b000b81da9d4afad6d593824a" title="The thread that loads the root scene.">load_root_scene_thread_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="fcfc9c5b000b81da9d4afad6d593824a"></a><!-- doxytag: member="openvrml::browser::load_root_scene_thread_" ref="fcfc9c5b000b81da9d4afad6d593824a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::scoped_ptr&lt; boost::thread &gt; <a class="el" href="classopenvrml_1_1browser.html#fcfc9c5b000b81da9d4afad6d593824a">openvrml::browser::load_root_scene_thread_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The thread that loads the root <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a>. 
<p>
<p><b>For internal use only.</b></p>
<p>
This thread is spawned by <code><a class="el" href="classopenvrml_1_1browser.html#0a9206f515d8d5858dd4dc9554ba6f0c" title="Asynchronously load a VRML world into the browser.">load_url</a></code>. It is joined there (in a subsequent call to <code><a class="el" href="classopenvrml_1_1browser.html#0a9206f515d8d5858dd4dc9554ba6f0c" title="Asynchronously load a VRML world into the browser.">load_url</a></code>) or when the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> is destroyed. </p>

</div>
</div><p>
<a class="anchor" name="4449d662945bd1af0e6c85b899caf60b"></a><!-- doxytag: member="openvrml::browser::load_proto_thread_group_" ref="4449d662945bd1af0e6c85b899caf60b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::thread_group <a class="el" href="classopenvrml_1_1browser.html#4449d662945bd1af0e6c85b899caf60b">openvrml::browser::load_proto_thread_group_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The threads that load <code>EXTERNPROTO</code> implementations. 
<p>
<p><b>For internal use only.</b></p>
<p>
These threads <b>must</b> be joined by the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> before it is destroyed. </p>

</div>
</div><p>
<a class="anchor" name="3e9a201fcfe23e84e9b92a8ae177e805"></a><!-- doxytag: member="openvrml::browser::script_node_metatype_" ref="3e9a201fcfe23e84e9b92a8ae177e805" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1script__node__metatype.html">openvrml::script_node_metatype</a> <a class="el" href="classopenvrml_1_1browser.html#3e9a201fcfe23e84e9b92a8ae177e805">openvrml::browser::script_node_metatype_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code> for Script <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="a5e5862cb592399f24e12393bbd1e2ed"></a><!-- doxytag: member="openvrml::browser::fetcher_" ref="a5e5862cb592399f24e12393bbd1e2ed" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1resource__fetcher.html">openvrml::resource_fetcher</a> &amp; <a class="el" href="classopenvrml_1_1browser.html#a5e5862cb592399f24e12393bbd1e2ed">openvrml::browser::fetcher_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A reference to the <code><a class="el" href="classopenvrml_1_1resource__fetcher.html" title="An abstract factory for resource_istreams.">resource_fetcher</a></code> associated with the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="a84ba53d5ab020402edcdd103ce5f6d8"></a><!-- doxytag: member="openvrml::browser::scene_mutex_" ref="a84ba53d5ab020402edcdd103ce5f6d8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#a84ba53d5ab020402edcdd103ce5f6d8">openvrml::browser::scene_mutex_</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#2617a804c939e4062a0a029247fb9a59" title="Pointer to the root scene.">scene_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="2617a804c939e4062a0a029247fb9a59"></a><!-- doxytag: member="openvrml::browser::scene_" ref="2617a804c939e4062a0a029247fb9a59" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1scene.html">openvrml::scene</a> * <a class="el" href="classopenvrml_1_1browser.html#2617a804c939e4062a0a029247fb9a59">openvrml::browser::scene_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Pointer to the root <code><a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="ed7822d928ba070cc8abae47f83d5fc6"></a><!-- doxytag: member="openvrml::browser::default_viewpoint_" ref="ed7822d928ba070cc8abae47f83d5fc6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::intrusive_ptr&lt; <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &gt; <a class="el" href="classopenvrml_1_1browser.html#ed7822d928ba070cc8abae47f83d5fc6">openvrml::browser::default_viewpoint_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The &ldquo;default&rdquo; <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> used when no <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code> in the <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a> is bound. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="c82f8bd9655963e49febbaeb5434a84f"></a><!-- doxytag: member="openvrml::browser::active_viewpoint_mutex_" ref="c82f8bd9655963e49febbaeb5434a84f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#c82f8bd9655963e49febbaeb5434a84f">openvrml::browser::active_viewpoint_mutex_</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#b9c20eff8555d2b7c1923a86c6a75206" title="The currently &ldquo;active&rdquo; viewpoint_node.">active_viewpoint_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="b9c20eff8555d2b7c1923a86c6a75206"></a><!-- doxytag: member="openvrml::browser::active_viewpoint_" ref="b9c20eff8555d2b7c1923a86c6a75206" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1viewpoint__node.html">openvrml::viewpoint_node</a> * <a class="el" href="classopenvrml_1_1browser.html#b9c20eff8555d2b7c1923a86c6a75206">openvrml::browser::active_viewpoint_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The currently &ldquo;active&rdquo; <code><a class="el" href="classopenvrml_1_1viewpoint__node.html" title="Abstract base class for viewpoint nodes.">viewpoint_node</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="03b57e32fe96b57c8ac09152a8674ce1"></a><!-- doxytag: member="openvrml::browser::default_navigation_info_" ref="03b57e32fe96b57c8ac09152a8674ce1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::intrusive_ptr&lt; <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &gt; <a class="el" href="classopenvrml_1_1browser.html#03b57e32fe96b57c8ac09152a8674ce1">openvrml::browser::default_navigation_info_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The &ldquo;default&rdquo; <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code> used when no <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code> in the <a class="el" href="classopenvrml_1_1scene.html" title="A scene in the VRML world.">scene</a> is bound. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="552c909a30ec6fa28d1b53a447137318"></a><!-- doxytag: member="openvrml::browser::active_navigation_info_mutex_" ref="552c909a30ec6fa28d1b53a447137318" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#552c909a30ec6fa28d1b53a447137318">openvrml::browser::active_navigation_info_mutex_</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#6ad0d5fbc94d94f4082d22899e851598" title="The currently &ldquo;active&rdquo; navigation_info_node.">active_navigation_info_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="6ad0d5fbc94d94f4082d22899e851598"></a><!-- doxytag: member="openvrml::browser::active_navigation_info_" ref="6ad0d5fbc94d94f4082d22899e851598" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1navigation__info__node.html">openvrml::navigation_info_node</a> * <a class="el" href="classopenvrml_1_1browser.html#6ad0d5fbc94d94f4082d22899e851598">openvrml::browser::active_navigation_info_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The currently &ldquo;active&rdquo; <code><a class="el" href="classopenvrml_1_1navigation__info__node.html" title="Abstract base class for normal nodes.">navigation_info_node</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="4d7c885c85be42613df4863c464c2a57"></a><!-- doxytag: member="openvrml::browser::viewpoint_list_mutex_" ref="4d7c885c85be42613df4863c464c2a57" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#4d7c885c85be42613df4863c464c2a57">openvrml::browser::viewpoint_list_mutex_</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#79d7a99d6f751c7dc0e5634cf567146e" title="A list of all the Viewpoint nodes in the browser.">viewpoint_list_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="79d7a99d6f751c7dc0e5634cf567146e"></a><!-- doxytag: member="openvrml::browser::viewpoint_list_" ref="79d7a99d6f751c7dc0e5634cf567146e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::list&lt; <a class="el" href="classopenvrml_1_1viewpoint__node.html">openvrml::viewpoint_node</a> * &gt; <a class="el" href="classopenvrml_1_1browser.html#79d7a99d6f751c7dc0e5634cf567146e">openvrml::browser::viewpoint_list_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A list of all the Viewpoint <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="13e9d7ed2eaadb9f18d75171e56c3cb9"></a><!-- doxytag: member="openvrml::browser::scoped_lights_mutex_" ref="13e9d7ed2eaadb9f18d75171e56c3cb9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#13e9d7ed2eaadb9f18d75171e56c3cb9">openvrml::browser::scoped_lights_mutex_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#d0ea7da28f90a07bcf567ca2f891a973" title="A list of all the scoped light nodes in the browser.">scoped_lights_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="d0ea7da28f90a07bcf567ca2f891a973"></a><!-- doxytag: member="openvrml::browser::scoped_lights_" ref="d0ea7da28f90a07bcf567ca2f891a973" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::list&lt; <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> * &gt; <a class="el" href="classopenvrml_1_1browser.html#d0ea7da28f90a07bcf567ca2f891a973">openvrml::browser::scoped_lights_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A list of all the scoped light <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="425ff7af9aa700f529221a04c9197c60"></a><!-- doxytag: member="openvrml::browser::scripts_mutex_" ref="425ff7af9aa700f529221a04c9197c60" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#425ff7af9aa700f529221a04c9197c60">openvrml::browser::scripts_mutex_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#6ed99a0abb0c47adf86b31f869d466a4" title="A list of all the Script nodes in the browser.">scripts_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="6ed99a0abb0c47adf86b31f869d466a4"></a><!-- doxytag: member="openvrml::browser::scripts_" ref="6ed99a0abb0c47adf86b31f869d466a4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::list&lt; <a class="el" href="classopenvrml_1_1script__node.html">openvrml::script_node</a> * &gt; <a class="el" href="classopenvrml_1_1browser.html#6ed99a0abb0c47adf86b31f869d466a4">openvrml::browser::scripts_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A list of all the Script <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="5ae64e2a5a0a6cb3ecc5d5c4d9071258"></a><!-- doxytag: member="openvrml::browser::timers_mutex_" ref="5ae64e2a5a0a6cb3ecc5d5c4d9071258" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#5ae64e2a5a0a6cb3ecc5d5c4d9071258">openvrml::browser::timers_mutex_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#160b5a5af65f946a99c7ea8e722d6808" title="A list of all the TimeSensor nodes in the browser.">timers_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="160b5a5af65f946a99c7ea8e722d6808"></a><!-- doxytag: member="openvrml::browser::timers_" ref="160b5a5af65f946a99c7ea8e722d6808" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::list&lt; <a class="el" href="classopenvrml_1_1time__dependent__node.html">openvrml::time_dependent_node</a> * &gt; <a class="el" href="classopenvrml_1_1browser.html#160b5a5af65f946a99c7ea8e722d6808">openvrml::browser::timers_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A list of all the TimeSensor <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="52a2a42286881c87b4755865a5025879"></a><!-- doxytag: member="openvrml::browser::listeners_mutex_" ref="52a2a42286881c87b4755865a5025879" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::mutex <a class="el" href="classopenvrml_1_1browser.html#52a2a42286881c87b4755865a5025879">openvrml::browser::listeners_mutex_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex to guard <code><a class="el" href="classopenvrml_1_1browser.html#801f32885a5bdc2166c75fa057cb2092" title="The set of browser_listeners that will receive browser_events.">listeners_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="801f32885a5bdc2166c75fa057cb2092"></a><!-- doxytag: member="openvrml::browser::listeners_" ref="801f32885a5bdc2166c75fa057cb2092" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::set&lt; <a class="el" href="classopenvrml_1_1browser__listener.html">openvrml::browser_listener</a> * &gt; <a class="el" href="classopenvrml_1_1browser.html#801f32885a5bdc2166c75fa057cb2092">openvrml::browser::listeners_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The set of <code><a class="el" href="classopenvrml_1_1browser__listener.html" title="This class should be inherited by classes that want to listen for browser_events...">browser_listener</a>s</code> that will receive <code><a class="el" href="classopenvrml_1_1browser__event.html" title="A browser-wide event.">browser_event</a>s</code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classopenvrml_1_1browser.html#58137b0dfaa7f46252e1006fbcced97f" title="Add a listener for browser_events.">add_listener</a> <p>
<a class="el" href="classopenvrml_1_1browser.html#732d31db2fcd58e0d2d3cfbc509158af" title="Remove a listener for browser_events.">remove_listener</a> </dd></dl>
</p>

</div>
</div><p>
<a class="anchor" name="299212aea2bc91ac73b450908466a86b"></a><!-- doxytag: member="openvrml::browser::new_view" ref="299212aea2bc91ac73b450908466a86b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classopenvrml_1_1browser.html#299212aea2bc91ac73b450908466a86b">openvrml::browser::new_view</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Flag to indicate if the user has changed to a new view. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="265136f5d8882bd5b8aca40cecc39468"></a><!-- doxytag: member="openvrml::browser::delta_time_mutex_" ref="265136f5d8882bd5b8aca40cecc39468" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#265136f5d8882bd5b8aca40cecc39468">openvrml::browser::delta_time_mutex_</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#57c21a3c998692a6797174f9f6e16098" title="Time elapsed since the last update.">delta_time</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="57c21a3c998692a6797174f9f6e16098"></a><!-- doxytag: member="openvrml::browser::delta_time" ref="57c21a3c998692a6797174f9f6e16098" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classopenvrml_1_1browser.html#57c21a3c998692a6797174f9f6e16098">openvrml::browser::delta_time</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Time elapsed since the last update. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="380e00ef449bcb211a2bdefd179334ab"></a><!-- doxytag: member="openvrml::browser::viewer_mutex_" ref="380e00ef449bcb211a2bdefd179334ab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#380e00ef449bcb211a2bdefd179334ab">openvrml::browser::viewer_mutex_</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#1e8f03a122638b08400655ca4849b751" title="The current viewer.">viewer_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="1e8f03a122638b08400655ca4849b751"></a><!-- doxytag: member="openvrml::browser::viewer_" ref="1e8f03a122638b08400655ca4849b751" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">openvrml::openvrml::viewer * <a class="el" href="classopenvrml_1_1browser.html#1e8f03a122638b08400655ca4849b751">openvrml::browser::viewer_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The current <code><a class="el" href="classopenvrml_1_1viewer.html" title="Map the scene graph to the underlying graphics library.">viewer</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="fe175c04bc510b0e75c5354ee13a5b7a"></a><!-- doxytag: member="openvrml::browser::modified_" ref="fe175c04bc510b0e75c5354ee13a5b7a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classopenvrml_1_1browser.html#fe175c04bc510b0e75c5354ee13a5b7a">openvrml::browser::modified_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Flag to indicate whether the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> has been modified. 
<p>

</div>
</div><p>
<a class="anchor" name="90f95c16ebe2b49ce9a981496e9e278b"></a><!-- doxytag: member="openvrml::browser::modified_mutex_" ref="90f95c16ebe2b49ce9a981496e9e278b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#90f95c16ebe2b49ce9a981496e9e278b">openvrml::browser::modified_mutex_</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#fe175c04bc510b0e75c5354ee13a5b7a" title="Flag to indicate whether the browser has been modified.">modified_</a></code>. 
<p>

</div>
</div><p>
<a class="anchor" name="750cb18a46c165f7128a7ce40f7f9899"></a><!-- doxytag: member="openvrml::browser::frame_rate_mutex_" ref="750cb18a46c165f7128a7ce40f7f9899" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_mutex <a class="el" href="classopenvrml_1_1browser.html#750cb18a46c165f7128a7ce40f7f9899">openvrml::browser::frame_rate_mutex_</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#385b07f9af7bed3bfdc339f1aae77993" title="Frame rate.">frame_rate_</a></code>. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="385b07f9af7bed3bfdc339f1aae77993"></a><!-- doxytag: member="openvrml::browser::frame_rate_" ref="385b07f9af7bed3bfdc339f1aae77993" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classopenvrml_1_1browser.html#385b07f9af7bed3bfdc339f1aae77993">openvrml::browser::frame_rate_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frame rate. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="1b713f0135e3c49ec60a263ff057d3d9"></a><!-- doxytag: member="openvrml::browser::out_mutex_" ref="1b713f0135e3c49ec60a263ff057d3d9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::mutex <a class="el" href="classopenvrml_1_1browser.html#1b713f0135e3c49ec60a263ff057d3d9">openvrml::browser::out_mutex_</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex guarding <code><a class="el" href="classopenvrml_1_1browser.html#bc28e27d6ce4a208a3e67c89730b603d" title="Output stream, generally for console output.">out_</a></code>. 
<p>

</div>
</div><p>
<a class="anchor" name="bc28e27d6ce4a208a3e67c89730b603d"></a><!-- doxytag: member="openvrml::browser::out_" ref="bc28e27d6ce4a208a3e67c89730b603d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; <a class="el" href="classopenvrml_1_1browser.html#bc28e27d6ce4a208a3e67c89730b603d">openvrml::browser::out_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Output stream, generally for console output. 
<p>

</div>
</div><p>
<a class="anchor" name="14fd6bfb0ea939bd37bdad6f61d8e91f"></a><!-- doxytag: member="openvrml::browser::err_mutex_" ref="14fd6bfb0ea939bd37bdad6f61d8e91f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::mutex <a class="el" href="classopenvrml_1_1browser.html#14fd6bfb0ea939bd37bdad6f61d8e91f">openvrml::browser::err_mutex_</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mutex guarding <code><a class="el" href="classopenvrml_1_1browser.html#ae6b0d0e2683fa985161c90568ee2133" title="Error output stream.">err_</a></code>. 
<p>

</div>
</div><p>
<a class="anchor" name="ae6b0d0e2683fa985161c90568ee2133"></a><!-- doxytag: member="openvrml::browser::err_" ref="ae6b0d0e2683fa985161c90568ee2133" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; <a class="el" href="classopenvrml_1_1browser.html#ae6b0d0e2683fa985161c90568ee2133">openvrml::browser::err_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Error output stream. 
<p>

</div>
</div><p>
<a class="anchor" name="598f4c204c82b890f45f56b7acb52133"></a><!-- doxytag: member="openvrml::browser::flags_need_updating" ref="598f4c204c82b890f45f56b7acb52133" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classopenvrml_1_1browser.html#598f4c204c82b890f45f56b7acb52133">openvrml::browser::flags_need_updating</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set by <code>node::bounding_volume_dirty</code> on any <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> in this <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a> graph, cleared by <code><a class="el" href="classopenvrml_1_1browser.html#d8244d2e4eb05b9f3aedb493cfd4f56d" title="Propagate the bvolume dirty flag from children to ancestors.">update_flags</a></code>. 
<p>
<code>true</code> if the bvolume dirty flag has been set on a <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> in the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> graph, but has not yet been propagated to that <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code>'s ancestors. 
</div>
</div><p>
</div>
</div>
<address class="footer"><span class="images"><a href="http://web3d.org/x3d/"><img src="x3d-white-on-black.png" width="43" height="32" border="0" alt="X3D"></a><a href="http://opengl.org"><img src="OGL_sm_wht.png" width="68" height="32" border="0" alt="OpenGL"></a><a href="http://sourceforge.net/projects/openvrml"><img src="http://sourceforge.net/sflogo.php?group_id=7151&amp;type=11" width="120" height="30" border="0" alt="SourceForge.net"></a></span><a href="https://sourceforge.net/apps/trac/openvrml/newticket">Report error</a><br>Generated Thu Aug 13 02:49:17 2009 by Doxygen 1.5.8</address>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
<script type="text/javascript">_uacct = "UA-446379-2"; urchinTracker();</script>
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/openvrml/" : "http://sourceforge.net/apps/piwik/openvrml/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
piwik_action_name = '';
piwik_idsite = 1;
piwik_url = pkBaseURL + "piwik.php";
piwik_log(piwik_action_name, piwik_idsite, piwik_url);
</script>
<object><noscript><p><img src="http://sourceforge.net/apps/piwik/openvrml/piwik.php?idsite=1" alt="piwik"/></p></noscript></object>
<!-- End Piwik Tag -->
</body>
</html>