bindings/python/constraint/constraint-inequality.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2018 CNRS
3 //
4 // This file is part of tsid
5 // tsid is free software: you can redistribute it
6 // and/or modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation, either version
8 // 3 of the License, or (at your option) any later version.
9 // tsid is distributed in the hope that it will be
10 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
11 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // General Lesser Public License for more details. You should have
13 // received a copy of the GNU Lesser General Public License along with
14 // tsid If not, see
15 // <http://www.gnu.org/licenses/>.
16 //
17 #ifndef __tsid_python_constriant_inequality_hpp__
18 #define __tsid_python_constriant_inequality_hpp__
19 
21 
23 
24 namespace tsid {
25 namespace python {
26 namespace bp = boost::python;
27 
28 template <typename ConstraintInequality>
30  : public boost::python::def_visitor<
31  ConstraintIneqPythonVisitor<ConstraintInequality> > {
32  template <class PyClass>
33 
34  void visit(PyClass& cl) const {
35  cl.def(bp::init<std::string>((bp::arg("name")),
36  "Default constructor with name."))
37  .def(bp::init<std::string, unsigned int, unsigned int>(
38  (bp::arg("name"), bp::arg("row"), bp::arg("col")),
39  "Default constructor with name and size."))
40  .def(bp::init<std::string, Eigen::MatrixXd, Eigen::VectorXd,
41  Eigen::VectorXd>(
42  (bp::arg("name"), bp::arg("A"), bp::arg("lb"), bp::arg("ub")),
43  "Default constructor with name and constraint."))
44 
45  .add_property("rows", &ConstraintInequality::rows)
46  .add_property("cols", &ConstraintInequality::cols)
47  .def("resize", &ConstraintInequality::resize,
48  (bp::arg("r"), bp::arg("c")), "Resize constraint size.")
49 
50  .add_property("isEquality", &ConstraintInequality::isEquality)
51  .add_property("isInequality", &ConstraintInequality::isInequality)
52  .add_property("isBound", &ConstraintInequality::isBound)
53 
54  .add_property("matrix", &ConstraintIneqPythonVisitor::matrix)
55  .add_property("vector", &ConstraintIneqPythonVisitor::vector)
56  .add_property("lowerBound", &ConstraintIneqPythonVisitor::lowerBound)
57  .add_property("upperBound", &ConstraintIneqPythonVisitor::upperBound)
58 
59  .def("setMatrix",
60  (bool(ConstraintInequality::*)(
61  const Eigen::Ref<const Eigen::MatrixXd>)) &
62  ConstraintInequality::setMatrix,
63  bp::args("matrix"), "Set Matrix")
64  .def("setVector",
65  (bool(ConstraintInequality::*)(
66  const Eigen::Ref<const Eigen::VectorXd>)) &
67  ConstraintInequality::setVector,
68  bp::args("vector"), "Set Vector")
69  .def("setLowerBound",
70  (bool(ConstraintInequality::*)(
71  const Eigen::Ref<const Eigen::VectorXd>)) &
72  ConstraintInequality::setLowerBound,
73  bp::args("lb"), "Set LowerBound")
74  .def("setUpperBound",
75  (bool(ConstraintInequality::*)(
76  const Eigen::Ref<const Eigen::VectorXd>)) &
77  ConstraintInequality::setUpperBound,
78  bp::args("ub"), "Set UpperBound");
79  }
80  static Eigen::MatrixXd matrix(const ConstraintInequality& self) {
81  return self.matrix();
82  }
83  static Eigen::VectorXd vector(const ConstraintInequality& self) {
84  return self.vector();
85  }
86  static Eigen::VectorXd lowerBound(const ConstraintInequality& self) {
87  return self.lowerBound();
88  }
89  static Eigen::VectorXd upperBound(const ConstraintInequality& self) {
90  return self.upperBound();
91  }
92 
93  static void expose(const std::string& class_name) {
94  std::string doc = "Constraint Inequality info.";
95  bp::class_<ConstraintInequality>(class_name.c_str(), doc.c_str(),
96  bp::no_init)
98  }
99 };
100 } // namespace python
101 } // namespace tsid
102 
103 #endif // ifndef __tsid_python_constriant_inequality_hpp__
static Eigen::VectorXd upperBound(const ConstraintInequality &self)
static Eigen::VectorXd vector(const ConstraintInequality &self)
void def(const char *name, Func func)
static Eigen::MatrixXd matrix(const ConstraintInequality &self)
void init(bool compute_local_aabb=true)
static Eigen::VectorXd lowerBound(const ConstraintInequality &self)


tsid
Author(s): Andrea Del Prete, Justin Carpentier
autogenerated on Sun Jul 2 2023 02:21:51