OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 #ifndef SkOpAngle_DEFINED | 7 #ifndef SkOpAngle_DEFINED |
8 #define SkOpAngle_DEFINED | 8 #define SkOpAngle_DEFINED |
9 | 9 |
10 #include "SkLineParameters.h" | 10 #include "SkLineParameters.h" |
| 11 #include "SkPathOpsCurve.h" |
11 #if DEBUG_ANGLE | 12 #if DEBUG_ANGLE |
12 #include "SkString.h" | 13 #include "SkString.h" |
13 #endif | 14 #endif |
14 | 15 |
15 class SkOpContour; | 16 class SkOpContour; |
16 class SkOpPtT; | 17 class SkOpPtT; |
17 class SkOpSegment; | 18 class SkOpSegment; |
18 class SkOpSpanBase; | 19 class SkOpSpanBase; |
19 class SkOpSpan; | 20 class SkOpSpan; |
20 | 21 |
(...skipping 10 matching lines...) Expand all Loading... |
31 bool checkCrossesZero() const; | 32 bool checkCrossesZero() const; |
32 void checkNearCoincidence(); | 33 void checkNearCoincidence(); |
33 bool checkParallel(SkOpAngle* ); | 34 bool checkParallel(SkOpAngle* ); |
34 bool computeSector(); | 35 bool computeSector(); |
35 int convexHullOverlaps(const SkOpAngle* ) const; | 36 int convexHullOverlaps(const SkOpAngle* ) const; |
36 | 37 |
37 const SkOpAngle* debugAngle(int id) const; | 38 const SkOpAngle* debugAngle(int id) const; |
38 SkOpContour* debugContour(int id); | 39 SkOpContour* debugContour(int id); |
39 | 40 |
40 int debugID() const { | 41 int debugID() const { |
41 return PATH_OPS_DEBUG_RELEASE(fID, -1); | 42 return SkDEBUGRELEASE(fID, -1); |
42 } | 43 } |
43 | 44 |
44 #if DEBUG_SORT | 45 #if DEBUG_SORT |
45 void debugLoop() const; | 46 void debugLoop() const; |
46 #endif | 47 #endif |
47 | 48 |
48 #if DEBUG_ANGLE | 49 #if DEBUG_ANGLE |
49 SkString debugPart() const; | 50 SkString debugPart() const; |
50 #endif | 51 #endif |
51 const SkOpPtT* debugPtT(int id) const; | 52 const SkOpPtT* debugPtT(int id) const; |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 int sectorStart() const { | 96 int sectorStart() const { |
96 return fSectorStart; | 97 return fSectorStart; |
97 } | 98 } |
98 | 99 |
99 SkOpSegment* segment() const; | 100 SkOpSegment* segment() const; |
100 | 101 |
101 void set(SkOpSpanBase* start, SkOpSpanBase* end); | 102 void set(SkOpSpanBase* start, SkOpSpanBase* end); |
102 void setCurveHullSweep(); | 103 void setCurveHullSweep(); |
103 | 104 |
104 void setID(int id) { | 105 void setID(int id) { |
105 PATH_OPS_DEBUG_CODE(fID = id); | 106 SkDEBUGCODE(fID = id); |
106 } | 107 } |
107 | 108 |
108 void setLastMarked(SkOpSpanBase* marked) { | 109 void setLastMarked(SkOpSpanBase* marked) { |
109 fLastMarked = marked; | 110 fLastMarked = marked; |
110 } | 111 } |
111 | 112 |
112 void setSector(); | 113 void setSector(); |
113 void setSpans(); | 114 void setSpans(); |
114 int sign() const; | 115 int sign() const; |
115 | 116 |
116 SkOpSpanBase* start() const { | 117 SkOpSpanBase* start() const { |
117 return fStart; | 118 return fStart; |
118 } | 119 } |
119 | 120 |
120 SkOpSpan* starter(); | 121 SkOpSpan* starter(); |
121 bool tangentsDiverge(const SkOpAngle* rh, double s0xt0) const; | 122 bool tangentsDiverge(const SkOpAngle* rh, double s0xt0) const; |
122 | 123 |
123 bool unorderable() const { | 124 bool unorderable() const { |
124 return fUnorderable; | 125 return fUnorderable; |
125 } | 126 } |
126 | 127 |
127 SkDCubic fCurvePart; // the curve from start to end | 128 SkDCurve fCurvePart; // the curve from start to end |
128 double fSide; | 129 double fSide; |
129 SkLineParameters fTangentHalf; // used only to sort a pair of lines or line
-like sections | 130 SkLineParameters fTangentHalf; // used only to sort a pair of lines or line
-like sections |
130 SkOpAngle* fNext; | 131 SkOpAngle* fNext; |
131 SkOpSpanBase* fLastMarked; | 132 SkOpSpanBase* fLastMarked; |
132 SkDVector fSweep[2]; | 133 SkDVector fSweep[2]; |
133 SkOpSpanBase* fStart; | 134 SkOpSpanBase* fStart; |
134 SkOpSpanBase* fEnd; | 135 SkOpSpanBase* fEnd; |
135 SkOpSpanBase* fComputedEnd; | 136 SkOpSpanBase* fComputedEnd; |
136 int fSectorMask; | 137 int fSectorMask; |
137 int8_t fSectorStart; // in 32nds of a circle | 138 int8_t fSectorStart; // in 32nds of a circle |
138 int8_t fSectorEnd; | 139 int8_t fSectorEnd; |
139 bool fIsCurve; | 140 bool fIsCurve; |
140 bool fStop; // set if ordered angle is greater than the previous | 141 bool fStop; // set if ordered angle is greater than the previous |
141 bool fUnorderable; | 142 bool fUnorderable; |
142 bool fUnorderedSweep; // set when a cubic's first control point between the
sweep vectors | 143 bool fUnorderedSweep; // set when a cubic's first control point between the
sweep vectors |
143 bool fComputeSector; | 144 bool fComputeSector; |
144 bool fComputedSector; | 145 bool fComputedSector; |
145 bool fCheckCoincidence; | 146 bool fCheckCoincidence; |
146 PATH_OPS_DEBUG_CODE(int fID); | 147 SkDEBUGCODE(int fID); |
147 | 148 |
148 }; | 149 }; |
149 | 150 |
150 | 151 |
151 | 152 |
152 #endif | 153 #endif |
OLD | NEW |