Sophie

Sophie

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

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

table {
  width: 100%;
}

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

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

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

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

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

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

.body td {
  background-color: transparent;
}

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

h1 {
  line-height: 1.2em;
}

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

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

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

.mdescRight {
  font-style: italic;
}

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

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

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

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

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

.memitem {
  padding: 0;
}

.memitem table {
  width: auto;
}

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

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

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

.memname {
  font-weight: inherit;
}

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

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

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

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

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

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

<p>
<a href="classopenvrml_1_1script-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#db0d27bba503e2df281c9501b0570d75">~script</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy.  <a href="#db0d27bba503e2df281c9501b0570d75"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#a39636f4132f5e8187894b6c6b30e004">initialize</a> (double timestamp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>.  <a href="#a39636f4132f5e8187894b6c6b30e004"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#22a74f6fcc6da20c3041f6f1d7c6f15d">process_event</a> (const std::string &amp;id, const <a class="el" href="classopenvrml_1_1field__value.html">field_value</a> &amp;value, double timestamp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process an event.  <a href="#22a74f6fcc6da20c3041f6f1d7c6f15d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#18a931508633a2ed4949f82b06b0a9cd">events_processed</a> (double timestamp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Execute script code after processing events.  <a href="#18a931508633a2ed4949f82b06b0a9cd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#1b80275d0d96420c7d634df7f2e251b3">shutdown</a> (double timestamp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shut down the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>.  <a href="#1b80275d0d96420c7d634df7f2e251b3"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#58890b4677e6700afe1b535092108be2">script</a> (<a class="el" href="classopenvrml_1_1script__node.html">script_node</a> &amp;<a class="el" href="classopenvrml_1_1node.html">node</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct.  <a href="#58890b4677e6700afe1b535092108be2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#8aa31df25389b65c7d4c793757d68a22">direct_output</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether direct output is enabled for the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>.  <a href="#8aa31df25389b65c7d4c793757d68a22"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#acbd253e3191166d381f63a4fbb0cc7d">must_evaluate</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> may delay sending input events to the <code><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></code> until its outputs are needed by the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>.  <a href="#acbd253e3191166d381f63a4fbb0cc7d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#3627f6097784a08707bf330df4bf7671">field</a> (const std::string &amp;id, const <a class="el" href="classopenvrml_1_1field__value.html">field_value</a> &amp;value)  throw (  unsupported_interface  ,   std::bad_cast  ,   std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of a field.  <a href="#3627f6097784a08707bf330df4bf7671"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#be09075abdd9033997b571a7f809ad22">direct_output</a> (<a class="el" href="classopenvrml_1_1event__listener.html">event_listener</a> &amp;listener, const boost::shared_ptr&lt; <a class="el" href="classopenvrml_1_1field__value.html">field_value</a> &gt; &amp;value)  throw (  field_value_type_mismatch  ,   std::bad_alloc  )</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add an event for direct output processing at the end of <a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a> execution.  <a href="#be09075abdd9033997b571a7f809ad22"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classopenvrml_1_1script__node.html">script_node</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#a8f44f4972d744257635cfa7e05b392b">node</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A reference to the <code><a class="el" href="classopenvrml_1_1script__node.html" title="Represents a VRML Script node.">script_node</a></code> that uses this <code><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></code> object.  <a href="#a8f44f4972d744257635cfa7e05b392b"></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<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1event__listener.html">openvrml::event_listener</a> <br class="typebreak">
*, boost::shared_ptr<br class="typebreak">
&lt; <a class="el" href="classopenvrml_1_1field__value.html">field_value</a> &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#0782d2a7d427614a3ad23c074ebb7727">direct_output_map_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map of direct outputs.  <a href="#0782d2a7d427614a3ad23c074ebb7727"></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 void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#a4d12ec9746d2632f884b8925a911511">do_initialize</a> (double timestamp)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>.  <a href="#a4d12ec9746d2632f884b8925a911511"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#d3cc5ae458bc3616afd3f877e842663e">do_process_event</a> (const std::string &amp;id, const <a class="el" href="classopenvrml_1_1field__value.html">field_value</a> &amp;value, double timestamp)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process an event.  <a href="#d3cc5ae458bc3616afd3f877e842663e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#7cdd7c337dfa364d1deda1aebb88b596">do_events_processed</a> (double timestamp)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Execute script code after processing events.  <a href="#7cdd7c337dfa364d1deda1aebb88b596"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#9b6b052df125f019ebe21de9225ca23e">do_shutdown</a> (double timestamp)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shut down the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>.  <a href="#9b6b052df125f019ebe21de9225ca23e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#32db0c23865a2c5c130e881437c0054e">process_direct_output</a> (double timestamp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process direct outputs in <em><a class="el" href="classopenvrml_1_1script.html#9e3e9114e8d05d6d46c41868342d57de" title="Map of direct outputs.">direct_output_map_</a></em>.  <a href="#32db0c23865a2c5c130e881437c0054e"></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="classopenvrml_1_1script.html#0782d2a7d427614a3ad23c074ebb7727">direct_output_map_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenvrml_1_1script.html#9e3e9114e8d05d6d46c41868342d57de">direct_output_map_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map of direct outputs.  <a href="#9e3e9114e8d05d6d46c41868342d57de"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Abstract class implemented by scripting language bindings. 
<p>
The runtime instantiates subclasses of <a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a> for each VRML97 Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>; and calls its methods appropriately to execute script code. <hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="0782d2a7d427614a3ad23c074ebb7727"></a><!-- doxytag: member="openvrml::script::direct_output_map_t" ref="0782d2a7d427614a3ad23c074ebb7727" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1script.html#0782d2a7d427614a3ad23c074ebb7727">openvrml::script::direct_output_map_t</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map of direct outputs. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="db0d27bba503e2df281c9501b0570d75"></a><!-- doxytag: member="openvrml::script::~script" ref="db0d27bba503e2df281c9501b0570d75" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">openvrml::script::~script           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destroy. 
<p>

