#include "include/core/SkPath.h"
#include "include/core/SkPathBuilder.h"
#include "include/core/SkPathTypes.h"
#include "include/core/SkPoint.h"
#include "include/core/SkRect.h"
#include "include/core/SkScalar.h"
#include "include/core/SkTypes.h"
#include "include/pathops/SkPathOps.h"
#include "include/private/base/SkMacros.h"
#include "src/core/SkPathPriv.h"
#include "src/pathops/SkPathOpsConic.h"
#include "src/pathops/SkPathOpsCubic.h"
#include "src/pathops/SkPathOpsCurve.h"
#include "src/pathops/SkPathOpsPoint.h"
#include "src/pathops/SkPathOpsQuad.h"
#include "src/pathops/SkPathOpsTypes.h"
#include <algorithm>
#include <vector>
vector;
struct Contour { … };
static const int kPtCount[] = …;
static const int kPtIndex[] = …;
static Contour::Direction to_direction(SkScalar dy) { … }
static int contains_edge(SkPoint pts[4], SkPath::Verb verb, SkScalar weight, const SkPoint& edge) { … }
static SkScalar conic_weight(const SkPath::Iter& iter, SkPath::Verb verb) { … }
static SkPoint left_edge(SkPoint pts[4], SkPath::Verb verb, SkScalar weight) { … }
class OpAsWinding { … };
static bool set_result_path(SkPath* result, const SkPath& path, SkPathFillType fillType) { … }
bool AsWinding(const SkPath& path, SkPath* result) { … }