#ifndef NODE_H_
#define NODE_H_

class Node
{
  class UpdateListener
  {
    virtual void update() = 0;
    virtual ~UpdateListener() = 0;
  };
  typedef std::list<Node*> NodeContainer; 
  typedef std::list<Node*> NodeContainer; 
  
  Node *parent;
  NodeContainer children;

  Vector3 getRelativePosition;
  Vector3 getAbsolutePosition;
  /* ... */
  
  bool _Updating;
  void update (double time);
  void render (Camera *camera, RenderDevice *device);
};

#endif /*NODE_H_*/