</div>
</div><p>
<a class="anchor" name="58890b4677e6700afe1b535092108be2"></a><!-- doxytag: member="openvrml::script::script" ref="58890b4677e6700afe1b535092108be2" args="(script_node &amp;node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">openvrml::script::script           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1script__node.html">script_node</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [explicit, protected]</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><a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a></em>&nbsp;</td><td>a reference to the <code><a class="el" href="classopenvrml_1_1script__node.html" title="Represents a VRML Script node.">script_node</a></code> that uses this <code><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></code> object. </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a39636f4132f5e8187894b6c6b30e004"></a><!-- doxytag: member="openvrml::script::initialize" ref="a39636f4132f5e8187894b6c6b30e004" args="(double timestamp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::script::initialize           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>timestamp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>. 
<p>
Delegates to <code><a class="el" href="classopenvrml_1_1script.html#a4d12ec9746d2632f884b8925a911511" title="Initialize the Script node.">do_initialize</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>timestamp</em>&nbsp;</td><td>the current time. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="22a74f6fcc6da20c3041f6f1d7c6f15d"></a><!-- doxytag: member="openvrml::script::process_event" ref="22a74f6fcc6da20c3041f6f1d7c6f15d" args="(const std::string &amp;id, const field_value &amp;value, double timestamp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::script::process_event           </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">const <a class="el" href="classopenvrml_1_1field__value.html">field_value</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Process an event. 
<p>
Delegates to <code><a class="el" href="classopenvrml_1_1script.html#d3cc5ae458bc3616afd3f877e842663e" title="Process an event.">do_process_event</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>id</em>&nbsp;</td><td>eventIn identifier. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>value</em>&nbsp;</td><td>event value. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>timestamp</em>&nbsp;</td><td>the current time. </td></tr>
  </table>
</dl>

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

