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

# node.h File Reference

Abstract node types and supporting types. More...

`#include <openvrml/field_value.h>`
`#include <openvrml/rendering_context.h>`
`#include <boost/bind.hpp>`
`#include <deque>`
`#include <map>`
`#include <set>`
`#include <utility>`
Include dependency graph for node.h:
This graph shows which files directly or indirectly include this file:

## Classes

class | openvrml::node_interface
| Type information for an interface of a `node`. More...
class | openvrml::unsupported_interface
| Exception to indicate that a `node` interface is not supported. More...
struct | openvrml::node_interface_matches_eventin
| Determine if a `node_interface` matches an `eventIn` identifier. More...
struct | openvrml::node_interface_matches_eventout
| Determine if a `node_interface` matches an `eventOut` identifier. More...
struct | openvrml::node_interface_matches_exposedfield
| Determine if a `node_interface` matches an `exposedField` identifier. More...
struct | openvrml::node_interface_matches_field
| Determine if a `node_interface` matches an field identifier. More...
struct | openvrml::node_interface_compare
| Function object to compare two `node_interfaces` based on their id. More...
class | openvrml::node_metatype_id
| Identifier for `node_metatypes`. More...
class | openvrml::node_metatype
| A class object for node instances. More...
class | openvrml::null_node_metatype
| A placeholder `node_metatype`. More...
class | openvrml::node_type
| Type information object for `nodes`. More...
class | openvrml::null_node_type
| A placeholder `node_type`. More...
class | openvrml::field_value_type_mismatch
| Thrown when field value types do not match, generally in a `ROUTE` or `IS`. More...
class | openvrml::node
| A `node` in the scene graph. More...
class | openvrml::appearance_node
| Abstract base class for appearance nodes. More...
class | openvrml::bounded_volume_node
| Abstract base class for nodes that represent a bounded volume in the scene graph. More...
class | openvrml::child_node
| Abstract base class for child nodes. More...
class | openvrml::background_node
| Abstract base class for background nodes. More...
class | openvrml::color_node
| Abstract base class for color nodes. More...
class | openvrml::color_rgba_node
| Abstract base class for RGBA color nodes. More...
class | openvrml::coordinate_node
| Abstract base class for coordinate nodes. More...
class | openvrml::font_style_node
| Abstract base class for font style nodes. More...
class | openvrml::geometry_node
| Abstract base class for geometry nodes. More...
class | openvrml::grouping_node
| Abstract base class for grouping nodes. More...
class | openvrml::light_node
| Abstract base class for light nodes. More...
class | openvrml::material_node
| Abstract base class for material nodes. More...
class | openvrml::navigation_info_node
| Abstract base class for normal nodes. More...
class | openvrml::normal_node
| Abstract base class for normal nodes. More...
class | openvrml::pointing_device_sensor_node
| A node that can be affected by a pointing device. More...
class | openvrml::scoped_light_node
| A light that falls within a specified area. More...
class | openvrml::sound_source_node
| Abstract base class for sound source nodes. More...
class | openvrml::texture_node
| Abstract base class for texture nodes. More...
class | openvrml::texture_coordinate_node
| Abstract base class for texture coordinate nodes. More...
class | openvrml::texture_transform_node
| Abstract base class for texture transform nodes. More...
class | openvrml::time_dependent_node
| Abstract base class for time-dependent nodes. More...
class | openvrml::transform_node
| Abstract base class for transform nodes. More...
class | openvrml::viewpoint_node
| Abstract base class for viewpoint nodes. More...
class | openvrml::node_traverser
| Traverse the children of each `node` in a `node` hierarchy only once. More...

## Namespaces

namespace | openvrml

| The OpenVRML Runtime Library.
namespace | std

| STL namespace.

## Typedefs

typedef std::set < node_interface, node_interface_compare > | openvrml::node_interface_set
| A group of unique `node_interfaces`.
typedef std::map< std::string, node_interface_set > | openvrml::node_type_decls
| A map of node type identifiers to their corresponding `node_interface_sets`.
typedef std::map< std::string, boost::shared_ptr< field_value > > | openvrml::initial_value_map
| A map of the initial values with which a `node` is instantiated.
typedef std::deque< node * > | openvrml::node_path
| A path to a `node` in the `scene` starting with one of the `scene` root `nodes` and ending with the objective `node`.

## Functions

