| Index: experimental/Intersection/DataTypes.cpp
|
| diff --git a/experimental/Intersection/DataTypes.cpp b/experimental/Intersection/DataTypes.cpp
|
| deleted file mode 100644
|
| index 3425ea95769b51681bef907c93dc0071d4230d62..0000000000000000000000000000000000000000
|
| --- a/experimental/Intersection/DataTypes.cpp
|
| +++ /dev/null
|
| @@ -1,108 +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.
|
| - */
|
| -#include "DataTypes.h"
|
| -
|
| -#include <sys/types.h>
|
| -#include <stdlib.h>
|
| -
|
| -#if USE_EPSILON
|
| -const double PointEpsilon = 0.000001;
|
| -const double SquaredEpsilon = PointEpsilon * PointEpsilon;
|
| -#endif
|
| -
|
| -const int UlpsEpsilon = 16;
|
| -
|
| -_Vector operator-(const _Point& a, const _Point& b) {
|
| - _Vector v = {a.x - b.x, a.y - b.y};
|
| - return v;
|
| -}
|
| -
|
| -_Point operator+(const _Point& a, const _Vector& b) {
|
| - _Point v = {a.x + b.x, a.y + b.y};
|
| - return v;
|
| -}
|
| -
|
| -// from http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
|
| -union Float_t
|
| -{
|
| - Float_t(float num = 0.0f) : f(num) {}
|
| - // Portable extraction of components.
|
| - bool negative() const { return (i >> 31) != 0; }
|
| -#if 0 // unused
|
| - int32_t RawMantissa() const { return i & ((1 << 23) - 1); }
|
| - int32_t RawExponent() const { return (i >> 23) & 0xFF; }
|
| -#endif
|
| - int32_t i;
|
| - float f;
|
| -#ifdef SK_DEBUG
|
| - struct
|
| - { // Bitfields for exploration. Do not use in production code.
|
| - uint32_t mantissa : 23;
|
| - uint32_t exponent : 8;
|
| - uint32_t sign : 1;
|
| - } parts;
|
| -#endif
|
| -};
|
| -
|
| -bool AlmostEqualUlps(float A, float B)
|
| -{
|
| - Float_t uA(A);
|
| - Float_t uB(B);
|
| -
|
| - // Different signs means they do not match.
|
| - if (uA.negative() != uB.negative())
|
| - {
|
| - // Check for equality to make sure +0==-0
|
| - return A == B;
|
| - }
|
| -
|
| - // Find the difference in ULPs.
|
| - int ulpsDiff = abs(uA.i - uB.i);
|
| - return ulpsDiff <= UlpsEpsilon;
|
| -}
|
| -
|
| -// FIXME: obsolete, delete
|
| -#if 1
|
| -int UlpsDiff(float A, float B)
|
| -{
|
| - Float_t uA(A);
|
| - Float_t uB(B);
|
| -
|
| - return abs(uA.i - uB.i);
|
| -}
|
| -#endif
|
| -
|
| -#ifdef SK_DEBUG
|
| -void mathematica_ize(char* str, size_t bufferLen) {
|
| - size_t len = strlen(str);
|
| - bool num = false;
|
| - for (size_t idx = 0; idx < len; ++idx) {
|
| - if (num && str[idx] == 'e') {
|
| - if (len + 2 >= bufferLen) {
|
| - return;
|
| - }
|
| - memmove(&str[idx + 2], &str[idx + 1], len - idx);
|
| - str[idx] = '*';
|
| - str[idx + 1] = '^';
|
| - ++len;
|
| - }
|
| - num = str[idx] >= '0' && str[idx] <= '9';
|
| - }
|
| -}
|
| -
|
| -bool valid_wind(int wind) {
|
| - return wind > SK_MinS32 + 0xFFFF && wind < SK_MaxS32 - 0xFFFF;
|
| -}
|
| -
|
| -void winding_printf(int wind) {
|
| - if (wind == SK_MinS32) {
|
| - SkDebugf("?");
|
| - } else {
|
| - SkDebugf("%d", wind);
|
| - }
|
| -}
|
| -#endif
|
|
|