Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/msdfgen/core/contour-combiners.h
9903 views
1
2
#pragma once
3
4
#include "Shape.h"
5
#include "edge-selectors.h"
6
7
namespace msdfgen {
8
9
/// Simply selects the nearest contour.
10
template <class EdgeSelector>
11
class SimpleContourCombiner {
12
13
public:
14
typedef EdgeSelector EdgeSelectorType;
15
typedef typename EdgeSelector::DistanceType DistanceType;
16
17
explicit SimpleContourCombiner(const Shape &shape);
18
void reset(const Point2 &p);
19
EdgeSelector &edgeSelector(int i);
20
DistanceType distance() const;
21
22
private:
23
EdgeSelector shapeEdgeSelector;
24
25
};
26
27
/// Selects the nearest contour that actually forms a border between filled and unfilled area.
28
template <class EdgeSelector>
29
class OverlappingContourCombiner {
30
31
public:
32
typedef EdgeSelector EdgeSelectorType;
33
typedef typename EdgeSelector::DistanceType DistanceType;
34
35
explicit OverlappingContourCombiner(const Shape &shape);
36
void reset(const Point2 &p);
37
EdgeSelector &edgeSelector(int i);
38
DistanceType distance() const;
39
40
private:
41
Point2 p;
42
std::vector<int> windings;
43
std::vector<EdgeSelector> edgeSelectors;
44
45
};
46
47
}
48
49