Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members | Related Pages

openvrml::script_node::script_node_type Class Reference

Inheritance diagram for openvrml::script_node::script_node_type:

Inheritance graph
[legend]
List of all members.

Detailed Description

Type objects for script_nodes.

For internal use only.

See also:
script_node::type


Public Member Functions

 script_node_type (script_node_class &class_)
 Construct.
virtual ~script_node_type () throw ()
 Destroy.
void add_interface (const node_interface &interface) throw (std::bad_alloc, std::invalid_argument)
 Add an interface.

Private Member Functions

virtual const node_interface_setdo_interfaces () const throw ()
 Get the interfaces for the node.
virtual const node_ptr do_create_node (const boost::shared_ptr< openvrml::scope > &scope, const initial_value_map &initial_values) const throw (unsupported_interface, std::bad_cast, std::bad_alloc)
 Clone the Script node that has this node_type.

Private Attributes

node_interface_set interfaces_
 Node interfaces.

Constructor & Destructor Documentation

openvrml::script_node::script_node_type::script_node_type script_node_class class_  )  [explicit]
 

Construct.

Parameters:
class_ the node_class for script_nodes.

openvrml::script_node::script_node_type::~script_node_type  )  throw () [virtual]
 

Destroy.


Member Function Documentation

void openvrml::script_node::script_node_type::add_interface const node_interface interface  )  throw (std::bad_alloc, std::invalid_argument)
 

Add an interface.

Parameters:
interface 
Exceptions:
std::bad_alloc if memory allocation fails.
std::invalid_argument if the script_node_type already has an interface that conflicts with interface.

const node_interface_set & openvrml::script_node::script_node_type::do_interfaces  )  const throw () [private, virtual]
 

Get the interfaces for the node.

Returns:
the interfaces for the node.

Implements openvrml::node_type.

const node_ptr openvrml::script_node::script_node_type::do_create_node const boost::shared_ptr< openvrml::scope > &  scope,
const initial_value_map initial_values
const throw (unsupported_interface, std::bad_cast, std::bad_alloc) [private, virtual]
 

Clone the Script node that has this node_type.

Since the node_type for a script_node is only available once a script_node is instantiated, you have to have a script_node instance in order to be able to use this method. The "primordial" script_node instance must be created with a call to the script_node constructor.

Parameters:
scope the scope to which the node should belong.
initial_values a map of initial values for the node's fields and exposedFields.
Exceptions:
unsupported_interface if initial_values specifies a field name that is not supported by the node type.
std::bad_cast if a value in initial_values is the wrong type.
std::bad_alloc if memory allocation fails.

Member Data Documentation

node_interface_set openvrml::script_node::script_node_type::interfaces_ [private]
 

Node interfaces.