LCOV - code coverage report
Current view: top level - gfx/skia/skia/src/pathops - SkPathOpsBounds.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 14 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 3 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright 2012 Google Inc.
       3             :  *
       4             :  * Use of this source code is governed by a BSD-style license that can be
       5             :  * found in the LICENSE file.
       6             :  */
       7             : #ifndef SkPathOpBounds_DEFINED
       8             : #define SkPathOpBounds_DEFINED
       9             : 
      10             : #include "SkPathOpsRect.h"
      11             : #include "SkRect.h"
      12             : 
      13             : // SkPathOpsBounds, unlike SkRect, does not consider a line to be empty.
      14             : struct SkPathOpsBounds : public SkRect {
      15           0 :     static bool Intersects(const SkPathOpsBounds& a, const SkPathOpsBounds& b) {
      16           0 :         return AlmostLessOrEqualUlps(a.fLeft, b.fRight)
      17           0 :                 && AlmostLessOrEqualUlps(b.fLeft, a.fRight)
      18           0 :                 && AlmostLessOrEqualUlps(a.fTop, b.fBottom)
      19           0 :                 && AlmostLessOrEqualUlps(b.fTop, a.fBottom);
      20             :     }
      21             : 
      22             :    // Note that add(), unlike SkRect::join() or SkRect::growToInclude()
      23             :    // does not treat the bounds of horizontal and vertical lines as
      24             :    // empty rectangles.
      25           0 :     void add(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom) {
      26           0 :         if (left < fLeft) fLeft = left;
      27           0 :         if (top < fTop) fTop = top;
      28           0 :         if (right > fRight) fRight = right;
      29           0 :         if (bottom > fBottom) fBottom = bottom;
      30           0 :     }
      31             : 
      32           0 :     void add(const SkPathOpsBounds& toAdd) {
      33           0 :         add(toAdd.fLeft, toAdd.fTop, toAdd.fRight, toAdd.fBottom);
      34           0 :     }
      35             : 
      36             :     void add(const SkPoint& pt) {
      37             :         if (pt.fX < fLeft) fLeft = pt.fX;
      38             :         if (pt.fY < fTop) fTop = pt.fY;
      39             :         if (pt.fX > fRight) fRight = pt.fX;
      40             :         if (pt.fY > fBottom) fBottom = pt.fY;
      41             :     }
      42             : 
      43             :     void add(const SkDPoint& pt) {
      44             :         if (pt.fX < fLeft) fLeft = SkDoubleToScalar(pt.fX);
      45             :         if (pt.fY < fTop) fTop = SkDoubleToScalar(pt.fY);
      46             :         if (pt.fX > fRight) fRight = SkDoubleToScalar(pt.fX);
      47             :         if (pt.fY > fBottom) fBottom = SkDoubleToScalar(pt.fY);
      48             :     }
      49             : 
      50             :     bool almostContains(const SkPoint& pt) const {
      51             :         return AlmostLessOrEqualUlps(fLeft, pt.fX)
      52             :                 && AlmostLessOrEqualUlps(pt.fX, fRight)
      53             :                 && AlmostLessOrEqualUlps(fTop, pt.fY)
      54             :                 && AlmostLessOrEqualUlps(pt.fY, fBottom);
      55             :     }
      56             : 
      57             :     bool contains(const SkPoint& pt) const {
      58             :         return fLeft <= pt.fX && fTop <= pt.fY &&
      59             :                fRight >= pt.fX && fBottom >= pt.fY;
      60             :     }
      61             : 
      62             :     typedef SkRect INHERITED;
      63             : };
      64             : 
      65             : #endif

Generated by: LCOV version 1.13