H3D API  2.4.1
Classes | Namespaces | Macros | Functions
H3DNodeDatabase.h File Reference

Header file for H3DNodeDatabase. More...

#include <H3D/H3DApi.h>
#include <H3D/Field.h>
#include <iostream>
#include <string>
#include <map>
#include <list>
#include <typeinfo>

Go to the source code of this file.

Classes

struct  H3D::FieldDBElement
 A FieldDBElement is an encapsulation of a field in a H3DNodeDatabase. More...
 
struct  H3D::DynamicFieldDBElement
 The DynamicFieldDBElement is a FieldDBElement for fields that are not actual members of a Node class, but instead are defined and added at runtime, e.g. More...
 
struct  H3D::FieldDBTemplate< N, F >
 Template class for specifying specialized FieldDBElement instances. More...
 
struct  H3D::H3DNodeDatabase
 The H3DNodeDatabase contains a mapping between a name of a Node and the constructor for the Node with that name. More...
 
struct  H3D::H3DNodeDatabase::TypeInfoWrapper
 Wrapper class to be able to put type_info as a key in a map. More...
 
class  H3D::H3DNodeDatabase::FieldDBConstIterator
 The FieldDBConstIterator is an iterator class used for iterating over the field instances in an H3DNodeDatabase. More...
 

Namespaces

 H3D
 H3D API namespace.
 

Macros

#define FIELDDB_ELEMENT(base, field, access)   FieldDBInsert field( access( &base::database, #field, &base::field ) );
 Useful macro for cleaner field definitions.
 
#define FIELDDB_ELEMENT_EX(base, field, access, fieldst)   FieldDBInsert fieldst( access( &base::database, #fieldst, &base::field ) );
 Additional macro to support VRML names that are different from C++.
 

Functions

template<class N , class F >
FieldDBTemplate< N, F > * H3D::INITIALIZE_ONLY (H3DNodeDatabase *_container, const std::string &_name, H3DUniquePtr< F > N::*_ptr)
 Specialization to handle case where access type is INITIALIZE_ONLY.
 
template<class N , class F >
FieldDBTemplate< N, F > * H3D::OUTPUT_ONLY (H3DNodeDatabase *_container, const std::string &_name, H3DUniquePtr< F > N::*_ptr)
 Specialization to handle case where access type is OUTPUT_ONLY.
 
template<class N , class F >
FieldDBTemplate< N, F > * H3D::INPUT_ONLY (H3DNodeDatabase *_container, const std::string &_name, H3DUniquePtr< F > N::*_ptr)
 Specialization to handle case where access type is INPUT_ONLY.
 
template<class N , class F >
FieldDBTemplate< N, F > * H3D::INPUT_OUTPUT (H3DNodeDatabase *_container, const std::string &_name, H3DUniquePtr< F > N::*_ptr)
 Specialization to handle case where access type is INPUT_OUTPUT.
 

Detailed Description

Header file for H3DNodeDatabase.