// Copyright (c) 2008 GeometryFactory Sarl (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL: https://github.com/CGAL/cgal/blob/v5.1/GraphicsView/include/CGAL/Qt/utility_impl.h $ // $Id: utility_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Andreas Fabri // Laurent Rineau #ifdef CGAL_HEADER_ONLY #define CGAL_INLINE_FUNCTION inline #include #else #define CGAL_INLINE_FUNCTION #endif #include #include #include #include #include #include namespace CGAL { namespace Qt { CGAL_INLINE_FUNCTION QRectF mapToScene(const QGraphicsView* v, const QRect rect) { QPointF top_left = v->mapToScene(rect.topLeft()); QPointF size = v->mapToScene(rect.bottomRight()); size -= top_left; return QRectF(top_left.x(), top_left.y(), size.x(), size.y()); } CGAL_INLINE_FUNCTION QRectF viewportsBbox(const QGraphicsScene* scene) { QRectF rect; Q_FOREACH(QGraphicsView* view, scene->views()) { rect |= mapToScene(view, view->viewport()->rect()); } rect = rect.normalized(); return rect; } } // namespace Qt } // namespace CGAL