| 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 SkOpCoincidence_DEFINED | 7 #ifndef SkOpCoincidence_DEFINED |
| 8 #define SkOpCoincidence_DEFINED | 8 #define SkOpCoincidence_DEFINED |
| 9 | 9 |
| 10 #include "SkOpTAllocator.h" | 10 #include "SkOpTAllocator.h" |
| 11 #include "SkOpSpan.h" | 11 #include "SkOpSpan.h" |
| 12 | 12 |
| 13 class SkOpPtT; | 13 class SkOpPtT; |
| 14 | 14 |
| 15 struct SkCoincidentSpans { | 15 struct SkCoincidentSpans { |
| 16 SkCoincidentSpans* fNext; | 16 SkCoincidentSpans* fNext; |
| 17 SkOpPtT* fCoinPtTStart; | 17 SkOpPtT* fCoinPtTStart; |
| 18 SkOpPtT* fCoinPtTEnd; | 18 SkOpPtT* fCoinPtTEnd; |
| 19 SkOpPtT* fOppPtTStart; | 19 SkOpPtT* fOppPtTStart; |
| 20 SkOpPtT* fOppPtTEnd; | 20 SkOpPtT* fOppPtTEnd; |
| 21 bool fFlipped; | 21 bool fFlipped; |
| 22 |
| 23 void dump() const; |
| 22 }; | 24 }; |
| 23 | 25 |
| 24 class SkOpCoincidence { | 26 class SkOpCoincidence { |
| 25 public: | 27 public: |
| 26 SkOpCoincidence() | 28 SkOpCoincidence() |
| 27 : fHead(NULL) { | 29 : fHead(NULL) { |
| 28 } | 30 } |
| 29 | 31 |
| 30 void add(SkOpPtT* coinPtTStart, SkOpPtT* coinPtTEnd, SkOpPtT* oppPtTStart, | 32 void add(SkOpPtT* coinPtTStart, SkOpPtT* coinPtTEnd, SkOpPtT* oppPtTStart, |
| 31 SkOpPtT* oppPtTEnd, bool flipped, SkChunkAlloc* allocator); | 33 SkOpPtT* oppPtTEnd, SkChunkAlloc* allocator); |
| 32 void apply(); | 34 bool addMissing(SkChunkAlloc* allocator); |
| 35 bool apply(); |
| 33 bool contains(SkOpPtT* coinPtTStart, SkOpPtT* coinPtTEnd, SkOpPtT* oppPtTSta
rt, | 36 bool contains(SkOpPtT* coinPtTStart, SkOpPtT* coinPtTEnd, SkOpPtT* oppPtTSta
rt, |
| 34 SkOpPtT* oppPtTEnd, bool flipped); | 37 SkOpPtT* oppPtTEnd, bool flipped); |
| 38 void detach(SkCoincidentSpans* ); |
| 35 void dump() const; | 39 void dump() const; |
| 40 void expand(); |
| 41 void fixUp(SkOpPtT* deleted, SkOpPtT* kept); |
| 36 void mark(); | 42 void mark(); |
| 37 | 43 |
| 44 private: |
| 45 bool addIfMissing(const SkOpPtT* over1s, const SkOpPtT* over1e, |
| 46 const SkOpPtT* over2s, const SkOpPtT* over2e, double tStar
t, double tEnd, |
| 47 SkOpPtT* coinPtTStart, const SkOpPtT* coinPtTEnd, |
| 48 SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd, |
| 49 SkChunkAlloc* allocator); |
| 50 bool overlap(const SkOpPtT* coinStart1, const SkOpPtT* coinEnd1, |
| 51 const SkOpPtT* coinStart2, const SkOpPtT* coinEnd2, |
| 52 double* overS, double* overE) const; |
| 53 |
| 38 SkCoincidentSpans* fHead; | 54 SkCoincidentSpans* fHead; |
| 39 }; | 55 }; |
| 40 | 56 |
| 41 #endif | 57 #endif |
| OLD | NEW |