Sophie

Sophie

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

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

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

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

table {
  width: 100%;
}

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

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

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

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

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

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

.body td {
  background-color: transparent;
}

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

h1 {
  line-height: 1.2em;
}

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

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

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

.mdescRight {
  font-style: italic;
}

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

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

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

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

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

.memitem {
  padding: 0;
}

.memitem table {
  width: auto;
}

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

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

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

.memname {
  font-weight: inherit;
}

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

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

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

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

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

.note {
  border: 1px solid rgb(65%, 65%, 65%);
  background-color: rgb(95%, 95%, 95%);
  margin-left: 10%;
  margin-right: 10%;
}
</style>
</head>
<body>
<table class="sitenav">
  <tr>
    <th><a href="http://openvrml.org/index" title="Home">Home</a></th>
    <th><a href="http://openvrml.org/download" title="Download">Download</a></th>
    <th><a href="http://openvrml.org/screenshots/index" title="Screen shots">Screen shots</a></th>
    <th><a href="http://openvrml.org/discussion" title="Mailing lists and IRC">Discussion</a></th>
    <th>Documentation</th>
  </tr>
</table>
<div class="body">
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceopenvrml.html">openvrml</a>::<a class="el" href="namespaceopenvrml_1_1node__impl__util.html">node_impl_util</a>::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">node_type_impl</a>
  </div>
</div>
<div class="contents">
<h1>openvrml::node_impl_util::node_type_impl&lt; Node &gt; Class Template Reference</h1><!-- doxytag: class="openvrml::node_impl_util::node_type_impl" --><!-- doxytag: inherits="openvrml::node_impl_util::abstract_node_type" -->A template for concrete <code>node_types</code>.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;openvrml/node_impl_util.h&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for openvrml::node_impl_util::node_type_impl&lt; Node &gt;:</div>
<div class="dynsection">
<p><center><img src="classopenvrml_1_1node__impl__util_1_1node__type__impl__inherit__graph.png" border="0" usemap="#openvrml_1_1node__impl__util_1_1node__type__impl_3_01Node_01_4__inherit__map" alt="Inheritance graph"></center>
<map name="openvrml_1_1node__impl__util_1_1node__type__impl_3_01Node_01_4__inherit__map">
<area shape="rect" href="classopenvrml_1_1node__impl__util_1_1abstract__node__type.html" title="Abstract base for openvrml::node_type subclasses." alt="" coords="23,83,316,112"><area shape="rect" href="classopenvrml_1_1node__type.html" title="Type information object for nodes." alt="" coords="96,5,243,35"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classopenvrml_1_1node__impl__util_1_1node__type__impl-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl_1_1event__emitter__ptr.html">event_emitter_ptr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Concrete pointer-to-member wrapper.  <a href="classopenvrml_1_1node__impl__util_1_1node__type__impl_1_1event__emitter__ptr.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl_1_1event__listener__ptr.html">event_listener_ptr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Concrete pointer-to-member wrapper.  <a href="classopenvrml_1_1node__impl__util_1_1node__type__impl_1_1event__listener__ptr.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl_1_1field__ptr.html">field_ptr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Concrete pointer-to-member wrapper.  <a href="classopenvrml_1_1node__impl__util_1_1node__type__impl_1_1field__ptr.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef boost::shared_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1ptr__to__polymorphic__mem.html">ptr_to_polymorphic_mem</a><br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1field__value.html">openvrml::field_value</a>, Node &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e1457ef36dde9774bdc3f92e5faa7c14">field_ptr_ptr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A <code>shared_ptr</code> to a pointer-to-member wrapper template.  <a href="#e1457ef36dde9774bdc3f92e5faa7c14"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef boost::shared_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1ptr__to__polymorphic__mem.html">ptr_to_polymorphic_mem</a><br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1event__listener.html">openvrml::event_listener</a>, <br class="typebreak">
Node &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#17656dffdab74db91c8b795462419f60">event_listener_ptr_ptr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A <code>shared_ptr</code> to a pointer-to-member wrapper template.  <a href="#17656dffdab74db91c8b795462419f60"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef boost::shared_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1ptr__to__polymorphic__mem.html">ptr_to_polymorphic_mem</a><br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1event__emitter.html">openvrml::event_emitter</a>, <br class="typebreak">
Node &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7da8d5ce2dde9a0da368cf8fa92828f0">event_emitter_ptr_ptr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A <code>shared_ptr</code> to a pointer-to-member wrapper template.  <a href="#7da8d5ce2dde9a0da368cf8fa92828f0"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#8d836a48caa0d68d5dee1bac7b85a31f">node_type_impl</a> (const <a class="el" href="classopenvrml_1_1node__metatype.html">openvrml::node_metatype</a> &amp;metatype, const std::string &amp;id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct.  <a href="#8d836a48caa0d68d5dee1bac7b85a31f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#9151f113f6dfe48a723a2ee9bd4f14da">~node_type_impl</a> ()  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy.  <a href="#9151f113f6dfe48a723a2ee9bd4f14da"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename EventListenerMember , typename DeducedNode &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#3b5bd0a704d1624266a9ed11b9aaf0cc">add_eventin</a> (<a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a> type, const std::string &amp;id, EventListenerMember DeducedNode::*<a class="el" href="classopenvrml_1_1event__listener.html">event_listener</a>)  throw (  std::invalid_argument  ,   std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add an <code>eventIn</code>.  <a href="#3b5bd0a704d1624266a9ed11b9aaf0cc"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename EventEmitterMember , typename DeducedNode &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#8fbc54e5f4a43d2df5f82d2e57bde975">add_eventout</a> (<a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a> type, const std::string &amp;id, EventEmitterMember DeducedNode::*<a class="el" href="classopenvrml_1_1event__emitter.html">event_emitter</a>)  throw (  std::invalid_argument  ,   std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add an <code>eventOut</code>.  <a href="#8fbc54e5f4a43d2df5f82d2e57bde975"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename EventListenerMember , typename FieldMember , typename EventEmitterMember , typename DeducedNode &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#b3a5491db6c2d138fa088ea7464be1c1">add_exposedfield</a> (<a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a> type, const std::string &amp;id, EventListenerMember DeducedNode::*<a class="el" href="classopenvrml_1_1event__listener.html">event_listener</a>, FieldMember DeducedNode::*field, EventEmitterMember DeducedNode::*<a class="el" href="classopenvrml_1_1event__emitter.html">event_emitter</a>)  throw (  std::invalid_argument  ,   std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add an <code>exposedField</code>.  <a href="#b3a5491db6c2d138fa088ea7464be1c1"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename ExposedfieldMember , typename DeducedNode &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#6facce58af01486ace2ec44db4599ba3">add_exposedfield</a> (<a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a> type, const std::string &amp;id, ExposedfieldMember DeducedNode::*<a class="el" href="classopenvrml_1_1exposedfield.html">exposedfield</a>)  throw (  std::invalid_argument  ,   std::bad_alloc  )</td></tr>

