28#include <Eigen/Geometry>
32#include <RobotAPI/interface/core/PoseBase.h>
52 class Vector2 :
virtual public Vector2Base
56 Vector2(
const Eigen::Vector2f&);
57 Vector2(::Ice::Float
x, ::Ice::Float y);
59 void operator=(
const Eigen::Vector2f& ves);
61 virtual Eigen::Vector2f
toEigen()
const;
71 clone(
const Ice::Current& = Ice::emptyCurrent)
const override
76 std::string
output(
const Ice::Current&
c = Ice::emptyCurrent)
const override;
79 getType(
const Ice::Current& = Ice::emptyCurrent)
const override
85 validate(
const Ice::Current& = Ice::emptyCurrent)
override
93 stream <<
"Vector2: " << std::endl << rhs.
output() << std::endl;
98 void serialize(
const armarx::ObjectSerializerBasePtr& serializer,
99 const ::Ice::Current& = Ice::emptyCurrent)
const override;
100 void deserialize(
const armarx::ObjectSerializerBasePtr& serializer,
101 const ::Ice::Current& = Ice::emptyCurrent)
override;
116 Vector3(
const Eigen::Vector3f&);
117 Vector3(
const Eigen::Matrix4f&);
118 Vector3(::Ice::Float
x, ::Ice::Float y, ::Ice::Float z);
120 void operator=(
const Eigen::Vector3f& vec);
122 virtual Eigen::Vector3f
toEigen()
const;
128 return this->
clone();
132 clone(
const Ice::Current&
c = Ice::emptyCurrent)
const override
137 std::string
output(
const Ice::Current&
c = Ice::emptyCurrent)
const override;
140 getType(
const Ice::Current& = Ice::emptyCurrent)
const override
146 validate(
const Ice::Current& = Ice::emptyCurrent)
override
154 stream <<
"Vector3: " << std::endl << rhs.
output() << std::endl;
159 void serialize(
const armarx::ObjectSerializerBasePtr& serializer,
160 const ::Ice::Current& = Ice::emptyCurrent)
const override;
161 void deserialize(
const armarx::ObjectSerializerBasePtr& serializer,
162 const ::Ice::Current& = Ice::emptyCurrent)
override;
181 Quaternion(::Ice::Float qw, ::Ice::Float qx, ::Ice::Float qy, ::Ice::Float qz);
183 Eigen::Matrix3f
toEigen()
const;
185 Eigen::Matrix3f
slerp(
float,
const Eigen::Matrix3f&);
187 static Eigen::Matrix3f
slerp(
float,
const Eigen::Matrix3f&,
const Eigen::Matrix3f&);
193 return this->
clone();
197 clone(
const Ice::Current& = Ice::emptyCurrent)
const override
202 std::string
output(
const Ice::Current&
c = Ice::emptyCurrent)
const override;
205 getType(
const Ice::Current& = Ice::emptyCurrent)
const override
211 validate(
const Ice::Current& = Ice::emptyCurrent)
override
219 stream <<
"Quaternion: " << std::endl << rhs.
output() << std::endl;
224 void serialize(
const armarx::ObjectSerializerBasePtr& serializer,
225 const ::Ice::Current& = Ice::emptyCurrent)
const override;
226 void deserialize(
const armarx::ObjectSerializerBasePtr& serializer,
227 const ::Ice::Current& = Ice::emptyCurrent)
override;
230 void init(
const Eigen::Matrix3f&);
242 class Pose :
virtual public PoseBase
247 Pose(
const Eigen::Matrix4f&);
248 Pose(
const Eigen::Matrix3f&,
const Eigen::Vector3f&);
250 Pose(
const armarx::Vector3BasePtr pos,
const armarx::QuaternionBasePtr ori);
253 void operator=(
const Eigen::Matrix4f& matrix);
254 virtual Eigen::Matrix4f
toEigen()
const;
260 return this->
clone();
264 clone(
const Ice::Current& = Ice::emptyCurrent)
const override
266 return new Pose(*
this);
269 std::string
output(
const Ice::Current& = Ice::emptyCurrent)
const override;
272 getType(
const Ice::Current& = Ice::emptyCurrent)
const override
278 validate(
const Ice::Current& = Ice::emptyCurrent)
override
286 stream <<
"Pose: " << std::endl << rhs.
output() << std::endl;
291 void serialize(
const armarx::ObjectSerializerBasePtr& serializer,
292 const ::Ice::Current& = Ice::emptyCurrent)
const override;
293 void deserialize(
const armarx::ObjectSerializerBasePtr& serializer,
294 const ::Ice::Current& = Ice::emptyCurrent)
override;
311 void fromIce(
const Vector3BasePtr& ice, Eigen::Vector3f& vector);
313 void fromIce(
const QuaternionBasePtr& ice, Eigen::Matrix3f& rotation);
314 void fromIce(
const PoseBasePtr& ice, Eigen::Matrix4f& pose);
315 void fromIce(
const QuaternionBasePtr& ice,
319 Eigen::Vector3f
fromIce(
const Vector3BasePtr& position);
321 Eigen::Matrix4f
fromIce(
const PoseBasePtr& pose);
323 void toIce(Vector3BasePtr& ice,
const Eigen::Vector3f& vector);
324 void toIce(QuaternionBasePtr& ice,
const Eigen::Matrix3f& rotation);
327 void toIce(PoseBasePtr& ice,
const Eigen::Matrix4f& pose);
340extern template class ::IceInternal::Handle<::armarx::Pose>;
341extern template class ::IceInternal::Handle<::armarx::Vector2>;
342extern template class ::IceInternal::Handle<::armarx::Vector3>;
343extern template class ::IceInternal::Handle<::armarx::Quaternion>;
void ice_postUnmarshal() override
Pose & operator=(const Pose &)=default
std::string output(const Ice::Current &=Ice::emptyCurrent) const override
VariantDataClassPtr clone(const Ice::Current &=Ice::emptyCurrent) const override
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
VariantTypeId getType(const Ice::Current &=Ice::emptyCurrent) const override
Ice::ObjectPtr ice_clone() const override
friend std::ostream & operator<<(std::ostream &stream, const Pose &rhs)
bool validate(const Ice::Current &=Ice::emptyCurrent) override
virtual Eigen::Matrix4f toEigen() const
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
friend std::ostream & operator<<(std::ostream &stream, const Quaternion &rhs)
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
Eigen::Matrix3f toEigen() const
Quaternion()
Construct an identity quaternion.
VariantDataClassPtr clone(const Ice::Current &=Ice::emptyCurrent) const override
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
VariantTypeId getType(const Ice::Current &=Ice::emptyCurrent) const override
Eigen::Quaternionf toEigenQuaternion() const
Ice::ObjectPtr ice_clone() const override
bool validate(const Ice::Current &=Ice::emptyCurrent) override
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
Eigen::Matrix3f slerp(float, const Eigen::Matrix3f &)
static VariantTypeId addTypeName(const std::string &typeName)
Register a new type for the use in a Variant.
virtual Eigen::Vector2f toEigen() const
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
void operator=(const Eigen::Vector2f &ves)
friend std::ostream & operator<<(std::ostream &stream, const Vector2 &rhs)
VariantDataClassPtr clone(const Ice::Current &=Ice::emptyCurrent) const override
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
VariantTypeId getType(const Ice::Current &=Ice::emptyCurrent) const override
Ice::ObjectPtr ice_clone() const override
bool validate(const Ice::Current &=Ice::emptyCurrent) override
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
friend std::ostream & operator<<(std::ostream &stream, const Vector3 &rhs)
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
void operator=(const Eigen::Vector3f &vec)
virtual Eigen::Vector3f toEigen() const
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
VariantTypeId getType(const Ice::Current &=Ice::emptyCurrent) const override
Ice::ObjectPtr ice_clone() const override
bool validate(const Ice::Current &=Ice::emptyCurrent) override
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
Quaternion< float, 0 > Quaternionf
const VariantTypeId Quaternion
const VariantTypeId Vector2
const VariantTypeId Vector3
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< Vector3 > Vector3Ptr
IceInternal::Handle< Pose > PosePtr
const Eigen::IOFormat ArmarXEigenFormat(Eigen::StreamPrecision, Eigen::DontAlignCols, " ", "\n", "", "")
IceInternal::Handle< Vector2 > Vector2Ptr
IceInternal::Handle< Quaternion > QuaternionPtr
void fromIce(const std::map< IceKeyT, IceValueT > &iceMap, boost::container::flat_map< CppKeyT, CppValueT > &cppMap)
void toIce(std::map< IceKeyT, IceValueT > &iceMap, const boost::container::flat_map< CppKeyT, CppValueT > &cppMap)