7 #include "knowrob/terms/Term.h"
8 #include "knowrob/terms/Atomic.h"
9 #include "knowrob/terms/Function.h"
10 #include "knowrob/terms/Variable.h"
11 #include "knowrob/integration/python/utils.h"
12 #include "knowrob/knowrob.h"
56 if (
this == &other)
return true;
60 return ((
Atomic *)
this)->isSameAtomic(*((
Atomic *) &other));
71 struct TermWrap :
public Term, boost::python::wrapper<Term> {
72 explicit TermWrap(PyObject *p,
TermType termType) :
Term(termType), self(p) {}
74 const std::set<std::string_view> &
75 variables()
const override {
return knowrob::py::call_method<std::set<std::string_view> &>(
self,
"variables"); }
84 enum_<TermType>(
"TermType")
89 class_<Term, std::shared_ptr<TermWrap>, boost::noncopyable>
91 .def(
"__eq__", &Term::operator==)
105 .def(
"variables", pure_virtual(&
Term::variables), return_value_policy<copy_const_reference>());
107 register_ptr_to_python<std::shared_ptr<Term> >();
virtual std::string format() const
bool operator==(const Term &other) const
static const std::set< std::string_view > noVariables_
TermType termType() const
virtual const std::set< std::string_view > & variables() const =0
void createType< Term >()
void hashCombine(std::size_t &seed, const std::size_t &v)