stage.addEventListener("mouseover", function () {
controls.enabled = true;
document.body.style.cursor = "pointer";
});
stage.addEventListener("mouseout", function () {
controls.enabled = false;
document.body.style.cursor = "default";
});
function createScene() {
var scene = new THREE.Scene();
var geometry = new THREE.BoxGeometry(1, 1, 1);
var material = new THREE.MeshPhongMaterial({ color: 0x0000ff });
var box = new THREE.Mesh(geometry, material);
box.position.y = 0.5;
scene.add(box);
var light = new THREE.DirectionalLight(0xffffff);
light.position.set(1, 1, 1);
scene.add(light);
var planeGeometry = new THREE.PlaneGeometry(10, 10, 10, 10);
var planeMaterial = new THREE.MeshBasicMaterial({
color: 0x533e25,
wireframe: true,
});
var planeMesh = new THREE.Mesh(planeGeometry, planeMaterial);
var toRad = Math.PI / 180;
planeMesh.rotation.x = 90 * toRad;
scene.add(planeMesh);
var axis = new THREE.AxisHelper(1000);
axis.position.set(0, 0, 0);
scene.add(axis);
scene.update = function () {
box.rotation.x += 1 * toRad;
box.rotation.y += 1 * toRad;
box.rotation.z += 1 * toRad;
};
return scene;
}
function onLoaded() {
var stage = document.getElementById("threejs");
var width = stage.clientWidth;
var height = stage.clientHeight;
console.log(width, height);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(width, height);
stage.appendChild(renderer.domElement);
var scene = createScene();
var camera = new THREE.PerspectiveCamera(45, width / height, 1, 1000);
camera.position.set(2, 3, 5);
camera.lookAt({ x: 0, y: 0, z: 0 });
var controls = new THREE.OrbitControls(camera);
controls.enabled = false;
stage.addEventListener("mouseover", function () {
controls.enabled = true;
document.body.style.cursor = "pointer";
});
stage.addEventListener("mouseout", function () {
controls.enabled = false;
document.body.style.cursor = "default";
});
var render = function () {
requestAnimationFrame(render);
scene.update();
controls.update();
renderer.render(scene, camera);
};
render();
}
window.addEventListener("DOMContentLoaded", onLoaded);