OpenBuilds-CONTROL/app/lib/3dview/3dview.js

126 wiersze
3.2 KiB
JavaScript
Czysty Zwykły widok Historia

2018-08-28 15:09:20 +00:00
var object
var draw, line, t = 0,
timefactor = 1,
object, simRunning = false;
var loader = new THREE.ObjectLoader();
var worker = new Worker('lib/3dview/workers/gcodeparser.js');
worker.addEventListener('message', function(e) {
object = loader.parse(e.data);
scene.add(object);
// redrawGrid(object.userData.size.minx, object.userData.size.maxx, object.userData.size.miny, object.userData.size.maxy)
2018-08-28 15:09:20 +00:00
// animate();
setTimeout(function() {
console.log("Reset Camera");
viewExtents(object);
// animate();
}, 200);
}, false);
function parseGcodeInWebWorker(gcode) {
scene.remove(object)
object = false;
worker.postMessage({
'data': gcode
});
};
function update3Dprogress(position) {
for (i = 0; i < object.children.length; i++) {
if (object.children[i].userData.cmd.g == 0) {
object.children[i].material.color.set(0xdddddd);
};
if (object.children[i].userData.cmd.g == 1) {
object.children[i].material.color.set(0xdddddd);
};
};
for (i = 0; i < position; i++) {
if (object.children[i].userData.cmd.g == 0) {
object.children[i].material.color.set(0x00cc00);
};
if (object.children[i].userData.cmd.g == 1) {
object.children[i].material.color.set(0xcc0000);
};
}
}
function simSpeed() {
timefactor = timefactor * 10;
if (timefactor > 1024) timefactor = 0.1;
$('#simspeedval').text(timefactor);
}
function simStart() {
if (object) {
simRunning = true;
$('#runSimBtn').hide()
$('#stopSimBtn').show()
t = 0;
cone.position.x = 0;
cone.position.y = 0;
cone.position.z = 20;
cone.visible = true;
for (i = 0; i < object.children.length; i++) {
if (object.children[i].userData.cmd.g == 0) {
object.children[i].material.color.set(0xdddddd);
};
if (object.children[i].userData.cmd.g == 1) {
object.children[i].material.color.set(0xdddddd);
};
};
playSim();
}
}
function simStop() {
if (object) {
t = object.children.length;
for (i = 0; i < object.children.length; i++) {
if (object.children[i].userData.cmd.g == 0) {
object.children[i].material.color.set(0x00cc00);
};
if (object.children[i].userData.cmd.g == 1) {
object.children[i].material.color.set(0xcc0000);
};
};
cone.visible = false;
$('#runSimBtn').show()
$('#stopSimBtn').hide()
simRunning = false
timefactor = 1;
$('#simspeedval').text(timefactor);
}
}
function playSim() {
$('#simspeedval').text(timefactor);
if (object.children[t]) {
object.children[t].visible = true;
if (object.children[t].userData.cmd.g == 0) {
object.children[t].material.color.set(0x00cc00);
};
if (object.children[t].userData.cmd.g == 1) {
object.children[t].material.color.set(0xcc0000);
};
TweenMax.to(cone.position, object.children[t].userData.time / timefactor, {
x: object.children[t].userData.cmd.x,
y: object.children[t].userData.cmd.y,
z: object.children[t].userData.cmd.z + 20,
onComplete: function() {
t++
if (t == object.children.length) {
simStop();
} else {
playSim();
};
}
});
};
};