Home | Download | Screen shots | Discussion | Documentation |
---|
PROTO definitions add node types to the namespace. PROTO implementations are a separate node type namespace, and require that any nested PROTOs NOT be available outside the PROTO implementation. PROTOs defined outside the current namespace are available.
Public Member Functions | |
scope (const std::string &id, const boost::shared_ptr< scope > &parent=boost::shared_ptr< scope >()) | |
virtual | ~scope () |
Destroy. | |
const std::string & | id () const throw () |
scope identifier. | |
const boost::shared_ptr< scope > & | parent () const throw () |
The parent scope . | |
bool | add_type (const node_type_ptr &type) throw (std::bad_alloc) |
Add a node type. | |
const node_type_ptr & | find_type (const std::string &id) const |
Find a node type, given a type name. Returns 0 if type is not defined. | |
const node_type_ptr & | first_type () const |
The first type in the scope. | |
node * | find_node (const std::string &id) const |
Find the node in the scope with node::id id . | |
Private Attributes | |
std::list< node_type_ptr > | node_type_list |
List of node_types in the scope. | |
std::map< std::string, node * > | named_node_map |
Map of the named nodes in the scope. | |
const std::string | id_ |
scope identifier. | |
const boost::shared_ptr< scope > | parent_ |
The parent scope; null if the scope is a root scope. | |
Friends | |
class | node |
node identifiers are stored in the scope, so node needs special privilege to access them. |
openvrml::scope::~scope | ( | ) | [virtual] |
Destroy.
const std::string & openvrml::scope::id | ( | ) | const throw () |
scope
identifier.
scope
identifier. const boost::shared_ptr< scope > & openvrml::scope::parent | ( | ) | const throw () |
The parent scope
.
scope
; or null if the scope
is a root scope
. bool openvrml::scope::add_type | ( | const node_type_ptr & | type | ) | throw (std::bad_alloc) |
Add a node type.
Print an error message if the argument type is already defined.
type | a node_type_ptr |
true
if type
is successfully added to the scope; false
otherwise (if a node_type with the same id is already defined for the scope).std::bad_alloc | if memory allocation fails. |
type
is not null. const node_type_ptr & openvrml::scope::find_type | ( | const std::string & | id | ) | const |
Find a node type, given a type name. Returns 0 if type is not defined.
const node_type_ptr & openvrml::scope::first_type | ( | ) | const |
The first type in the scope.
node * openvrml::scope::find_node | ( | const std::string & | id | ) | const |
openvrml::scope::node [friend] |
node identifiers are stored in the scope, so node needs special privilege to access them.
std::list< node_type_ptr > openvrml::scope::node_type_list [private] |
List of node_types in the scope.
std::map< std::string, node * > openvrml::scope::named_node_map [private] |
Map of the named nodes in the scope.
const std::string openvrml::scope::id_ [private] |
scope
identifier.
For internal use only.
const scope_ptr openvrml::scope::parent_ [private] |
The parent scope; null if the scope is a root scope.
For internal use only.