<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename FieldMember , typename DeducedNode &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e3b0afa33cb219e3e843b4c360ab97a3">add_field</a> (<a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a> type, const std::string &amp;id, FieldMember DeducedNode::*<a class="el" href="classopenvrml_1_1exposedfield.html">exposedfield</a>)  throw (  std::invalid_argument  ,   std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a <code>field</code>.  <a href="#e3b0afa33cb219e3e843b4c360ab97a3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <br class="typebreak">
<a class="el" href="classopenvrml_1_1field__value.html">openvrml::field_value</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e70a948aed364b4bdb4fa5b29c0daa70">field_value</a> (const <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &amp;<a class="el" href="classopenvrml_1_1node.html">node</a>, const std::string &amp;id) const   throw (  openvrml::unsupported_interface  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code>node's</code> <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> corresponding to the field identifier <code>id</code>.  <a href="#e70a948aed364b4bdb4fa5b29c0daa70"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classopenvrml_1_1event__listener.html">openvrml::event_listener</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#1949f78ca6a5a2999c49cead8c24b583">event_listener</a> (<a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &amp;<a class="el" href="classopenvrml_1_1node.html">node</a>, const std::string &amp;id) const   throw (  openvrml::unsupported_interface  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code>node's</code> <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> corresponding to the <code>eventIn</code> identifier <code>id</code>.  <a href="#1949f78ca6a5a2999c49cead8c24b583"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classopenvrml_1_1event__emitter.html">openvrml::event_emitter</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#41379dc0039e0680f74179f1b6d92aef">event_emitter</a> (<a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &amp;<a class="el" href="classopenvrml_1_1node.html">node</a>, const std::string &amp;id) const   throw (  openvrml::unsupported_interface  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code>node's</code> <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> corresponding to the <code>eventOut</code> identifier <code>id</code>.  <a href="#41379dc0039e0680f74179f1b6d92aef"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="1022a49cd2061f4967813f942ae1e223"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::add_eventout" ref="1022a49cd2061f4967813f942ae1e223" args="(const openvrml::field_value::type_id type, const std::string &amp;id, EventListenerMember DeducedNode::*event_emitter)" -->
template&lt;typename EventListenerMember , typename DeducedNode &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>add_eventout</b> (const <a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a> type, const std::string &amp;id, EventListenerMember DeducedNode::*<a class="el" href="classopenvrml_1_1event__emitter.html">event_emitter</a>)  throw (  std::invalid_argument  ,   std::bad_alloc  )</td></tr>

