OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 SkOpContour_DEFINED | 7 #ifndef SkOpContour_DEFINED |
8 #define SkOpContour_DEFINED | 8 #define SkOpContour_DEFINED |
9 | 9 |
10 #include "SkOpSegment.h" | 10 #include "SkOpSegment.h" |
(...skipping 28 matching lines...) Expand all Loading... |
39 void addCoincident(int index, SkOpContour* other, int otherIndex, | 39 void addCoincident(int index, SkOpContour* other, int otherIndex, |
40 const SkIntersections& ts, bool swap); | 40 const SkIntersections& ts, bool swap); |
41 void addCoincidentPoints(); | 41 void addCoincidentPoints(); |
42 | 42 |
43 void addCross(const SkOpContour* crosser) { | 43 void addCross(const SkOpContour* crosser) { |
44 #ifdef DEBUG_CROSS | 44 #ifdef DEBUG_CROSS |
45 for (int index = 0; index < fCrosses.count(); ++index) { | 45 for (int index = 0; index < fCrosses.count(); ++index) { |
46 SkASSERT(fCrosses[index] != crosser); | 46 SkASSERT(fCrosses[index] != crosser); |
47 } | 47 } |
48 #endif | 48 #endif |
49 *fCrosses.append() = crosser; | 49 fCrosses.push_back(crosser); |
50 } | 50 } |
51 | 51 |
52 void addCubic(const SkPoint pts[4]) { | 52 void addCubic(const SkPoint pts[4]) { |
53 fSegments.push_back().addCubic(pts, fOperand, fXor); | 53 fSegments.push_back().addCubic(pts, fOperand, fXor); |
54 fContainsCurves = fContainsCubics = true; | 54 fContainsCurves = fContainsCubics = true; |
55 } | 55 } |
56 | 56 |
57 int addLine(const SkPoint pts[2]) { | 57 int addLine(const SkPoint pts[2]) { |
58 fSegments.push_back().addLine(pts, fOperand, fXor); | 58 fSegments.push_back().addLine(pts, fOperand, fXor); |
59 return fSegments.count(); | 59 return fSegments.count(); |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 #if DEBUG_ACTIVE_SPANS || DEBUG_ACTIVE_SPANS_FIRST_ONLY | 207 #if DEBUG_ACTIVE_SPANS || DEBUG_ACTIVE_SPANS_FIRST_ONLY |
208 void debugShowActiveSpans() { | 208 void debugShowActiveSpans() { |
209 for (int index = 0; index < fSegments.count(); ++index) { | 209 for (int index = 0; index < fSegments.count(); ++index) { |
210 fSegments[index].debugShowActiveSpans(); | 210 fSegments[index].debugShowActiveSpans(); |
211 } | 211 } |
212 } | 212 } |
213 #endif | 213 #endif |
214 | 214 |
215 #if DEBUG_SHOW_WINDING | 215 #if DEBUG_SHOW_WINDING |
216 int debugShowWindingValues(int totalSegments, int ofInterest); | 216 int debugShowWindingValues(int totalSegments, int ofInterest); |
217 static void debugShowWindingValues(const SkTDArray<SkOpContour*>& contourLis
t); | 217 static void debugShowWindingValues(const SkTArray<SkOpContour*, true>& conto
urList); |
218 #endif | 218 #endif |
219 | 219 |
220 private: | 220 private: |
221 void setBounds(); | 221 void setBounds(); |
222 | 222 |
223 SkTArray<SkOpSegment> fSegments; | 223 SkTArray<SkOpSegment> fSegments; |
224 SkTDArray<SkOpSegment*> fSortedSegments; | 224 SkTArray<SkOpSegment*, true> fSortedSegments; |
225 int fFirstSorted; | 225 int fFirstSorted; |
226 SkTDArray<SkCoincidence> fCoincidences; | 226 SkTArray<SkCoincidence, true> fCoincidences; |
227 SkTDArray<const SkOpContour*> fCrosses; | 227 SkTArray<const SkOpContour*, true> fCrosses; |
228 SkPathOpsBounds fBounds; | 228 SkPathOpsBounds fBounds; |
229 bool fContainsIntercepts; // FIXME: is this used by anybody? | 229 bool fContainsIntercepts; // FIXME: is this used by anybody? |
230 bool fContainsCubics; | 230 bool fContainsCubics; |
231 bool fContainsCurves; | 231 bool fContainsCurves; |
232 bool fDone; | 232 bool fDone; |
233 bool fOperand; // true for the second argument to a binary operator | 233 bool fOperand; // true for the second argument to a binary operator |
234 bool fXor; | 234 bool fXor; |
235 bool fOppXor; | 235 bool fOppXor; |
236 #if DEBUG_DUMP | 236 #if DEBUG_DUMP |
237 int fID; | 237 int fID; |
238 #endif | 238 #endif |
239 }; | 239 }; |
240 | 240 |
241 #endif | 241 #endif |
OLD | NEW |