blob: 2a73954cc885ced073cc55053530eb6400b07cc2 (
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
|
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
})
|