| Index: experimental/Intersection/Intersections.h
|
| diff --git a/experimental/Intersection/Intersections.h b/experimental/Intersection/Intersections.h
|
| deleted file mode 100644
|
| index a4135af6436178eb8e17111c19cff9a71cd63334..0000000000000000000000000000000000000000
|
| --- a/experimental/Intersection/Intersections.h
|
| +++ /dev/null
|
| @@ -1,144 +0,0 @@
|
| -/*
|
| - * Copyright 2012 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -#ifndef Intersections_DEFINE
|
| -#define Intersections_DEFINE
|
| -
|
| -class Intersections {
|
| -public:
|
| - Intersections()
|
| - : fFlip(0)
|
| -#ifdef SK_DEBUG
|
| - , fDepth(0)
|
| -#endif
|
| - , fSwap(0)
|
| - {
|
| -#ifdef SK_DEBUG
|
| - bzero(fPt, sizeof(fPt));
|
| - bzero(fT, sizeof(fT));
|
| - bzero(fIsCoincident, sizeof(fIsCoincident));
|
| -#endif
|
| - reset();
|
| - }
|
| -
|
| - int coincidentUsed() const {
|
| - if (!fIsCoincident[0]) {
|
| - SkASSERT(!fIsCoincident[0]);
|
| - return 0;
|
| - }
|
| - int count = 0;
|
| - SkDEBUGCODE(int count2 = 0;)
|
| - for (int index = 0; index < fUsed; ++index) {
|
| - if (fIsCoincident[0] & (1 << index)) {
|
| - ++count;
|
| - }
|
| - #ifdef SK_DEBUG
|
| - if (fIsCoincident[1] & (1 << index)) {
|
| - ++count2;
|
| - }
|
| - #endif
|
| - }
|
| - SkASSERT(count == count2);
|
| - return count;
|
| - }
|
| -
|
| - void offset(int base, double start, double end) {
|
| - for (int index = base; index < fUsed; ++index) {
|
| - double val = fT[fSwap][index];
|
| - val *= end - start;
|
| - val += start;
|
| - fT[fSwap][index] = val;
|
| - }
|
| - }
|
| -
|
| - // FIXME : does not respect swap
|
| - int insert(double one, double two, const _Point& pt);
|
| -
|
| - // start if index == 0 : end if index == 1
|
| - void insertCoincident(double one, double two, const _Point& pt) {
|
| - int index = insertSwap(one, two, pt);
|
| - int bit = 1 << index;
|
| - fIsCoincident[0] |= bit;
|
| - fIsCoincident[1] |= bit;
|
| - }
|
| -
|
| - void insertCoincidentPair(double s1, double e1, double s2, double e2,
|
| - const _Point& startPt, const _Point& endPt);
|
| -
|
| - int insertSwap(double one, double two, const _Point& pt) {
|
| - if (fSwap) {
|
| - return insert(two, one, pt);
|
| - } else {
|
| - return insert(one, two, pt);
|
| - }
|
| - }
|
| -
|
| - bool intersected() const {
|
| - return fUsed > 0;
|
| - }
|
| -
|
| - void removeOne(int index);
|
| -
|
| - // leaves flip, swap alone
|
| - void reset() {
|
| - fUsed = 0;
|
| - fUnsortable = false;
|
| - }
|
| -
|
| - void swap() {
|
| - fSwap ^= true;
|
| - }
|
| -
|
| - void swapPts() {
|
| - int index;
|
| - for (index = 0; index < fUsed; ++index) {
|
| - SkTSwap(fT[0][index], fT[1][index]);
|
| - }
|
| - }
|
| -
|
| - bool swapped() const {
|
| - return fSwap;
|
| - }
|
| -
|
| - bool unsortable() const {
|
| - return fUnsortable;
|
| - }
|
| -
|
| - int used() const {
|
| - return fUsed;
|
| - }
|
| -
|
| - void downDepth() {
|
| - SkASSERT(--fDepth >= 0);
|
| - }
|
| -
|
| - void upDepth() {
|
| - SkASSERT(++fDepth < 16);
|
| - }
|
| -
|
| -#ifdef SK_DEBUG
|
| - int depth() const {
|
| - return fDepth;
|
| - }
|
| -#endif
|
| -
|
| - _Point fPt[9];
|
| - double fT[2][9];
|
| - unsigned short fIsCoincident[2]; // bit arrays, one bit set for each coincident T
|
| - unsigned char fUsed;
|
| - bool fFlip;
|
| - bool fUnsortable;
|
| -#ifdef SK_DEBUG
|
| - int fDepth;
|
| -#endif
|
| -protected:
|
| - // used by addCoincident to remove ordinary intersections in range
|
| - void remove(double one, double two, const _Point& startPt, const _Point& endPt);
|
| -private:
|
| - bool fSwap;
|
| -};
|
| -
|
| -#endif
|
|
|