| Index: src/pathops/SkPathOpsTriangle.cpp
|
| diff --git a/src/pathops/SkPathOpsTriangle.cpp b/src/pathops/SkPathOpsTriangle.cpp
|
| deleted file mode 100644
|
| index 77845e067309cd3d83f772f7dc8c0368abf6cecb..0000000000000000000000000000000000000000
|
| --- a/src/pathops/SkPathOpsTriangle.cpp
|
| +++ /dev/null
|
| @@ -1,51 +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 "SkPathOpsTriangle.h"
|
| -
|
| -// http://www.blackpawn.com/texts/pointinpoly/default.html
|
| -// return true if pt is inside triangle; false if outside or on the line
|
| -bool SkDTriangle::contains(const SkDPoint& pt) const {
|
| -// Compute vectors
|
| - SkDVector v0 = fPts[2] - fPts[0];
|
| - SkDVector v1 = fPts[1] - fPts[0];
|
| - SkDVector v2 = pt - fPts[0];
|
| -
|
| -// Compute dot products
|
| - double dot00 = v0.dot(v0);
|
| - double dot01 = v0.dot(v1);
|
| - double dot02 = v0.dot(v2);
|
| - double dot11 = v1.dot(v1);
|
| - double dot12 = v1.dot(v2);
|
| -
|
| -// original code doesn't handle degenerate input; isn't symmetric with inclusion of corner pts;
|
| -// introduces error with divide; doesn't short circuit on early answer
|
| -#if 0
|
| -// Compute barycentric coordinates
|
| - double invDenom = 1 / (dot00 * dot11 - dot01 * dot01);
|
| - double u = (dot11 * dot02 - dot01 * dot12) * invDenom;
|
| - double v = (dot00 * dot12 - dot01 * dot02) * invDenom;
|
| -
|
| -// Check if point is in triangle
|
| - return (u >= 0) && (v >= 0) && (u + v <= 1);
|
| -#else
|
| - double w = dot00 * dot11 - dot01 * dot01;
|
| - if (w == 0) {
|
| - return false;
|
| - }
|
| - double wSign = w < 0 ? -1 : 1;
|
| - double u = (dot11 * dot02 - dot01 * dot12) * wSign;
|
| - if (u <= 0) {
|
| - return false;
|
| - }
|
| - double v = (dot00 * dot12 - dot01 * dot02) * wSign;
|
| - if (v <= 0) {
|
| - return false;
|
| - }
|
| - return u + v < w * wSign;
|
| -#endif
|
| -}
|
|
|