Home | Download | Screen shots | Discussion | Documentation |
---|
Represents a VRML Script node. More...
#include <openvrml/browser.h>
Classes | |
class | eventout |
An event_emitter along with the emitted value. More... | |
Public Types | |
typedef std::map< std::string, boost::shared_ptr< field_value > > | field_value_map_t |
A std::map that keys field values on their field name. | |
typedef boost::shared_ptr < eventout > | eventout_ptr |
Reference-counted smart pointer to an eventout . | |
typedef std::map< std::string, eventout_ptr > | eventout_map_t |
Map of eventout instances. | |
Public Member Functions | |
script_node (script_node_metatype &class_, const boost::shared_ptr< openvrml::scope > &scope, const node_interface_set &interfaces, const initial_value_map &initial_values) throw ( unsupported_interface , std::bad_cast , std::bad_alloc , std::invalid_argument ) | |
Construct. | |
virtual | ~script_node () throw () |
Destroy. | |
void | update (double current_time) |
Update the script_node for the current time. | |
const event_listener_map_t & | event_listener_map () const throw () |
Event listener map accessor. | |
const field_value_map_t & | field_value_map () const throw () |
Field value map accessor. | |
const eventout_map_t & | eventout_map () const throw () |
eventOut map accessor. | |
Private Member Functions | |
virtual void | do_initialize (double timestamp) throw ( std::bad_alloc ) |
Initialize. | |
virtual const field_value & | do_field (const std::string &id) const throw ( unsupported_interface ) |
Get the value of a field. | |
virtual openvrml::event_listener & | do_event_listener (const std::string &id) throw ( unsupported_interface ) |
Get an event listener. | |
virtual openvrml::event_emitter & | do_event_emitter (const std::string &id) throw ( unsupported_interface ) |
Get an event emitter. | |
virtual void | do_shutdown (double timestamp) throw () |
Called by node::shutdown . | |
virtual void | do_render_child (viewer &v, rendering_context context) |
node::render_child implementation. |
Represents a VRML Script node.
A std::map
that keys field values on their field name.
Reference-counted smart pointer to an eventout
.
Map of eventout
instances.
openvrml::script_node::script_node | ( | script_node_metatype & | class_, |
const boost::shared_ptr< openvrml::scope > & | scope, | ||
const node_interface_set & | interfaces, | ||
const initial_value_map & | initial_values | ||
) | throw ( unsupported_interface , std::bad_cast , std::bad_alloc , std::invalid_argument ) |
Construct.
Unlike other concrete node types, which are always instantiated via node_type::create_node
, the script_node
constructor is called directly when creating a new script_node
from scratch. However, a script_node
can be duplicated (or “cloned”) by calling node_type::create_node
on type
of a script_node
instance. This provides a consistent interface for cloning any node, regardless of its type. OpenVRML uses this internally when instantiating PROTOs
.
[in] | class_ | the script_node_metatype . Typically there is one script_node_metatype per browser instance. |
[in] | scope | the scope to which the node should belong. |
[in] | interfaces | a node_interface_set containing specifications of user-defined fields , eventIns , and eventOuts particular to the script_node instance. |
[in] | initial_values | a map of initial values for fields of the script_node . |
unsupported_interface | if initial_values specifies a field that is not supported by the script_node . |
std::bad_cast | if initial_values includes a field value that is the wrong type for the specified field. |
std::bad_alloc | if memory allocation fails. |
std::invalid_argument | if:
|
openvrml::script_node::~script_node | ( | ) | throw () [virtual] |
Destroy.
void openvrml::script_node::update | ( | double | current_time | ) |
Update the script_node for the current time.
[in] | current_time | the current time. |
const openvrml::script_node::event_listener_map_t & openvrml::script_node::event_listener_map | ( | ) | const throw () |
Event listener map accessor.
const openvrml::script_node::field_value_map_t & openvrml::script_node::field_value_map | ( | ) | const throw () |
Field value map accessor.
field value map.
const openvrml::script_node::eventout_map_t & openvrml::script_node::eventout_map | ( | ) | const throw () |
eventOut
map accessor.
eventOut
map.
eventOut
map. void openvrml::script_node::do_initialize | ( | double | timestamp | ) | throw ( std::bad_alloc ) [private, virtual] |
Initialize.
[in] | timestamp | the current time. |
std::bad_alloc | if memory allocation fails. |
Reimplemented from openvrml::node.
const openvrml::field_value & openvrml::script_node::do_field | ( | const std::string & | id | ) | const throw ( unsupported_interface ) [private, virtual] |
Get the value of a field.
[in] | id | the name of the field to get. |
id
.unsupported_interface | if the node has no field id . |
Implements openvrml::node.
openvrml::event_listener & openvrml::script_node::do_event_listener | ( | const std::string & | id | ) | throw ( unsupported_interface ) [private, virtual] |
Get an event listener.
This method is called by node::event_listener
. Subclasses must implement this method.
[in] | id | eventIn identifier. |
unsupported_interface | if the node has no eventIn id . |
Implements openvrml::node.
openvrml::event_emitter & openvrml::script_node::do_event_emitter | ( | const std::string & | id | ) | throw ( unsupported_interface ) [private, virtual] |
Get an event emitter.
This method is called by node::event_emitter
.
[in] | id | eventOut identifier. |
unsupported_interface | if the node has no eventOut id . |
Implements openvrml::node.
void openvrml::script_node::do_shutdown | ( | double | timestamp | ) | throw () [private, virtual] |
Called by node::shutdown
.
[in] | timestamp | the current time. |
Reimplemented from openvrml::node.
void openvrml::script_node::do_render_child | ( | viewer & | v, |
rendering_context | context | ||
) | [private, virtual] |
node::render_child
implementation.
[in,out] | v | viewer implementation responsible for actually doing the drawing. |
[in] | context | generic context argument; holds things like the accumulated modelview transform. |
Reimplemented from openvrml::child_node.