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