setup.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import * as three from "three";
  2. import {OrbitControls} from "orbitControls";
  3. import {CSS2DRenderer} from "2dRenderer";
  4. import Board from "board";
  5. const canvas = document.getElementById("canvas");
  6. const renderer = new three.WebGLRenderer({antialias: true, canvas});
  7. const camera = new three.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 1000);
  8. camera.position.z = 100;
  9. camera.position.y = 1.8;
  10. const labelRenderer = new CSS2DRenderer();
  11. labelRenderer.setSize(window.innerWidth, window.innerHeight);
  12. labelRenderer.domElement.style.position = "absolute";
  13. labelRenderer.domElement.style.top = "0px";
  14. labelRenderer.domElement.style.pointerEvents = "none";
  15. document.body.appendChild(labelRenderer.domElement);
  16. const controls = new OrbitControls(camera, renderer.domElement);
  17. export const scene = new three.Scene();
  18. const light = new three.DirectionalLight(0xffffff, 3);
  19. scene.add(light);
  20. function resizeRendererToDisplaySize(renderer){
  21. const canvas = renderer.domElement;
  22. const width = canvas.clientWidth;
  23. const height = canvas.clientHeight;
  24. const needResize = canvas.width !== width || canvas.height !== height;
  25. if(needResize) renderer.setSize(width, height, false);
  26. return needResize;
  27. }
  28. function render(time){
  29. if(resizeRendererToDisplaySize(renderer)){
  30. const canvas = renderer.domElement;
  31. camera.aspect = canvas.clientWidth / canvas.clientHeight;
  32. camera.updateProjectionMatrix();
  33. }
  34. renderer.render(scene, camera);
  35. labelRenderer.render(scene, camera);
  36. requestAnimationFrame(render);
  37. }
  38. renderer.render(scene, camera);
  39. requestAnimationFrame(render);
  40. export function compute(data){
  41. console.log(data);
  42. }
  43. export const Group = three.Group;