#include "src/pathops/SkReduceOrder.h"
#include "include/core/SkPoint.h"
#include "src/core/SkGeometry.h"
#include "src/pathops/SkPathOpsPoint.h"
#include "src/pathops/SkPathOpsTypes.h"
#include <algorithm>
#include <cmath>
int SkReduceOrder::reduce(const SkDLine& line) { … }
static int coincident_line(const SkDQuad& quad, SkDQuad& reduction) { … }
static int reductionLineCount(const SkDQuad& reduction) { … }
static int vertical_line(const SkDQuad& quad, SkDQuad& reduction) { … }
static int horizontal_line(const SkDQuad& quad, SkDQuad& reduction) { … }
static int check_linear(const SkDQuad& quad,
int minX, int maxX, int minY, int maxY, SkDQuad& reduction) { … }
int SkReduceOrder::reduce(const SkDQuad& quad) { … }
static int coincident_line(const SkDCubic& cubic, SkDCubic& reduction) { … }
static int reductionLineCount(const SkDCubic& reduction) { … }
static int vertical_line(const SkDCubic& cubic, SkDCubic& reduction) { … }
static int horizontal_line(const SkDCubic& cubic, SkDCubic& reduction) { … }
static int check_quadratic(const SkDCubic& cubic, SkDCubic& reduction) { … }
static int check_linear(const SkDCubic& cubic,
int minX, int maxX, int minY, int maxY, SkDCubic& reduction) { … }
int SkReduceOrder::reduce(const SkDCubic& cubic, Quadratics allowQuadratics) { … }
SkPath::Verb SkReduceOrder::Quad(const SkPoint a[3], SkPoint* reducePts) { … }
SkPath::Verb SkReduceOrder::Conic(const SkConic& c, SkPoint* reducePts) { … }
SkPath::Verb SkReduceOrder::Cubic(const SkPoint a[4], SkPoint* reducePts) { … }