5 #ifndef __pinocchio_python_multibody_frame_hpp__
6 #define __pinocchio_python_multibody_frame_hpp__
23 template<
typename Frame>
29 template<
class PyClass>
32 cl.def(bp::init<>(bp::arg(
"self"),
"Default constructor"))
33 .def(bp::init<const Frame &>(bp::args(
"self",
"other"),
"Copy constructor"))
36 bp::optional<const Inertia &>>(
37 (bp::arg(
"name"), bp::arg(
"parent_joint"), bp::arg(
"placement"), bp::arg(
"type"),
39 "Initialize from a given name, type, parent frame index and placement wrt parent joint "
40 "and an spatial inertia object."))
43 bp::optional<const Inertia &>>(
44 (bp::arg(
"name"), bp::arg(
"parent_joint"), bp::args(
"parent_frame"),
45 bp::arg(
"placement"), bp::arg(
"type"), bp::arg(
"inertia")),
46 "Initialize from a given name, type, parent joint index, parent frame index and "
47 "placement wrt parent joint and an spatial inertia object."))
48 .def(bp::init<const Frame &>((bp::arg(
"self"), bp::arg(
"clone")),
"Copy constructor"))
50 .def_readwrite(
"name", &
Frame::name,
"name of the frame")
56 +[](
const Frame &
self) {
return self.parentJoint; },
61 "See parentJoint property.")
65 +[](
const Frame &
self) {
return self.parentFrame; },
70 "See parentFrame property.")
73 .def_readwrite(
"type", &
Frame::type,
"type of the frame")
74 .def_readwrite(
"inertia", &
Frame::inertia,
"Inertia information attached to the frame.")
76 #ifndef PINOCCHIO_PYTHON_SKIP_COMPARISON_OPERATIONS
77 .def(bp::self == bp::self)
78 .def(bp::self != bp::self)
85 if (!register_symbolic_link_to_registered_type<FrameType>())
87 bp::enum_<FrameType>(
"FrameType")
89 .value(
"JOINT",
JOINT)
98 "A Plucker coordinate frame related to a parent joint inside a kinematic tree.\n",
113 return bp::make_tuple();
118 return bp::make_tuple(
119 f.name,
f.parentJoint,
f.parentFrame,
f.placement, (
int)
f.type,
f.inertia);
124 f.name = bp::extract<std::string>(tup[0]);
125 f.parentJoint = bp::extract<JointIndex>(tup[1]);
126 f.parentFrame = bp::extract<JointIndex>(tup[2]);
127 f.placement = bp::extract<SE3 &>(tup[3]);
128 f.type = (
FrameType)(
int)bp::extract<int>(tup[4]);
129 if (bp::len(tup) > 5)
130 f.inertia = bp::extract<Inertia &>(tup[5]);
143 #endif // ifndef __pinocchio_python_multibody_frame_hpp__