25 typedef typename Frame::SE3 SE3;
26 typedef typename Frame::Inertia Inertia;
28 template<
class PyClass>
29 void visit(PyClass & cl)
const 31 cl.def(bp::init<>(bp::arg(
"self"),
"Default constructor"))
32 .def(bp::init<const Frame &>(bp::args(
"self",
"other"),
"Copy constructor"))
35 const std::string &,
const JointIndex,
const SE3 &, FrameType,
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 " 41 "and an spatial inertia object."))
44 const std::string &,
const JointIndex,
const FrameIndex,
const SE3 &, FrameType,
45 bp::optional<const Inertia &>>(
46 (bp::arg(
"name"), bp::arg(
"parent_joint"), bp::args(
"parent_frame"),
47 bp::arg(
"placement"), bp::arg(
"type"), bp::arg(
"inertia")),
48 "Initialize from a given name, type, parent joint index, parent frame index and " 49 "placement wrt parent joint and an spatial inertia object."))
50 .def(bp::init<const Frame &>((bp::arg(
"self"), bp::arg(
"clone")),
"Copy constructor"))
52 .def_readwrite(
"name", &Frame::name,
"name of the frame")
53 .def_readwrite(
"parentJoint", &Frame::parentJoint,
"Index of the parent joint")
54 .def_readwrite(
"parentFrame", &Frame::parentFrame,
"Index of the parent frame")
58 +[](
const Frame & self) {
return self.parentJoint; },
59 ::eigenpy::deprecated_member<>(
"Deprecated member. Use Frame.parentJoint instead.")),
61 +[](Frame & self,
const JointIndex index) { self.parentJoint = index; },
62 ::eigenpy::deprecated_member<>(
"Deprecated member. Use Frame.parentJoint instead.")),
63 "See parentJoint property.")
67 +[](
const Frame & self) {
return self.parentFrame; },
68 ::eigenpy::deprecated_member<>(
"Deprecated member. Use Frame.parentFrame instead.")),
70 +[](Frame & self,
const FrameIndex index) { self.parentFrame = index; },
71 ::eigenpy::deprecated_member<>(
"Deprecated member. Use Frame.parentFrame instead.")),
72 "See parentFrame property.")
74 "placement", &Frame::placement,
"placement in the parent joint local frame")
75 .def_readwrite(
"type", &Frame::type,
"type of the frame")
76 .def_readwrite(
"inertia", &Frame::inertia,
"Inertia information attached to the frame.")
78#ifndef PINOCCHIO_PYTHON_SKIP_COMPARISON_OPERATIONS 79 .def(bp::self == bp::self)
80 .def(bp::self != bp::self)
87 if (!register_symbolic_link_to_registered_type<FrameType>())
89 bp::enum_<FrameType>(
"FrameType")
90 .value(
"OP_FRAME", OP_FRAME)
91 .value(
"JOINT", JOINT)
92 .value(
"FIXED_JOINT", FIXED_JOINT)
94 .value(
"SENSOR", SENSOR)
100 "A Plucker coordinate frame related to a parent joint inside a kinematic tree.\n",
105 .def(::eigenpy::CopyableVisitor<Frame>())
107 .def_pickle(Pickle());
111 struct Pickle : bp::pickle_suite
113 static bp::tuple getinitargs(
const Frame &)
115 return bp::make_tuple();
118 static bp::tuple getstate(
const Frame & f)
120 return bp::make_tuple(
121 f.name, f.parentJoint, f.parentFrame, f.placement, (
int)f.type, f.inertia);
124 static void setstate(Frame & f, bp::tuple tup)
126 f.name = bp::extract<std::string>(tup[0]);
127 f.parentJoint = bp::extract<JointIndex>(tup[1]);
128 f.parentFrame = bp::extract<JointIndex>(tup[2]);
129 f.placement = bp::extract<SE3 &>(tup[3]);
130 f.type = (FrameType)(
int)bp::extract<int>(tup[4]);
131 if (bp::len(tup) > 5)
132 f.inertia = bp::extract<Inertia &>(tup[5]);
135 static bool getstate_manages_dict()