knowrob  2.1.0
A Knowledge Base System for Cognition-enabled Robots
Computable.h
Go to the documentation of this file.
1 /*
2  * This file is part of KnowRob, please consult
3  * https://github.com/knowrob/knowrob for license details.
4  */
5 
6 #ifndef KNOWROB_COMPUTABLE_H
7 #define KNOWROB_COMPUTABLE_H
8 
9 #include "knowrob/formulas/FirstOrderLiteral.h"
10 #include "GoalDrivenReasoner.h"
11 
12 namespace knowrob {
17  class Computable : public FirstOrderLiteral {
18  public:
24  Computable(const FirstOrderLiteral &literal,
25  const std::vector<DefiningReasoner> &reasonerList);
26 
33  Computable(const PredicatePtr &predicate, bool isNegative,
34  const std::vector<DefiningReasoner> &reasonerList);
35 
39  const auto &reasonerList() const { return reasonerList_; }
40 
41  protected:
42  std::vector<DefiningReasoner> reasonerList_;
43  };
44 
45  using ComputablePtr = std::shared_ptr<Computable>;
46 
53  ComputablePtr applyBindings(const ComputablePtr &lit, const Bindings &bindings);
54 
55 } // knowrob
56 
57 #endif //KNOWROB_COMPUTABLE_H
Computable(const PredicatePtr &predicate, bool isNegative, const std::vector< DefiningReasoner > &reasonerList)
const auto & reasonerList() const
Definition: Computable.h:39
Computable(const FirstOrderLiteral &literal, const std::vector< DefiningReasoner > &reasonerList)
std::vector< DefiningReasoner > reasonerList_
Definition: Computable.h:42
const auto & predicate() const
std::shared_ptr< Computable > ComputablePtr
Definition: Computable.h:45
std::shared_ptr< Predicate > PredicatePtr
Definition: Predicate.h:77
FirstOrderLiteralPtr applyBindings(const FirstOrderLiteralPtr &lit, const Bindings &bindings)