std::ostream & | openvrml::operator<< (std::ostream &out, node_interface::type_id type)
| Stream inserter.
std::istream & | openvrml::operator>> (std::istream &in, node_interface::type_id &type)
| Stream extractor.
bool | openvrml::operator== (const node_interface &lhs, const node_interface &rhs) throw ()
| Compare for equality.
bool | openvrml::operator!= (const node_interface &lhs, const node_interface &rhs) throw ()
| Compare for openvrml::inequality.
std::ostream & | openvrml::operator<< (std::ostream &out, const node_interface &interface_)
| Stream output.
std::istream & | openvrml::operator>> (std::istream &in, node_interface &interface_)
| Stream input.
const node_interface_set::const_iterator | openvrml::find_interface (const node_interface_set &interfaces, const std::string &id) throw ()
| Find an interface matching `id`.
bool | openvrml::operator== (const node_metatype_id &lhs, const node_metatype_id &rhs) throw ()
bool | openvrml::operator!= (const node_metatype_id &lhs, const node_metatype_id &rhs) throw ()
bool | openvrml::operator== (const node_type &lhs, const node_type &rhs) throw ()
| Compare for equality.
bool | openvrml::operator!= (const node_type &lhs, const node_type &rhs) throw ()
| Compare for inequality.
std::ostream & | openvrml::operator<< (std::ostream &out, const node &n)
| Stream output.
template<typename To >
To | openvrml::node_cast (node *n) throw ()
| Downcast a `node` to one of the abstract `node` types.
void | openvrml::intrusive_ptr_add_ref (const node *) throw ()
| Increment the reference count.
void | openvrml::intrusive_ptr_release (const node *) throw ()
| Decrement the reference count.
bool | openvrml::is_proto_instance (const node &n)
| Check whether a `node` is a `PROTO` instance.
bool | openvrml::add_route (node &from, const std::string &eventout, node &to, const std::string &eventin) throw ( std::bad_alloc , unsupported_interface , field_value_type_mismatch )
| Add a route from an `eventOut` of this node to an `eventIn` of another node.
bool | openvrml::delete_route (node &from, const std::string &eventout, node &to, const std::string &eventin) throw ( unsupported_interface )
| Remove a route from an `eventOut` from a `node` to an `eventIn` of another `node`.
template<>
script_node * | openvrml::node_cast< script_node * > (node *n) throw ()
template<>
appearance_node * | openvrml::node_cast< appearance_node * > (node *n) throw ()
template<>
background_node * | openvrml::node_cast< background_node * > (node *n) throw ()
template<>
bounded_volume_node * | openvrml::node_cast< bounded_volume_node * > (node *n) throw ()
template<>
child_node * | openvrml::node_cast< child_node * > (node *n) throw ()
template<>
color_node * | openvrml::node_cast< color_node * > (node *n) throw ()
template<>
color_rgba_node * | openvrml::node_cast< color_rgba_node * > (node *n) throw ()
template<>
coordinate_node * | openvrml::node_cast< coordinate_node * > (node *n) throw ()
template<>
font_style_node * | openvrml::node_cast< font_style_node * > (node *n) throw ()
template<>
geometry_node * | openvrml::node_cast< geometry_node * > (node *n) throw ()
template<>
grouping_node * | openvrml::node_cast< grouping_node * > (node *n) throw ()
template<>
light_node * | openvrml::node_cast< light_node * > (node *n) throw ()
template<>
material_node * | openvrml::node_cast< material_node * > (node *n) throw ()
template<>
navigation_info_node * | openvrml::node_cast< navigation_info_node * > (node *n) throw ()
template<>
normal_node * | openvrml::node_cast< normal_node * > (node *n) throw ()
template<>
pointing_device_sensor_node * | openvrml::node_cast< pointing_device_sensor_node * > (node *n) throw ()
template<>
scoped_light_node * | openvrml::node_cast< scoped_light_node * > (node *n) throw ()
template<>
sound_source_node * | openvrml::node_cast< sound_source_node * > (node *n) throw ()
template<>
texture_node * | openvrml::node_cast< texture_node * > (node *n) throw ()
template<>
texture_coordinate_node * | openvrml::node_cast< texture_coordinate_node * > (node *n) throw ()
template<>
texture_transform_node * | openvrml::node_cast< texture_transform_node * > (node *n) throw ()
template<>
time_dependent_node * | openvrml::node_cast< time_dependent_node * > (node *n) throw ()
template<>
transform_node * | openvrml::node_cast< transform_node * > (node *n) throw ()
template<>
viewpoint_node * | openvrml::node_cast< viewpoint_node * > (node *n) throw ()

## Detailed Description

Abstract node types and supporting types.