class hiro::draw::MeshRenderer

Overview

Renderer used for rendering meshes. More…

#include <MeshRenderer.h>

class MeshRenderer: public hiro::draw::GeometryRenderer {
public:
    // construction

    MeshRenderer(const cogs::Mesh& mesh);
    MeshRenderer(const hiro::draw::MeshRenderer& source);
    MeshRenderer(hiro::draw::MeshRenderer&&);
    virtual ~MeshRenderer();

    // methods

    MeshRenderer& operator=(const hiro::draw::MeshRenderer& source);
    MeshRenderer& operator=(hiro::draw::MeshRenderer&&);
    void SetCustomColors(const std::vector<cogs::Color3f>& colors);
    virtual bool IsCompatibileWithStyle(const hiro::draw::Style* style);
};

Inherited Members

public:
    // methods

    virtual bool IsCompatibileWithStyle(const hiro::draw::Style* style) = 0;
    ElementRenderer& operator=(const hiro::draw::ElementRenderer& source);
    ElementRenderer& operator=(hiro::draw::ElementRenderer&&);
    GeometryRenderer& operator=(const hiro::draw::GeometryRenderer& source);
    GeometryRenderer& operator=(hiro::draw::GeometryRenderer&&);
    void Set(hiro::draw::GeometryName geometry_name);
    void Set(glw::PArrayObject& vao);
    void SetInstancingEnabled(bool instancing_enabled);
    void SetInstancingTransforms(const std::vector<glm::mat4>& transformations);
    void SetPreInstancingTransform(const glm::mat4& transformation);
    virtual bool IsCompatibileWithStyle(const hiro::draw::Style* style);

protected:
    // methods

    virtual void LoadRequiredShaderPrograms(glw::ProgramList* programs);
    virtual void Render(const std::string& program);
    virtual void OnRenderSimple();
    virtual void Render2D(const std::string& program);
    virtual void OnRenderSimple2D();
    virtual void FillTextRenderer(hiro::draw::TextRenderer* t_renderer);

    template <typename StyleType>
    const StyleType* GetStyle() const;

    const Scene* GetScene() const;
    virtual void LoadRequiredShaderPrograms(glw::ProgramList* programs);
    virtual void Render(const std::string& program);
    virtual void OnRenderPoints();
    virtual void OnRenderFaces();
    virtual void OnRenderNormals();
    void RenderPoints(const hiro::draw::PointsStyle& style, std::function<void(void)> render_func);
    void RenderFaces(const hiro::draw::FacesStyle& style, std::function<void(void)> render_func);
    void RenderNormals(const hiro::draw::NormalsStyle& style, std::function<void(void)> render_func);
    virtual void OnRenderFaces();
    virtual void OnRenderPoints();
    virtual void OnRenderNormals();
    virtual void OnRenderSimple();
    FacesStyle::NormalSource GetValidNormalSource(const GeometryStyle& style);

Detailed Documentation

Renderer used for rendering meshes.

Construction

MeshRenderer(const cogs::Mesh& mesh)

Creates a renderer with the specified mesh.

Methods

void SetCustomColors(const std::vector<cogs::Color3f>& colors)

Set custom color for every point in the mesh. Used when color source set to ColorSource::custom.

virtual bool IsCompatibileWithStyle(const hiro::draw::Style* style)

Test whether specified style is compatible with the object.