blob: 287bfd12d4f87a197adb61f4da61140c3cddcbfd [file] [log] [blame]
/*
* Copyright 2013 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkOpCoincidence_DEFINED
#define SkOpCoincidence_DEFINED
#include "SkOpTAllocator.h"
#include "SkOpSpan.h"
class SkOpPtT;
struct SkCoincidentSpans {
SkCoincidentSpans* fNext;
SkOpPtT* fCoinPtTStart;
SkOpPtT* fCoinPtTEnd;
SkOpPtT* fOppPtTStart;
SkOpPtT* fOppPtTEnd;
bool fFlipped;
};
class SkOpCoincidence {
public:
SkOpCoincidence()
: fHead(NULL) {
}
void add(SkOpPtT* coinPtTStart, SkOpPtT* coinPtTEnd, SkOpPtT* oppPtTStart,
SkOpPtT* oppPtTEnd, bool flipped, SkChunkAlloc* allocator);
void apply();
bool contains(SkOpPtT* coinPtTStart, SkOpPtT* coinPtTEnd, SkOpPtT* oppPtTStart,
SkOpPtT* oppPtTEnd, bool flipped);
void dump() const;
void mark();
SkCoincidentSpans* fHead;
};
#endif