56 float _x,
float _y,
float _z,
float _R,
float _G,
float _B)
57 :
x(_x),
y(_y),
z(_z),
R(_R),
G(_G),
B(_B)
110 void push_back(
float x,
float y,
float z,
float R,
float G,
float B);
154 void setPoint(
size_t i,
const TPointColour&
p);
165 const size_t i,
const float x,
const float y,
const float z)
183 size_t index,
float&
R,
float&
G,
float& B)
const
201 template <
class POINTSMAP>
224 const float coord_min,
const float coord_max,
const int coord_index = 2,
229 void render()
const override;
233 const bool all,
const std::vector<size_t>& idxs,
234 const float render_area_sqpixels)
const;
272 const CPointCloudColoured::TPointColour& o);
287 static const int HAS_RGB = 1;
289 static const int HAS_RGBf = 1;
291 static const int HAS_RGBu8 = 0;
299 inline size_t size()
const {
return m_obj.
size(); }
307 template <
typename T>
324 THROW_EXCEPTION(
"mrpt::opengl::CPointCloudColoured needs to be dense");
328 template <
typename T>
330 const size_t idx, T&
x, T&
y, T&
z,
float&
r,
float&
g,
float&
b)
const
343 const float r,
const float g,
const float b)
351 template <
typename T>
371 x,
y,
z,
r / 255.f,
g / 255.f,
b / 255.f));
376 const size_t idx,
float&
r,
float&
g,
float&
b)
const
382 const size_t idx,
const float r,
const float g,
const float b)
409 template <
class POINTSMAP>
414 const size_t N = pc_src.size();
416 for (
size_t i = 0; i < N; i++)
419 pc_src.getPointXYZ_RGBf(i,
x,
y,
z,
r,
g,
b);
420 pc_dst.setPointXYZ_RGBf(i,
x,
y,
z,
r,
g,
b);
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
#define MRPT_DECLARE_TTYPENAME_NAMESPACE(_TYPE, __NS)
Declares a typename to be "namespace::type".
Template class that implements the data structure and algorithms for Octree-based efficient rendering...
void octree_getBoundingBox(mrpt::math::TPoint3D &bb_min, mrpt::math::TPoint3D &bb_max) const
A cloud of points, each one with an individual colour (R,G,B).
void clear()
Erase all the points.
void markAllPointsAsNew()
Do needed internal work if all points are new (octree rebuilt,...)
CPointCloudColoured()
Constructor.
TListPointColour::const_iterator const_iterator
const TPointColour & getPoint(size_t i) const
Read access to each individual point (checks for "i" in the valid range only in Debug).
size_t PLY_export_get_face_count() const override
In a base class, return the number of faces.
void getPointColor_fast(size_t index, float &R, float &G, float &B) const
Like getPointColor but without checking for out-of-index erors.
const TPointColour & operator[](size_t i) const
Read access to each individual point (checks for "i" in the valid range only in Debug).
void recolorizeByCoordinate(const float coord_min, const float coord_max, const int coord_index=2, const mrpt::img::TColormap color_map=mrpt::img::cmJET)
Regenerates the color of each point according the one coordinate (coord_index:0,1,...
mrpt::math::TPoint3Df getPointf(size_t i) const
Read access to each individual point (checks for "i" in the valid range only in Debug).
TListPointColour m_points
size_t getActuallyRendered() const
Get the number of elements actually rendered in the last render event.
float getPointSize() const
TListPointColour::iterator iterator
float m_pointSize
By default is 1.0.
void setPoint_fast(const size_t i, const TPointColour &p)
Like setPoint() but does not check for index out of bounds.
volatile size_t m_last_rendered_count
void disablePointSmooth()
void reserve(size_t N)
Like STL std::vector's reserve.
std::vector< TPointColour > TListPointColour
virtual ~CPointCloudColoured()
Private, virtual destructor: only can be deleted from smart pointers.
bool m_pointSmooth
Default: false.
size_t PLY_export_get_vertex_count() const override
In a base class, return the number of vertices.
virtual void PLY_import_set_face_count(const size_t N) override
In a base class, reserve memory to prepare subsequent calls to PLY_import_set_face.
void enablePointSmooth(bool enable=true)
void render_subset(const bool all, const std::vector< size_t > &idxs, const float render_area_sqpixels) const
Render a subset of points (required by octree renderer)
void loadFromPointsMap(const POINTSMAP *themap)
Load the points from any other point map class supported by the adapter mrpt::opengl::PointCloudAdapt...
void push_back(float x, float y, float z, float R, float G, float B)
Inserts a new point into the point cloud.
void resize(size_t N)
Set the number of points, with undefined contents.
void setPoint_fast(const size_t i, const float x, const float y, const float z)
Like setPoint() but does not check for index out of bounds.
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.
size_t size() const
Return the number of points.
bool isPointSmoothEnabled() const
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.
virtual void getBoundingBox(mrpt::math::TPoint3D &bb_min, mrpt::math::TPoint3D &bb_max) const override
Evaluates the bounding box of this object (including possible children) in the coordinate frame of th...
void render() const override
Render.
volatile size_t m_last_rendered_count_ongoing
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.
void setPointColor_fast(size_t index, float R, float G, float B)
Like setPointColor but without checking for out-of-index erors.
void setPointSize(float pointSize)
const_iterator begin() const
const_iterator end() const
void setPoint(size_t i, const TPointColour &p)
Write an individual point (checks for "i" in the valid range only in Debug).
The base class of 3D objects that can be directly rendered through OpenGL.
A virtual base class that implements the capability of exporting 3D point clouds and faces to a file ...
A virtual base class that implements the capability of importing 3D point clouds and faces from a fil...
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.
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.
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_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 getPointRGBf(const size_t idx, float &r, float &g, float &b) const
Get RGBf color of i'th point.
void getPointRGBu8(const size_t idx, uint8_t &r, uint8_t &g, uint8_t &b) const
Get RGBu8 color of i'th point.
PointCloudAdapter(const mrpt::opengl::CPointCloudColoured &obj)
Constructor (accept a const ref for convenience)
void setInvalidPoint(const size_t idx)
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.
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 getPointXYZ(const size_t idx, T &x, T &y, T &z) const
Get XYZ coordinates of i'th point.
float coords_t
The type of each point XYZ coordinates.
size_t size() const
Get number of points.
mrpt::opengl::CPointCloudColoured & m_obj
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 setDimensions(const size_t &height, const size_t &width)
Does nothing as of now.
void resize(const size_t N)
Set number of points (to uninitialized values)
An adapter to different kinds of point cloud object.
Virtual base class for "archives": classes abstracting I/O streams.
#define MRPT_UNUSED_PARAM(a)
Determines whether this is an X86 or AMD64 platform.
const Scalar * const_iterator
#define ASSERT_BELOW_(__A, __B)
#define THROW_EXCEPTION(msg)
GLsizei GLsizei GLuint * obj
GLdouble GLdouble GLdouble r
GLenum GLsizei GLsizei height
TColormap
Different colormaps for use in mrpt::img::colormap()
The namespace for 3D scene representation and rendering.
mrpt::serialization::CArchive & operator<<(mrpt::serialization::CArchive &out, const mrpt::opengl::CLight &o)
mrpt::serialization::CArchive & operator>>(mrpt::serialization::CArchive &in, mrpt::opengl::CLight &o)
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
A RGB color - floats in the range [0,1].
Lightweight 3D point (float version).
TPointColour(float _x, float _y, float _z, float _R, float _G, float _B)