#include "src/pathops/SkOpCoincidence.h"
#include "include/core/SkPoint.h"
#include "include/core/SkScalar.h"
#include "include/private/base/SkTDArray.h"
#include "src/base/SkArenaAlloc.h"
#include "src/pathops/SkIntersections.h"
#include "src/pathops/SkOpSegment.h"
#include "src/pathops/SkPathOpsCurve.h"
#include "src/pathops/SkPathOpsLine.h"
#include "src/pathops/SkPathOpsPoint.h"
#include <algorithm>
bool SkCoincidentSpans::collapsed(const SkOpPtT* test) const { … }
const SkOpPtT* SkCoincidentSpans::coinPtTEnd() const { … }
const SkOpPtT* SkCoincidentSpans::coinPtTStart() const { … }
void SkCoincidentSpans::correctOneEnd(
const SkOpPtT* (SkCoincidentSpans::* getEnd)() const,
void (SkCoincidentSpans::*setEnd)(const SkOpPtT* ptT) ) { … }
void SkCoincidentSpans::correctEnds() { … }
bool SkCoincidentSpans::expand() { … }
bool SkCoincidentSpans::extend(const SkOpPtT* coinPtTStart, const SkOpPtT* coinPtTEnd,
const SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd) { … }
void SkCoincidentSpans::set(SkCoincidentSpans* next, const SkOpPtT* coinPtTStart,
const SkOpPtT* coinPtTEnd, const SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd) { … }
bool SkCoincidentSpans::contains(const SkOpPtT* s, const SkOpPtT* e) const { … }
const SkOpPtT* SkCoincidentSpans::oppPtTStart() const { … }
const SkOpPtT* SkCoincidentSpans::oppPtTEnd() const { … }
bool SkCoincidentSpans::ordered(bool* result) const { … }
bool SkOpCoincidence::extend(const SkOpPtT* coinPtTStart, const SkOpPtT* coinPtTEnd,
const SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd) { … }
static void DebugCheckAdd(const SkCoincidentSpans* check, const SkOpPtT* coinPtTStart,
const SkOpPtT* coinPtTEnd, const SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd) { … }
void SkOpCoincidence::add(SkOpPtT* coinPtTStart, SkOpPtT* coinPtTEnd, SkOpPtT* oppPtTStart,
SkOpPtT* oppPtTEnd) { … }
bool SkOpCoincidence::addEndMovedSpans(const SkOpSpan* base, const SkOpSpanBase* testSpan) { … }
bool SkOpCoincidence::addEndMovedSpans(const SkOpPtT* ptT) { … }
bool SkOpCoincidence::addEndMovedSpans(DEBUG_COIN_DECLARE_ONLY_PARAMS()) { … }
bool SkOpCoincidence::addExpanded(DEBUG_COIN_DECLARE_ONLY_PARAMS()) { … }
double SkOpCoincidence::TRange(const SkOpPtT* overS, double t,
const SkOpSegment* coinSeg SkDEBUGPARAMS(const SkOpPtT* overE)) { … }
bool SkOpCoincidence::checkOverlap(SkCoincidentSpans* check,
const SkOpSegment* coinSeg, const SkOpSegment* oppSeg,
double coinTs, double coinTe, double oppTs, double oppTe,
SkTDArray<SkCoincidentSpans*>* overlaps) const { … }
bool SkOpCoincidence::addIfMissing(const SkOpPtT* over1s, const SkOpPtT* over2s,
double tStart, double tEnd, SkOpSegment* coinSeg, SkOpSegment* oppSeg, bool* added
SkDEBUGPARAMS(const SkOpPtT* over1e) SkDEBUGPARAMS(const SkOpPtT* over2e)) { … }
bool SkOpCoincidence::addOrOverlap(SkOpSegment* coinSeg, SkOpSegment* oppSeg,
double coinTs, double coinTe, double oppTs, double oppTe, bool* added) { … }
bool SkOpCoincidence::addMissing(bool* added DEBUG_COIN_DECLARE_PARAMS()) { … }
bool SkOpCoincidence::addOverlap(const SkOpSegment* seg1, const SkOpSegment* seg1o,
const SkOpSegment* seg2, const SkOpSegment* seg2o,
const SkOpPtT* overS, const SkOpPtT* overE) { … }
bool SkOpCoincidence::contains(const SkOpSegment* seg, const SkOpSegment* opp, double oppT) const { … }
bool SkOpCoincidence::contains(const SkCoincidentSpans* coin, const SkOpSegment* seg,
const SkOpSegment* opp, double oppT) const { … }
bool SkOpCoincidence::contains(const SkOpPtT* coinPtTStart, const SkOpPtT* coinPtTEnd,
const SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd) const { … }
void SkOpCoincidence::correctEnds(DEBUG_COIN_DECLARE_ONLY_PARAMS()) { … }
bool SkOpCoincidence::apply(DEBUG_COIN_DECLARE_ONLY_PARAMS()) { … }
bool SkOpCoincidence::release(SkCoincidentSpans* coin, SkCoincidentSpans* remove) { … }
void SkOpCoincidence::releaseDeleted(SkCoincidentSpans* coin) { … }
void SkOpCoincidence::releaseDeleted() { … }
void SkOpCoincidence::restoreHead() { … }
bool SkOpCoincidence::expand(DEBUG_COIN_DECLARE_ONLY_PARAMS()) { … }
bool SkOpCoincidence::findOverlaps(SkOpCoincidence* overlaps DEBUG_COIN_DECLARE_PARAMS()) const { … }
void SkOpCoincidence::fixUp(SkOpPtT* deleted, const SkOpPtT* kept) { … }
void SkOpCoincidence::fixUp(SkCoincidentSpans* coin, SkOpPtT* deleted, const SkOpPtT* kept) { … }
bool SkOpCoincidence::mark(DEBUG_COIN_DECLARE_ONLY_PARAMS()) { … }
void SkOpCoincidence::markCollapsed(SkCoincidentSpans* coin, SkOpPtT* test) { … }
void SkOpCoincidence::markCollapsed(SkOpPtT* test) { … }
bool SkOpCoincidence::Ordered(const SkOpSegment* coinSeg, const SkOpSegment* oppSeg) { … }
bool SkOpCoincidence::overlap(const SkOpPtT* coin1s, const SkOpPtT* coin1e,
const SkOpPtT* coin2s, const SkOpPtT* coin2e, double* overS, double* overE) const { … }
void SkOpCoincidence::release(const SkOpSegment* deleted) { … }