# class hiro::draw::GraphRenderer

## Overview

Renderer used for rendering 2D graphs. More…

    #include <GraphRenderer.h>

    class GraphRenderer: public hiro::draw::Renderer {
    public:
        // construction

        GraphRenderer(const std::vector<float>& values_y);
        GraphRenderer(std::vector<glm::vec2> values);
        GraphRenderer(const hiro::draw::GraphRenderer& source);
        GraphRenderer(hiro::draw::GraphRenderer&&);
        virtual ~GraphRenderer();

        // methods

        GraphRenderer& operator=(const hiro::draw::GraphRenderer& source);
        GraphRenderer& operator=(hiro::draw::GraphRenderer&&);
        virtual bool IsCompatibileWithStyle(const hiro::draw::Style* style);

    protected:
        // methods

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

### Inherited Members

    public:
        // methods

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

    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;

## Detailed Documentation

Renderer used for rendering 2D graphs.

### Construction

    GraphRenderer(const std::vector<float>& values_y)

Creates a graph with data points of specified y values.

    GraphRenderer(std::vector<glm::vec2> values)

Creates a graph with data points of specified values. Sorted by x value before used.

### Methods

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

Test whether specified style is compatible with the object.

    virtual void Render2D(const std::string& program)

Defines 2d rendering behavior.

    virtual void FillTextRenderer(hiro::draw::TextRenderer* t_renderer)

DEfines texts to be rendered.

    virtual void LoadRequiredShaderPrograms(glw::ProgramList* programs)

Loads shader programs required by this renderer.