diff options
| author | Samu Laaksonen <laaksonen.sj@gmail.com> | 2012-09-25 20:00:41 +0300 |
|---|---|---|
| committer | Samu Laaksonen <laaksonen.sj@gmail.com> | 2012-09-25 20:00:41 +0300 |
| commit | 685fe05def77b039221edf06c74af74915d536c5 (patch) | |
| tree | 9c1a14b8f68bc0f801bdec3edc447d04fdbf7a4c /libtiled/maprenderer.cpp | |
| parent | 29eabac0670574efd384182c065f53d08c42a483 (diff) | |
| download | prism-685fe05def77b039221edf06c74af74915d536c5.tar.gz prism-685fe05def77b039221edf06c74af74915d536c5.zip | |
Initial code commit
Added some stuff for project base
- tiled sources
- few Qt based classes for gfx
Diffstat (limited to 'libtiled/maprenderer.cpp')
| -rw-r--r-- | libtiled/maprenderer.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/libtiled/maprenderer.cpp b/libtiled/maprenderer.cpp new file mode 100644 index 0000000..719bd42 --- /dev/null +++ b/libtiled/maprenderer.cpp @@ -0,0 +1,46 @@ +/* + * maprenderer.cpp + * Copyright 2011, Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> + * + * 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 <http://www.gnu.org/licenses/>. + */ + +#include "maprenderer.h" + +#include <QVector2D> + +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; +} |
