54 out << m_coords[0] << m_coords[1] << m_coords[2];
74 in >> m_coords[0] >> m_coords[1] >> m_coords[2];
85 out[
"x"] = m_coords[0];
86 out[
"y"] = m_coords[1];
87 out[
"z"] = m_coords[2];
98 m_coords[0] =
static_cast<double>(
in[
"x"]);
99 m_coords[1] =
static_cast<double>(
in[
"y"]);
100 m_coords[2] =
static_cast<double>(
in[
"z"]);
117 b.getInverseHomogeneousMatrix(B_INV);
120 B_INV(0, 0) * m_coords[0] + B_INV(0, 1) * m_coords[1] +
121 B_INV(0, 2) * m_coords[2] + B_INV(0, 3),
122 B_INV(1, 0) * m_coords[0] + B_INV(1, 1) * m_coords[1] +
123 B_INV(1, 2) * m_coords[2] + B_INV(1, 3),
124 B_INV(2, 0) * m_coords[0] + B_INV(2, 1) * m_coords[1] +
125 B_INV(2, 2) * m_coords[2] + B_INV(2, 3));
134 m_coords[0] -
b.m_coords[0], m_coords[1] -
b.m_coords[1],
135 m_coords[2] -
b.m_coords[2]);
144 m_coords[0] +
b.m_coords[0], m_coords[1] +
b.m_coords[1],
145 m_coords[2] +
b.m_coords[2]);
154 m_coords[0] +
b.x(), m_coords[1] +
b.y(), m_coords[2] +
b.z(),
b.yaw(),
155 b.pitch(),
b.roll());
160 for (
int i = 0; i < 3; i++)
161 m_coords[i] = std::numeric_limits<double>::quiet_NaN();
171 o <<
"(" <<
p[0] <<
"," <<
p[1] <<
"," <<
p[2] <<
")";
A compile-time fixed-size numeric matrix container.
void setToNaN() override
Set all data fields to quiet NaN.
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
To be added to all CSerializable-classes implementation files.
std::ostream & operator<<(std::ostream &o, const CPoint2D &p)
Dumps a point as a string (x,y)
void serializeFrom(mrpt::serialization::CArchive &in, uint8_t serial_version) override
Serialize CSchemeArchiveBase derived object to CSerializable Object.
void serializeTo(mrpt::serialization::CArchive &out) const override
Serialize CSerializable Object to CSchemeArchiveBase derived object.
Virtual base class for "schematic archives" (JSON, XML,...)
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
This base provides a set of functions for maths stuff.
uint8_t serializeGetVersion() const override
Must return the current versioning number of the object.
double x() const
Common members of all points & poses classes.
A class used to store a 2D point.
A class used to store a 3D point.
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
#define SCHEMA_DESERIALIZE_DATATYPE_VERSION()
For use inside serializeFrom(CSchemeArchiveBase) methods.
mrpt::math::TPoint3D asTPoint() const
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Virtual base class for "archives": classes abstracting I/O streams.
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
CPoint3D operator-(const CPose3D &b) const
Returns this point as seen from "b", i.e.
CPoint3D(const double x=0, const double y=0, const double z=0)
Constructor for initializing point coordinates.
#define SCHEMA_SERIALIZE_DATATYPE_VERSION(ser_version)
For use inside all serializeTo(CSchemeArchiveBase) methods.
CPoint3D operator+(const CPoint3D &b) const
Returns this point plus point "b", i.e.