MCPcopy Create free account
hub / github.com/QuarkGluonPlasma/react-course-code / init

Function init

react-threejs-app/src/3d-init.js:7–57  ·  view source on GitHub ↗
(dom, setStr)

Source from the content-addressed store, hash-verified

5import mesh from './mesh.js';
6
7export function init(dom, setStr) {
8 const scene = new THREE.Scene();
9 scene.add(mesh);
10
11 const axesHelper = new THREE.AxesHelper(500);
12 scene.add(axesHelper);
13
14 const directionalLight = new THREE.DirectionalLight(0xffffff);
15 directionalLight.position.set(500, 400, 300);
16 scene.add(directionalLight);
17
18 const ambientLight = new THREE.AmbientLight(0xffffff);
19 scene.add(ambientLight);
20
21 const width = 1000;
22 const height = window.innerHeight - 80;
23
24 const camera = new THREE.PerspectiveCamera(60, width / height, 1, 10000);
25 camera.position.set(500, 500, 500);
26 camera.lookAt(0, 0, 0);
27
28 const renderer = new THREE.WebGLRenderer();
29 renderer.setSize(width, height)
30
31 function render() {
32 renderer.render(scene, camera);
33 requestAnimationFrame(render);
34 }
35
36 render();
37
38 dom.append(renderer.domElement);
39
40 const controls = new OrbitControls(camera, renderer.domElement);
41
42 function changeHorseColor(color) {
43 const horseBody = scene.getObjectByName('Cylinder');
44 if(horseBody) {
45 horseBody.material.color.set(color);
46
47 setStr(`当前是 ${color} 马`)
48 }
49 }
50
51 return {
52 scene,
53 camera,
54 renderer,
55 changeHorseColor
56 }
57}

Callers 1

AppFunction · 0.90

Calls 1

renderFunction · 0.70

Tested by

no test coverage detected