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