/* * maprenderer.cpp * Copyright 2011, Thorbjørn Lindeijer * * This file is part of Tiled. * * This program is free software; 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 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ #include "maprenderer.h" #include using namespace Tiled; /** * Converts a line running from \a start to \a end to a polygon which * extends 5 pixels from the line in all directions. */ QPolygonF MapRenderer::lineToPolygon(const QPointF &start, const QPointF &end) { QPointF direction = QVector2D(end - start).normalized().toPointF(); QPointF perpendicular(-direction.y(), direction.x()); const qreal thickness = 5.0f; // 5 pixels on each side direction *= thickness; perpendicular *= thickness; QPolygonF polygon(4); polygon[0] = start + perpendicular - direction; polygon[1] = start - perpendicular - direction; polygon[2] = end - perpendicular + direction; polygon[3] = end + perpendicular + direction; return polygon; }