diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2009-05-22 17:48:47 -0400 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2009-05-22 17:48:47 -0400 |
commit | 9455ae5c8b98aa2b76265b4b2449127934605147 (patch) | |
tree | 4ed0070d33670d23c199a3b460673e0b4fd367c4 | |
parent | cc7f7c4d13a676d61d9e328038274879c8f6ccb7 (diff) | |
download | sigen-9455ae5c8b98aa2b76265b4b2449127934605147.tar.gz sigen-9455ae5c8b98aa2b76265b4b2449127934605147.tar.xz sigen-9455ae5c8b98aa2b76265b4b2449127934605147.zip |
Add more convenience functions
-rw-r--r-- | sigmodr/widgets/mapeditor/WorldMapPlacement.cpp | 15 |
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; |