<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OpenVRML: openvrml::scope 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_1scope.html">scope</a> </div> </div> <div class="contents"> <h1>openvrml::scope Class Reference</h1><!-- doxytag: class="openvrml::scope" -->The <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> class keeps track of defined <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> and prototypes. <a href="#_details">More...</a> <p> <code>#include <openvrml/scope.h></code> <p> <p> <a href="classopenvrml_1_1scope-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_1scope.html#fe759795e2f1613955c1fafeea8394a8">scope</a> (const std::string &id, const boost::shared_ptr< <a class="el" href="classopenvrml_1_1scope.html">scope</a> > &parent=boost::shared_ptr< <a class="el" href="classopenvrml_1_1scope.html">scope</a> >())</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Construct. <a href="#fe759795e2f1613955c1fafeea8394a8"></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_1scope.html#02c3085dd94188ee50d036bb759facf2">id</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> identifier. <a href="#02c3085dd94188ee50d036bb759facf2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const boost::shared_ptr< <a class="el" href="classopenvrml_1_1scope.html">scope</a> > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1scope.html#2084038b5c5060ee599fb11ebe7011d0">parent</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The parent <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <a href="#2084038b5c5060ee599fb11ebe7011d0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const std::pair<br class="typebreak"> < boost::shared_ptr< <a class="el" href="classopenvrml_1_1node__type.html">node_type</a> ><br class="typebreak"> , bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1scope.html#71e4b63c39d7e96ea439d193042b406f">add_type</a> (const boost::shared_ptr< <a class="el" href="classopenvrml_1_1node__type.html">node_type</a> > &type) throw ( std::bad_alloc )</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. <a href="#71e4b63c39d7e96ea439d193042b406f"></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__type.html">node_type</a> > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1scope.html#5dcd9e492fa608a0a6c9c71b9513feef">find_type</a> (const std::string &id) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find a <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>, given a type name. Returns 0 if no <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code> named <code>id</code> is defined for the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <a href="#5dcd9e492fa608a0a6c9c71b9513feef"></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__type.html">node_type</a> > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1scope.html#47f560b05f2e8a709d7a7169765cec5f">first_type</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The first <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code> in the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <a href="#47f560b05f2e8a709d7a7169765cec5f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1node.html">node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1scope.html#d1f381ddb82d8003c0fa569dfd813e92">find_node</a> (const std::string &id) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find the <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_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> with <code><a class="el" href="classopenvrml_1_1node.html#e97fa78196276299919c96e2c1471c4f" title="Retrieve the name of this node.">node::id</a></code> <code>id</code>. <a href="#d1f381ddb82d8003c0fa569dfd813e92"></a><br></td></tr> <tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">std::list< boost::shared_ptr<br class="typebreak"> < <a class="el" href="classopenvrml_1_1node__type.html">node_type</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1scope.html#4409baf09ea50832a5f68d77c452d856">node_type_list</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">List of <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a>s</code> in the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <a href="#4409baf09ea50832a5f68d77c452d856"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">std::map< std::string, <a class="el" href="classopenvrml_1_1node.html">node</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1scope.html#25c0bb4922b4a788d98b54a944c1e216">named_node_map</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Map of the named <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_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <a href="#25c0bb4922b4a788d98b54a944c1e216"></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_1scope.html#f768a1f1955e5bcc5dd9d5938fdd4aee">id_</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> identifier. <a href="#f768a1f1955e5bcc5dd9d5938fdd4aee"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const boost::shared_ptr< <a class="el" href="classopenvrml_1_1scope.html">scope</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1scope.html#ab2b6ebe84272013baf536b6e6b9cec7">parent_</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The parent <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>; null if the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> is a root <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <a href="#ab2b6ebe84272013baf536b6e6b9cec7"></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_1scope.html#d84ace2e52bbdcde31a0ec5a0a206ef2">node</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> identifiers are stored in the <a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a>, so <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> needs special privilege to access them. <a href="#d84ace2e52bbdcde31a0ec5a0a206ef2"></a><br></td></tr> <tr><td colspan="2"><br><h2>Related Functions</h2></td></tr> <tr><td colspan="2">(Note that these are not member functions.) <br><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_1scope.html#fc8ead467203bbf6f28ff119774635a3">path</a> (const <a class="el" href="classopenvrml_1_1scope.html">scope</a> &s) throw(std::bad_alloc)</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> The <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> class keeps track of defined <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>s</code> and prototypes. <p> <code>PROTO</code> definitions add <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a>s</code> to the namespace. <code>PROTO</code> implementations are a separate <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code> namespace and require that any nested <code>PROTOs</code> <b>not</b> be available outside the <code>PROTO</code> implementation. <code>PROTOs</code> defined outside the current namespace are available. <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="fe759795e2f1613955c1fafeea8394a8"></a><!-- doxytag: member="openvrml::scope::scope" ref="fe759795e2f1613955c1fafeea8394a8" args="(const std::string &id, const boost::shared_ptr< scope > &parent=boost::shared_ptr< scope >())" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">openvrml::scope::scope </td> <td>(</td> <td class="paramtype">const std::string & </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_1scope.html">scope</a> > & </td> <td class="paramname"> <em>parent</em> = <code>boost::shared_ptr<<a class="el" href="classopenvrml_1_1scope.html">scope</a>>()</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [explicit]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Construct. <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>the identifier for the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>parent</em> </td><td>the parent <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>.</td></tr> </table> </dl> For the root <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>, <code>id</code> should be the URI of the world. For child <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a>s</code>, <code>id</code> should be the name of the <code>PROTO</code> to which the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> corresponds. </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="02c3085dd94188ee50d036bb759facf2"></a><!-- doxytag: member="openvrml::scope::id" ref="02c3085dd94188ee50d036bb759facf2" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::string & openvrml::scope::id </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> identifier. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> identifier. </dd></dl> </div> </div><p> <a class="anchor" name="2084038b5c5060ee599fb11ebe7011d0"></a><!-- doxytag: member="openvrml::scope::parent" ref="2084038b5c5060ee599fb11ebe7011d0" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const boost::shared_ptr< <a class="el" href="classopenvrml_1_1scope.html">openvrml::scope</a> > & openvrml::scope::parent </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> The parent <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the parent <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>; or null if the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> is a root <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. </dd></dl> </div> </div><p> <a class="anchor" name="71e4b63c39d7e96ea439d193042b406f"></a><!-- doxytag: member="openvrml::scope::add_type" ref="71e4b63c39d7e96ea439d193042b406f" args="(const boost::shared_ptr< node_type > &type)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::pair< boost::shared_ptr< <a class="el" href="classopenvrml_1_1node__type.html">openvrml::node_type</a> >, bool > openvrml::scope::add_type </td> <td>(</td> <td class="paramtype">const boost::shared_ptr< <a class="el" href="classopenvrml_1_1node__type.html">node_type</a> > & </td> <td class="paramname"> <em>type</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_1node__type.html" title="Type information object for nodes.">node_type</a></code>. <p> Print an error message if the argument type is already defined.<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>type</em> </td><td>a <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pair whose first element is a pointer to a <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code> whose <code><a class="el" href="classopenvrml_1_1node__type.html#0b0374710976a192aa8079e48dcf7c8a" title="The name of the node_type.">node_type::id</a></code> is the same as that of <code>type</code>. The second element is a boolean value. If the second element is <code>true</code>, <code>type</code> was successfully added to the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> and the first element is the same as <code>type</code>. If the second element is <code>false</code>, <code>type</code> was not added to the <a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a> and the first element is a <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code> that already exists in the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</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> <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>type</code> is not null. </dd></dl> </div> </div><p> <a class="anchor" name="5dcd9e492fa608a0a6c9c71b9513feef"></a><!-- doxytag: member="openvrml::scope::find_type" ref="5dcd9e492fa608a0a6c9c71b9513feef" args="(const std::string &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__type.html">openvrml::node_type</a> > & openvrml::scope::find_type </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>id</em> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> Find a <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>, given a type name. Returns 0 if no <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code> named <code>id</code> is defined for the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <p> </div> </div><p> <a class="anchor" name="47f560b05f2e8a709d7a7169765cec5f"></a><!-- doxytag: member="openvrml::scope::first_type" ref="47f560b05f2e8a709d7a7169765cec5f" args="() 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__type.html">openvrml::node_type</a> > & openvrml::scope::first_type </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> The first <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code> in the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the first <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code> in the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>, or a null <code>shared_ptr</code> if the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> has no <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a>s</code>. </dd></dl> </div> </div><p> <a class="anchor" name="d1f381ddb82d8003c0fa569dfd813e92"></a><!-- doxytag: member="openvrml::scope::find_node" ref="d1f381ddb82d8003c0fa569dfd813e92" args="(const std::string &id) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> * openvrml::scope::find_node </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>id</em> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> Find the <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_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> with <code><a class="el" href="classopenvrml_1_1node.html#e97fa78196276299919c96e2c1471c4f" title="Retrieve the name of this node.">node::id</a></code> <code>id</code>. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to a <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> with <code><a class="el" href="classopenvrml_1_1node.html#e97fa78196276299919c96e2c1471c4f" title="Retrieve the name of this node.">node::id</a></code> <code>id</code>, or 0 if no such <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> exists in the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. </dd></dl> </div> </div><p> <hr><h2>Friends And Related Function Documentation</h2> <a class="anchor" name="d84ace2e52bbdcde31a0ec5a0a206ef2"></a><!-- doxytag: member="openvrml::scope::node" ref="d84ace2e52bbdcde31a0ec5a0a206ef2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">openvrml::scope::node<code> [friend]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> identifiers are stored in the <a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a>, so <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> needs special privilege to access them. <p> </div> </div><p> <a class="anchor" name="fc8ead467203bbf6f28ff119774635a3"></a><!-- doxytag: member="openvrml::scope::path" ref="fc8ead467203bbf6f28ff119774635a3" args="(const scope &s)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::string path </td> <td>(</td> <td class="paramtype">const <a class="el" href="classopenvrml_1_1scope.html">scope</a> & </td> <td class="paramname"> <em>s</em> </td> <td> ) </td> <td> throw(std::bad_alloc)<code> [related]</code></td> </tr> </table> </div> <div class="memdoc"> <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>s</em> </td><td>a <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the full “path” to the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. </dd></dl> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="4409baf09ea50832a5f68d77c452d856"></a><!-- doxytag: member="openvrml::scope::node_type_list" ref="4409baf09ea50832a5f68d77c452d856" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::list< boost::shared_ptr< <a class="el" href="classopenvrml_1_1node__type.html">openvrml::node_type</a> > > <a class="el" href="classopenvrml_1_1scope.html#4409baf09ea50832a5f68d77c452d856">openvrml::scope::node_type_list</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> List of <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a>s</code> in the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <p> </div> </div><p> <a class="anchor" name="25c0bb4922b4a788d98b54a944c1e216"></a><!-- doxytag: member="openvrml::scope::named_node_map" ref="25c0bb4922b4a788d98b54a944c1e216" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::map< std::string, <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> * > <a class="el" href="classopenvrml_1_1scope.html#25c0bb4922b4a788d98b54a944c1e216">openvrml::scope::named_node_map</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Map of the named <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_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <p> </div> </div><p> <a class="anchor" name="f768a1f1955e5bcc5dd9d5938fdd4aee"></a><!-- doxytag: member="openvrml::scope::id_" ref="f768a1f1955e5bcc5dd9d5938fdd4aee" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::string <a class="el" href="classopenvrml_1_1scope.html#f768a1f1955e5bcc5dd9d5938fdd4aee">openvrml::scope::id_</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> identifier. <p> <p><b>For internal use only.</b></p> <p> </p> </div> </div><p> <a class="anchor" name="ab2b6ebe84272013baf536b6e6b9cec7"></a><!-- doxytag: member="openvrml::scope::parent_" ref="ab2b6ebe84272013baf536b6e6b9cec7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const boost::shared_ptr< const <a class="el" href="classopenvrml_1_1scope.html">openvrml::scope</a> > <a class="el" href="classopenvrml_1_1scope.html#ab2b6ebe84272013baf536b6e6b9cec7">openvrml::scope::parent_</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The parent <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>; null if the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> is a root <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code>. <p> <p><b>For internal use only.</b></p> <p> </p> </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:21 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>