Skip to content

Commit d9f8875

Browse files
Update uiHandler.js
1 parent 898052e commit d9f8875

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

js/uiHandler.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,54 @@
1+
import * as THREE from 'three';
2+
import SceneManager from './sceneManager.js';
13

4+
class UIHandler {
5+
constructor(sceneManager) {
6+
this.sceneManager = sceneManager;
7+
this.addObjectButton = document.getElementById('addObject');
8+
this.objectTypeSelect = document.getElementById('objectType');
9+
10+
this.addObjectButton.addEventListener('click', () => this.addObject());
11+
}
12+
13+
addObject() {
14+
const objectType = this.objectTypeSelect.value;
15+
let object;
16+
17+
switch (objectType) {
18+
case 'cube':
19+
object = this.createCube();
20+
break;
21+
case 'sphere':
22+
object = this.createSphere();
23+
break;
24+
case 'plane':
25+
object = this.createPlane();
26+
break;
27+
default:
28+
console.error('Unknown object type');
29+
return;
30+
}
31+
32+
this.sceneManager.activeScene.add(object);
33+
}
34+
35+
createCube() {
36+
const geometry = new THREE.BoxGeometry();
37+
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
38+
return new THREE.Mesh(geometry, material);
39+
}
40+
41+
createSphere() {
42+
const geometry = new THREE.SphereGeometry(1, 32, 32);
43+
const material = new THREE.MeshBasicMaterial({ color: 0x0000ff });
44+
return new THREE.Mesh(geometry, material);
45+
}
46+
47+
createPlane() {
48+
const geometry = new THREE.PlaneGeometry(5, 5);
49+
const material = new THREE.MeshBasicMaterial({ color: 0xff0000, side: THREE.DoubleSide });
50+
return new THREE.Mesh(geometry, material);
51+
}
52+
}
53+
54+
export default UIHandler;

0 commit comments

Comments
 (0)