]> ruin.nu Git - popboot.git/blobdiff - node.h
more documentation
[popboot.git] / node.h
diff --git a/node.h b/node.h
index cbe17348aa103a1befce5a11baca11391b28f424..4b8708db18c1da03d3fde8e18b314de5ea49876c 100644 (file)
--- a/node.h
+++ b/node.h
 #include <utility>
 #include "action.h"
 
+/**
+ * A node in the plan graph, corresponds to a single action.
+ */
 class Node {
 
        public:
+               /**
+                * Creates a node for the given action.
+                */
                Node(const Action* action);
+
+               /**
+                * Creates an empty, non-functional, node.
+                */
                Node();
+
+               /**
+                * Creates a copy of the given node.
+                */
                Node(const Node& node);
                virtual ~Node(){}
+
+               /**
+                * Add a child node, which will be executed after this node.
+                */
                void addChild(Node* node);
+
+               /**
+                * Returns the action this node corresponds to.
+                */
                const Action* action() const;
+
+               /**
+                * Execute this node, and hence the corresponding action.
+                * Sets the effects achieved.
+                *
+                * If _executed is true or _preconditions.size() > 0 this method will
+                * just return.
+                */
                void execute();
+
+               /**
+                * Checks if this node has been executed or not.
+                */
                bool executed() const;
+
+               /**
+                * Returns the effects that was achieved from execution.
+                */
                const Literals& effects() const;
+
+               /**
+                * Satisfy a single condition.
+                */
                bool satisfyCondition(std::string effect);
+
+               /**
+                * Satisfies a list of conditions.
+                */
                bool satisfyConditions(const Literals& effects);
+
+               /**
+                * Returns all the children to this node.
+                */
                const std::vector<Node*>& children() const;
+
+               /**
+                * Returns the unsatisfied preconditions.
+                */
                const Preconditions& preconditions() const;
 
        protected:
+               //! The action this node corresponds to.
                const Action* _action;
+               //! The list of children to this node.
                std::vector<Node*> _children;
+               //! The, so far, unsatisfied preconditions.
                Preconditions _preconditions;
+               //! Will be true if this node has been executed.
                bool _executed;
+               //! The effects which were achieved by the execution.
                Literals _effects;
 };
 
+/**
+ * Class which is used as the start node in the plan graph.
+ */
 class StartNode :public Node {
        public:
                StartNode(const Literals& init);
                ~StartNode(){delete _action;}
 };
 
+/**
+ * Class which is used as the end node in the plan graph.
+ */
 class EndNode :public Node {
        public:
                EndNode(const Literals& goal);