Removed border of canvas for perf
This commit is contained in:
parent
6a1f47bcf9
commit
74e16eb14d
|
@ -17,6 +17,7 @@ when you come closer to them, and you can automatically move to them by
|
||||||
clicking on them. You can reset the camera at anytime by clicking on the reset
|
clicking on them. You can reset the camera at anytime by clicking on the reset
|
||||||
button.
|
button.
|
||||||
|
|
||||||
|
<button id="full" style="margin-bottom: 10px;">Fullscreen</button>
|
||||||
<button id="reset" style="margin-bottom:10px">Reset camera</button>
|
<button id="reset" style="margin-bottom:10px">Reset camera</button>
|
||||||
<input type="checkbox" id="fullarrow" style="margin-bottom:10px">
|
<input type="checkbox" id="fullarrow" style="margin-bottom:10px">
|
||||||
<label for="fullarrow">Full arrow</label>
|
<label for="fullarrow">Full arrow</label>
|
||||||
|
@ -25,4 +26,4 @@ button.
|
||||||
<input type="checkbox" id="showarrows" style="margin-bottom:10px" checked>
|
<input type="checkbox" id="showarrows" style="margin-bottom:10px" checked>
|
||||||
<label for="showarrows">Show arrows</label>
|
<label for="showarrows">Show arrows</label>
|
||||||
|
|
||||||
<div id="container"> </div>
|
<div id="container" style="padding: 0px; margin: 0px;"></div>
|
||||||
|
|
|
@ -162,7 +162,7 @@ FixedCamera.prototype.regenerateArrow = function(mainCamera) {
|
||||||
var limit = this.fullArrow ? 0.1 : 0.3;
|
var limit = this.fullArrow ? 0.1 : 0.3;
|
||||||
|
|
||||||
// for (var i = this.fullArrow ? 0 : 0.5; i <= 1.001; i += 0.05) {
|
// for (var i = this.fullArrow ? 0 : 0.5; i <= 1.001; i += 0.05) {
|
||||||
for (var i = 1; i > limit; i -= 0.01) {
|
for (var i = 1; i > limit; i -= 0.05) {
|
||||||
point = hermite.eval(i);
|
point = hermite.eval(i);
|
||||||
deriv = hermite.prime(i);
|
deriv = hermite.prime(i);
|
||||||
up.cross(deriv);
|
up.cross(deriv);
|
||||||
|
@ -211,7 +211,7 @@ FixedCamera.prototype.regenerateArrow = function(mainCamera) {
|
||||||
this.arrow.geometry.elementsNeedUpdate = true;
|
this.arrow.geometry.elementsNeedUpdate = true;
|
||||||
this.arrow.geometry.groupsNeedUpdate = true;
|
this.arrow.geometry.groupsNeedUpdate = true;
|
||||||
this.arrow.geometry.normalsNeedUpdate = true;
|
this.arrow.geometry.normalsNeedUpdate = true;
|
||||||
this.arrow.geometry.facesNeedUpdate = true;
|
// this.arrow.geometry.facesNeedUpdate = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ var cameras = new CameraContainer();
|
||||||
var spheres = new Array(mesh_number);
|
var spheres = new Array(mesh_number);
|
||||||
var visible = 0;
|
var visible = 0;
|
||||||
var stats;
|
var stats;
|
||||||
|
var canvas;
|
||||||
var ctx2d;
|
var ctx2d;
|
||||||
|
|
||||||
var loader;
|
var loader;
|
||||||
|
@ -22,6 +23,8 @@ function init() {
|
||||||
// Collidable objects to prevent camera from traversing objects
|
// Collidable objects to prevent camera from traversing objects
|
||||||
var collidableObjects = new Array();
|
var collidableObjects = new Array();
|
||||||
|
|
||||||
|
document.getElementById('full').onclick = fullscreen;
|
||||||
|
|
||||||
// Add the listener on the button
|
// Add the listener on the button
|
||||||
document.getElementById('reset').onclick = function() { cameras.mainCamera().reset(); };
|
document.getElementById('reset').onclick = function() { cameras.mainCamera().reset(); };
|
||||||
var fullarrow = document.getElementById('fullarrow');
|
var fullarrow = document.getElementById('fullarrow');
|
||||||
|
@ -53,7 +56,7 @@ function init() {
|
||||||
renderer.setClearColor(0x87ceeb);
|
renderer.setClearColor(0x87ceeb);
|
||||||
renderer.sortObjects = false;
|
renderer.sortObjects = false;
|
||||||
|
|
||||||
var canvas = document.createElement('canvas');
|
canvas = document.createElement('canvas');
|
||||||
canvas.style.position ="absolute";
|
canvas.style.position ="absolute";
|
||||||
canvas.style.cssFloat = 'top-left';
|
canvas.style.cssFloat = 'top-left';
|
||||||
canvas.width = container_size.width;
|
canvas.width = container_size.width;
|
||||||
|
@ -78,7 +81,7 @@ function init() {
|
||||||
// init light
|
// init light
|
||||||
var directional_light = new THREE.DirectionalLight(0xdddddd);
|
var directional_light = new THREE.DirectionalLight(0xdddddd);
|
||||||
directional_light.position.set(1, 0.5, 1).normalize();
|
directional_light.position.set(1, 0.5, 1).normalize();
|
||||||
directional_light.castShadow = true;
|
directional_light.castShadow = false;
|
||||||
scene.add(directional_light);
|
scene.add(directional_light);
|
||||||
|
|
||||||
var ambient_light = new THREE.AmbientLight(0x444444);
|
var ambient_light = new THREE.AmbientLight(0x444444);
|
||||||
|
@ -140,8 +143,8 @@ function init() {
|
||||||
object.traverse(function (object) {
|
object.traverse(function (object) {
|
||||||
if (object instanceof THREE.Mesh) {
|
if (object instanceof THREE.Mesh) {
|
||||||
object.material.side = THREE.DoubleSide;
|
object.material.side = THREE.DoubleSide;
|
||||||
object.geometry.mergeVertices();
|
// object.geometry.mergeVertices();
|
||||||
object.geometry.computeVertexNormals();
|
// object.geometry.computeVertexNormals();
|
||||||
object.raycastable = true;
|
object.raycastable = true;
|
||||||
if (object.material.name === 'Material.054_777F0E0B_c.bmp' ||
|
if (object.material.name === 'Material.054_777F0E0B_c.bmp' ||
|
||||||
object.material.name === 'Material.061_5C3492AB_c.bmp' ) {
|
object.material.name === 'Material.061_5C3492AB_c.bmp' ) {
|
||||||
|
@ -207,7 +210,7 @@ function init() {
|
||||||
|
|
||||||
container.addEventListener('mousedown', function(event) { if (event.which == 1) click(event); }, false);
|
container.addEventListener('mousedown', function(event) { if (event.which == 1) click(event); }, false);
|
||||||
container.addEventListener('mousemove', updateMouse, false);
|
container.addEventListener('mousemove', updateMouse, false);
|
||||||
// container.addEventListener('keydown', updateMouse, false);
|
document.addEventListener('keydown', function(event) { if (event.keyCode == 27) { stopFullscreen();} }, false);
|
||||||
|
|
||||||
camera1.collidableObjects = collidableObjects;
|
camera1.collidableObjects = collidableObjects;
|
||||||
|
|
||||||
|
@ -217,6 +220,50 @@ function init() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fullscreen() {
|
||||||
|
container.style.position = "absolute";
|
||||||
|
container.style.cssFloat = "top-left";
|
||||||
|
container.style.top = "0px";
|
||||||
|
container.style.bottom = "0px";
|
||||||
|
container.style.left = "0px";
|
||||||
|
container.style.right = "0px";
|
||||||
|
container.style.width="";
|
||||||
|
container.style.height="";
|
||||||
|
container.style.overflow = "hidden";
|
||||||
|
|
||||||
|
// canvas.style.position = "absolute";
|
||||||
|
// canvas.style.cssFloat = "top-left";
|
||||||
|
// canvas.style.top = "0px";
|
||||||
|
// canvas.style.bottom = "0px";
|
||||||
|
// canvas.style.left = "0px";
|
||||||
|
// canvas.style.right = "0px";
|
||||||
|
// canvas.width=window.innerWidth;
|
||||||
|
// canvas.height=window.innerHeight;
|
||||||
|
// canvas.style.overflow = "hidden";
|
||||||
|
|
||||||
|
onWindowResize();
|
||||||
|
}
|
||||||
|
|
||||||
|
function stopFullscreen() {
|
||||||
|
container.style.position = "";
|
||||||
|
container.style.cssFloat = "";
|
||||||
|
container.style.width = container_size.width + "px";
|
||||||
|
container.style.height = container_size.height + "px";
|
||||||
|
container.style.overflow = "";
|
||||||
|
|
||||||
|
// canvas.style.position = "";
|
||||||
|
// canvas.style.cssFloat = "";
|
||||||
|
// canvas.style.width = container_size.width + "px";
|
||||||
|
// canvas.style.height = container_size.height + "px";
|
||||||
|
// canvas.style.overflow = "";
|
||||||
|
|
||||||
|
onWindowResize();
|
||||||
|
}
|
||||||
|
|
||||||
|
function log() {
|
||||||
|
console.log(container.style.width);
|
||||||
|
}
|
||||||
|
|
||||||
function createCamera(position, target) {
|
function createCamera(position, target) {
|
||||||
var camera = new FixedCamera(
|
var camera = new FixedCamera(
|
||||||
50,
|
50,
|
||||||
|
@ -261,7 +308,14 @@ function render() {
|
||||||
renderer.render(scene, cameras.mainCamera());
|
renderer.render(scene, cameras.mainCamera());
|
||||||
|
|
||||||
// Clear canvas
|
// Clear canvas
|
||||||
ctx2d.clearRect(0,0,container_size.width, container_size.height);
|
// canvas.width = canvas.width;
|
||||||
|
|
||||||
|
width = container.offsetWidth / 5;
|
||||||
|
height = container.offsetHeight / 5;
|
||||||
|
left = prev.x - width/2;
|
||||||
|
bottom = renderer.domElement.height - prev.y + height/5;
|
||||||
|
|
||||||
|
// ctx2d.clearRect(left-1,bottom+1,width+1,height+1);
|
||||||
|
|
||||||
if (prev.go) {
|
if (prev.go) {
|
||||||
// Hide arrows
|
// Hide arrows
|
||||||
|
@ -274,24 +328,24 @@ function render() {
|
||||||
|
|
||||||
|
|
||||||
// Draw border
|
// Draw border
|
||||||
var can_bottom = container.offsetHeight - bottom - height - 1;
|
// var can_bottom = container.offsetHeight - bottom - height ;
|
||||||
ctx2d.strokeStyle = "#ffffff";
|
// ctx2d.strokeStyle = "#ffffff";
|
||||||
ctx2d.beginPath();
|
// ctx2d.beginPath();
|
||||||
ctx2d.moveTo(left-1, can_bottom);
|
// ctx2d.moveTo(left-1, can_bottom);
|
||||||
ctx2d.lineTo(left-1, can_bottom + height);
|
// ctx2d.lineTo(left-1, can_bottom + height);
|
||||||
ctx2d.lineTo(left + width-1, can_bottom + height);
|
// ctx2d.lineTo(left + width-1, can_bottom + height);
|
||||||
ctx2d.lineTo(left + width-1, can_bottom);
|
// ctx2d.lineTo(left + width-1, can_bottom);
|
||||||
ctx2d.closePath();
|
// ctx2d.closePath();
|
||||||
ctx2d.stroke();
|
// ctx2d.stroke();
|
||||||
|
|
||||||
ctx2d.strokeStyle = "#000000";
|
// ctx2d.strokeStyle = "#000000";
|
||||||
ctx2d.beginPath();
|
// ctx2d.beginPath();
|
||||||
ctx2d.moveTo(left, can_bottom + 1);
|
// ctx2d.moveTo(left, can_bottom + 1);
|
||||||
ctx2d.lineTo(left, can_bottom + height - 1);
|
// ctx2d.lineTo(left, can_bottom + height - 1);
|
||||||
ctx2d.lineTo(left + width - 2 , can_bottom + height-1);
|
// ctx2d.lineTo(left + width - 2 , can_bottom + height-1);
|
||||||
ctx2d.lineTo(left + width - 2, can_bottom+1);
|
// ctx2d.lineTo(left + width - 2, can_bottom+1);
|
||||||
ctx2d.closePath();
|
// ctx2d.closePath();
|
||||||
ctx2d.stroke();
|
// ctx2d.stroke();
|
||||||
|
|
||||||
// Do render in previsualization
|
// Do render in previsualization
|
||||||
prev.camera.look();
|
prev.camera.look();
|
||||||
|
|
Loading…
Reference in New Issue