Go to the documentation of this file.
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(); }
303 template <
typename T>
320 THROW_EXCEPTION(
"mrpt::opengl::CPointCloudColoured needs to be dense");
324 template <
typename T>
326 const size_t idx, T&
x, T&
y, T&
z,
float&
r,
float&
g,
float&
b)
const
339 const float r,
const float g,
const float b)
347 template <
typename T>
367 x,
y,
z,
r / 255.f,
g / 255.f,
b / 255.f));
372 const size_t idx,
float&
r,
float&
g,
float&
b)
const
378 const size_t idx,
const float r,
const float g,
const float b)
405 template <
class POINTSMAP>
410 const size_t N = pc_src.size();
412 for (
size_t i = 0; i < N; i++)
415 pc_src.getPointXYZ_RGBf(i,
x,
y,
z,
r,
g,
b);
416 pc_dst.setPointXYZ_RGBf(i,
x,
y,
z,
r,
g,
b);
size_t getActuallyRendered() const
Get the number of elements actually rendered in the last render event.
Lightweight 3D point (float version).
An adapter to different kinds of point cloud object.
const_iterator end() const
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.
size_t PLY_export_get_vertex_count() const override
In a base class, return the number of vertices.
virtual ~CPointCloudColoured()
Private, virtual destructor: only can be deleted from smart pointers.
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 clear()
Erase all the points.
const_iterator begin() const
void resize(const size_t N)
Set number of points (to uninitialized values)
TColormap
Different colormaps for use in mrpt::img::colormap()
const Scalar * const_iterator
void setPointSize(float pointSize)
void push_back(float x, float y, float z, float R, float G, float B)
Inserts a new point into the point cloud.
mrpt::serialization::CArchive & operator>>(mrpt::serialization::CArchive &in, mrpt::opengl::CLight &o)
size_t size() const
Return the number of points.
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...
The base class of 3D objects that can be directly rendered through OpenGL.
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.
bool m_pointSmooth
Default: false.
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)
std::vector< TPointColour > TListPointColour
GLsizei GLsizei GLuint * obj
void setPoint_fast(const size_t i, const TPointColour &p)
Like setPoint() but does not check for index out of bounds.
#define MRPT_UNUSED_PARAM(a)
Determines whether this is an X86 or AMD64 platform.
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 getPointRGBf(const size_t idx, float &r, float &g, float &b) const
Get RGBf color of i'th point.
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.
#define MRPT_DECLARE_TTYPENAME_NAMESPACE(_TYPE, __NS)
Declares a typename to be "namespace::type".
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
#define THROW_EXCEPTION(msg)
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 getPointXYZ(const size_t idx, T &x, T &y, T &z) const
Get XYZ coordinates of i'th point.
const TPointColour & getPoint(size_t i) const
Read access to each individual point (checks for "i" in the valid range only 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.
void markAllPointsAsNew()
Do needed internal work if all points are new (octree rebuilt,...)
Virtual base class for "archives": classes abstracting I/O streams.
void resize(size_t N)
Set the number of points, with undefined contents.
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,...
GLdouble GLdouble GLdouble r
A virtual base class that implements the capability of exporting 3D point clouds and faces to a file ...
#define ASSERT_BELOW_(__A, __B)
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 setInvalidPoint(const size_t idx)
float getPointSize() const
void render() const override
Render.
void getPointRGBu8(const size_t idx, uint8_t &r, uint8_t &g, uint8_t &b) const
Get RGBu8 color of i'th point.
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.
TListPointColour::iterator iterator
void reserve(size_t N)
Like STL std::vector's reserve.
CPointCloudColoured()
Constructor.
size_t size() const
Get number of points.
A RGB color - floats in the range [0,1].
TListPointColour m_points
size_t PLY_export_get_face_count() const override
In a base class, return the number of faces.
void enablePointSmooth(bool enable=true)
bool isPointSmoothEnabled() const
mrpt::serialization::CArchive & operator<<(mrpt::serialization::CArchive &out, const mrpt::opengl::CLight &o)
A virtual base class that implements the capability of importing 3D point clouds and faces from a fil...
void octree_getBoundingBox(mrpt::math::TPoint3D &bb_min, mrpt::math::TPoint3D &bb_max) const
void setPointRGBf(const size_t idx, const float r, const float g, const float b)
Set XYZ_RGBf coordinates of i'th point.
void loadFromPointsMap(const POINTSMAP *themap)
Load the points from any other point map class supported by the adapter mrpt::opengl::PointCloudAdapt...
volatile size_t m_last_rendered_count
TPointColour(float _x, float _y, float _z, float _R, float _G, float _B)
Template class that implements the data structure and algorithms for Octree-based efficient rendering...
TListPointColour::const_iterator const_iterator
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
mrpt::math::TPoint3Df getPointf(size_t i) const
Read access to each individual point (checks for "i" in the valid range only in Debug).
PointCloudAdapter(const mrpt::opengl::CPointCloudColoured &obj)
Constructor (accept a const ref for convenience)
volatile size_t m_last_rendered_count_ongoing
float coords_t
The type of each point XYZ coordinates.
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 disablePointSmooth()
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.
float m_pointSize
By default is 1.0.
mrpt::opengl::CPointCloudColoured & m_obj
const TPointColour & operator[](size_t i) const
Read access to each individual point (checks for "i" in the valid range only in Debug).
void getPointColor_fast(size_t index, float &R, float &G, float &B) const
Like getPointColor but without checking for out-of-index erors.
The namespace for 3D scene representation and rendering.
void setPoint(size_t i, const TPointColour &p)
Write an individual point (checks for "i" in the valid range only in Debug).
A cloud of points, each one with an individual colour (R,G,B).
void setPointColor_fast(size_t index, float R, float G, float B)
Like setPointColor but without checking for out-of-index erors.
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 | |