<!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 Page</span></a></li> <li><a href="pages.html"><span>Related 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 List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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 <openvrml/browser.h></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"> </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> &fetcher, std::ostream &out, std::ostream &err) throw ( std::bad_alloc )</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#0f9f05d810ecdc2725d358b624307f63"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#6b39fa2f85adf7f1971f8d590f25ad35">~browser</a> () throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#6b39fa2f85adf7f1971f8d590f25ad35"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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> &id, const boost::shared_ptr< <a class="el" href="classopenvrml_1_1node__metatype.html">openvrml::node_metatype</a> > &metatype) throw ( std::invalid_argument , std::bad_alloc )</td></tr> <tr><td class="mdescLeft"> </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"> < <a class="el" href="classopenvrml_1_1node__metatype.html">openvrml::node_metatype</a> > </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> &id) const throw ()</td></tr> <tr><td class="mdescLeft"> </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> * </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"> </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> </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> &n) const throw ( std::bad_alloc )</td></tr> <tr><td class="mdescLeft"> </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> & </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"> </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 </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> &viewpoint) throw ()</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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> & </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"> </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 </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> &nav_info) throw ()</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </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> &viewpoint) throw ( std::bad_alloc )</td></tr> <tr><td class="mdescLeft"> </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 </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> &viewpoint) throw ()</td></tr> <tr><td class="mdescLeft"> </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< <a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> * > </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"> </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 </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"> </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> * </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"> </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 * </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"> </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 * </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#d714fc1e85efabb41a391e04d524442c">current_speed</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </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> &in)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#242fedcbb26c52f682d18c4095445543">replace_world</a> (const std::vector< boost::intrusive_ptr< <a class="el" href="classopenvrml_1_1node.html">node</a> > > &nodes)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#0a9206f515d8d5858dd4dc9554ba6f0c">load_url</a> (const std::vector< std::string > &url, const std::vector< std::string > &parameter) throw ( std::bad_alloc , boost::thread_resource_error )</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#0f55f33361cefeb456eaf1eec52bac45">description</a> (const std::string &description)</td></tr> <tr><td class="mdescLeft"> </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"> < boost::intrusive_ptr< <a class="el" href="classopenvrml_1_1node.html">node</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#b7de1a15f71653422bebcd74a1a1d906">create_vrml_from_stream</a> (std::istream &in, const std::string &type=<a class="el" href="namespaceopenvrml.html#b271737a62b4e27e3272775a00838c3d">vrml_media_type</a>)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#16524b09e8eb4a8cd21e503207e46de1">create_vrml_from_url</a> (const std::vector< std::string > &url, const boost::intrusive_ptr< <a class="el" href="classopenvrml_1_1node.html">node</a> > &<a class="el" href="classopenvrml_1_1node.html">node</a>, const std::string &event) throw ( unsupported_interface , std::bad_cast , boost::thread_resource_error )</td></tr> <tr><td class="mdescLeft"> </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 </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> &listener) throw ( std::bad_alloc )</td></tr> <tr><td class="mdescLeft"> </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 </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> &listener) throw ()</td></tr> <tr><td class="mdescLeft"> </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 </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(&point)[3])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </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"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#b9e6dd463b20bc2549c40f6060a26e24">render</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#fc87923d57dc3ddab360630df137821f">modified</a> () const </td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#3fba4190859ac578d84fdf51f1015e92">delta</a> () const </td></tr> <tr><td class="mdescLeft"> </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 </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> &)</td></tr> <tr><td class="mdescLeft"> </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 </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> &)</td></tr> <tr><td class="mdescLeft"> </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 </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> &n)</td></tr> <tr><td class="mdescLeft"> </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 </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> &n)</td></tr> <tr><td class="mdescLeft"> </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 </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> &)</td></tr> <tr><td class="mdescLeft"> </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 </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> &)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#d8244d2e4eb05b9f3aedb493cfd4f56d">update_flags</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#bfd54c27c694b36b583ba171ef7bdb92">out</a> (const std::string &str) const </td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#275f7c5f39f947d15775b49cdeb4251e">err</a> (const std::string &str) const </td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#13d37c2420ecf8a85d82179075da228f">headlight_on</a> ()</td></tr> <tr><td class="mdescLeft"> </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"> < <a class="el" href="classopenvrml_1_1node__metatype__registry.html">node_metatype_registry</a> > </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"> < <a class="el" href="classopenvrml_1_1null__node__metatype.html">null_node_metatype</a> > </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"> </td><td class="mdescRight">“Null” 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"> < <a class="el" href="classopenvrml_1_1null__node__type.html">null_node_type</a> > </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"> </td><td class="mdescRight">“Null” 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 </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"> </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< boost::thread > </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"> </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 </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"> </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> </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"> </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> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#a5e5862cb592399f24e12393bbd1e2ed">fetcher_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#a84ba53d5ab020402edcdd103ce5f6d8">scene_mutex_</a></td></tr> <tr><td class="mdescLeft"> </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< <a class="el" href="classopenvrml_1_1scene.html">scene</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#2617a804c939e4062a0a029247fb9a59">scene_</a></td></tr> <tr><td class="mdescLeft"> </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"> < <a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#ed7822d928ba070cc8abae47f83d5fc6">default_viewpoint_</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The “default” <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 </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"> </td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#b9c20eff8555d2b7c1923a86c6a75206" title="The currently “active” 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> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#b9c20eff8555d2b7c1923a86c6a75206">active_viewpoint_</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The currently “active” <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"> < <a class="el" href="classopenvrml_1_1navigation__info__node.html">navigation_info_node</a> > </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"> </td><td class="mdescRight">The “default” <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 </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"> </td><td class="mdescRight">Mutex protecting <code><a class="el" href="classopenvrml_1_1browser.html#6ad0d5fbc94d94f4082d22899e851598" title="The currently “active” 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> * </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"> </td><td class="mdescRight">The currently “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="#6ad0d5fbc94d94f4082d22899e851598"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">boost::shared_mutex </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"> </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< <a class="el" href="classopenvrml_1_1viewpoint__node.html">viewpoint_node</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#79d7a99d6f751c7dc0e5634cf567146e">viewpoint_list_</a></td></tr> <tr><td class="mdescLeft"> </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 </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"> </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< <a class="el" href="classopenvrml_1_1scoped__light__node.html">scoped_light_node</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#d0ea7da28f90a07bcf567ca2f891a973">scoped_lights_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#425ff7af9aa700f529221a04c9197c60">scripts_mutex_</a></td></tr> <tr><td class="mdescLeft"> </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< <a class="el" href="classopenvrml_1_1script__node.html">script_node</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#6ed99a0abb0c47adf86b31f869d466a4">scripts_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#5ae64e2a5a0a6cb3ecc5d5c4d9071258">timers_mutex_</a></td></tr> <tr><td class="mdescLeft"> </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< <a class="el" href="classopenvrml_1_1time__dependent__node.html">time_dependent_node</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#160b5a5af65f946a99c7ea8e722d6808">timers_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#52a2a42286881c87b4755865a5025879">listeners_mutex_</a></td></tr> <tr><td class="mdescLeft"> </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< <a class="el" href="classopenvrml_1_1browser__listener.html">browser_listener</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#801f32885a5bdc2166c75fa057cb2092">listeners_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#299212aea2bc91ac73b450908466a86b">new_view</a></td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#57c21a3c998692a6797174f9f6e16098">delta_time</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#380e00ef449bcb211a2bdefd179334ab">viewer_mutex_</a></td></tr> <tr><td class="mdescLeft"> </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> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#1e8f03a122638b08400655ca4849b751">viewer_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#fe175c04bc510b0e75c5354ee13a5b7a">modified_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#90f95c16ebe2b49ce9a981496e9e278b">modified_mutex_</a></td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#385b07f9af7bed3bfdc339f1aae77993">frame_rate_</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Frame rate. <a href="#385b07f9af7bed3bfdc339f1aae77993"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">boost::mutex </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#1b713f0135e3c49ec60a263ff057d3d9">out_mutex_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#bc28e27d6ce4a208a3e67c89730b603d">out_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#14fd6bfb0ea939bd37bdad6f61d8e91f">err_mutex_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#ae6b0d0e2683fa985161c90568ee2133">err_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1browser.html#5b1ec1027a7d5f661e4ac83adb4d3dae">scene</a></td></tr> <tr><td class="mdescLeft"> </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 </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 </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 </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 </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 </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 </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 &, const node_type &)" --> bool </td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="classopenvrml_1_1node__type.html">node_type</a> &, const <a class="el" href="classopenvrml_1_1node__type.html">node_type</a> &) 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 &in, const std::string &uri, const std::string &type, const openvrml::scene &scene, std::vector< boost::intrusive_ptr< node > > &nodes, std::map< std::string, std::string > &meta)" --> void </td><td class="memItemRight" valign="bottom"><b>local::parse_vrml</b> (std::istream &in, const std::string &uri, const std::string &type, const <a class="el" href="classopenvrml_1_1scene.html">openvrml::scene</a> &<a class="el" href="classopenvrml_1_1scene.html">scene</a>, std::vector< boost::intrusive_ptr< <a class="el" href="classopenvrml_1_1node.html">node</a> > > &nodes, std::map< std::string, std::string > &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 & Destructor Documentation</h2> <a class="anchor" name="0f9f05d810ecdc2725d358b624307f63"></a><!-- doxytag: member="openvrml::browser::browser" ref="0f9f05d810ecdc2725d358b624307f63" args="(resource_fetcher &fetcher, std::ostream &out, std::ostream &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> & </td> <td class="paramname"> <em>fetcher</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">std::ostream & </td> <td class="paramname"> <em>out</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">std::ostream & </td> <td class="paramname"> <em>err</em></td><td> </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> </td><td valign="top"><em>fetcher</em> </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> </td><td valign="top"><em>out</em> </td><td>output stream for console output. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>err</em> </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> </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> ) </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> ) </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 &id, const boost::shared_ptr< openvrml::node_metatype > &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> & </td> <td class="paramname"> <em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const boost::shared_ptr< <a class="el" href="classopenvrml_1_1node__metatype.html">openvrml::node_metatype</a> > & </td> <td class="paramname"> <em>metatype</em></td><td> </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> </td><td valign="top"><em>id</em> </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> </td><td valign="top"><em>nc</em> </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> </td><td>if <code>nc</code> is null. </td></tr> <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em> </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 &id) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const boost::shared_ptr< <a class="el" href="classopenvrml_1_1node__metatype.html">openvrml::node_metatype</a> > 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> & </td> <td class="paramname"> <em>id</em> </td> <td> ) </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> </td><td valign="top"><em>id</em> </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> ) </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 &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> & </td> <td class="paramname"> <em>n</em> </td> <td> ) </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> </td><td valign="top"><em>n</em> </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> </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> & openvrml::browser::active_viewpoint </td> <td>(</td> <td class="paramname"> </td> <td> ) </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 &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> & </td> <td class="paramname"> <em>viewpoint</em> </td> <td> ) </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> </td><td valign="top"><em>viewpoint</em> </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-><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> ) </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> & openvrml::browser::active_navigation_info </td> <td>(</td> <td class="paramname"> </td> <td> ) </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 &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> & </td> <td class="paramname"> <em>nav_info</em> </td> <td> ) </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> </td><td valign="top"><em>nav_info</em> </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-><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> ) </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 &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> & </td> <td class="paramname"> <em>viewpoint</em> </td> <td> ) </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> </td><td valign="top"><em>viewpoint</em> </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> </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 &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> & </td> <td class="paramname"> <em>viewpoint</em> </td> <td> ) </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> </td><td valign="top"><em>viewpoint</em> </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< <a class="el" href="classopenvrml_1_1viewpoint__node.html">openvrml::viewpoint_node</a> * > openvrml::browser::viewpoints </td> <td>(</td> <td class="paramname"> </td> <td> ) </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> * </td> <td class="paramname"> <em>v</em> </td> <td> ) </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> </td><td valign="top"><em>v</em> </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> </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> ) </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> ) </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> ) </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> ) </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> ) </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 &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> & </td> <td class="paramname"> <em>in</em> </td> <td> ) </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> </td><td valign="top"><em>in</em> </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> </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> </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< boost::intrusive_ptr< node > > &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< boost::intrusive_ptr< <a class="el" href="classopenvrml_1_1node.html">node</a> > > & </td> <td class="paramname"> <em>nodes</em> </td> <td> ) </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> </td><td valign="top"><em>nodes</em> </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< std::string > &url, const std::vector< std::string > &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< std::string > & </td> <td class="paramname"> <em>url</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< std::string > & </td> <td class="paramname"> <em>parameter</em></td><td> </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> </td><td valign="top"><em>url</em> </td><td>a URI. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>parameter</em> </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> </td><td>if memory allocation fails. </td></tr> <tr><td valign="top"></td><td valign="top"><em>boost::thread_resource_error</em> </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 &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 & </td> <td class="paramname"> <em>description</em> </td> <td> ) </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> </td><td valign="top"><em>description</em> </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 &in, const std::string &type=vrml_media_type)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::vector< boost::intrusive_ptr< <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> > > openvrml::browser::create_vrml_from_stream </td> <td>(</td> <td class="paramtype">std::istream & </td> <td class="paramname"> <em>in</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>type</em> = <code><a class="el" href="namespaceopenvrml.html#b271737a62b4e27e3272775a00838c3d">vrml_media_type</a></code></td><td> </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> </td><td valign="top"><em>in</em> </td><td>an input stream. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>type</em> </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> </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> </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> </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< std::string > &url, const boost::intrusive_ptr< node > &node, const std::string &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< std::string > & </td> <td class="paramname"> <em>url</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const boost::intrusive_ptr< <a class="el" href="classopenvrml_1_1node.html">node</a> > & </td> <td class="paramname"> <em>node</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>event</em></td><td> </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> </td><td valign="top"><em>url</em> </td><td>an alternative URI list. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></em> </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> </td><td valign="top"><em>event</em> </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> </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> </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> </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 &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> & </td> <td class="paramname"> <em>listener</em> </td> <td> ) </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> </td><td valign="top"><em>listener</em> </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> </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 &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> & </td> <td class="paramname"> <em>listener</em> </td> <td> ) </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> </td><td valign="top"><em>listener</em> </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(&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> * </td> <td class="paramname"> <em>object</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>timestamp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>is_over</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>is_active</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double(&) </td> <td class="paramname"> <em>point</em>[3]</td><td> </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> ) </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=-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 </td> <td class="paramname"> <em>current_time</em> = <code>-1.0</code> </td> <td> ) </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> ) </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 </td> <td class="paramname"> <em>value</em> </td> <td> ) </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> </td><td valign="top"><em>value</em> </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> ) </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 </td> <td class="paramname"> <em>d</em> </td> <td> ) </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> </td><td valign="top"><em>d</em> </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> ) </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 &)" --> <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> & </td> <td class="paramname"> <em>light</em> </td> <td> ) </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> </td><td valign="top"><em>light</em> </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 &)" --> <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> & </td> <td class="paramname"> <em>light</em> </td> <td> ) </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> </td><td valign="top"><em>light</em> </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 &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> & </td> <td class="paramname"> <em>n</em> </td> <td> ) </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> </td><td valign="top"><em>n</em> </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 &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> & </td> <td class="paramname"> <em>n</em> </td> <td> ) </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> </td><td valign="top"><em>n</em> </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 &)" --> <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> & </td> <td class="paramname"> <em>script</em> </td> <td> ) </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> </td><td valign="top"><em><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></em> </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 &)" --> <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> & </td> <td class="paramname"> <em>script</em> </td> <td> ) </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> </td><td valign="top"><em><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></em> </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> ) </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 &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 & </td> <td class="paramname"> <em>str</em> </td> <td> ) </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> </td><td valign="top"><em>str</em> </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 &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 & </td> <td class="paramname"> <em>str</em> </td> <td> ) </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> </td><td valign="top"><em>str</em> </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> ) </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< <a class="el" href="classopenvrml_1_1null__node__metatype.html">openvrml::null_node_metatype</a> > <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> “Null” 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< <a class="el" href="classopenvrml_1_1null__node__type.html">openvrml::null_node_type</a> > <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> “Null” 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< boost::thread > <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> & <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< <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> > <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 “default” <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 “active” 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 “active” <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< <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> > <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 “default” <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 “active” 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 “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> <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< <a class="el" href="classopenvrml_1_1viewpoint__node.html">openvrml::viewpoint_node</a> * > <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< <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> * > <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< <a class="el" href="classopenvrml_1_1script__node.html">openvrml::script_node</a> * > <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< <a class="el" href="classopenvrml_1_1time__dependent__node.html">openvrml::time_dependent_node</a> * > <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< <a class="el" href="classopenvrml_1_1browser__listener.html">openvrml::browser_listener</a> * > <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 & <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 & <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&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>