Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(589)

Side by Side Diff: src/pathops/SkIntersections.h

Issue 131103009: update pathops to circle sort (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: disable old test that still fails on linux 32 release Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pathops/SkIntersectionHelper.h ('k') | src/pathops/SkIntersections.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 SkIntersections_DEFINE 7 #ifndef SkIntersections_DEFINE
8 #define SkIntersections_DEFINE 8 #define SkIntersections_DEFINE
9 9
10 #include "SkPathOpsCubic.h" 10 #include "SkPathOpsCubic.h"
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 203
204 void downDepth() { 204 void downDepth() {
205 SkASSERT(--fDepth >= 0); 205 SkASSERT(--fDepth >= 0);
206 } 206 }
207 207
208 void upDepth() { 208 void upDepth() {
209 SkASSERT(++fDepth < 16); 209 SkASSERT(++fDepth < 16);
210 } 210 }
211 211
212 void append(const SkIntersections& ); 212 void append(const SkIntersections& );
213 static double Axial(const SkDQuad& , const SkDPoint& , bool vertical);
214 void cleanUpCoincidence(); 213 void cleanUpCoincidence();
215 int coincidentUsed() const; 214 int coincidentUsed() const;
216 int cubicRay(const SkPoint pts[4], const SkDLine& line); 215 int cubicRay(const SkPoint pts[4], const SkDLine& line);
217 void flip(); 216 void flip();
218 int horizontal(const SkDLine&, double y); 217 int horizontal(const SkDLine&, double y);
219 int horizontal(const SkDLine&, double left, double right, double y, bool fli pped); 218 int horizontal(const SkDLine&, double left, double right, double y, bool fli pped);
220 int horizontal(const SkDQuad&, double left, double right, double y, bool fli pped); 219 int horizontal(const SkDQuad&, double left, double right, double y, bool fli pped);
221 int horizontal(const SkDQuad&, double left, double right, double y, double t Range[2]); 220 int horizontal(const SkDQuad&, double left, double right, double y, double t Range[2]);
222 int horizontal(const SkDCubic&, double y, double tRange[3]); 221 int horizontal(const SkDCubic&, double y, double tRange[3]);
223 int horizontal(const SkDCubic&, double left, double right, double y, bool fl ipped); 222 int horizontal(const SkDCubic&, double left, double right, double y, bool fl ipped);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 return 0; 258 return 0;
260 #endif 259 #endif
261 } 260 }
262 261
263 private: 262 private:
264 bool cubicCheckCoincidence(const SkDCubic& c1, const SkDCubic& c2); 263 bool cubicCheckCoincidence(const SkDCubic& c1, const SkDCubic& c2);
265 bool cubicExactEnd(const SkDCubic& cubic1, bool start, const SkDCubic& cubic 2); 264 bool cubicExactEnd(const SkDCubic& cubic1, bool start, const SkDCubic& cubic 2);
266 void cubicNearEnd(const SkDCubic& cubic1, bool start, const SkDCubic& cubic2 , const SkDRect& ); 265 void cubicNearEnd(const SkDCubic& cubic1, bool start, const SkDCubic& cubic2 , const SkDRect& );
267 void cleanUpParallelLines(bool parallel); 266 void cleanUpParallelLines(bool parallel);
268 void computePoints(const SkDLine& line, int used); 267 void computePoints(const SkDLine& line, int used);
269 // used by addCoincident to remove ordinary intersections in range
270 // void remove(double one, double two, const SkDPoint& startPt, const SkDPoin t& endPt);
271 268
272 SkDPoint fPt[9]; // FIXME: since scans store points as SkPoint, this should also 269 SkDPoint fPt[9]; // FIXME: since scans store points as SkPoint, this should also
273 double fT[2][9]; 270 double fT[2][9];
274 uint16_t fIsCoincident[2]; // bit set for each curve's coincident T 271 uint16_t fIsCoincident[2]; // bit set for each curve's coincident T
275 unsigned char fUsed; 272 unsigned char fUsed;
276 unsigned char fMax; 273 unsigned char fMax;
277 bool fAllowNear; 274 bool fAllowNear;
278 bool fSwap; 275 bool fSwap;
279 #ifdef SK_DEBUG 276 #ifdef SK_DEBUG
280 int fDepth; 277 int fDepth;
281 #endif 278 #endif
282 }; 279 };
283 280
284 extern int (SkIntersections::*CurveRay[])(const SkPoint[], const SkDLine& ); 281 extern int (SkIntersections::*CurveRay[])(const SkPoint[], const SkDLine& );
285 extern int (SkIntersections::*CurveVertical[])(const SkPoint[], SkScalar top, Sk Scalar bottom, 282 extern int (SkIntersections::*CurveVertical[])(const SkPoint[], SkScalar top, Sk Scalar bottom,
286 SkScalar x, bool flipped); 283 SkScalar x, bool flipped);
287 284
288 #endif 285 #endif
OLDNEW
« no previous file with comments | « src/pathops/SkIntersectionHelper.h ('k') | src/pathops/SkIntersections.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698