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"]);
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));
154 m_coords[0] + b.
x(), m_coords[1] + b.
y(), m_coords[2] + b.z(), b.
yaw(),
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.
mrpt::math::CVectorFixedDouble< 3 > m_coords
[x,y,z]
std::ostream & operator<<(std::ostream &o, const CPoint2D &p)
Dumps a point as a string (x,y)
double pitch() const
Get the PITCH angle (in radians)
void serializeFrom(mrpt::serialization::CArchive &in, uint8_t serial_version) override
Serialize CSchemeArchiveBase derived object to CSerializable Object.
double yaw() const
Get the YAW angle (in radians)
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.
void getInverseHomogeneousMatrix(MATRIX44 &out_HM) const
Returns the corresponding 4x4 inverse homogeneous transformation matrix for this point or pose...
TPoint3D_< double > TPoint3D
Lightweight 3D point.
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...
double roll() const
Get the ROLL angle (in radians)
#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).
mrpt::vision::TStereoCalibResults out
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.