| 44 | namespace python { |
| 45 | |
| 46 | void Shape(py::module& m) |
| 47 | { |
| 48 | auto shape |
| 49 | = ::py::class_< |
| 50 | dart::dynamics::Shape, |
| 51 | dart::common::Subject, |
| 52 | std::shared_ptr<dart::dynamics::Shape>>(m, "Shape") |
| 53 | .def( |
| 54 | "getType", |
| 55 | +[](const dart::dynamics::Shape* self) -> const std::string& { |
| 56 | return self->getType(); |
| 57 | }, |
| 58 | ::py::return_value_policy::reference_internal) |
| 59 | .def( |
| 60 | "getBoundingBox", |
| 61 | +[](const dart::dynamics::Shape* self) |
| 62 | -> const dart::math::BoundingBox& { |
| 63 | return self->getBoundingBox(); |
| 64 | }, |
| 65 | ::py::return_value_policy::reference_internal) |
| 66 | .def( |
| 67 | "computeInertia", |
| 68 | +[](const dart::dynamics::Shape* self, double mass) |
| 69 | -> Eigen::Matrix3d { return self->computeInertia(mass); }, |
| 70 | ::py::arg("mass")) |
| 71 | .def( |
| 72 | "computeInertiaFromDensity", |
| 73 | +[](const dart::dynamics::Shape* self, |
| 74 | double density) -> Eigen::Matrix3d { |
| 75 | return self->computeInertiaFromDensity(density); |
| 76 | }, |
| 77 | ::py::arg("density")) |
| 78 | .def( |
| 79 | "computeInertiaFromMass", |
| 80 | +[](const dart::dynamics::Shape* self, |
| 81 | double mass) -> Eigen::Matrix3d { |
| 82 | return self->computeInertiaFromMass(mass); |
| 83 | }, |
| 84 | ::py::arg("mass")) |
| 85 | .def( |
| 86 | "getVolume", |
| 87 | +[](const dart::dynamics::Shape* self) -> double { |
| 88 | return self->getVolume(); |
| 89 | }) |
| 90 | .def( |
| 91 | "getID", |
| 92 | +[](const dart::dynamics::Shape* self) -> std::size_t { |
| 93 | return self->getID(); |
| 94 | }) |
| 95 | .def( |
| 96 | "setDataVariance", |
| 97 | +[](dart::dynamics::Shape* self, unsigned int _variance) { |
| 98 | self->setDataVariance(_variance); |
| 99 | }, |
| 100 | ::py::arg("variance")) |
| 101 | .def( |
| 102 | "addDataVariance", |
| 103 | +[](dart::dynamics::Shape* self, unsigned int _variance) { |
no test coverage detected