<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename FieldMember , typename DeducedNode &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">static const <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e1457ef36dde9774bdc3f92e5faa7c14">field_ptr_ptr</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#48b6217a795e3da4999ff373d0ce7b21">make_field_ptr_ptr</a> (FieldMember DeducedNode::*ptr_to_mem)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make a <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e1457ef36dde9774bdc3f92e5faa7c14" title="A shared_ptr to a pointer-to-member wrapper template.">field_ptr_ptr</a></code> to a field member of a <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>.  <a href="#48b6217a795e3da4999ff373d0ce7b21"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename EventListenerMember , typename DeducedNode &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">static const <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#17656dffdab74db91c8b795462419f60">event_listener_ptr_ptr</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#5daa2dba6e941e67d9b7ffbca898628c">make_event_listener_ptr_ptr</a> (EventListenerMember DeducedNode::*ptr_to_mem)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make an <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#17656dffdab74db91c8b795462419f60" title="A shared_ptr to a pointer-to-member wrapper template.">event_listener_ptr_ptr</a></code> to a field member of a <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>.  <a href="#5daa2dba6e941e67d9b7ffbca898628c"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename EventEmitterMember , typename DeducedNode &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">static const <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7da8d5ce2dde9a0da368cf8fa92828f0">event_emitter_ptr_ptr</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#f31dd8ef01e0ef241b5864ed4084ba87">make_event_emitter_ptr_ptr</a> (EventEmitterMember DeducedNode::*ptr_to_mem)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make an <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7da8d5ce2dde9a0da368cf8fa92828f0" title="A shared_ptr to a pointer-to-member wrapper template.">event_emitter_ptr_ptr</a></code> to a field member of a <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>.  <a href="#f31dd8ef01e0ef241b5864ed4084ba87"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; std::string, <br class="typebreak">
<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e1457ef36dde9774bdc3f92e5faa7c14">field_ptr_ptr</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#1b9108a5e91c5f27b5aebf4549d9b1c5">field_value_map_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map of pointers to <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members.  <a href="#1b9108a5e91c5f27b5aebf4549d9b1c5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; std::string, <br class="typebreak">
<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#17656dffdab74db91c8b795462419f60">event_listener_ptr_ptr</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#eee4d3eb01eef9b3119ed6cb3ade297f">event_listener_map_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map of pointers to <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members.  <a href="#eee4d3eb01eef9b3119ed6cb3ade297f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; std::string, <br class="typebreak">
<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7da8d5ce2dde9a0da368cf8fa92828f0">event_emitter_ptr_ptr</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#0066c83ff939e90d5f992c6df9ccbea6">event_emitter_map_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map of pointers to <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members.  <a href="#0066c83ff939e90d5f992c6df9ccbea6"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <br class="typebreak">
<a class="el" href="namespaceopenvrml.html#4c88b862d45625d0cbeb839d4c4e9ec8">openvrml::node_interface_set</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7d0ce0b8b750e52b582b32bbc8d77dd3">do_interfaces</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The set of <code>node_interfaces</code> supported by the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>.  <a href="#7d0ce0b8b750e52b582b32bbc8d77dd3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <br class="typebreak">
boost::intrusive_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#b11ff8ebc4e42c3a8dac5c615c040655">do_create_node</a> (const boost::shared_ptr&lt; <a class="el" href="classopenvrml_1_1scope.html">openvrml::scope</a> &gt; &amp;<a class="el" href="classopenvrml_1_1scope.html">scope</a>, const <a class="el" href="namespaceopenvrml.html#d650f8bae74971c2e692a7fdff2bd57d">openvrml::initial_value_map</a> &amp;initial_values) const   throw (  openvrml::unsupported_interface  ,   std::bad_cast  ,   std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> instance.  <a href="#b11ff8ebc4e42c3a8dac5c615c040655"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classopenvrml_1_1field__value.html">openvrml::field_value</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#ee8170c0daa8911c9586a26c255fd2c5">do_field_value</a> (const Node &amp;<a class="el" href="classopenvrml_1_1node.html">node</a>, const std::string &amp;id) const   throw (  openvrml::unsupported_interface  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code>node's</code> <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> corresponding to the field identifier <code>id</code>.  <a href="#ee8170c0daa8911c9586a26c255fd2c5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1event__listener.html">openvrml::event_listener</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#dd4623cbd9b62f26172309e0d89ad049">do_event_listener</a> (Node &amp;<a class="el" href="classopenvrml_1_1node.html">node</a>, const std::string &amp;id) const   throw (  openvrml::unsupported_interface  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code>node's</code> <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> corresponding to the <code>eventIn</code> identifier <code>id</code>.  <a href="#dd4623cbd9b62f26172309e0d89ad049"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1event__emitter.html">openvrml::event_emitter</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#840335fecf03ccbb921a7bbba9417c68">do_event_emitter</a> (Node &amp;<a class="el" href="classopenvrml_1_1node.html">node</a>, const std::string &amp;id) const   throw (  openvrml::unsupported_interface  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code>node's</code> <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> corresponding to the <code>eventOut</code> identifier <code>id</code>.  <a href="#840335fecf03ccbb921a7bbba9417c68"></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="el" href="namespaceopenvrml.html#4c88b862d45625d0cbeb839d4c4e9ec8">openvrml::node_interface_set</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#025094370f4aa663a56088f3d22e0c9b">interfaces_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The set of <code>node_interfaces</code> for the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>.  <a href="#025094370f4aa663a56088f3d22e0c9b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#1b9108a5e91c5f27b5aebf4549d9b1c5">field_value_map_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#deefdba33d9dec88587c54f5876256c0">field_value_map</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map of pointers to <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members.  <a href="#deefdba33d9dec88587c54f5876256c0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#eee4d3eb01eef9b3119ed6cb3ade297f">event_listener_map_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#55f56f24ea300ea0af741f466bd8e425">event_listener_map</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map of pointers to <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members.  <a href="#55f56f24ea300ea0af741f466bd8e425"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#0066c83ff939e90d5f992c6df9ccbea6">event_emitter_map_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7a4c5f22b0a2f773079b65884de3b833">event_emitter_map</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map of pointers to <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members.  <a href="#7a4c5f22b0a2f773079b65884de3b833"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#a366d5d98a8ec63ea83a2f247c96aefd">event_listener_base&lt; Node &gt;</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1event__listener__base.html" title="Abstract base for event_listener implementations.">event_listener_base</a></code> class template accesses <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#55f56f24ea300ea0af741f466bd8e425" title="Map of pointers to openvrml::event_listener node members.">node_type_impl&lt;Node&gt;::event_listener_map</a></code>.  <a href="#a366d5d98a8ec63ea83a2f247c96aefd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#66e1257e8c3c068eeff6932a8cc8c9a2">event_emitter_base&lt; Node &gt;</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1event__emitter__base.html" title="Abstract base for event_emitter implementations.">event_emitter_base</a></code> class template accesses <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7a4c5f22b0a2f773079b65884de3b833" title="Map of pointers to openvrml::event_emitter node members.">node_type_impl&lt;Node&gt;::event_emitter_map</a></code>.  <a href="#66e1257e8c3c068eeff6932a8cc8c9a2"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename Node&gt;<br>
 class openvrml::node_impl_util::node_type_impl&lt; Node &gt;</h3>

A template for concrete <code>node_types</code>. 
<p>
<dl compact><dt><b>Template Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>Node</em>&nbsp;</td><td>a concrete <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> type. </td></tr>
  </table>