<p>
Execute script code after processing events. 
<p>
Delegates to <code><a class="el" href="classopenvrml_1_1script.html#7cdd7c337dfa364d1deda1aebb88b596" title="Execute script code after processing events.">do_events_processed</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>timestamp</em>&nbsp;</td><td>the current time. </td></tr>
  </table>
</dl>

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

<p>
Shut down the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>. 
<p>
Delegates to <code><a class="el" href="classopenvrml_1_1script.html#9b6b052df125f019ebe21de9225ca23e" title="Shut down the Script node.">do_shutdown</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>timestamp</em>&nbsp;</td><td>the current time. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="8aa31df25389b65c7d4c793757d68a22"></a><!-- doxytag: member="openvrml::script::direct_output" ref="8aa31df25389b65c7d4c793757d68a22" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool openvrml::script::direct_output           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Whether direct output is enabled for the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>true</code> if direct output is enabled for the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>; <code>false</code> otherwise. </dd></dl>

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

<p>
Whether the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> may delay sending input events to the <code><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></code> until its outputs are needed by the <a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a>. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>true</code> if the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code> may delay sending input events to the <code><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></code> until its outputs are needed by the <code><a class="el" href="classopenvrml_1_1browser.html" title="Encapsulates a VRML browser.">browser</a></code>; <code>false</code> otherwise. </dd></dl>

