| 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 "SkTDArray.h" | 10 #include "SkTDArray.h" | 
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 243     bool addEndMovedSpans(const SkOpSpan* base, const SkOpSpanBase* testSpan); | 243     bool addEndMovedSpans(const SkOpSpan* base, const SkOpSpanBase* testSpan); | 
| 244     bool addEndMovedSpans(const SkOpPtT* ptT); | 244     bool addEndMovedSpans(const SkOpPtT* ptT); | 
| 245 | 245 | 
| 246     bool addIfMissing(const SkCoincidentSpans* outer, SkOpPtT* over1s, SkOpPtT* 
     over1e); | 246     bool addIfMissing(const SkCoincidentSpans* outer, SkOpPtT* over1s, SkOpPtT* 
     over1e); | 
| 247 | 247 | 
| 248     bool addIfMissing(const SkCoincidentSpans* outer, const SkOpPtT* over1s, | 248     bool addIfMissing(const SkCoincidentSpans* outer, const SkOpPtT* over1s, | 
| 249                       const SkOpPtT* over1e) { | 249                       const SkOpPtT* over1e) { | 
| 250         return addIfMissing(outer, const_cast<SkOpPtT*>(over1s), const_cast<SkOp
     PtT*>(over1e)); | 250         return addIfMissing(outer, const_cast<SkOpPtT*>(over1s), const_cast<SkOp
     PtT*>(over1e)); | 
| 251     } | 251     } | 
| 252 | 252 | 
| 253     bool addIfMissing(const SkOpPtT* over1s, const SkOpPtT* over1e, | 253     bool addIfMissing(const SkOpPtT* over1s, const SkOpPtT* over2s, | 
| 254                       const SkOpPtT* over2s, const SkOpPtT* over2e, | 254                       double tStart, double tEnd, SkOpSegment* coinSeg, SkOpSegm
     ent* oppSeg | 
| 255                       double tStart, double tEnd, | 255                       SkDEBUGPARAMS(const SkOpPtT* over1e) SkDEBUGPARAMS(const S
     kOpPtT* over2e)); | 
| 256                       SkOpPtT* coinPtTStart, const SkOpPtT* coinPtTEnd, |  | 
| 257                       SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd); |  | 
| 258 |  | 
| 259     bool addIfMissing(const SkOpPtT* over1s, const SkOpPtT* over1e, |  | 
| 260                       const SkOpPtT* over2s, const SkOpPtT* over2e, |  | 
| 261                       double tStart, double tEnd, |  | 
| 262                       const SkOpPtT* coinPtTStart, const SkOpPtT* coinPtTEnd, |  | 
| 263                       const SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd) { |  | 
| 264         return addIfMissing(over1s, over1e, over2s, over2e, tStart, tEnd, |  | 
| 265                 const_cast<SkOpPtT*>(coinPtTStart), coinPtTEnd, |  | 
| 266                 const_cast<SkOpPtT*>(oppPtTStart), oppPtTEnd); |  | 
| 267     } |  | 
| 268 |  | 
| 269     bool addOrOverlap(SkOpSegment* coinSeg, SkOpSegment* oppSeg, | 256     bool addOrOverlap(SkOpSegment* coinSeg, SkOpSegment* oppSeg, | 
| 270                       double coinTs, double coinTe, double oppTs, double oppTe | 257                       double coinTs, double coinTe, double oppTs, double oppTe | 
| 271                       SkDEBUGPARAMS(bool callerAborts)); | 258                       SkDEBUGPARAMS(bool callerAborts)); | 
| 272     bool addOverlap(const SkOpSegment* seg1, const SkOpSegment* seg1o, | 259     bool addOverlap(const SkOpSegment* seg1, const SkOpSegment* seg1o, | 
| 273                     const SkOpSegment* seg2, const SkOpSegment* seg2o, | 260                     const SkOpSegment* seg2, const SkOpSegment* seg2o, | 
| 274                     const SkOpPtT* overS, const SkOpPtT* overE); | 261                     const SkOpPtT* overS, const SkOpPtT* overE); | 
| 275     bool alreadyAdded(const SkCoincidentSpans* check, const SkCoincidentSpans* o
     uter, | 262     bool alreadyAdded(const SkCoincidentSpans* check, const SkCoincidentSpans* o
     uter, | 
| 276                       const SkOpPtT* over1s, const SkOpPtT* over1e) const; | 263                       const SkOpPtT* over1s, const SkOpPtT* over1e) const; | 
| 277     bool checkOverlap(SkCoincidentSpans* check, | 264     bool checkOverlap(SkCoincidentSpans* check, | 
| 278                       const SkOpSegment* coinSeg, const SkOpSegment* oppSeg, | 265                       const SkOpSegment* coinSeg, const SkOpSegment* oppSeg, | 
| 279                       double coinTs, double coinTe, double oppTs, double oppTe, | 266                       double coinTs, double coinTe, double oppTs, double oppTe, | 
| 280                       SkTDArray<SkCoincidentSpans*>* overlaps) const; | 267                       SkTDArray<SkCoincidentSpans*>* overlaps) const; | 
| 281     bool contains(const SkOpSegment* seg, const SkOpSegment* opp, double oppT) c
     onst; | 268     bool contains(const SkOpSegment* seg, const SkOpSegment* opp, double oppT) c
     onst; | 
