You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

31 lines
625 B

#ifndef NODE_H
#define NODE_H
#include "../graphics/components/Component.h"
#include <memory>
#include <vector>
#include <functional>
#include <string>
#include <sstream>
#include <iostream>
enum class NodeType {
ROOT,
TAG,
TEXT
};
class Node {
public:
Node(NodeType type);
virtual ~Node();
NodeType nodeType;
std::shared_ptr<Node> parent;
std::vector<std::shared_ptr<Node>> children;
std::shared_ptr<Component> component;
static std::shared_ptr<Node> findTagNodeParent(std::string tag, std::shared_ptr<Node> node);
virtual std::vector<std::string> getSourceList();
};
#endif