Go to the documentation of this file.
39 virtual void reserve(
size_t newLength)
override;
40 virtual void resize(
size_t newLength)
override;
41 virtual void setSize(
size_t newLength)
override;
66 const size_t index, std::vector<float>& point_data)
const override
83 const size_t index,
const std::vector<float>& point_data)
override
107 const CPointsMap& anotherMap,
const size_t nPreviousPoints)
override;
110 template <
class Derived>
112 template <
class Derived>
129 size_t index,
float x,
float y,
float z,
float R,
float G,
155 float x,
float y,
float z,
float R,
float G,
float B)
override;
159 template <
typename POINT_T>
187 size_t index,
float&
x,
float&
y,
float&
z,
float&
R,
float&
G,
188 float& B)
const override;
198 size_t index,
float&
R,
float&
G,
float& B)
const
246 std::ostream& out)
const override;
266 const std::string& filename,
bool save_as_binary)
const override;
279 template <
class POINTCLOUD>
282 const size_t N = cloud.points.size();
285 const float f = 1.0f / 255.0f;
286 for (
size_t i = 0; i < N; ++i)
288 cloud.points[i].x, cloud.points[i].y, cloud.points[i].z,
289 cloud.points[i].r * f, cloud.points[i].g * f,
290 cloud.points[i].b * f);
294 template <
class POINTCLOUD>
297 const size_t nThis = this->
size();
300 for (
size_t i = 0; i < nThis; ++i)
304 cloud.points[i].r =
static_cast<uint8_t>(
R * 255);
305 cloud.points[i].g =
static_cast<uint8_t>(
G * 255);
306 cloud.points[i].b =
static_cast<uint8_t>(B * 255);
354 #include <mrpt/opengl/pointcloud_adapters.h>
370 static const int HAS_RGB = 1;
372 static const int HAS_RGBf = 1;
374 static const int HAS_RGBu8 = 0;
378 : m_obj(*const_cast<
mrpt::maps::CColouredPointsMap*>(&
obj))
382 inline size_t size()
const {
return m_obj.
size(); }
386 template <
typename T>
399 template <
typename T>
401 const size_t idx, T&
x, T&
y, T&
z,
float&
r,
float&
g,
float&
b)
const
408 const float r,
const float g,
const float b)
414 template <
typename T>
435 const size_t idx,
float&
r,
float&
g,
float&
b)
const
441 const size_t idx,
const float r,
const float g,
const float b)
470 cmFromHeightRelativeToSensor);
473 cmFromHeightRelativeToSensorJet);
476 cmFromHeightRelativeToSensorGray);
Lightweight 3D point (float version).
An adapter to different kinds of point cloud object.
float coords_t
The type of each point XYZ coordinates.
void setPointColor(size_t index, float R, float G, float B)
Changes just the color of a given point from the map.
void setPointXYZ_RGBu8(const size_t idx, const coords_t x, const coords_t y, const coords_t z, const uint8_t r, const uint8_t g, const uint8_t b)
Set XYZ_RGBu8 coordinates of i'th point.
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form,...
bool save3D_and_colour_to_text_file(const std::string &file) const
Save to a text file.
size_t size() const
Returns the number of stored points in the map.
virtual void PLY_import_set_vertex(const size_t idx, const mrpt::math::TPoint3Df &pt, const mrpt::img::TColorf *pt_color=nullptr) override
In a base class, will be called after PLY_import_set_vertex_count() once for each loaded point.
Options used when evaluating "computeObservationLikelihood" in the derived classes.
void getPointRGBu8(const size_t idx, uint8_t &r, uint8_t &g, uint8_t &b) const
Get RGBu8 color of i'th point.
A map of 2D/3D points with individual colours (RGB).
#define MRPT_ENUM_TYPE_END()
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,...
TColourOptions colorScheme
The options employed when inserting laser scans in the map.
virtual void insertPointFast(float x, float y, float z=0) override
The virtual method for insertPoint() without calling mark_as_modified()
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser sc...
virtual void setPoint(size_t index, float x, float y, float z, float R, float G, float B) override
Changes a given point from map.
With this struct options are provided to the observation insertion process.
void setPointColor_fast(size_t index, float R, float G, float B)
Like setPointColor but without checking for out-of-index erors.
virtual bool hasColorPoints() const override
Returns true if the point map has a color field for each point.
mrpt::aligned_std_vector< float > m_color_R
The color data.
MRPT_FILL_ENUM_MEMBER(mrpt::maps::CColouredPointsMap::TColouringMethod, cmFromHeightRelativeToSensor)
size_t size() const
Get number of points.
GLsizei GLsizei GLuint * obj
virtual void internal_clear() override
Minimum distance from where the points have been seen.
void getPointXYZ_RGBu8(const size_t idx, T &x, T &y, T &z, uint8_t &r, uint8_t &g, uint8_t &b) const
Get XYZ_RGBu8 coordinates of i'th point.
mrpt::aligned_std_vector< float > m_color_G
virtual void reserve(size_t newLength) override
Reserves memory for a given number of points: the size of the map does not change,...
TColourOptions()
Initilization of default parameters.
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors.
virtual 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...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
void setFromPCLPointCloudRGB(const POINTCLOUD &cloud)
Loads a PCL point cloud (WITH RGB information) into this MRPT class (for clouds without RGB data,...
#define MRPT_ENUM_TYPE_BEGIN(_ENUM_TYPE_WITH_NS)
void resize(const size_t N)
Set number of points (to uninitialized values)
void getPCLPointCloudXYZRGB(POINTCLOUD &cloud) const
Like CPointsMap::getPCLPointCloud() but for PointCloud<PointXYZRGB>
void setPointXYZ_RGBf(const size_t idx, const coords_t x, const coords_t y, const coords_t z, const float r, const float g, const float b)
Set XYZ_RGBf coordinates of i'th point.
GLsizei GLsizei GLchar * source
GLdouble GLdouble GLdouble r
std::vector< T, mrpt::aligned_allocator_cpp11< T > > aligned_std_vector
#define ASSERT_BELOW_(__A, __B)
virtual bool savePCDFile(const std::string &filename, bool save_as_binary) const override
Save the point cloud as a PCL PCD file, in either ASCII or binary format.
Declares a class derived from "CObservation" that encapsules a 3D range scan measurement,...
virtual void insertPoint(float x, float y, float z, float R, float G, float B) override
Adds a new point given its coordinates and color (colors range is [0,1])
This class allows loading and storing values and vectors of different types from a configuration text...
void setPoint(size_t index, mrpt::math::TPoint3Df &p)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void insertPoint(float x, float y, float z)
This is an overloaded member function, provided for convenience. It differs from the above function o...
PointCloudAdapter(const mrpt::maps::CColouredPointsMap &obj)
Constructor (accept a const ref for convenience)
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
virtual 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.
virtual void getPoint(size_t index, float &x, float &y, float &z, float &R, float &G, float &B) const override
Retrieves a point and its color (colors range is [0,1])
A RGB color - floats in the range [0,1].
virtual void setSize(size_t newLength) override
Resizes all point buffers so they can hold the given number of points, erasing all previous contents ...
virtual void copyFrom(const CPointsMap &obj) override
Virtual assignment operator, to be implemented in derived classes
@ cmFromHeightRelativeToSensorGray
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
mrpt::aligned_std_vector< float > m_z
void setPointRGBu8(const size_t idx, const uint8_t r, const uint8_t g, const uint8_t b)
Set RGBu8 coordinates of i'th point.
void getPCLPointCloud(POINTCLOUD &cloud) const
Use to convert this MRPT point cloud object into a PCL point cloud object (PointCloud<PointXYZ>).
virtual void setPointFast(size_t index, float x, float y, float z) override
Changes the coordinates of the given point (0-based index), without checking for out-of-bounds and wi...
void getPointXYZ(const size_t idx, T &x, T &y, T &z) const
Get XYZ coordinates of i'th point.
mrpt::aligned_std_vector< float > m_y
@ cmFromHeightRelativeToSensorJet
void getPointXYZ_RGBf(const size_t idx, T &x, T &y, T &z, float &r, float &g, float &b) const
Get XYZ_RGBf coordinates of i'th point.
std::shared_ptr< CSetOfObjects > Ptr
void PLY_export_get_vertex(const size_t idx, mrpt::math::TPoint3Df &pt, bool &pt_has_color, mrpt::img::TColorf &pt_color) const override
In a base class, will be called after PLY_export_get_vertex_count() once for each exported point.
void resetPointsMinDist(float defValue=2000.0f)
Reset the minimum-observed-distance buffer for all the points to a predefined value.
The definition of parameters for generating colors from laser scans.
TColouringMethod
The choices for coloring schemes:
#define MAP_DEFINITION_START(_CLASS_NAME_)
Add a MAP_DEFINITION_START() ...
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
This method load the options from a ".ini"-like file or memory-stored string list.
void setPoint(size_t index, float x, float y)
This is an overloaded member function, provided for convenience. It differs from the above function o...
mrpt::aligned_std_vector< float > m_color_B
#define MAP_DEFINITION_END(_CLASS_NAME_)
void getPointRGBf(const size_t idx, float &r, float &g, float &b) const
Get RGBf color of i'th point.
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
virtual void loadFromRangeScan(const mrpt::obs::CObservation2DRangeScan &rangeScan, const mrpt::poses::CPose3D *robotPose=nullptr) override
See CPointsMap::loadFromRangeScan()
virtual 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 R G B] Unlike setPointAllFields(),...
void setPointRGBf(const size_t idx, const float r, const float g, const float b)
Set XYZ_RGBf coordinates of i'th point.
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.
void mark_as_modified() const
Users normally don't need to call this.
virtual void addFrom_classSpecific(const CPointsMap &anotherMap, const size_t nPreviousPoints) override
Auxiliary method called from within addFrom() automatically, to finish the copying of class-specific ...
bool colourFromObservation(const mrpt::obs::CObservationImage &obs, const mrpt::poses::CPose3D &robotPose)
Colour a set of points from a CObservationImage and the global pose of the robot.
mrpt::aligned_std_vector< float > m_x
The point coordinates.
#define ASSERTDEB_(f)
Defines an assertion mechanism - only when compiled in debug.
GLsizei const GLchar ** string
void getPointColor_fast(size_t index, float &R, float &G, float &B) const
Like getPointColor but without checking for out-of-index erors.
@ cmFromHeightRelativeToSensor
void clear()
Erase all the contents of the map.
virtual 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 R G B] Unlike getPointAllFields(),...
void setPoint(size_t index, float x, float y, float z)
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual void getAs3DObject(mrpt::opengl::CSetOfObjects::Ptr &outObj) const override
Override of the default 3D scene builder to account for the individual points' color.
void insertPoint(const POINT_T &p)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Declares a class derived from "CObservation" that encapsules an image from a camera,...
mrpt::maps::CColouredPointsMap & m_obj
void getPointColor(size_t index, float &R, float &G, float &B) const
Retrieves a point color (colors range is [0,1])
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST | |