// Copyright (c) 2008 GeometryFactory Sarl (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // You can redistribute it and/or modify it under the terms of the GNU // General Public License as published by the Free Software Foundation, // either version 3 of the License, or (at your option) any later version. // // Licensees holding a valid commercial license may use this file in // accordance with the commercial license agreement provided with the software. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // // $URL$ // $Id$ // SPDX-License-Identifier: GPL-3.0+ // // // 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