mirror of
https://github.com/devZoGok/vb01.git
synced 2026-08-26 19:43:30 +00:00
35 lines
815 B
C++
35 lines
815 B
C++
#ifndef LINE_H
|
|
#define LINE_H
|
|
|
|
#include "vector.h"
|
|
#include "mesh.h"
|
|
|
|
#include <vector>
|
|
|
|
namespace vb01{
|
|
class Shader;
|
|
|
|
class LineRenderer{
|
|
public:
|
|
struct Line{int id; Vector3 start; Vector3 end; Vector3 color; bool visible = true;};
|
|
enum VectorFieldType{START, END, COLOR};
|
|
|
|
static LineRenderer* getSingleton();
|
|
void drawLines();
|
|
void addLine(Vector3 start, Vector3 end, Vector3 color);
|
|
void changeLineField(int, Vector3, VectorFieldType);
|
|
void toggleVisibility(int i, bool v){getLine(i).visible = v;}
|
|
void removeLine(int);
|
|
Line& getLine(int);
|
|
inline std::vector<Line>& getLines(){return lines;}
|
|
private:
|
|
LineRenderer();
|
|
|
|
int nextId = 0;
|
|
Shader *shader = nullptr;
|
|
std::vector<LineRenderer::Line> lines;
|
|
};
|
|
}
|
|
|
|
#endif
|