ThreeJS, упакованный для ГитЖС | ThreeJS packaged for GitJS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 line
2.4KB

  1. const ИМЯ = "three.js";
  2. // // // //
  3. СоздатьСферу = мир =>
  4. {
  5. var форма = new THREE.SphereBufferGeometry(0.4, 32, 32);
  6. var сфера = new THREE.Mesh(форма);
  7. мир.сцена.add(сфера);
  8. мир.камера.position.z = 10;
  9. };
  10. // // // //
  11. ВстроитьОтрисовщикаThreeJS = мир =>
  12. {
  13. // Задать вид.
  14. var css = `
  15. html, body {
  16. margin: 0;
  17. }
  18. `;
  19. var вид = document.createElement("style");
  20. вид.innerHTML = css;
  21. document.head.appendChild(вид);
  22. document.body.innerHTML = "";
  23. document.body.appendChild(мир.отрисовщик.domElement);
  24. };
  25. // // // //
  26. ОтслеживатьИзменениеРазмераОкнаБраузера = мир =>
  27. {
  28. window.addEventListener(
  29. "resize",
  30. function() {
  31. мир.уведомить("изменили размер окна браузера");
  32. }
  33. );
  34. };
  35. // // // //
  36. ИзменитьРазмерОтрисовщикаThreeJS = мир =>
  37. {
  38. var ширина = window.innerWidth;
  39. var высота = window.innerHeight;
  40. мир.камера.aspect = ширина / высота;
  41. мир.камера.updateProjectionMatrix();
  42. мир.отрисовщик.setSize(ширина, высота);
  43. };
  44. // // // //
  45. ЗапуститьОтрисовку = мир =>
  46. {
  47. function отрисовать()
  48. {
  49. requestAnimationFrame(отрисовать);
  50. мир.отрисовщик.render(мир.сцена, мир.камера);
  51. }
  52. отрисовать();
  53. };
  54. // // // //
  55. НастроитьThreeJS = мир =>
  56. {
  57. мир.сцена = new THREE.Scene();
  58. мир.сцена.background = new THREE.Color(0x333366);
  59. мир.камера = new THREE.PerspectiveCamera(45, 1, 0.1, 1000);
  60. мир.отрисовщик = new THREE.WebGLRenderer({antialias: true});
  61. мир.ловецНажатий = new THREE.Raycaster();
  62. };
  63. // // // //
  64. УстановитьThreeJS = мир =>
  65. {
  66. var модуль = мир.модули.модульПоИмени(ИМЯ);
  67. var код = модуль.содержимое["/three.js"];
  68. console.debug("УстановитьThreeJS");
  69. // Загрузить скрипт.
  70. var скрипт = document.createElement("script");
  71. скрипт.innerHTML = код;
  72. document.body.appendChild(скрипт);
  73. };