summaryrefslogtreecommitdiff
path: root/themes/src/shapes_2d.h
blob: 8e08504a6f35880494f8d8b31247eddb93fa06fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef SHAPES_2D
#define SHAPES_2D

#include "mathlib.h"
#include "Renderer2d.h"
#include "types.h"

class RectangularGradient
{
 public:
    RectangularGradient(Renderer2d& renderer,
                        Vector4 top,
                        Vector4 bottom,
                        f32 width,
                        f32 height,
                        Vector2 position);
    ~RectangularGradient();
    void render();

 private:
    Renderer2d& renderer;
    Vector4 top;
    Vector4 bottom;
    f32 width;
    f32 height;
    Mesh2D mesh;
};


/// Supports full and partial circles
class Circleish
{
public:
    Circleish(
        Renderer2d& renderer,
        f32 radius,
        Vector4 color,
        i32 segments,
        i32 segment_start = 0,
        i32 segment_end = 0);
    ~Circleish();
    void render();

    Renderer2d& renderer;
    Mesh2D mesh;
};

#endif