diff options
Diffstat (limited to 'thirdparty/msdfgen/core/edge-segments.cpp')
-rw-r--r-- | thirdparty/msdfgen/core/edge-segments.cpp | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/thirdparty/msdfgen/core/edge-segments.cpp b/thirdparty/msdfgen/core/edge-segments.cpp index 5274a9a5a1..4fef89b95b 100644 --- a/thirdparty/msdfgen/core/edge-segments.cpp +++ b/thirdparty/msdfgen/core/edge-segments.cpp @@ -56,18 +56,42 @@ CubicSegment::CubicSegment(Point2 p0, Point2 p1, Point2 p2, Point2 p3, EdgeColor p[3] = p3; } -LinearSegment * LinearSegment::clone() const { +LinearSegment *LinearSegment::clone() const { return new LinearSegment(p[0], p[1], color); } -QuadraticSegment * QuadraticSegment::clone() const { +QuadraticSegment *QuadraticSegment::clone() const { return new QuadraticSegment(p[0], p[1], p[2], color); } -CubicSegment * CubicSegment::clone() const { +CubicSegment *CubicSegment::clone() const { return new CubicSegment(p[0], p[1], p[2], p[3], color); } +int LinearSegment::type() const { + return (int) EDGE_TYPE; +} + +int QuadraticSegment::type() const { + return (int) EDGE_TYPE; +} + +int CubicSegment::type() const { + return (int) EDGE_TYPE; +} + +const Point2 *LinearSegment::controlPoints() const { + return p; +} + +const Point2 *QuadraticSegment::controlPoints() const { + return p; +} + +const Point2 *CubicSegment::controlPoints() const { + return p; +} + Point2 LinearSegment::point(double param) const { return mix(p[0], p[1], param); } @@ -483,7 +507,7 @@ void CubicSegment::splitInThirds(EdgeSegment *&part1, EdgeSegment *&part2, EdgeS part3 = new CubicSegment(point(2/3.), mix(mix(p[1], p[2], 2/3.), mix(p[2], p[3], 2/3.), 2/3.), p[2] == p[3] ? p[3] : mix(p[2], p[3], 2/3.), p[3], color); } -EdgeSegment * QuadraticSegment::convertToCubic() const { +EdgeSegment *QuadraticSegment::convertToCubic() const { return new CubicSegment(p[0], mix(p[0], p[1], 2/3.), mix(p[1], p[2], 1/3.), p[2], color); } |