Chrysalis - Renderer
Loading...
Searching...
No Matches
PatternShapeRendererData.h
Go to the documentation of this file.
1#ifndef CHRYSALIS_PATTERNSHAPERENDERERDATA_H
2#define CHRYSALIS_PATTERNSHAPERENDERERDATA_H
3
4#include <unordered_map>
5#include <CGAL/Constrained_Delaunay_triangulation_2.h>
6
7#include "CGAL.h"
8#include "Layout.h"
9#include "BaseRendererData.h"
11#include "PatternSpace.h"
12#include "observers/PatternShapeObserver.h"
13
14namespace Chrysalis {
15 class PatternShapeRendererData: public BaseObservableRendererData<Vertex2f>, public PatternShapeObserver {
16 public:
17 explicit PatternShapeRendererData(BaseObservable<PatternShapeObserver>* observable,
18 const std::vector<BaseRendererObserver*>& observers);
20
21 void pointAdded(const Outline* outline, const Point* point) override;
22
23 [[nodiscard]] std::vector<Layout> layout() const;
24 std::vector<Vertex2f> vbo() override;
25 size_t size() override;
26 private:
27 BaseObservable<PatternShapeObserver>* observable_;
28 std::unordered_map<const Outline*, std::vector<Vertex2f>> data_;
29 std::unordered_map<const Outline*, CGAL::Constrained_Delaunay_triangulation_2<CG::LinearKernel>> triangulation_;
30 };
31}
32
33#endif //CHRYSALIS_PATTERNSHAPERENDERERDATA_H
BaseObservableRendererData(const std::vector< BaseRendererObserver * > &observers)
Definition BaseObservableRendererData.h:11
std::vector< Vertex2f > vbo() override
Definition PatternShapeRendererData.cpp:41
std::vector< Layout > layout() const
Definition PatternShapeRendererData.cpp:33
PatternShapeRendererData(BaseObservable< PatternShapeObserver > *observable, const std::vector< BaseRendererObserver * > &observers)
Definition PatternShapeRendererData.cpp:7
~PatternShapeRendererData() override
Definition PatternShapeRendererData.cpp:13
size_t size() override
Definition PatternShapeRendererData.cpp:49
void pointAdded(const Outline *outline, const Point *point) override
Definition PatternShapeRendererData.cpp:17
Definition Area.h:4