class Node {
public:
- Node(const Action& action);
+ Node(const Action* action);
Node();
Node(const Node& node);
virtual ~Node(){}
void addChild(Node* node);
- const Action& action() const;
+ const Action* action() const;
void execute(const Literals& effects);
bool executed() const;
const Literals& effects() const;
void satisfyCondition(std::string effect);
protected:
- Action _action;
+ const Action* _action;
std::vector<Node*> _children;
Preconditions _preconditions;
bool _executed;
class StartNode :public Node {
public:
StartNode(const Literals& init);
+ ~StartNode(){delete _action;}
};
class EndNode :public Node {
public:
EndNode(const Literals& goal);
+ ~EndNode(){delete _action;}
};
#endif