-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.js
More file actions
86 lines (84 loc) · 2.38 KB
/
Copy pathindex.js
File metadata and controls
86 lines (84 loc) · 2.38 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
$(document).ready(function () {
var grid = [];
var path = [];
var gridSize=6;
var TR = 50;
var robotPos = {x: 0, y: 0};
var canvas= $("#myCanvas");
var canvasObj = canvas[0];
var gridSelect=$("#gridSelect");
var algoSelect=$("#algoSelect");
var button = $("#runSimulation");
var drawing = new DrawingUtility();
drawing.init(robotPos,grid,TR,canvasObj);
utilities.TR=TR;
drawing.drawBoard(6,6);
var currAlgo="Greedy";
var resetFlag=true;
function getMousePos(evt) {
var rect = canvasObj.getBoundingClientRect();
var x = evt.clientX - rect.left;
var y = evt.clientY - rect.top;
return utilities.findNearestPoly(x, y, drawing.grid);
}
function drawImage(pt){
if (pt && notAlreadyAdded(pt)) {
path.push(pt);
drawing.drawTrash(pt.x, pt.y);
}
}
canvas.on('mousedown', function (evt) {
var mousePos = getMousePos(evt);
drawImage(mousePos);
});
button.on("click", function (evt) {
$.ajax({
method: "POST",
url: "/getPath",
headers: {
'Content-Type':'application/json'
},
data:JSON.stringify({'path':path,'robotPos':robotPos,'algo':currAlgo})
}).done(function( response ) {
path=[];
travelToPath(response);
});
});
gridSelect.on("change",function(evt){
var val=evt.target.value;
drawing.clearCanvas();
drawing.initCanvas();
gridSize=+val;
drawing.drawBoard(+val,+val);
path=[];
});
algoSelect.on("change",function(evt){
currAlgo=evt.target.value;
});
function reset(){
drawing.clearCanvas();
drawing.initCanvas();
drawing.drawBoard(gridSize,gridSize);
path=[];
}
function notAlreadyAdded(pt) {
for (var i = 0, l = path.length; i < l; i++) {
if (path[i].x == pt.x && path[i].y == pt.y) {
return false;
}
}
return true;
}
function travelToPath(tPath) {
var l = tPath.length;
var k = 0, j = 0;
while (j < l) {
setTimeout(function () {
drawing.moveRobot(tPath[k].x, tPath[k].y);
k++;
}, j * 500);
j++;
}
}
$('#reset').on("click",reset);
});