class mrpt::viz::CPointCloud
Overview
A cloud of points, all with the same color or each depending on its value along a particular coordinate axis.
This class is just an OpenGL representation of a point cloud. For operating with maps of points, see mrpt::maps::CPointsMap and derived classes.
To load from a points-map, CPointCloud::loadFromPointsMap().
This class uses smart optimizations while rendering to efficiently draw clouds of millions of points, using octrees.
See also:
opengl::CPlanarLaserScan, mrpt::viz::Scene, mrpt::viz::CPointCloudColoured, mrpt::maps::CPointsMap
#include <mrpt/viz/CPointCloud.h> class CPointCloud: public mrpt::viz::CVisualObject, public mrpt::viz::VisualObjectParams_Points, public mrpt::viz::PLY_Importer, public mrpt::viz::PLY_Exporter { public: // construction CPointCloud(); // methods size_t size() const; size_t size_unprotected() const; void resize(size_t N); void reserve(size_t N); template <typename T> void setAllPoints( const std::vector<T>& x, const std::vector<T>& y, const std::vector<T>& z ); void setAllPoints(const std::vector<mrpt::math::TPoint3D>& pts); void setAllPointsFast(std::vector<mrpt::math::TPoint3Df>& pts); const std::vector<mrpt::math::TPoint3Df>& getArrayPoints() const; void clear(); bool empty() const; void insertPoint(float x, float y, float z); void insertPoint(const mrpt::math::TPoint3Df& p); void insertPoint(const mrpt::math::TPoint3D& p); const mrpt::math::TPoint3Df& operator [] (size_t i) const; const mrpt::math::TPoint3Df& getPoint3Df(size_t i) const; void setPoint(size_t i, const float x, const float y, const float z); void setPoint_fast(size_t i, const float x, const float y, const float z); template <class POINTSMAP> void loadFromPointsMap(const POINTSMAP* themap); template <class LISTOFPOINTS> void loadFromPointsList(LISTOFPOINTS& pointsList); void enableColorFromX(bool v = true); void enableColorFromY(bool v = true); void enableColorFromZ(bool v = true); void setGradientColors(const mrpt::img::TColorf& colorMin, const mrpt::img::TColorf& colorMax); virtual void toYAMLMap(mrpt::containers::yaml& propertiesMap) const; };
Inherited Members
public: // structs struct OutdatedState; struct State; // methods const auto& shaderPointsVertexPointBuffer() const; const auto& shaderPointsVertexColorBuffer() const; auto& shaderPointsBuffersMutex() const; float getPointSize() const; bool isEnabledVariablePointSize() const; float getVariablePointSize_k() const; float getVariablePointSize_DepthScale() const;
Construction
CPointCloud()
Constructor.
Methods
size_t size_unprotected() const
Like size(), but without locking the data mutex (internal usage)
void resize(size_t N)
Set the number of points (with contents undefined)
void reserve(size_t N)
Like STL std::vector’s reserve.
template <typename T> void setAllPoints( const std::vector<T>& x, const std::vector<T>& y, const std::vector<T>& z )
Set the list of (X,Y,Z) point coordinates, all at once, from three vectors with their coordinates.
void setAllPointsFast(std::vector<mrpt::math::TPoint3Df>& pts)
Set the list of (X,Y,Z) point coordinates, DESTROYING the contents of the input vectors (via swap)
const std::vector<mrpt::math::TPoint3Df>& getArrayPoints() const
Get a const reference to the internal array of points.
void clear()
Empty the list of points.
void insertPoint(float x, float y, float z)
Adds a new point to the cloud.
const mrpt::math::TPoint3Df& operator [] (size_t i) const
Read access to each individual point (checks for “i” in the valid range only in Debug).
const mrpt::math::TPoint3Df& getPoint3Df(size_t i) const
NOTE: This method is intentionally not protected by the shared_mutex, since it’s called in the inner loops of the octree, which acquires the lock once.
void setPoint(size_t i, const float x, const float y, const float z)
Write an individual point (checks for “i” in the valid range only in Debug).
void setPoint_fast(size_t i, const float x, const float y, const float z)
Write an individual point (without checking validity of the index).
template <class POINTSMAP> void loadFromPointsMap(const POINTSMAP* themap)
Load the points from any other point map class supported by the adapter mrpt::viz::PointCloudAdapter.
template <class LISTOFPOINTS> void loadFromPointsList(LISTOFPOINTS& pointsList)
Load the points from a list of mrpt::math::TPoint3D.
void setGradientColors(const mrpt::img::TColorf& colorMin, const mrpt::img::TColorf& colorMax)
Sets the colors used as extremes when colorFromDepth is enabled.
virtual void toYAMLMap(mrpt::containers::yaml& propertiesMap) const
Used from Scene::asYAML().
(New in MRPT 2.4.2)