summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/engine/map/ui_ortho.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/map/ui_ortho.js')
-rw-r--r--public/assets/javascripts/rectangles/engine/map/ui_ortho.js18
1 files changed, 17 insertions, 1 deletions
diff --git a/public/assets/javascripts/rectangles/engine/map/ui_ortho.js b/public/assets/javascripts/rectangles/engine/map/ui_ortho.js
index 2177aaa..dab7354 100644
--- a/public/assets/javascripts/rectangles/engine/map/ui_ortho.js
+++ b/public/assets/javascripts/rectangles/engine/map/ui_ortho.js
@@ -2,40 +2,56 @@ Map.UI = Map.UI || {}
Map.UI.Ortho = function(map){
var base = this
+ var last_event = null
base.creating = base.dragging = base.resizing = false
base.mouse = new mouse({
el: map.el,
down: function(e, cursor){
+ last_event = e
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){
+ last_event = e
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){
+ last_event = e
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){
+ last_event = e
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)
+ if (nextTool) {
+ base.set_tool(nextTool)
+ nextTool = null
+ }
}
})
- var currentTool = "polyline"
+ var currentTool = "polyline", nextTool
base.add_tool = function(name, tool){
base.tools[name] = tool
}
base.set_tool = function(s){
+ console.log("set tool to", s)
+ base.tools[currentTool].cancel()
currentTool = s
}
+ base.set_drag_tool = function(s){
+ nextTool = currentTool
+ currentTool = s
+ base.tools[s].down(last_event, base.mouse.cursor)
+ }
base.tools = {}
base.wheel = new wheel({