|
#ifndef _NODE_BASE_H
#define _NODE_BASE_H
#include <vector>
#include "ObjectBase.h"
class NodeBase
{
public:
typedef std::vector< ObjectBase * > OBJ_PTR_VECTOR;
typedef OBJ_PTR_VECTOR::iterator OBJ_PTR_VECTOR_ITERATOR;
NodeBase(){}
~NodeBase()
{
OBJ_PTR_VECTOR::iterator it = objects_.begin();
for(; it != objects_.end(); it++)
{
if ( *it != 0 ) delete *it;
}
}
template< class CHILD_TYPE >
CHILD_TYPE *addChild()
{
CHILD_TYPE *newNode = new CHILD_TYPE();
objects_.push_back( newNode );
return newNode;
}
unsigned int getNumObjects() { return static_cast<unsigned int>(objects_.size()); }
void updateAllObjects( ObjectBase *parent )
{
OBJ_PTR_VECTOR::iterator begin = objects_.begin();
OBJ_PTR_VECTOR::iterator end = objects_.end();
for(; begin != end; begin++)
{
(*begin)->updateWorldTransform( parent );
}
}
ObjectBase *getFirstObject( )
{
if ( objects_.begin() == objects_.end() )
return 0;
else
return (*objects_.begin());
}
protected:
OBJ_PTR_VECTOR objects_;
};
#endif
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.