</dl>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="e1457ef36dde9774bdc3f92e5faa7c14"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::field_ptr_ptr" ref="e1457ef36dde9774bdc3f92e5faa7c14" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_ptr&lt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1ptr__to__polymorphic__mem.html">openvrml::node_impl_util::ptr_to_polymorphic_mem</a>&lt; <a class="el" href="classopenvrml_1_1field__value.html">openvrml::field_value</a>, Node &gt; &gt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e1457ef36dde9774bdc3f92e5faa7c14">field_ptr_ptr</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A <code>shared_ptr</code> to a pointer-to-member wrapper template. 
<p>

</div>
</div><p>
<a class="anchor" name="17656dffdab74db91c8b795462419f60"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::event_listener_ptr_ptr" ref="17656dffdab74db91c8b795462419f60" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_ptr&lt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1ptr__to__polymorphic__mem.html">openvrml::node_impl_util::ptr_to_polymorphic_mem</a>&lt; <a class="el" href="classopenvrml_1_1event__listener.html">openvrml::event_listener</a>, Node &gt; &gt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#17656dffdab74db91c8b795462419f60">event_listener_ptr_ptr</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A <code>shared_ptr</code> to a pointer-to-member wrapper template. 
<p>

</div>
</div><p>
<a class="anchor" name="7da8d5ce2dde9a0da368cf8fa92828f0"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::event_emitter_ptr_ptr" ref="7da8d5ce2dde9a0da368cf8fa92828f0" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">boost::shared_ptr&lt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1ptr__to__polymorphic__mem.html">openvrml::node_impl_util::ptr_to_polymorphic_mem</a>&lt; <a class="el" href="classopenvrml_1_1event__emitter.html">openvrml::event_emitter</a>, Node &gt; &gt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7da8d5ce2dde9a0da368cf8fa92828f0">event_emitter_ptr_ptr</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A <code>shared_ptr</code> to a pointer-to-member wrapper template. 
<p>

</div>
</div><p>
<a class="anchor" name="1b9108a5e91c5f27b5aebf4549d9b1c5"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::field_value_map_t" ref="1b9108a5e91c5f27b5aebf4549d9b1c5" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt; std::string, <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e1457ef36dde9774bdc3f92e5faa7c14">field_ptr_ptr</a> &gt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#1b9108a5e91c5f27b5aebf4549d9b1c5">field_value_map_t</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map of pointers to <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members. 
<p>

</div>
</div><p>
<a class="anchor" name="eee4d3eb01eef9b3119ed6cb3ade297f"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::event_listener_map_t" ref="eee4d3eb01eef9b3119ed6cb3ade297f" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt; std::string, <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#17656dffdab74db91c8b795462419f60">event_listener_ptr_ptr</a> &gt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#eee4d3eb01eef9b3119ed6cb3ade297f">event_listener_map_t</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map of pointers to <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members. 
<p>

