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.