blob: 3666623fbe0e2b1e07c756ada98f4262163a7723 [file] [log] [blame]
caryclark@google.com07393ca2013-04-08 11:47:37 +00001/*
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 SkOpSpan_DEFINED
8#define SkOpSpan_DEFINED
9
10#include "SkPoint.h"
11
12class SkOpSegment;
13
14struct SkOpSpan {
15 SkOpSegment* fOther;
16 SkPoint fPt; // computed when the curves are intersected
17 double fT;
18 double fOtherT; // value at fOther[fOtherIndex].fT
19 int fOtherIndex; // can't be used during intersection
20 int fWindSum; // accumulated from contours surrounding this one.
21 int fOppSum; // for binary operators: the opposite winding sum
22 int fWindValue; // 0 == canceled; 1 == normal; >1 == coincident
23 int fOppValue; // normally 0 -- when binary coincident edges combine, opp value goes here
24 bool fDone; // if set, this span to next higher T has been processed
25 bool fUnsortableStart; // set when start is part of an unsortable pair
26 bool fUnsortableEnd; // set when end is part of an unsortable pair
27 bool fTiny; // if set, span may still be considered once for edge following
28 bool fLoop; // set when a cubic loops back to this point
29};
30
31#endif