57 void reserve(
size_t newLength)
override;
58 void resize(
size_t newLength)
override;
59 void setSize(
size_t newLength)
override;
69 const size_t index, std::vector<float>& point_data)
const override 72 point_data[0] =
m_x[index];
73 point_data[1] =
m_y[index];
74 point_data[2] =
m_z[index];
82 const size_t index,
const std::vector<float>& point_data)
override 85 m_x[index] = point_data[0];
86 m_y[index] = point_data[1];
87 m_z[index] = point_data[2];
102 [[maybe_unused]]
const CPointsMap& anotherMap,
103 [[maybe_unused]]
const size_t nPreviousPoints)
override 109 template <
class Derived>
111 template <
class Derived>
160 static constexpr
bool HAS_RGB =
false;
162 static constexpr
bool HAS_RGBf =
false;
164 static constexpr
bool HAS_RGBu8 =
false;
172 inline size_t size()
const {
return m_obj.
size(); }
178 template <
typename T>
CSimplePointsMap & operator=(const CPointsMap &o)
void insertPointFast(float x, float y, float z=0) override
The virtual method for insertPoint() without calling mark_as_modified()
CSimplePointsMap(const CSimplePointsMap &o)
void getPointFast(size_t index, float &x, float &y, float &z) const
Just like getPoint() but without checking out-of-bound index and without returning the point weight...
CPointsMap & operator=(const CPointsMap &o)
void reserve(size_t newLength) override
Reserves memory for a given number of points: the size of the map does not change, it only reserves the memory.
void setInvalidPoint(const size_t idx)
Set XYZ coordinates of i'th point.
#define MAP_DEFINITION_START(_CLASS_NAME_)
Add a MAP_DEFINITION_START() ...
A range or depth 3D scan measurement, as from a time-of-flight range camera or a structured-light dep...
mrpt::maps::CSimplePointsMap & m_obj
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans. ...
PointCloudAdapter(const mrpt::maps::CSimplePointsMap &obj)
Constructor (accept a const ref for convenience)
void getPointAllFieldsFast(const size_t index, std::vector< float > &point_data) const override
Get all the data fields for one point as a vector: [X Y Z] Unlike getPointAllFields(), this method does not check for index out of bounds.
void setDimensions(size_t height, size_t width)
Does nothing as of now.
Rendering options, used in getAs3DObject()
With this struct options are provided to the observation insertion process.
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors...
void setSize(size_t newLength) override
Resizes all point buffers so they can hold the given number of points, erasing all previous contents ...
An adapter to different kinds of point cloud object.
void getPointXYZ(const size_t idx, T &x, T &y, T &z) const
Get XYZ coordinates of i'th point.
void impl_copyFrom(const CPointsMap &obj) override
Virtual assignment operator, copies as much common data (XYZ, color,...) as possible from the source ...
void loadFromRangeScan(const mrpt::obs::CObservation2DRangeScan &rangeScan, const mrpt::poses::CPose3D *robotPose=nullptr) override
See CPointsMap::loadFromRangeScan()
CSimplePointsMap()=default
Default constructor.
CSimplePointsMap & operator=(const CSimplePointsMap &o)
void setPointFast(size_t index, float x, float y, float z)
Changes the coordinates of the given point (0-based index), without checking for out-of-bounds and wi...
size_t size() const
Get number of points.
float coords_t
The type of each point XYZ coordinates.
void internal_clear() override
Clear the map, erasing all the points.
mrpt::aligned_std_vector< float > m_z
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser sc...
const mrpt::maps::CSimplePointsMap * getAsSimplePointsMap() const override
If the map is a simple points map or it's a multi-metric map that contains EXACTLY one simple points ...
mrpt::aligned_std_vector< float > m_y
void setPointAllFieldsFast(const size_t index, const std::vector< float > &point_data) override
Set all the data fields for one point as a vector: [X Y Z] Unlike setPointAllFields(), this method does not check for index out of bounds.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Options used when evaluating "computeObservationLikelihood" in the derived classes.
#define ASSERTDEB_(f)
Defines an assertion mechanism - only when compiled in debug.
void setPointXYZ(const size_t idx, const coords_t x, const coords_t y, const coords_t z)
Set XYZ coordinates of i'th point.
CSimplePointsMap(const CPointsMap &o)
#define DEFINE_SERIALIZABLE(class_name, NS)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
void PLY_import_set_vertex_count(const size_t N) override
In a base class, reserve memory to prepare subsequent calls to PLY_import_set_vertex.
void resize(const size_t N)
Set number of points (to uninitialized values)
void addFrom_classSpecific([[maybe_unused]] const CPointsMap &anotherMap, [[maybe_unused]] const size_t nPreviousPoints) override
mrpt::aligned_std_vector< float > m_x
The point coordinates.
#define MAP_DEFINITION_END(_CLASS_NAME_)
size_t size() const
Save the point cloud as a PCL PCD file, in either ASCII or binary format.
void resize(size_t newLength) override
Resizes all point buffers so they can hold the given number of points: newly created points are set t...