summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/engine/map/ui_ortho.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-04-28 17:54:30 -0400
committerJules Laplace <jules@okfoc.us>2015-04-28 19:05:13 -0400
commitaaa81d4b52659f991e38994f8fff56ba43baa419 (patch)
treee2b70802cc85ca1b11b09cba29383989c6333686 /public/assets/javascripts/rectangles/engine/map/ui_ortho.js
parent53695472cfb20b730d04b2d6a6a16c6d281e9180 (diff)
abstract out map tools
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/map/ui_ortho.js')
-rw-r--r--public/assets/javascripts/rectangles/engine/map/ui_ortho.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/public/assets/javascripts/rectangles/engine/map/ui_ortho.js b/public/assets/javascripts/rectangles/engine/map/ui_ortho.js
index e69de29..0c501ad 100644
--- a/public/assets/javascripts/rectangles/engine/map/ui_ortho.js
+++ b/public/assets/javascripts/rectangles/engine/map/ui_ortho.js
@@ -0,0 +1,49 @@
+Map.UI = Map.UI || {}
+Map.UI.Ortho = function(map){
+
+ var base = this
+
+ base.creating = base.dragging = base.resizing = false
+
+ base.mouse = new mouse({
+ el: map.el,
+ down: function(e, cursor){
+ cursor.x.div(map.dimensions.a).add(0.5).mul(map.dimensions.a / map.zoom).add(map.center.a)
+ cursor.y.div(map.dimensions.b).sub(0.5).mul(map.dimensions.b / map.zoom).sub(map.center.b)
+ base.tools[currentTool].down(e, cursor)
+ },
+ move: function(e, cursor){
+ cursor.x.div(map.dimensions.a).add(0.5).mul(map.dimensions.a / map.zoom).add(map.center.a)
+ cursor.y.div(map.dimensions.b).sub(0.5).mul(map.dimensions.b / map.zoom).sub(map.center.b)
+ base.tools[currentTool].move(e, cursor)
+ },
+ drag: function(e, cursor){
+ cursor.x.b = ((cursor.x.b/map.dimensions.a)+0.5) * map.dimensions.a / map.zoom + map.center.a
+ cursor.y.b = ((cursor.y.b/map.dimensions.b)-0.5) * map.dimensions.b / map.zoom - map.center.b
+ base.tools[currentTool].drag(e, cursor)
+ },
+ up: function(e, cursor, new_cursor){
+ new_cursor.x.div(map.dimensions.a).add(0.5).mul(map.dimensions.a / map.zoom).add(map.center.a)
+ new_cursor.y.div(map.dimensions.b).sub(0.5).mul(map.dimensions.b / map.zoom).sub(map.center.b)
+ base.tools[currentTool].up(e, cursor, new_cursor)
+ }
+ })
+
+ var currentTool = "polyline"
+ base.setTool = function(s){
+ currentTool = s
+ }
+ base.tools = {
+ polyline: new PolylineTool,
+ position: new PositionTool,
+ }
+
+ base.wheel = new wheel({
+ el: map.el,
+ update: mousewheel,
+ })
+
+ function mousewheel (e, deltaY, deltaX){
+ map.set_zoom(map.zoom_exponent - deltaY/20)
+ }
+}