summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-05-22 17:48:47 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-05-22 17:48:47 -0400
commit9455ae5c8b98aa2b76265b4b2449127934605147 (patch)
tree4ed0070d33670d23c199a3b460673e0b4fd367c4
parentcc7f7c4d13a676d61d9e328038274879c8f6ccb7 (diff)
downloadsigen-9455ae5c8b98aa2b76265b4b2449127934605147.tar.gz
sigen-9455ae5c8b98aa2b76265b4b2449127934605147.tar.xz
sigen-9455ae5c8b98aa2b76265b4b2449127934605147.zip
Add more convenience functions
-rw-r--r--sigmodr/widgets/mapeditor/WorldMapPlacement.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/sigmodr/widgets/mapeditor/WorldMapPlacement.cpp b/sigmodr/widgets/mapeditor/WorldMapPlacement.cpp
index 6f603f7d..e8a502fa 100644
--- a/sigmodr/widgets/mapeditor/WorldMapPlacement.cpp
+++ b/sigmodr/widgets/mapeditor/WorldMapPlacement.cpp
@@ -107,11 +107,26 @@ static Corner convexTurnDirection(const QPoint& previous, const QPoint& current,
return Invalid;
}
+template<typename T> static bool same(const T& a, const T& b, const T& c)
+{
+ return ((a == b) && (b == c));
+}
+
+static bool collinear(const QPoint& a, const QPoint& b, const QPoint& c)
+{
+ return (same(a.x(), b.x(), c.x()) || same(a.y(), b.y(), c.y()));
+}
+
template<typename T> static bool between(const T& middle, const T& end1, const T& end2)
{
return (qMin(end1, end2) < middle) && (middle < qMax(end1, end2));
}
+static bool inOrder(const QPoint& end1, const QPoint& center, const QPoint& end2)
+{
+ return (collinear(center, end1, end2) && (between(center.y(), end1.y(), end2.y()) || between(center.x(), end1.x(), end2.x())));
+}
+
static CollisionInfo findCollisions(const QPolygon& polygon1, const QPolygon& polygon2)
{
CollisionInfo data;