</div>
</div><p>
<a class="anchor" name="3627f6097784a08707bf330df4bf7671"></a><!-- doxytag: member="openvrml::script::field" ref="3627f6097784a08707bf330df4bf7671" args="(const std::string &amp;id, const field_value &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::script::field           </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">const <a class="el" href="classopenvrml_1_1field__value.html">field_value</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  <a class="el" href="classopenvrml_1_1unsupported__interface.html">unsupported_interface</a>  ,   std::bad_cast  ,   std::bad_alloc  )<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the value of a field. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td>field identifier. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>value</em>&nbsp;</td><td>new value.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classopenvrml_1_1unsupported__interface.html" title="Exception to indicate that a node interface is not supported.">unsupported_interface</a></em>&nbsp;</td><td>if the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a> has no field <code>id</code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_cast</em>&nbsp;</td><td>if <code>value</code> is the wrong type. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="be09075abdd9033997b571a7f809ad22"></a><!-- doxytag: member="openvrml::script::direct_output" ref="be09075abdd9033997b571a7f809ad22" args="(event_listener &amp;listener, const boost::shared_ptr&lt; field_value &gt; &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::script::direct_output           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classopenvrml_1_1event__listener.html">event_listener</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>listener</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::shared_ptr&lt; <a class="el" href="classopenvrml_1_1field__value.html">field_value</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td>  throw (  <a class="el" href="classopenvrml_1_1field__value__type__mismatch.html">field_value_type_mismatch</a>  ,   std::bad_alloc  )<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add an event for direct output processing at the end of <a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a> execution. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>listener</em>&nbsp;</td><td>the <code><a class="el" href="classopenvrml_1_1event__listener.html" title="Abstract base class of event listeners.">event_listener</a></code> to which the event should be sent. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>value</em>&nbsp;</td><td>the value to send.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classopenvrml_1_1field__value__type__mismatch.html" title="Thrown when field value types do not match, generally in a ROUTE or IS.">field_value_type_mismatch</a></em>&nbsp;</td><td>if <code>listener</code> is not the correct type to process events of <code>value's</code> type. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>std::bad_alloc</em>&nbsp;</td><td>if memory allocation fails. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="a4d12ec9746d2632f884b8925a911511"></a><!-- doxytag: member="openvrml::script::do_initialize" ref="a4d12ec9746d2632f884b8925a911511" args="(double timestamp)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::script::do_initialize           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>timestamp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>timestamp</em>&nbsp;</td><td>the current time. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="d3cc5ae458bc3616afd3f877e842663e"></a><!-- doxytag: member="openvrml::script::do_process_event" ref="d3cc5ae458bc3616afd3f877e842663e" args="(const std::string &amp;id, const field_value &amp;value, double timestamp)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::script::do_process_event           </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">const <a class="el" href="classopenvrml_1_1field__value.html">field_value</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [private, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Process an event. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>id</em>&nbsp;</td><td><code>eventIn</code> identifier. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>value</em>&nbsp;</td><td>event value. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>timestamp</em>&nbsp;</td><td>the current time. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="7cdd7c337dfa364d1deda1aebb88b596"></a><!-- doxytag: member="openvrml::script::do_events_processed" ref="7cdd7c337dfa364d1deda1aebb88b596" args="(double timestamp)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::script::do_events_processed           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>timestamp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Execute script code after processing events. 
<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>timestamp</em>&nbsp;</td><td>the current time. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="9b6b052df125f019ebe21de9225ca23e"></a><!-- doxytag: member="openvrml::script::do_shutdown" ref="9b6b052df125f019ebe21de9225ca23e" args="(double timestamp)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::script::do_shutdown           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>timestamp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Shut down the Script <a class="el" href="classopenvrml_1_1node.html" title="A node in the scene graph.">node</a>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>timestamp</em>&nbsp;</td><td>the current time. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="32db0c23865a2c5c130e881437c0054e"></a><!-- doxytag: member="openvrml::script::process_direct_output" ref="32db0c23865a2c5c130e881437c0054e" args="(double timestamp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::script::process_direct_output           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>timestamp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Process direct outputs in <em><a class="el" href="classopenvrml_1_1script.html#9e3e9114e8d05d6d46c41868342d57de" title="Map of direct outputs.">direct_output_map_</a></em>. 
<p>
<p><b>For internal use only.</b></p>
<p>
This function is called at the end of initialization and processing normal events.<p>
<dl class="post" compact><dt><b>Postcondition:</b></dt><dd><code>script::direct_output_map_.empty()</code> is <code>true</code>. </dd></dl>
</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="9e3e9114e8d05d6d46c41868342d57de"></a><!-- doxytag: member="openvrml::script::direct_output_map_" ref="9e3e9114e8d05d6d46c41868342d57de" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1script.html#0782d2a7d427614a3ad23c074ebb7727">openvrml::script::direct_output_map_t</a> <a class="el" href="classopenvrml_1_1script.html#9e3e9114e8d05d6d46c41868342d57de">openvrml::script::direct_output_map_</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map of direct outputs. 
<p>
<p><b>For internal use only.</b></p>
<p>
</p>

</div>
</div><p>
<a class="anchor" name="a8f44f4972d744257635cfa7e05b392b"></a><!-- doxytag: member="openvrml::script::node" ref="a8f44f4972d744257635cfa7e05b392b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classopenvrml_1_1script__node.html">openvrml::script_node</a> &amp; <a class="el" href="classopenvrml_1_1script.html#a8f44f4972d744257635cfa7e05b392b">openvrml::script::node</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A reference to the <code><a class="el" href="classopenvrml_1_1script__node.html" title="Represents a VRML Script node.">script_node</a></code> that uses this <code><a class="el" href="classopenvrml_1_1script.html" title="Abstract class implemented by scripting language bindings.">script</a></code> object. 
<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:21 2009 by Doxygen 1.5.8</address>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
<script type="text/javascript">_uacct = "UA-446379-2"; urchinTracker();</script>
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/openvrml/" : "http://sourceforge.net/apps/piwik/openvrml/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
piwik_action_name = '';
piwik_idsite = 1;
piwik_url = pkBaseURL + "piwik.php";
piwik_log(piwik_action_name, piwik_idsite, piwik_url);
</script>
<object><noscript><p><img src="http://sourceforge.net/apps/piwik/openvrml/piwik.php?idsite=1" alt="piwik"/></p></noscript></object>
<!-- End Piwik Tag -->
</body>
</html>