#include "edge-segments.h" #include "arithmetics.hpp" #include "equation-solver.h" namespace msdfgen { void EdgeSegment::distanceToPseudoDistance(SignedDistance &distance, Point2 origin, double param) const { … } LinearSegment::LinearSegment(Point2 p0, Point2 p1, EdgeColor edgeColor) : … { … } QuadraticSegment::QuadraticSegment(Point2 p0, Point2 p1, Point2 p2, EdgeColor edgeColor) : … { … } CubicSegment::CubicSegment(Point2 p0, Point2 p1, Point2 p2, Point2 p3, EdgeColor edgeColor) : … { … } LinearSegment *LinearSegment::clone() const { … } QuadraticSegment *QuadraticSegment::clone() const { … } CubicSegment *CubicSegment::clone() const { … } int LinearSegment::type() const { … } int QuadraticSegment::type() const { … } int CubicSegment::type() const { … } const Point2 *LinearSegment::controlPoints() const { … } const Point2 *QuadraticSegment::controlPoints() const { … } const Point2 *CubicSegment::controlPoints() const { … } Point2 LinearSegment::point(double param) const { … } Point2 QuadraticSegment::point(double param) const { … } Point2 CubicSegment::point(double param) const { … } Vector2 LinearSegment::direction(double param) const { … } Vector2 QuadraticSegment::direction(double param) const { … } Vector2 CubicSegment::direction(double param) const { … } Vector2 LinearSegment::directionChange(double param) const { … } Vector2 QuadraticSegment::directionChange(double param) const { … } Vector2 CubicSegment::directionChange(double param) const { … } double LinearSegment::length() const { … } double QuadraticSegment::length() const { … } SignedDistance LinearSegment::signedDistance(Point2 origin, double ¶m) const { … } SignedDistance QuadraticSegment::signedDistance(Point2 origin, double ¶m) const { … } SignedDistance CubicSegment::signedDistance(Point2 origin, double ¶m) const { … } int LinearSegment::scanlineIntersections(double x[3], int dy[3], double y) const { … } int QuadraticSegment::scanlineIntersections(double x[3], int dy[3], double y) const { … } int CubicSegment::scanlineIntersections(double x[3], int dy[3], double y) const { … } static void pointBounds(Point2 p, double &l, double &b, double &r, double &t) { … } void LinearSegment::bound(double &l, double &b, double &r, double &t) const { … } void QuadraticSegment::bound(double &l, double &b, double &r, double &t) const { … } void CubicSegment::bound(double &l, double &b, double &r, double &t) const { … } void LinearSegment::reverse() { … } void QuadraticSegment::reverse() { … } void CubicSegment::reverse() { … } void LinearSegment::moveStartPoint(Point2 to) { … } void QuadraticSegment::moveStartPoint(Point2 to) { … } void CubicSegment::moveStartPoint(Point2 to) { … } void LinearSegment::moveEndPoint(Point2 to) { … } void QuadraticSegment::moveEndPoint(Point2 to) { … } void CubicSegment::moveEndPoint(Point2 to) { … } void LinearSegment::splitInThirds(EdgeSegment *&part1, EdgeSegment *&part2, EdgeSegment *&part3) const { … } void QuadraticSegment::splitInThirds(EdgeSegment *&part1, EdgeSegment *&part2, EdgeSegment *&part3) const { … } void CubicSegment::splitInThirds(EdgeSegment *&part1, EdgeSegment *&part2, EdgeSegment *&part3) const { … } EdgeSegment *QuadraticSegment::convertToCubic() const { … } void CubicSegment::deconverge(int param, double amount) { … } }