summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/engine/map/tools/arrow.js
blob: 00478d43e61d8050be3f90b27b857e5e75fe94d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Tool used to move corners of polylines

var ArrowTool = MapTool.extend(function(base){
	var exports = {}
	
	var selected_point = null, original_point = null, selected_shape = null
	
	exports.down = function(e, cursor){
    last_point.a = cursor.x.a
    last_point.b = cursor.y.a
    var p = shapes.findClosestPoint(last_point)
    if (p) {
      selected_shape = p.shape
      selected_point = p.point
      original_point = selected_point.clone()
    }
    else {
      map.ui.set_drag_tool("position")
    }
	}
	
  exports.move = function(e, cursor){
    last_point.a = cursor.x.a
    last_point.b = cursor.y.a
    var p = shapes.findClosestPoint(last_point)
    if (p) {
      document.body.style.cursor = "pointer"
      last_point.assign(p.point)
      cursor.x.a = cursor.x.b = last_point.a
      cursor.y.a = cursor.y.b = last_point.b
    }
    else {
      document.body.style.cursor = "crosshair"
    }
	}
	
	exports.drag = function(e, cursor){
    selected_point.a = original_point.a + cursor.x.magnitude()
		selected_point.b = original_point.b + cursor.y.magnitude()
		selected_shape.rebuild()
	}
	
	exports.up = function(e, cursor){
	  selected_point = selected_shape = original_point = null
	}
	
	return exports
})