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 ()
bool openvrml::operator!= (const node_type &lhs, const node_type &rhs) throw ()
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.