gfx/skia/trunk/src/pathops/SkOpSpan.h

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:28542ff55c49
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 SkOpSpan_DEFINED
8 #define SkOpSpan_DEFINED
9
10 #include "SkPoint.h"
11
12 class SkOpSegment;
13
14 struct 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 fSmall; // if set, consecutive points are almost equal
28 bool fTiny; // if set, span may still be considered once for edge following
29 bool fLoop; // set when a cubic loops back to this point
30
31 #ifdef SK_DEBUG
32 void dump() const;
33 #endif
34 };
35
36 #endif

mercurial