Home | History | Annotate | Download | only in pathops
      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 "SkOpAngle.h"
     11 #include "SkTDArray.h"
     12 
     13 class SkOpCoincidence;
     14 class SkOpContour;
     15 class SkPathWriter;
     16 
     17 const SkOpAngle* AngleWinding(SkOpSpanBase* start, SkOpSpanBase* end, int* windingPtr,
     18                               bool* sortable);
     19 void Assemble(const SkPathWriter& path, SkPathWriter* simple);
     20 SkOpSegment* FindChase(SkTDArray<SkOpSpanBase*>* chase, SkOpSpanBase** startPtr,
     21                        SkOpSpanBase** endPtr);
     22 SkOpSpan* FindSortableTop(SkOpContourHead* );
     23 SkOpSegment* FindUndone(SkOpContourHead* , SkOpSpanBase** startPtr,
     24                         SkOpSpanBase** endPtr);
     25 void FixWinding(SkPath* path);
     26 bool SortContourList(SkOpContourHead** , bool evenOdd, bool oppEvenOdd);
     27 bool HandleCoincidence(SkOpContourHead* , SkOpCoincidence* , SkChunkAlloc* );
     28 bool OpDebug(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result,
     29              bool expectSuccess  SkDEBUGPARAMS(const char* testName));
     30 #if DEBUG_ACTIVE_SPANS
     31 void DebugShowActiveSpans(SkOpContourHead* );
     32 #endif
     33 
     34 #endif
     35