class mrpt::opengl::CRenderizableShaderPoints

Overview

Renderizable generic renderer for objects using the points shader.

All points may have the same point size (see setPointSize()) or a dynamic, depth-dependent size to emulate the effect of larger points when looked closely (see enableVariablePointSize()).

In the latter case, point size is computed in the shader as:

gl_PointSize = vertexPointSize + variablePointSize_k/(variablePointSize_DepthScale*gl_Position.z + 0.01);

where the paramters vertexPointSize, variablePointSize_k, and variablePointSize_DepthScale can be set in this class via setPointSize(), setVariablePointSize_k(), and setVariablePointSize_DepthScale(), respectively.

See also:

opengl::Scene

#include <mrpt/opengl/CRenderizableShaderPoints.h>

class CRenderizableShaderPoints: public mrpt::opengl::CRenderizable
{
public:
    // construction

    CRenderizableShaderPoints();

    // methods

    virtual void onUpdateBuffers_Points() = 0;
};

// direct descendants

class CAssimpModel;
class CMesh3D;
class CMeshFast;
class COctoMapVoxels;
class CPlanarLaserScan;
class CPointCloud;
class CPointCloudColoured;
class CSetOfLines;
class CVectorField2D;
class CVectorField3D;

Inherited Members

public:
    // structs

    struct OutdatedState;
    struct RenderContext;
    struct State;

    // methods

    virtual void render(const RenderContext& rc) const = 0;
    virtual void renderUpdateBuffers() const = 0;
    virtual shader_list_t requiredShaders() const;
    virtual void freeOpenGLResources() = 0;

Methods

virtual void onUpdateBuffers_Points() = 0

Must be implemented in derived classes to update the geometric entities to be drawn in “m_*_buffer” fields.