28 #if MRPT_HAS_OPENGL_GLUT 54 #if MRPT_HAS_OPENGL_GLUT 73 glEnableVertexAttribArray(attr_position);
75 glVertexAttribPointer(
87 glEnableVertexAttribArray(attr_color);
89 glVertexAttribPointer(
100 CHECK_OPENGL_ERROR();
102 glDisableVertexAttribArray(attr_position);
103 glDisableVertexAttribArray(attr_color);
104 CHECK_OPENGL_ERROR();
111 out.WriteAs<uint8_t>(0);
118 const auto version = in.
ReadAs<uint8_t>();
void createOnce()
Calls create() only if the buffer has not been created yet.
#define IMPLEMENTS_VIRTUAL_SERIALIZABLE(class_name, base_class, NS)
This must be inserted as implementation of some required members for virtual CSerializable classes: ...
const mrpt::opengl::Program * shader
std::vector< mrpt::math::TPoint3Df > m_vertex_buffer_data
void allocate(const void *data, int byteCount)
Reserves byteCount bytes in the buffer and copy to it the provided data.
COpenGLBuffer m_vertexBuffer
The base class of 3D objects that can be directly rendered through OpenGL.
COpenGLVertexArrayObject m_vao
void renderUpdateBuffers() const override
Called whenever m_outdatedBuffers is true: used to re-generate OpenGL vertex buffers, etc.
int attributeId(const char *name) const
Context for calls to render()
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
std::vector< mrpt::img::TColor > m_color_buffer_data
void params_deserialize(mrpt::serialization::CArchive &in)
STORED_TYPE ReadAs()
De-serialize a variable and returns it by value.
COpenGLBuffer m_colorBuffer
void params_serialize(mrpt::serialization::CArchive &out) const
Renderizable generic renderer for objects using the points shader.
float m_variablePointSize_DepthScale
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Virtual base class for "archives": classes abstracting I/O streams.
mrpt::vision::TStereoCalibResults out
The namespace for 3D scene representation and rendering.
void render(const RenderContext &rc) const override
Implements the rendering of 3D objects in each class derived from CRenderizable.
void createOnce()
Calls create() only if the buffer has not been created yet.
int uniformId(const char *name) const
float m_variablePointSize_K
virtual ~CRenderizableShaderPoints() override
virtual void onUpdateBuffers_Points()=0
Must be implemented in derived classes to update the geometric entities to be drawn in "m_*_buffer" f...
#define BUFFER_OFFSET(offset)