diff options
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/map/ui_ortho.js')
| -rw-r--r-- | public/assets/javascripts/rectangles/engine/map/ui_ortho.js | 18 |
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({ |
