#pragma once #include #include class DrawingContext; class OpenGlShaderProgram; class TriMesh; class OpenGlMeshPainter { public: OpenGlMeshPainter(); void paint(TriMesh* mesh, DrawingContext* context); private: void initializeShader(); void initializeBuffers(); void paint(const std::vector& verts, const std::vector& elements, const std::vector& color); unsigned mVertexBuffer{0}; unsigned mElementBuffer{0}; unsigned mVertexArray{0}; std::unique_ptr mShaderProgram; };