Anders and Briegel in Python
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

76 lines
1.8KB

  1. // IE9
  2. if (typeof console === "undefined") {
  3. var console = {
  4. log: function(logMsg) {}
  5. };
  6. }
  7. var controls, renderer, raycaster, scene, selection, camera;
  8. // Run on startup
  9. window.onload = init;
  10. // Clear the whole scene
  11. function makeScene() {
  12. var myScene = new THREE.Scene();
  13. var grid = new THREE.GridHelper(20, 2);
  14. grid.rotation.x = Math.PI/2;
  15. grid.setColors(0xdddddd, 0xeeeeee);
  16. myScene.add(grid);
  17. return myScene;
  18. }
  19. // Render the current frame to the screen
  20. function render() {
  21. requestAnimationFrame(function () {
  22. renderer.render(scene, camera);
  23. });
  24. }
  25. // Someone resized the window
  26. function onWindowResize(evt){
  27. camera.aspect = window.innerWidth / window.innerHeight;
  28. camera.updateProjectionMatrix();
  29. renderer.setSize(window.innerWidth, window.innerHeight);
  30. render();
  31. }
  32. // Called on startup
  33. function init() {
  34. // Measure things, get references
  35. var width = window.innerWidth;
  36. var height = window.innerHeight;
  37. // Renderer
  38. renderer = new THREE.WebGLRenderer({"antialias":true});
  39. renderer.setSize(width, height);
  40. renderer.setClearColor(0xffffff, 1);
  41. document.querySelector("body").appendChild(renderer.domElement);
  42. window.addEventListener("resize", onWindowResize, false);
  43. renderer.domElement.addEventListener("click", function (evt) {
  44. add_node(0);
  45. });
  46. // Time to load the materials
  47. loadMaterials();
  48. // Camera, controls, raycaster
  49. camera = new THREE.PerspectiveCamera(45, width / height, 0.3, 100);
  50. controls = new THREE.OrbitControls(camera);
  51. // Center the camera
  52. // TODO: frustrum
  53. controls.center.set(0, 0, 0);
  54. controls.rotateSpeed = 0.2;
  55. camera.position.set(0, 0, 40);
  56. // Run
  57. scene = makeScene();
  58. controls.addEventListener("change", render);
  59. connect_to_server();
  60. render();
  61. }