</div>
</div><p>
<a class="anchor" name="0066c83ff939e90d5f992c6df9ccbea6"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::event_emitter_map_t" ref="0066c83ff939e90d5f992c6df9ccbea6" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt; std::string, <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7da8d5ce2dde9a0da368cf8fa92828f0">event_emitter_ptr_ptr</a> &gt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#0066c83ff939e90d5f992c6df9ccbea6">event_emitter_map_t</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map of pointers to <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members. 
<p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="8d836a48caa0d68d5dee1bac7b85a31f"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::node_type_impl" ref="8d836a48caa0d68d5dee1bac7b85a31f" args="(const openvrml::node_metatype &amp;metatype, const std::string &amp;id)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">node_type_impl</a>           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classopenvrml_1_1node__metatype.html">openvrml::node_metatype</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>metatype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</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>&nbsp;</td><td valign="top"><em>metatype</em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1node__metatype.html" title="A class object for node instances.">node_metatype</a></code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code> identifier. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="9151f113f6dfe48a723a2ee9bd4f14da"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::~node_type_impl" ref="9151f113f6dfe48a723a2ee9bd4f14da" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::~<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">node_type_impl</a>           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destroy. 
<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="48b6217a795e3da4999ff373d0ce7b21"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::make_field_ptr_ptr" ref="48b6217a795e3da4999ff373d0ce7b21" args="(FieldMember DeducedNode::*ptr_to_mem)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
<div class="memtemplate">
template&lt;typename FieldMember , typename DeducedNode &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e1457ef36dde9774bdc3f92e5faa7c14">field_ptr_ptr</a> <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::make_field_ptr_ptr           </td>
          <td>(</td>
          <td class="paramtype">FieldMember DeducedNode::*&nbsp;</td>
          <td class="paramname"> <em>ptr_to_mem</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make a <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e1457ef36dde9774bdc3f92e5faa7c14" title="A shared_ptr to a pointer-to-member wrapper template.">field_ptr_ptr</a></code> to a field member of a <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>. 
<p>
<dl compact><dt><b>Template Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>FieldMember</em>&nbsp;</td><td>a <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">field_value</a></code> member of Node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>DeducedNode</em>&nbsp;</td><td>the deduced type of the <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> may differ from its actual concrete type in the contexts in which this function is used. We <code>static_cast</code> to the actual type.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>ptr_to_mem</em>&nbsp;</td><td>a pointer to an <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> member.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#e1457ef36dde9774bdc3f92e5faa7c14" title="A shared_ptr to a pointer-to-member wrapper template.">field_ptr_ptr</a></code> to <code>ptr_to_mem</code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="5daa2dba6e941e67d9b7ffbca898628c"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::make_event_listener_ptr_ptr" ref="5daa2dba6e941e67d9b7ffbca898628c" args="(EventListenerMember DeducedNode::*ptr_to_mem)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
<div class="memtemplate">
template&lt;typename EventListenerMember , typename DeducedNode &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#17656dffdab74db91c8b795462419f60">event_listener_ptr_ptr</a> <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::make_event_listener_ptr_ptr           </td>
          <td>(</td>
          <td class="paramtype">EventListenerMember DeducedNode::*&nbsp;</td>
          <td class="paramname"> <em>ptr_to_mem</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make an <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#17656dffdab74db91c8b795462419f60" title="A shared_ptr to a pointer-to-member wrapper template.">event_listener_ptr_ptr</a></code> to a field member of a <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>. 
<p>
<dl compact><dt><b>Template Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>EventListenerMember</em>&nbsp;</td><td>an <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">event_listener</a></code> member of Node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>DeducedNode</em>&nbsp;</td><td>the deduced type of the <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> may differ from its actual concrete type in the contexts in which this function is used. We <code>static_cast</code> to the actual type.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>ptr_to_mem</em>&nbsp;</td><td>a pointer to an <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> member.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#17656dffdab74db91c8b795462419f60" title="A shared_ptr to a pointer-to-member wrapper template.">event_listener_ptr_ptr</a></code> to <code>ptr_to_mem</code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="f31dd8ef01e0ef241b5864ed4084ba87"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::make_event_emitter_ptr_ptr" ref="f31dd8ef01e0ef241b5864ed4084ba87" args="(EventEmitterMember DeducedNode::*ptr_to_mem)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
<div class="memtemplate">
template&lt;typename EventEmitterMember , typename DeducedNode &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7da8d5ce2dde9a0da368cf8fa92828f0">event_emitter_ptr_ptr</a> <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::make_event_emitter_ptr_ptr           </td>
          <td>(</td>
          <td class="paramtype">EventEmitterMember DeducedNode::*&nbsp;</td>
          <td class="paramname"> <em>ptr_to_mem</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make an <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7da8d5ce2dde9a0da368cf8fa92828f0" title="A shared_ptr to a pointer-to-member wrapper template.">event_emitter_ptr_ptr</a></code> to a field member of a <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>. 
<p>
<dl compact><dt><b>Template Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>EventEmitterMember</em>&nbsp;</td><td>an <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">event_emitter</a></code> member of Node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>DeducedNode</em>&nbsp;</td><td>the deduced type of the <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> may differ from its actual concrete type in the contexts in which this function is used. We <code>static_cast</code> to the actual type.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>ptr_to_mem</em>&nbsp;</td><td>a pointer to an <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> member.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7da8d5ce2dde9a0da368cf8fa92828f0" title="A shared_ptr to a pointer-to-member wrapper template.">event_emitter_ptr_ptr</a></code> to <code>ptr_to_mem</code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="3b5bd0a704d1624266a9ed11b9aaf0cc"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::add_eventin" ref="3b5bd0a704d1624266a9ed11b9aaf0cc" args="(openvrml::field_value::type_id type, const std::string &amp;id, EventListenerMember DeducedNode::*event_listener)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
<div class="memtemplate">
template&lt;typename EventListenerMember , typename DeducedNode &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::add_eventin           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">EventListenerMember DeducedNode::*&nbsp;</td>
          <td class="paramname"> <em>event_listener</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  std::invalid_argument  ,   std::bad_alloc  )<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add an <code>eventIn</code>. 
<p>
<dl compact><dt><b>Template Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>EventListenerMember</em>&nbsp;</td><td>the type of the <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">event_listener</a></code> member. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>DeducedNode</em>&nbsp;</td><td>the deduced type of the <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> of which the event listener is a member.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>type</em>&nbsp;</td><td>the field value type. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td>the <code>eventIn</code> identifier. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">event_listener</a></em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> associated with the <code>eventIn</code>.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::invalid_argument</em>&nbsp;</td><td>if an interface with a conflicting <code>id</code> has already been added to the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="8fbc54e5f4a43d2df5f82d2e57bde975"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::add_eventout" ref="8fbc54e5f4a43d2df5f82d2e57bde975" args="(openvrml::field_value::type_id type, const std::string &amp;id, EventEmitterMember DeducedNode::*event_emitter)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
<div class="memtemplate">
template&lt;typename EventEmitterMember , typename DeducedNode &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::add_eventout           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">EventEmitterMember DeducedNode::*&nbsp;</td>
          <td class="paramname"> <em>event_emitter</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  std::invalid_argument  ,   std::bad_alloc  )<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add an <code>eventOut</code>. 
<p>
<dl compact><dt><b>Template Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>EventEmitterMember</em>&nbsp;</td><td>the type of the <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">event_emitter</a></code> member. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>DeducedNode</em>&nbsp;</td><td>the deduced type of the <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> of which the event emitter is a member.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>type</em>&nbsp;</td><td>the field value type. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td>the <code>eventOut</code> identifier. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">event_emitter</a></em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> associated with the <code>eventOut</code>.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::invalid_argument</em>&nbsp;</td><td>if an interface with a conflicting <code>id</code> has already been added to the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="b3a5491db6c2d138fa088ea7464be1c1"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::add_exposedfield" ref="b3a5491db6c2d138fa088ea7464be1c1" args="(openvrml::field_value::type_id type, const std::string &amp;id, EventListenerMember DeducedNode::*event_listener, FieldMember DeducedNode::*field, EventEmitterMember DeducedNode::*event_emitter)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
<div class="memtemplate">
template&lt;typename EventListenerMember , typename FieldMember , typename EventEmitterMember , typename DeducedNode &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::add_exposedfield           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">EventListenerMember DeducedNode::*&nbsp;</td>
          <td class="paramname"> <em>event_listener</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FieldMember DeducedNode::*&nbsp;</td>
          <td class="paramname"> <em>field</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">EventEmitterMember DeducedNode::*&nbsp;</td>
          <td class="paramname"> <em>event_emitter</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  std::invalid_argument  ,   std::bad_alloc  )<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add an <code>exposedField</code>. 
