89 static_cast<U
>(this->
x), static_cast<U>(this->
y),
90 static_cast<U
>(this->
z));
105 throw std::out_of_range(
"index out of range");
120 throw std::out_of_range(
"index out of range");
173 template <
class VECTORLIKE>
230 bool operator<(const TPoint3D_<T>& p)
const;
282 constexpr
TPointXYZIu8(
double x,
double y,
double z, uint8_t intensity_val)
294 double x,
double y,
double z, uint8_t R_val, uint8_t G_val,
296 :
pt(x, y, z),
r(R_val),
g(G_val),
b(B_val)
318 float x,
float y,
float z, uint8_t R_val, uint8_t G_val, uint8_t B_val)
319 :
pt(x, y, z),
r(R_val),
g(G_val),
b(B_val)
333 uint8_t
r{0},
g{0},
b{0},
a{0xff};
336 float x,
float y,
float z, uint8_t R_val, uint8_t G_val, uint8_t B_val,
337 uint8_t A_val = 0xff)
338 :
pt(x, y, z),
r(R_val),
g(G_val),
b(B_val),
a(A_val)
357 float x,
float y,
float z,
float R_val,
float G_val,
float B_val,
359 :
pt(x, y, z),
R(R_val),
G(G_val),
B(B_val),
A(A_val)
366 template <
typename T>
369 return {-p1.
x, -p1.
y, -p1.
z};
373 template <
typename T>
376 return (p1.
x == p2.
x) && (p1.
y == p2.
y) && (p1.
z == p2.
z);
379 template <
typename T>
382 return (p1.
x != p2.
x) || (p1.
y != p2.
y) || (p1.
z != p2.
z);
T sqrNorm() const
Squared norm: |v|^2 = x^2+y^2+z^2.
std::vector< T1 > operator-(const std::vector< T1 > &v1, const std::vector< T2 > &v2)
A compile-time fixed-size numeric matrix container.
constexpr TPointXYZIu8(double x, double y, double z, uint8_t intensity_val)
TPoint3D_(const TPoint3D_data< U > &p)
Constructor from coordinates.
Trivially copiable underlying data for TPoint3D 1-byte memory packed, no padding].
TPoint3D_(const mrpt::math::CMatrixFixed< U, 3, 1 > &m)
Constructor from column vector.
constexpr TPointXYZfIu8(float x, float y, float z, uint8_t intensity_val)
std::string std::string format(std::string_view fmt, ARGS &&... args)
Base type of all TPoseXX and TPointXX classes in mrpt::math.
TPoint3D_< T > & operator-=(const TPoint3D_< T > &p)
Difference between points.
constexpr TPoint3D_< T > operator*(T d) const
void fromString(const std::string &s)
Set the current object value from a string generated by 'asString' (eg: "[0.02 1.04 -0...
constexpr T operator[](size_t i) const
Coordinate access using operator[].
void asVector(VECTORLIKE &v) const
Transformation into vector.
constexpr TPointXYZRGBu8(double x, double y, double z, uint8_t R_val, uint8_t G_val, uint8_t B_val)
constexpr TPoint3D_< T > operator+(const TPoint3D_< T > &p) const
Points addition.
mrpt::serialization::CArchive & operator>>(mrpt::serialization::CArchive &in, CMatrixD::Ptr &pObj)
constexpr TPoint3D_()
Default constructor.
void asString(std::string &s) const
Returns a human-readable textual representation of the object (eg: "[0.02 1.04 -0.8]" )
This base provides a set of functions for maths stuff.
TPoint3D_< U > cast() const
Return a copy of this object using type U for coordinates.
XYZ point (float) + RGB(u8)
XYZ point (float) + RGBA(float) [1-byte memory packed, no padding].
static TPoint3D_< T > FromString(const std::string &s)
TPoint3D_< double > TPoint3D
Lightweight 3D point.
#define MRPT_DECLARE_TTYPENAME_NO_NAMESPACE(_TYPE, __NS)
Declares a typename to be "type" (without the NS prefix)
XYZ point (float) + Intensity(u8)
T sqrDistanceTo(const TPoint3D_< T > &p) const
Point-to-point distance, squared.
XYZ point (float) + RGBA(u8)
TPoint3D_< T > & operator+=(const TPoint3D_< T > &p)
Translation.
constexpr bool operator==(const TPoint2D_< T > &p1, const TPoint2D_< T > &p2)
Exact comparison between 2D points.
Base template for TPoint2D and TPoint2Df.
return_t square(const num_t x)
Inline function for the square of a number.
TPoint3D_< T > unitarize() const
Returns this vector with unit length: v/norm(v)
constexpr bool operator!=(const TPoint2D_< T > &p1, const TPoint2D_< T > &p2)
Exact comparison between 2D points.
TPoint3D_< T > & operator*=(const T f)
Scale point/vector.
constexpr TPointXYZRGBAf(float x, float y, float z, float R_val, float G_val, float B_val, float A_val)
Virtual base class for "archives": classes abstracting I/O streams.
Provided for STL and matrices/vectors compatibility.
XYZ point (double) + RGB(u8)
mrpt::vision::TStereoCalibResults out
mrpt::serialization::CArchive & operator<<(mrpt::serialization::CArchive &s, const CVectorFloat &a)
Base template for TPoint3D and TPoint3Df.
#define ASSERT_ABOVE_(__A, __B)
Lightweight 3D pose (three spatial coordinates, plus three angular coordinates).
constexpr TPoint3D_(T xx, T yy, T zz)
Constructor from coordinates.
T & operator[](size_t i)
Coordinate access using operator[].
T distanceTo(const TPoint3D_< T > &p) const
Point-to-point distance.
constexpr TPointXYZfRGBAu8(float x, float y, float z, uint8_t R_val, uint8_t G_val, uint8_t B_val, uint8_t A_val=0xff)
T norm() const
Point norm: |v| = sqrt(x^2+y^2+z^2)
TPoint3D_< float > TPoint3Df
constexpr TPoint3D_< T > operator-(const TPoint3D_< T > &p) const
Points substraction.
constexpr TPoint3D_< T > operator/(T d) const
constexpr TPointXYZfRGBu8(float x, float y, float z, uint8_t R_val, uint8_t G_val, uint8_t B_val)
XYZ point (double) + Intensity(u8)
std::string asString() const