diff --git a/python/_nimblephysics/dynamics/BodyNode.cpp b/python/_nimblephysics/dynamics/BodyNode.cpp index 64c9f1383..c6d322ab3 100644 --- a/python/_nimblephysics/dynamics/BodyNode.cpp +++ b/python/_nimblephysics/dynamics/BodyNode.cpp @@ -171,6 +171,27 @@ void BodyNode(py::module& m) ::py::init(), ::py::arg("aspectProperties")); + ::py::class_(m, "MovingVertex") + .def( + ::py::init< + Eigen::Vector3s, + Eigen::Vector3s, + Eigen::Vector3s, + dart::dynamics::BodyNode*, + int>(), + ::py::arg("pos"), + ::py::arg("vel"), + ::py::arg("accel"), + ::py::arg("bodyNode"), + ::py::arg("timestep")) + .def_readwrite("pos", &dart::dynamics::BodyNode::MovingVertex::pos) + .def_readwrite("vel", &dart::dynamics::BodyNode::MovingVertex::vel) + .def_readwrite("accel", &dart::dynamics::BodyNode::MovingVertex::accel) + .def_readwrite( + "bodyNode", &dart::dynamics::BodyNode::MovingVertex::bodyNode) + .def_readwrite( + "timestep", &dart::dynamics::BodyNode::MovingVertex::timestep); + ::py::class_< dart::dynamics::TemplatedJacobianNode, dart::dynamics::JacobianNode, @@ -1007,6 +1028,19 @@ void BodyNode(py::module& m) .def( "removeAllShapeNodes", +[](dart::dynamics::BodyNode* self) { self->removeAllShapeNodes(); }) + .def( + "getLocalVertices", + +[](const dart::dynamics::BodyNode* self) + -> const std::vector { + return self->getLocalVertices(); + }) + .def( + "getMovingVerticesInWorldSpace", + +[](const dart::dynamics::BodyNode* self, int timestep) + -> std::vector { + return self->getMovingVerticesInWorldSpace(timestep); + }, + ::py::arg("timestep") = -1) .def( "getNumEndEffectors", +[](const dart::dynamics::BodyNode* self) -> std::size_t {