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 "SkOpContour.h"
12#include "SkTDArray.h"
13
14class SkPathWriter;
15
16void Assemble(const SkPathWriter& path, SkPathWriter* simple);
17// FIXME: find chase uses insert, so it can't be converted to SkTArray yet
18SkOpSegment* FindChase(SkTDArray<SkOpSpan*>* chase, int* tIndex, int* endIndex);
19SkOpSegment* FindSortableTop(const SkTArray<SkOpContour*, true>& , SkOpAngle::IncludeType ,
20                             bool* firstContour, int* index, int* endIndex, SkPoint* topLeft,
21                             bool* unsortable, bool* done, bool* onlyVertical, bool firstPass);
22SkOpSegment* FindUndone(SkTArray<SkOpContour*, true>& contourList, int* start, int* end);
23void MakeContourList(SkTArray<SkOpContour>& contours, SkTArray<SkOpContour*, true>& list,
24                     bool evenOdd, bool oppEvenOdd);
25bool HandleCoincidence(SkTArray<SkOpContour*, true>* , int );
26
27#if DEBUG_ACTIVE_SPANS || DEBUG_ACTIVE_SPANS_FIRST_ONLY
28void DebugShowActiveSpans(SkTArray<SkOpContour*, true>& contourList);
29#endif
30
31#endif
32