1#ifndef CHRYSALIS_PATTERNSPACERENDERERDATA_H
2#define CHRYSALIS_PATTERNSPACERENDERERDATA_H
11#include "PatternSpace.h"
12#include "observers/PatternTraceObserver.h"
24 const std::vector<BaseRendererObserver*>& observers);
32 void transformed(
const Transformation& transformation)
override;
36 size_t size()
override;
37 std::vector<Vertex3f>
vbo()
override;
40 [[nodiscard]] std::vector<Layout>
linesLayout()
const;
45 static float length(
const CG::Point& pointFrom,
const CG::Point& pointTo);
46 static Arrow buildArrow(
const CG::Point& pointFrom,
const CG::Point& pointTo);
47 static CG::Point intersectionPoint(
const CG::Point& pointFrom,
const CG::Point& pointTo);
49 BaseObservable<PatternTraceObserver>* observable_;
51 std::vector<Vertex3f> points_;
52 std::vector<Vertex3f> arrows_;
53 std::vector<std::vector<Vertex3f>> lines_;
55 std::unordered_map<const Point*, int> pointIndices_;
56 std::unordered_map<const Point*, std::unordered_map<const Point*, int>> connectionsMapFrom_;
57 std::unordered_map<const Point*, std::unordered_map<const Point*, int>> connectionsMapTo_;
BaseObservableRendererData(const std::vector< BaseRendererObserver * > &observers)
Definition BaseObservableRendererData.h:11
std::vector< Vertex3f > vbo() override
Definition PatternTraceRendererData.cpp:161
std::vector< Layout > linesLayout() const
Definition PatternTraceRendererData.cpp:175
~PatternTraceRendererData() override
Definition PatternTraceRendererData.cpp:14
void curveAdded(const Curve *curve) override
Definition PatternTraceRendererData.cpp:82
std::vector< Layout > arrowsLayout() const
Definition PatternTraceRendererData.cpp:186
const Point * pointAtPosition(float x, float y) const
Definition PatternTraceRendererData.cpp:146
size_t size() override
Definition PatternTraceRendererData.cpp:153
void relativePointConnectionAdded(const Point *from, const Point *to) override
Definition PatternTraceRendererData.cpp:107
Layout pointsLayout() const
Definition PatternTraceRendererData.cpp:171
PatternTraceRendererData(BaseObservable< PatternTraceObserver > *observable, const std::vector< BaseRendererObserver * > &observers)
Definition PatternTraceRendererData.cpp:8
void relativePointConnectionRemoved(const Point *from, const Point *to) override
Definition PatternTraceRendererData.cpp:125
void transformed(const Transformation &transformation) override
Definition PatternTraceRendererData.cpp:92
void pointAdded(const Point *point) override
Definition PatternTraceRendererData.cpp:75
void pointMoved(const Point *point) override
Definition PatternTraceRendererData.cpp:47
static constexpr float POINT_RADIUS
Definition PatternTraceRendererData.h:27