• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2012 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 #ifndef SkPathOpsCommon_DEFINED
8 #define SkPathOpsCommon_DEFINED
9 
10 #include "include/pathops/SkPathOps.h"
11 #include "src/pathops/SkPathOpsTypes.h"
12 
13 class SkOpAngle;
14 class SkOpCoincidence;
15 class SkOpContourHead;
16 class SkOpSegment;
17 class SkOpSpan;
18 class SkOpSpanBase;
19 class SkPath;
20 struct SkRect;
21 
22 template <typename T> class SkTDArray;
23 
24 const SkOpAngle* AngleWinding(SkOpSpanBase* start, SkOpSpanBase* end, int* windingPtr,
25                               bool* sortable);
26 SkOpSegment* FindChase(SkTDArray<SkOpSpanBase*>* chase, SkOpSpanBase** startPtr,
27                        SkOpSpanBase** endPtr);
28 SkOpSpan* FindSortableTop(SkOpContourHead* );
29 SkOpSpan* FindUndone(SkOpContourHead* );
30 bool FixWinding(SkPath* path);
31 bool SortContourList(SkOpContourHead** , bool evenOdd, bool oppEvenOdd);
32 bool HandleCoincidence(SkOpContourHead* , SkOpCoincidence* );
33 bool OpDebug(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result
34              SkDEBUGPARAMS(bool skipAssert)
35              SkDEBUGPARAMS(const char* testName));
36 
37 bool ComputeTightBounds(const SkPath&, SkRect*);
38 
39 #endif
40