<p>
<dl compact><dt><b>Template Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>EventEmitterMember</em>&nbsp;</td><td>the type of the <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">event_emitter</a></code> member. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>FieldMember</em>&nbsp;</td><td>the type of the <code>field</code> member. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>EventListenerMember</em>&nbsp;</td><td>the type of the <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">event_listener</a></code> member. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>DeducedNode</em>&nbsp;</td><td>the deduced type of the <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> of which the event emitter is a member.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>type</em>&nbsp;</td><td>the field value type. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td>the <code>exposedField</code> identifier. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">event_listener</a></em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> associated with the <code>exposedField</code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>field</em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> associated with the <code>exposedField</code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">event_emitter</a></em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> associated with the <code>exposedField</code>.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::invalid_argument</em>&nbsp;</td><td>if an interface with a conflicting <code>id</code> has already been added to the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="6facce58af01486ace2ec44db4599ba3"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::add_exposedfield" ref="6facce58af01486ace2ec44db4599ba3" args="(openvrml::field_value::type_id type, const std::string &amp;id, ExposedfieldMember DeducedNode::*exposedfield)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
<div class="memtemplate">
template&lt;typename ExposedfieldMember , typename DeducedNode &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::add_exposedfield           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ExposedfieldMember DeducedNode::*&nbsp;</td>
          <td class="paramname"> <em>exposedfield</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  std::invalid_argument  ,   std::bad_alloc  )<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.<p>
<dl compact><dt><b>Template Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ExposedfieldMember</em>&nbsp;</td><td>the type of the <code><a class="el" href="classopenvrml_1_1exposedfield.html" title="Class template to simplify implementation of exposedFields.">exposedfield</a></code> member. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>DeducedNode</em>&nbsp;</td><td>the deduced type of the <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> of which the event emitter is a member.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>type</em>&nbsp;</td><td>the field value type. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td>the <code>exposedField</code> identifier. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1exposedfield.html" title="Class template to simplify implementation of exposedFields.">exposedfield</a></em>&nbsp;</td><td>the member associated with the <code>exposedField</code>.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::invalid_argument</em>&nbsp;</td><td>if an interface with a conflicting <code>id</code> has already been added to the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="e3b0afa33cb219e3e843b4c360ab97a3"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::add_field" ref="e3b0afa33cb219e3e843b4c360ab97a3" args="(openvrml::field_value::type_id type, const std::string &amp;id, FieldMember DeducedNode::*exposedfield)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
<div class="memtemplate">
template&lt;typename FieldMember , typename DeducedNode &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::add_field           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1field__value.html#4bc5e65d6aec0ad3cf49f3992025d4ef">openvrml::field_value::type_id</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FieldMember DeducedNode::*&nbsp;</td>
          <td class="paramname"> <em>field</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  std::invalid_argument  ,   std::bad_alloc  )<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a <code>field</code>. 
<p>
<dl compact><dt><b>Template Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>FieldMember</em>&nbsp;</td><td>the type of the <code>field</code> member. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>DeducedNode</em>&nbsp;</td><td>the deduced type of the <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> of which the event emitter is a member.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>type</em>&nbsp;</td><td>the field value type. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td>the field identifier. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>field</em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> associated with the <code>field</code>.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::invalid_argument</em>&nbsp;</td><td>if an interface with a conflicting <code>id</code> has already been added to the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="e70a948aed364b4bdb4fa5b29c0daa70"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::field_value" ref="e70a948aed364b4bdb4fa5b29c0daa70" args="(const openvrml::node &amp;node, const std::string &amp;id) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classopenvrml_1_1field__value.html">openvrml::field_value</a> &amp; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1field__value.html">field_value</a>           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const  throw (  <a class="el" href="classopenvrml_1_1unsupported__interface.html">openvrml::unsupported_interface</a>  )<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<code>node's</code> <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> corresponding to the field identifier <code>id</code>. 
<p>
Delegates to <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#ee8170c0daa8911c9586a26c255fd2c5" title="node&#39;s openvrml::field_value corresponding to the field identifier id.">node_type_impl&lt;Node&gt;::do_field_value</a></code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">openvrml::node</a></code> for which to return the <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td><code>field</code> identifier.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>node's</code> <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> corresponding to the <code>field</code> identifier <code>id</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_1unsupported__interface.html" title="Exception to indicate that a node interface is not supported.">openvrml::unsupported_interface</a></em>&nbsp;</td><td>if <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> has no <code>field</code> <code>id</code>. </td></tr>
  </table>
</dl>

<p>Implements <a class="el" href="classopenvrml_1_1node__impl__util_1_1abstract__node__type.html#cd6380092202b9ddec504fe4ffced3c8">openvrml::node_impl_util::abstract_node_type</a>.</p>

</div>
</div><p>
<a class="anchor" name="1949f78ca6a5a2999c49cead8c24b583"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::event_listener" ref="1949f78ca6a5a2999c49cead8c24b583" args="(openvrml::node &amp;node, const std::string &amp;id) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1event__listener.html">openvrml::event_listener</a> &amp; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1event__listener.html">event_listener</a>           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const  throw (  <a class="el" href="classopenvrml_1_1unsupported__interface.html">openvrml::unsupported_interface</a>  )<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<code>node's</code> <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> corresponding to the <code>eventIn</code> identifier <code>id</code>. 
<p>
Delegates to <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#dd4623cbd9b62f26172309e0d89ad049" title="node&#39;s openvrml::event_listener corresponding to the eventIn identifier id.">node_type_impl&lt;Node&gt;::do_event_listener</a></code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">openvrml::node</a></code> for which to return the <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td><code>eventIn</code> identifier.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>node's</code> <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> corresponding to the eventIn identifier <code>id</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_1unsupported__interface.html" title="Exception to indicate that a node interface is not supported.">openvrml::unsupported_interface</a></em>&nbsp;</td><td>if <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> has no <code>eventIn</code> <code>id</code>. </td></tr>
  </table>
