/
mickey.js
69 lines (50 loc) · 1.17 KB
/
mickey.js
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
var ps;
var buttonDown = false;
var zoomed = -50;
var rot =[0,0];
var curCoords = [0,0];
var size = 500;
window.onresize = function(){
ps.resize(window.innerWidth, window.innerHeight);
ps.background([0.3,0.5,0.7,0.2]);
};
function zoom(amt){
zoomed += amt * 2;
size += amt * 10;
}
function mousePressed(){
curCoords[0] = ps.mouseX;
curCoords[1] = ps.mouseY;
buttonDown = true;
}
function mouseReleased(){
buttonDown = false;
}
function render() {
var deltaX = ps.mouseX - curCoords[0];
var deltaY = ps.mouseY - curCoords[1];
if(buttonDown){
rot[0] += deltaX / 250;
rot[1] += deltaY / 250;
curCoords[0] = ps.mouseX;
curCoords[1] = ps.mouseY;
}
// transform point cloud
ps.translate(0,0,zoomed);
ps.rotateY(rot[0]);
ps.rotateX(rot[1]);
// redraw
ps.clear();
ps.render();
window.status = ps.frameRate;
}
function start(){
ps = new PointStream();
ps.setup(document.getElementById('canvas'), render);
ps.pointSize(8);
ps.background([0.3,0.5,0.7,0.2]);
ps.onMouseScroll = zoom;
ps.onMousePressed = mousePressed;
ps.onMouseReleased = mouseReleased;
ps.loadFile({path:"mickey.asc", autoCenter: true});
}