| 282     bool contains(const SkCoincidentSpans* coin, const SkOpSegment* seg, | 269     bool contains(const SkCoincidentSpans* coin, const SkOpSegment* seg, | 
| 283                   const SkOpSegment* opp, double oppT) const; | 270                   const SkOpSegment* opp, double oppT) const; | 
| 284 #if DEBUG_COINCIDENCE_VERBOSE | 271 #if DEBUG_COINCIDENCE_VERBOSE | 
| 285     void debugAddIfMissing(const SkCoincidentSpans* outer, const SkOpPtT* over1s
     , | 272     void debugAddIfMissing(const char* id, SkPathOpsDebug::GlitchLog* , | 
| 286                            const SkOpPtT* over1e, const char* id, SkPathOpsDebug
     ::GlitchLog*) const; | 273                            const SkCoincidentSpans* outer, const SkOpPtT* over1s
     , | 
| 287     void debugAddIfMissing(const SkOpPtT* over1s, const SkOpPtT* over1e, | 274                            const SkOpPtT* over1e) const; | 
| 288                            const SkOpPtT* over2s, const SkOpPtT* over2e, | 275     void debugAddIfMissing(const char* id, SkPathOpsDebug::GlitchLog* , | 
|  | 276                            const SkOpPtT* over1s, const SkOpPtT* over2s, | 
| 289                            double tStart, double tEnd, | 277                            double tStart, double tEnd, | 
| 290                            const SkOpPtT* coinPtTStart, const SkOpPtT* coinPtTEn
     d, | 278                            const SkOpSegment* coinSeg, const SkOpSegment* oppSeg
     , | 
| 291                            const SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd, | 279                            const SkOpPtT* over1e, const SkOpPtT* over2e) const; | 
| 292                            const char* id, SkPathOpsDebug::GlitchLog*) const; |  | 
| 293 #endif | 280 #endif | 
| 294     void fixUp(SkCoincidentSpans* coin, SkOpPtT* deleted, const SkOpPtT* kept); | 281     void fixUp(SkCoincidentSpans* coin, SkOpPtT* deleted, const SkOpPtT* kept); | 
| 295     void markCollapsed(SkCoincidentSpans* head, SkOpPtT* test); | 282     void markCollapsed(SkCoincidentSpans* head, SkOpPtT* test); | 
| 296     bool overlap(const SkOpPtT* coinStart1, const SkOpPtT* coinEnd1, | 283     bool overlap(const SkOpPtT* coinStart1, const SkOpPtT* coinEnd1, | 
| 297                  const SkOpPtT* coinStart2, const SkOpPtT* coinEnd2, | 284                  const SkOpPtT* coinStart2, const SkOpPtT* coinEnd2, | 
| 298                  double* overS, double* overE) const; | 285                  double* overS, double* overE) const; | 
| 299     bool release(SkCoincidentSpans* coin, SkCoincidentSpans* ); | 286     bool release(SkCoincidentSpans* coin, SkCoincidentSpans* ); | 
| 300     void releaseDeleted(SkCoincidentSpans* ); | 287     void releaseDeleted(SkCoincidentSpans* ); | 
| 301     void restoreHead(); | 288     void restoreHead(); | 
| 302     bool testForCoincidence(const SkCoincidentSpans* outer, const SkOpPtT* testS
     , | 289     bool testForCoincidence(const SkCoincidentSpans* outer, const SkOpPtT* testS
     , | 
| 303                             const SkOpPtT* testE) const; | 290                             const SkOpPtT* testE) const; | 
| 304     static void TRange(const SkOpPtT* overS, const SkOpPtT* overE, double tStart
     , | 291     // return coinPtT->segment()->t mapped from overS->fT <= t <= overE->fT | 
| 305                        double tEnd, const SkOpPtT* coinPtTStart, const SkOpPtT* 
     coinPtTEnd, | 292     static double TRange(const SkOpPtT* overS, double t, const SkOpSegment* coin
     PtT | 
| 306                        double* coinTs, double* coinTe); | 293                          SkDEBUGPARAMS(const SkOpPtT* overE)); | 
| 307 | 294 | 
| 308     SkCoincidentSpans* fHead; | 295     SkCoincidentSpans* fHead; | 
| 309     SkCoincidentSpans* fTop; | 296     SkCoincidentSpans* fTop; | 
| 310     SkOpGlobalState* fGlobalState; | 297     SkOpGlobalState* fGlobalState; | 
| 311     bool fContinue; | 298     bool fContinue; | 
| 312     bool fSpanDeleted; | 299     bool fSpanDeleted; | 
| 313     bool fPtAllocated; | 300     bool fPtAllocated; | 
| 314     bool fCoinExtended; | 301     bool fCoinExtended; | 
| 315     bool fSpanMerged; | 302     bool fSpanMerged; | 
| 316 }; | 303 }; | 
| 317 | 304 | 
| 318 #endif | 305 #endif | 
| OLD | NEW | 
|---|