Home | Download | Screen shots | Discussion | Documentation
--- | --- | --- | --- | ---

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:

[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_set & | do_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.