32 typedef std::function<QVector3D(QVector2D)> uvForPointCallback;
33 typedef std::function<
void(
const std::array<QVector2D, 3> &,
34 const std::array<QVector2D, 3> &,
35 uvForPointCallback)> addTriangleCallback;
36 typedef std::function<
void(
const std::array<QVector2D, 3> &,
37 const std::array<QVector2D, 3> &,
38 const std::array<QVector2D, 3> &,
39 const std::array<
float, 3> &,
40 QSGCurveStrokeNode::TriangleFlags)> addStrokeTriangleCallback;
42 static void processFill(
const QQuadPath &path,
43 Qt::FillRule fillRule,
44 addTriangleCallback addTriangle);
45 static void processStroke(
const QQuadPath &strokePath,
49 Qt::PenJoinStyle joinStyle,
50 Qt::PenCapStyle capStyle,
51 addStrokeTriangleCallback addTriangle,
52 int subdivisions = 3);
53 static bool solveOverlaps(QQuadPath &path);
54 static QList<std::pair<
int,
int>> findOverlappingCandidates(
const QQuadPath &path);
55 static bool removeNestedSubpaths(QQuadPath &path);
56 static bool solveIntersections(QQuadPath &path,
bool removeNestedPaths =
true);