</dl>

<p>Implements <a class="el" href="classopenvrml_1_1node__impl__util_1_1abstract__node__type.html#60de2b3d1a75dfc60dd22de2250f9b9c">openvrml::node_impl_util::abstract_node_type</a>.</p>

</div>
</div><p>
<a class="anchor" name="41379dc0039e0680f74179f1b6d92aef"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::event_emitter" ref="41379dc0039e0680f74179f1b6d92aef" args="(openvrml::node &amp;node, const std::string &amp;id) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1event__emitter.html">openvrml::event_emitter</a> &amp; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1event__emitter.html">event_emitter</a>           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const  throw (  <a class="el" href="classopenvrml_1_1unsupported__interface.html">openvrml::unsupported_interface</a>  )<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<code>node's</code> <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> corresponding to the <code>eventOut</code> identifier <code>id</code>. 
<p>
Delegates to <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#840335fecf03ccbb921a7bbba9417c68" title="node&#39;s openvrml::event_emitter corresponding to the eventOut identifier id.">node_type_impl&lt;Node&gt;::do_event_emitter</a></code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">openvrml::node</a></code> for which to return the <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td><code>eventOut</code> identifier.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>node's</code> <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> corresponding to the <code>eventOut</code> identifier <code>id</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_1unsupported__interface.html" title="Exception to indicate that a node interface is not supported.">openvrml::unsupported_interface</a></em>&nbsp;</td><td>if <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> has no <code>eventOut</code> <code>id</code>. </td></tr>
  </table>
</dl>

<p>Implements <a class="el" href="classopenvrml_1_1node__impl__util_1_1abstract__node__type.html#056e2a6b5b7948109bdd43bc46f7f9a4">openvrml::node_impl_util::abstract_node_type</a>.</p>

