// This tool is used to define a very simple line between two points. // It is used by the BlueprintScaler to specify a sample distance to scale. var LineTool = MapTool.extend(function(base){ var exports = {} var selected_point = null var line = exports.line = [] var can_drag, dragging exports.down = function(e, cursor){ // rightclick? if (e.ctrlKey || e.which === 3) { cursor.quantize(1/map.zoom) app.router.blueprintView.map.center.a = cursor.x.a app.router.blueprintView.map.center.b = -cursor.y.a cursor.x.b = cursor.x.a cursor.y.b = cursor.y.a return } this.cursor = cursor switch (line.length) { case 0: line[0] = cursor.x_component() can_drag = true break case 1: line[1] = cursor.x_component() can_drag = false break case 2: line[0] = cursor.x_component() line.pop() can_drag = true break } } exports.move = function(e, cursor){ this.cursor = cursor } exports.drag = function(e, cursor){ if (dragging) { line[1].a = cursor.x.b line[1].b = cursor.y.b } else if (can_drag && cursor.magnitude() > 10/map.zoom) { line[1] = cursor.y_component() dragging = true } } exports.up = function(e, cursor){ can_drag = dragging = false } return exports })