Home | Download | Screen shots | Discussion | Documentation |
---|
Collaboration diagram for openvrml::scope:
Public Member Functions | |
scope (const std::string &id, const scope_ptr &parent=scope_ptr()) | |
Construct. | |
virtual | ~scope () |
Destroy. | |
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 . | |
Public Attributes | |
const std::string | id |
scope identifier. | |
const scope_ptr | parent |
The parent scope; null if the scope is a root scope. | |
Private Member Functions | |
scope (const scope &) | |
Not implemented. | |
scope & | operator= (const scope &) |
Not implemented. | |
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. | |
Friends | |
class | node |
node identifiers are stored in the scope, so node needs special privilege to access them. |
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.
|
Construct.
id should be the URI of the world. For child scopes, id should be the name of the PROTO to which the scope corresponds. |
|
Not implemented. scopes are not copyable. |
|
Add a node type. Print an error message if the argument type is already defined.
|
|
Find the node in the scope with node::id
|
|
The first type in the scope.
|
|
Not implemented. scopes are not copyable. |