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.

102 lines
2.3KB

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