#include #include "Property.h" #pragma once class Instance { public: Property *properties; Instance(void); Instance(const Instance&); virtual ~Instance(void); std::string name; virtual void render(RenderDevice*); std::vector children; // All children. std::string getClassName(); Instance* findFirstChild(std::string); std::vector getChildren(); std::vector getAllChildren(); void setParent(Instance*); void addChild(Instance*); void removeChild(Instance*); Instance* getParent(); virtual Instance* clone() const { return new Instance(*this); } protected: std::string className; Instance* parent; // Another pointer. };