mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-16 12:20:09 -07:00
Refactor ModelViewer
This commit is contained in:
parent
ded1a9c2ae
commit
e1f2f64242
@ -36,31 +36,7 @@ var ModelViewer = function($dom_element, model_url) {
|
|||||||
this.initHtml();
|
this.initHtml();
|
||||||
this.initScene();
|
this.initScene();
|
||||||
|
|
||||||
|
this.render();
|
||||||
// this.stats = new Stats();
|
|
||||||
// this.stats.dom.style.position = 'absolute';
|
|
||||||
// this.container.append(this.stats.dom);
|
|
||||||
|
|
||||||
|
|
||||||
function renderLoop() {
|
|
||||||
requestAnimationFrame(renderLoop);
|
|
||||||
if($this.rendering) {
|
|
||||||
if(!$this.loaded) {
|
|
||||||
$this.loadStl($this.model_url);
|
|
||||||
$this.loaded = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($this.stats) {
|
|
||||||
$this.stats.update();
|
|
||||||
}
|
|
||||||
$this.render();
|
|
||||||
}
|
|
||||||
|
|
||||||
$this.resize(parseInt($this.dom_element.width()), parseInt($this.dom_element.height()));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
renderLoop();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Initialize model viewer dom element - add buttons
|
// Initialize model viewer dom element - add buttons
|
||||||
@ -134,12 +110,12 @@ ModelViewer.prototype.initScene = function() {
|
|||||||
|
|
||||||
ModelViewer.prototype.initLights = function () {
|
ModelViewer.prototype.initLights = function () {
|
||||||
this.spotLight = new THREE.SpotLight(0xffffff, 0.8, 0);
|
this.spotLight = new THREE.SpotLight(0xffffff, 0.8, 0);
|
||||||
this.spotLight.position.set(-1000, 1000, 1000);
|
this.spotLight.position.set(-100, 100, 100);
|
||||||
this.spotLight.castShadow = false;
|
this.spotLight.castShadow = false;
|
||||||
this.scene.add(this.spotLight);
|
this.scene.add(this.spotLight);
|
||||||
|
|
||||||
this.bottomSpotLight = new THREE.SpotLight(0xffffff, 0.8, 0);
|
this.bottomSpotLight = new THREE.SpotLight(0xffffff, 0.8, 0);
|
||||||
this.bottomSpotLight.position.set(0, -100, -1000);
|
this.bottomSpotLight.position.set(0, -10, -100);
|
||||||
this.bottomSpotLight.castShadow = false;
|
this.bottomSpotLight.castShadow = false;
|
||||||
this.scene.add(this.bottomSpotLight);
|
this.scene.add(this.bottomSpotLight);
|
||||||
|
|
||||||
@ -147,7 +123,7 @@ ModelViewer.prototype.initLights = function () {
|
|||||||
this.scene.add(this.ambientLight);
|
this.scene.add(this.ambientLight);
|
||||||
|
|
||||||
this.pointLight = new THREE.PointLight(0xfdfdfd, 1, 0);
|
this.pointLight = new THREE.PointLight(0xfdfdfd, 1, 0);
|
||||||
this.pointLight.position.set(320, -390, 350);
|
this.pointLight.position.set(32, -39, 35);
|
||||||
this.pointLight.castShadow = true;
|
this.pointLight.castShadow = true;
|
||||||
this.scene.add(this.pointLight);
|
this.scene.add(this.pointLight);
|
||||||
};
|
};
|
||||||
@ -190,6 +166,8 @@ ModelViewer.prototype.loadStl = function(model) {
|
|||||||
self.showError();
|
self.showError();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
self.loaded = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
ModelViewer.prototype.centerCamera = function(mesh) {
|
ModelViewer.prototype.centerCamera = function(mesh) {
|
||||||
@ -222,6 +200,9 @@ ModelViewer.prototype.toggleRendering = function () {
|
|||||||
$this.toggleButton.html('<i class="cube icon"/>3D');
|
$this.toggleButton.html('<i class="cube icon"/>3D');
|
||||||
$this.wireframeButton.hide();
|
$this.wireframeButton.hide();
|
||||||
} else {
|
} else {
|
||||||
|
if(!$this.loaded) {
|
||||||
|
$this.loadStl($this.model_url);
|
||||||
|
}
|
||||||
$this.container.style.display = "block";
|
$this.container.style.display = "block";
|
||||||
$this.rendering = true;
|
$this.rendering = true;
|
||||||
$this.toggleButton.html('<i class="close icon"/>Close');
|
$this.toggleButton.html('<i class="close icon"/>Close');
|
||||||
@ -279,6 +260,14 @@ ModelViewer.prototype.resize = function(width, height) {
|
|||||||
this.renderer.setSize(width, height);
|
this.renderer.setSize(width, height);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ModelViewer.prototype.resize = function() {
|
||||||
|
this.resize(parseInt(this.dom_element.width()), parseInt(this.dom_element.height()));
|
||||||
|
};
|
||||||
|
|
||||||
ModelViewer.prototype.render = function() {
|
ModelViewer.prototype.render = function() {
|
||||||
this.renderer.render(this.scene, this.camera);
|
requestAnimationFrame(this.render);
|
||||||
};
|
if(this.rendering) {
|
||||||
|
this.renderer.render(this.scene, this.camera);
|
||||||
|
}
|
||||||
|
this.resize();
|
||||||
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user