Home | Download | Screen shots | Discussion | Documentation |
---|
Abstract base class for nodes that represent a bounded volume in the scene graph. More...
#include <openvrml/node.h>
Public Member Functions | |
virtual | ~bounded_volume_node () throw () |
Destroy. More... | |
const openvrml::bounding_volume & | bounding_volume () const |
Get this node's bounding volume. More... | |
![]() | |
virtual | ~node ()=0 throw () |
Destructor. More... | |
void | add_ref () const throw () |
Increment the reference count. More... | |
void | remove_ref () const throw () |
Decrement the reference count. More... | |
void | release () const throw () |
Decrement the reference count; destroy the instance if the count drops to zero. More... | |
size_t | use_count () const throw () |
The number of owning references to the instance. More... | |
const node_type & | type () const throw () |
The type information object for the node . More... | |
const std::string & | id () const throw () |
Retrieve the name of this node . More... | |
void | id (const std::string &node_id) throw ( std::bad_alloc ) |
Set the name of the node . More... | |
const openvrml::scope & | scope () const throw () |
Get the scope to which the node belongs. More... | |
openvrml::scene * | scene () const throw () |
Get the scene with which the node is associated. More... | |
const std::vector < boost::intrusive_ptr< node > > & | impl_nodes () const throw () |
Get the implementation nodes of a PROTO instance. More... | |
std::ostream & | print (std::ostream &out, size_t indent) const |
Pretty print. More... | |
void | initialize (openvrml::scene &scene, double timestamp) throw ( std::bad_alloc ) |
Initialize the node. More... | |
std::auto_ptr< field_value > | field (const std::string &id) const throw ( unsupported_interface , std::bad_alloc ) |
Generalized field accessor. More... | |
openvrml::event_listener & | event_listener (const std::string &id) throw ( unsupported_interface ) |
Get an event listener. More... | |
openvrml::event_emitter & | event_emitter (const std::string &id) throw ( unsupported_interface ) |
Get an event emitter. More... | |
void | shutdown (double timestamp) throw () |
Shut down the node. More... | |
bool | modified () const throw ( boost::thread_resource_error ) |
Determine whether the node has been modified. More... | |
void | modified (bool value) throw ( boost::thread_resource_error ) |
Set the modified flag. More... | |
Protected Member Functions | |
bounded_volume_node (const node_type &type, const boost::shared_ptr< openvrml::scope > &scope) throw () | |
Construct. More... | |
void | bounding_volume_dirty (bool value) |
Set whether the node's bounding volume needs to be recalculated. More... | |
bool | bounding_volume_dirty () const |
Whether the node's bounding volume needs to be recalculated. More... | |
virtual const openvrml::bounding_volume & | do_bounding_volume () const |
Called by bounding_volume . More... | |
![]() | |
node (const node_type &type, const boost::shared_ptr< openvrml::scope > &scope) throw () | |
Construct. More... | |
boost::shared_mutex & | scene_mutex () |
The scene mutex. More... | |
Private Member Functions | |
virtual bounded_volume_node * | to_bounded_volume () throw () |
Cast to an bounded_volume_node . More... | |
Additional Inherited Members | |
![]() | |
static const boost::intrusive_ptr< node > | self_tag |
Special value used when initializing a script_node . More... | |
![]() | |
static void | emit_event (openvrml::event_emitter &emitter, double timestamp) throw ( std::bad_alloc ) |
Emit an event. More... | |
![]() | |
To * | node_cast (node *n) |
Downcast a node to one of the abstract node types. More... | |
void | intrusive_ptr_add_ref (const node *n) |
Increment the reference count. More... | |
void | intrusive_ptr_release (const node *n) |
Decrement the reference count. More... | |
bool | is_proto_instance (const node &n) |
Check whether a node is a PROTO instance. More... | |
Abstract base class for nodes that represent a bounded volume in the scene graph.
|
virtual |
Destroy.
|
protected |
Construct.
[in] | type | the node_type associated with the node. |
[in] | scope | the scope the node belongs to. |
const openvrml::bounding_volume & openvrml::bounded_volume_node::bounding_volume | ( | ) | const |
Get this node's bounding volume.
Nodes that have no bounding volume, or have a difficult to calculate bvolume (like, say, Extrusion or Billboard) can just return an infinite bsphere. Note that returning an infinite bvolume means that all the node's ancestors will also end up with an infinite bvolume, and will never be culled.
Delegates to do_bounding_volume
.
|
protected |
Set whether the node's bounding volume needs to be recalculated.
Indicate that a node's bounding volume needs to be recalculated (or not). If a node's bounding volume is invalid, then the bounding volumes of all that node's ancestors are also invalid. Normally, the node itself will determine when its bounding volume needs updating.
[in] | value | true if the node's bounding volume should be recalculated; false otherwise. |
|
protected |
Whether the node's bounding volume needs to be recalculated.
true
if the node's bounding volume needs to be recalculated; false
otherwise.
|
protectedvirtual |
Called by bounding_volume
.
|
privatevirtual |
Cast to an bounded_volume_node
.
bounded_volume_node
. Reimplemented from openvrml::node.