</div>
</div><p>
<a class="anchor" name="7d0ce0b8b750e52b582b32bbc8d77dd3"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::do_interfaces" ref="7d0ce0b8b750e52b582b32bbc8d77dd3" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespaceopenvrml.html#4c88b862d45625d0cbeb839d4c4e9ec8">openvrml::node_interface_set</a> &amp; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::do_interfaces           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()<code> [inline, private, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The set of <code>node_interfaces</code> supported by the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the set of <code>node_interfaces</code> supported by the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. </dd></dl>

<p>Implements <a class="el" href="classopenvrml_1_1node__type.html#a0d0f688df779416b838dd80cf2ed3af">openvrml::node_type</a>.</p>

</div>
</div><p>
<a class="anchor" name="b11ff8ebc4e42c3a8dac5c615c040655"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::do_create_node" ref="b11ff8ebc4e42c3a8dac5c615c040655" args="(const boost::shared_ptr&lt; openvrml::scope &gt; &amp;scope, const openvrml::initial_value_map &amp;initial_values) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const boost::intrusive_ptr&lt; <a class="el" href="classopenvrml_1_1node.html">openvrml::node</a> &gt; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::do_create_node           </td>
          <td>(</td>
          <td class="paramtype">const boost::shared_ptr&lt; <a class="el" href="classopenvrml_1_1scope.html">openvrml::scope</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>scope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceopenvrml.html#d650f8bae74971c2e692a7fdff2bd57d">openvrml::initial_value_map</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>initial_values</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const  throw (  <a class="el" href="classopenvrml_1_1unsupported__interface.html">openvrml::unsupported_interface</a>  ,   std::bad_cast  ,   std::bad_alloc  )<code> [inline, private, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> instance. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1scope.html" title="The scope class keeps track of defined nodes and prototypes.">scope</a></code> the new <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> will belong to. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>initial_values</em>&nbsp;</td><td>initial values for the new <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code>'s fields.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a new <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> instance.</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_1unsupported__interface.html" title="Exception to indicate that a node interface is not supported.">openvrml::unsupported_interface</a></em>&nbsp;</td><td>if a field identifier in <code>initial_values</code> does not correspond to a field for the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_cast</em>&nbsp;</td><td>if a field value type in <code>initial_values</code> is incorrect for the corresponding field for the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ee8170c0daa8911c9586a26c255fd2c5"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::do_field_value" ref="ee8170c0daa8911c9586a26c255fd2c5" args="(const Node &amp;node, const std::string &amp;id) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classopenvrml_1_1field__value.html">openvrml::field_value</a> &amp; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::do_field_value           </td>
          <td>(</td>
          <td class="paramtype">const Node &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const  throw (  <a class="el" href="classopenvrml_1_1unsupported__interface.html">openvrml::unsupported_interface</a>  )<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<code>node's</code> <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> corresponding to the field identifier <code>id</code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></em>&nbsp;</td><td>the <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> for which to return the <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td><code>field</code> identifier.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>node's</code> <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> corresponding to the <code>field</code> identifier <code>id</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_1unsupported__interface.html" title="Exception to indicate that a node interface is not supported.">openvrml::unsupported_interface</a></em>&nbsp;</td><td>if <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> has no <code>field</code> <code>id</code>. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="dd4623cbd9b62f26172309e0d89ad049"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::do_event_listener" ref="dd4623cbd9b62f26172309e0d89ad049" args="(Node &amp;node, const std::string &amp;id) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1event__listener.html">openvrml::event_listener</a> &amp; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::do_event_listener           </td>
          <td>(</td>
          <td class="paramtype">Node &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const  throw (  <a class="el" href="classopenvrml_1_1unsupported__interface.html">openvrml::unsupported_interface</a>  )<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<code>node's</code> <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> corresponding to the <code>eventIn</code> identifier <code>id</code>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">openvrml::node</a></code> for which to return the <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td><code>eventIn</code> identifier.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>node's</code> <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> corresponding to the <code>eventIn</code> identifier <code>id</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_1unsupported__interface.html" title="Exception to indicate that a node interface is not supported.">openvrml::unsupported_interface</a></em>&nbsp;</td><td>if <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> has no <code>eventIn</code> <code>id</code>. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="840335fecf03ccbb921a7bbba9417c68"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::do_event_emitter" ref="840335fecf03ccbb921a7bbba9417c68" args="(Node &amp;node, const std::string &amp;id) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1event__emitter.html">openvrml::event_emitter</a> &amp; <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::do_event_emitter           </td>
          <td>(</td>
          <td class="paramtype">Node &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const  throw (  <a class="el" href="classopenvrml_1_1unsupported__interface.html">openvrml::unsupported_interface</a>  )<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<code>node's</code> <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> corresponding to the <code>eventOut</code> identifier <code>id</code>. 
<p>
Delegates to <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#840335fecf03ccbb921a7bbba9417c68" title="node&#39;s openvrml::event_emitter corresponding to the eventOut identifier id.">node_type_impl&lt;Node&gt;::do_event_emitter</a></code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">openvrml::node</a></code> for which to return the <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td><code>eventOut</code> identifier.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>node's</code> <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> corresponding to the <code>eventOut</code> identifier <code>id</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_1unsupported__interface.html" title="Exception to indicate that a node interface is not supported.">openvrml::unsupported_interface</a></em>&nbsp;</td><td>if <code><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></code> has no <code>eventOut</code> <code>id</code>. </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr><h2>Friends And Related Function Documentation</h2>
<a class="anchor" name="a366d5d98a8ec63ea83a2f247c96aefd"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::event_listener_base&lt; Node &gt;" ref="a366d5d98a8ec63ea83a2f247c96aefd" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">class <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1event__listener__base.html">event_listener_base</a><code> [friend]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1event__listener__base.html" title="Abstract base for event_listener implementations.">event_listener_base</a></code> class template accesses <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#55f56f24ea300ea0af741f466bd8e425" title="Map of pointers to openvrml::event_listener node members.">node_type_impl&lt;Node&gt;::event_listener_map</a></code>. 
<p>

</div>
</div><p>
<a class="anchor" name="66e1257e8c3c068eeff6932a8cc8c9a2"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::event_emitter_base&lt; Node &gt;" ref="66e1257e8c3c068eeff6932a8cc8c9a2" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">class <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1event__emitter__base.html">event_emitter_base</a><code> [friend]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1event__emitter__base.html" title="Abstract base for event_emitter implementations.">event_emitter_base</a></code> class template accesses <code><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7a4c5f22b0a2f773079b65884de3b833" title="Map of pointers to openvrml::event_emitter node members.">node_type_impl&lt;Node&gt;::event_emitter_map</a></code>. 
<p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="025094370f4aa663a56088f3d22e0c9b"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::interfaces_" ref="025094370f4aa663a56088f3d22e0c9b" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceopenvrml.html#4c88b862d45625d0cbeb839d4c4e9ec8">openvrml::node_interface_set</a> <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#025094370f4aa663a56088f3d22e0c9b">interfaces_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The set of <code>node_interfaces</code> for the <code><a class="el" href="classopenvrml_1_1node__type.html" title="Type information object for nodes.">node_type</a></code>. 
<p>

</div>
</div><p>
<a class="anchor" name="deefdba33d9dec88587c54f5876256c0"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::field_value_map" ref="deefdba33d9dec88587c54f5876256c0" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#1b9108a5e91c5f27b5aebf4549d9b1c5">field_value_map_t</a> <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#deefdba33d9dec88587c54f5876256c0">field_value_map</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map of pointers to <code><a class="el" href="classopenvrml_1_1field__value.html" title="Abstract base class for the VRML field types.">openvrml::field_value</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members. 
<p>

</div>
</div><p>
<a class="anchor" name="55f56f24ea300ea0af741f466bd8e425"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::event_listener_map" ref="55f56f24ea300ea0af741f466bd8e425" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#eee4d3eb01eef9b3119ed6cb3ade297f">event_listener_map_t</a> <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#55f56f24ea300ea0af741f466bd8e425">event_listener_map</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map of pointers to <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">openvrml::event_listener</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members. 
<p>

</div>
</div><p>
<a class="anchor" name="7a4c5f22b0a2f773079b65884de3b833"></a><!-- doxytag: member="openvrml::node_impl_util::node_type_impl::event_emitter_map" ref="7a4c5f22b0a2f773079b65884de3b833" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Node &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#0066c83ff939e90d5f992c6df9ccbea6">event_emitter_map_t</a> <a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html">openvrml::node_impl_util::node_type_impl</a>&lt; Node &gt;::<a class="el" href="classopenvrml_1_1node__impl__util_1_1node__type__impl.html#7a4c5f22b0a2f773079b65884de3b833">event_emitter_map</a><code> [mutable, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map of pointers to <code><a class="el" href="classopenvrml_1_1event__emitter.html" title="Abstract base class of event emitters.">openvrml::event_emitter</a></code> <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> members. 
<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&amp;type=11" width="120" height="30" border="0" alt="SourceForge.net"></a></span><a href="https://sourceforge.net/apps/trac/openvrml/newticket">Report error</a><br>Generated Thu Aug 13 02:49:24 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>