#include <stdio.h>#include <string>#include <vector>#include <map>Go to the source code of this file.
Classes | |
| class | Node | 
| Basic node, these are like smart pointers to NodeObjects.  More... | |
| class | NodeObject | 
| Base Class for All Nodes.  More... | |
| class | NodeManager | 
| Full Node Manager, access using NODEMAN.  More... | |
| struct | NodeManager::StringPair | 
| [Internal] Structure to hold all message data pairs.  More... | |
| struct | NodeManager::StringPairFloat | 
| [Internal] Structure to hold all information regarding active, waiting messages.  More... | |
Defines | |
| #define | CLASS_RTTI(NAME, PARENT) | 
| RTTI Macro, place this in your class definition, under public:.   | |
| #define | REGISTER_CLASS(CLASSNAME) | 
| Registeration Macro, place this in your class's cpp file.   | |
| #define | NODE_CAST(Node, Type) (Node.Get()?((Type*) (Node->IsTypeOf(#Type)?Node.Get():NULL)):NULL) | 
| Cast given node to a more/less generic Type, safely. If it is incorrect, return null.   | |
| #define | GET_NODE_CAST(NodeName, Type) ((Type*)NODEMAN->DerefGet( #Type, NodeName )) | 
| Get instance of object by name NodeName and do an unsafe cast.   | |
| #define | CODERENDERNODE(NODENAME, CODEIN, CODEOUT) | 
| VERY Simple node instanciation. Things like lighting, etc can be used here.   | |
Typedefs | |
| typedef NodeObject *(* | ProducerFunct )(const string &sObjectName) | 
| Function to generate a new NodeObject.   | |
Variables | |
| NodeManager * | NODEMAN | 
| Instance of NodeManager singleton.   | |
| #define CLASS_RTTI | ( | NAME, | |||
| PARENT | ) | 
| #define CODERENDERNODE | ( | NODENAME, | |||
| CODEIN, | |||||
| CODEOUT | ) | 
Value:
class NODENAME : public NodeObject \ { \ public: \ NODENAME( const string & sName ) : NodeObject( sName ) { } \ CLASS_RTTI( NODENAME, NodeObject ); \ \ virtual void Render() { CODEIN; NodeObject::Render(); CODEOUT; } \ };
| #define GET_NODE_CAST | ( | NodeName, | |||
| Type | ) | ((Type*)NODEMAN->DerefGet( #Type, NodeName )) | 
| #define REGISTER_CLASS | ( | CLASSNAME | ) | 
Value:
NodeObject * Produce##CLASSNAME( const string & sObjectName ) \ { return new CLASSNAME( sObjectName ); } \ class RegClass##CLASSNAME { public: \ RegClass##CLASSNAME() { \ NodeManager::Instance()->RegisterType( #CLASSNAME, Produce##CLASSNAME ); \ } \ }; \ RegClass##CLASSNAME AUTOREG##CLASSNAME;
| typedef NodeObject*(* ProducerFunct)(const string &sObjectName) |