bool FloatRect::contains(const FloatPoint& point, ContainsMode containsMode) const { if (containsMode == InsideOrOnStroke) return contains(point.x(), point.y()); return x() < point.x() && maxX() > point.x() && y() < point.y() && maxY() > point.y(); }
bool VertexPair::overlapsRect(const FloatRect& rect) const { bool boundsOverlap = (minX() < rect.maxX()) && (maxX() > rect.x()) && (minY() < rect.maxY()) && (maxY() > rect.y()); if (!boundsOverlap) return false; float leftSideValues[4] = { leftSide(vertex1(), vertex2(), rect.minXMinYCorner()), leftSide(vertex1(), vertex2(), rect.maxXMinYCorner()), leftSide(vertex1(), vertex2(), rect.minXMaxYCorner()), leftSide(vertex1(), vertex2(), rect.maxXMaxYCorner()) }; int currentLeftSideSign = 0; for (unsigned i = 0; i < 4; ++i) { if (!leftSideValues[i]) continue; int leftSideSign = leftSideValues[i] > 0 ? 1 : -1; if (!currentLeftSideSign) currentLeftSideSign = leftSideSign; else if (currentLeftSideSign != leftSideSign) return true; } return false; }
bool FloatRect::isExpressibleAsIntRect() const { return isWithinIntRange(x()) && isWithinIntRange(y()) && isWithinIntRange(width()) && isWithinIntRange(height()) && isWithinIntRange(maxX()) && isWithinIntRange(maxY()); }
bool FloatRect::contains(const FloatRect& other) const { return x() <= other.x() && maxX() >= other.maxX() && y() <= other.y() && maxY() >= other.maxY(); }
IntSize IntRect::differenceToPoint(const IntPoint& point) const { int xdistance = distanceToInterval(point.x(), x(), maxX()); int ydistance = distanceToInterval(point.y(), y(), maxY()); return IntSize(xdistance, ydistance); }
IntRect::operator SkRect() const { SkRect rect; rect.set(SkIntToScalar(x()), SkIntToScalar(y()), SkIntToScalar(maxX()), SkIntToScalar(maxY())); return rect; }
IntRect::operator SkIRect() const { SkIRect rect = { x(), y(), maxX(), maxY() }; return rect; }
void SingleCellViewGraphPanelPlotWidget::mouseMoveEvent(QMouseEvent *pEvent) { // Default handling of the event QwtPlot::mouseMoveEvent(pEvent); // Carry out the action switch (mAction) { case Pan: { // Determine the X/Y shifts for our panning QPointF origPoint = canvasPoint(mPoint); QPointF crtPoint = canvasPoint(pEvent->pos()); double shiftX = crtPoint.x()-origPoint.x(); double shiftY = crtPoint.y()-origPoint.y(); mPoint = pEvent->pos(); // Set our axes' new values setAxes(minX()-shiftX, maxX()-shiftX, minY()-shiftY, maxY()-shiftY); break; } case ShowCoordinates: // Update the point of our overlay widget mOverlayWidget->setPoint(pEvent->pos()); break; case Zoom: { // Determine our X/Y delta values QPointF origPoint = canvasPoint(mPoint); QPointF crtPoint = canvasPoint(pEvent->pos()); double deltaX = crtPoint.x()-origPoint.x(); double deltaY = crtPoint.y()-origPoint.y(); mPoint = pEvent->pos(); // Rescale ourselves // Note: this will automatically replot ourselves... scaleAxes(mOriginPoint, deltaX? (deltaX > 0)? ScalingInFactor: ScalingOutFactor: NoScalingFactor, deltaY? (deltaY < 0)? ScalingInFactor: ScalingOutFactor: NoScalingFactor); break; } case ZoomRegion: // Update our zoom region by updating the point of our overlay widget mOverlayWidget->setPoint(pEvent->pos()); break; default: // None ; } // The mouse has moved, so we definitely won't need to show our context menu mNeedContextMenu = false; }
bool IntRect::intersects(const IntRect& other) const { // Checking emptiness handles negative widths as well as zero. return !isEmpty() && !other.isEmpty() && x() < other.maxX() && other.x() < maxX() && y() < other.maxY() && other.y() < maxY(); }