index.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. var onload = function () {
  2. var scene = null;
  3. var messages = null;
  4. var demos = [
  5. { title: "Slide1", image: "Assets/Slides/Slide1.JPG", link: "" },
  6. { title: "Slide2", image: "Assets/Slides/Slide2.JPG", link: "" },
  7. { title: "Slide3", image: "Assets/Slides/Slide3.JPG", link: "" },
  8. { title: "Slide4", image: "Assets/Slides/Slide4.JPG", link: "" },
  9. { title: "Slide5", image: "Assets/Slides/Slide5.JPG", link: "" },
  10. { title: "Slide6", image: "Assets/Slides/Slide6.JPG", link: "http://david.blob.core.windows.net/html5/SoftEngineProgression/wireframe/index.html" },
  11. { title: "Slide7", image: "Assets/Slides/Slide7.JPG", link: "" },
  12. { title: "Slide8", image: "Assets/Slides/Slide8.JPG", link: "" },
  13. { title: "Slide9", image: "Assets/Slides/Slide9.JPG", link: "" },
  14. { title: "Slide10", image: "Assets/Slides/Slide10.JPG", link: "" },
  15. { title: "Slide11", image: "Assets/Slides/Slide11.JPG", link: "" },
  16. { title: "Slide12", image: "Assets/Slides/Slide12.JPG", link: "" },
  17. { title: "Slide13", image: "Assets/Slides/Slide13.JPG", link: "" },
  18. { title: "Slide14", image: "Assets/Slides/Slide14.JPG", link: "" },
  19. { title: "Slide15", image: "Assets/Slides/Slide15.JPG", link: "" },
  20. { title: "Slide16", image: "Assets/Slides/Slide16.JPG", link: "http://david.blob.core.windows.net/babylonjsoffline/index.html" },
  21. { title: "Slide17", image: "Assets/Slides/Slide17.JPG", link: "" },
  22. { title: "Slide18", image: "Assets/Slides/Slide18.JPG", link: "" },
  23. { title: "Slide19", image: "Assets/Slides/Slide19.JPG", link: "" },
  24. { title: "Slide20", image: "Assets/Slides/Slide20.JPG", link: "" },
  25. { title: "Slide21", image: "Assets/Slides/Slide21.JPG", link: "" },
  26. { title: "Slide22", image: "Assets/Slides/Slide22.JPG", link: "" },
  27. { title: "Slide23", image: "Assets/Slides/Slide23.JPG", link: "" },
  28. { title: "Slide24", image: "Assets/Slides/Slide24.JPG", link: "" }];
  29. var slideid = 1;
  30. var canvas = document.getElementById("renderCanvas");
  31. var divFps = document.getElementById("fps");
  32. var loadingBack = document.getElementById("loadingBack");
  33. var loadingText = document.getElementById("loadingText");
  34. var next = document.getElementById("next");
  35. var preview = document.getElementById("preview");
  36. var slider = document.getElementById("slider");
  37. slider.valueAsNumber = slideid;
  38. $(slider).change(function () {
  39. slideid = slider.valueAsNumber;
  40. slide.material.diffuseTexture = new BABYLON.Texture(demos[slideid].image, scene);
  41. });
  42. preview.addEventListener("pointerdown", function () {
  43. if (slideid >= 0) {
  44. slideid--;
  45. slider.valueAsNumber = slideid;
  46. slide.material.diffuseTexture = new BABYLON.Texture(demos[slideid].image, scene);
  47. }
  48. });
  49. next.addEventListener("pointerdown", function () {
  50. if (slideid < demos.length) {
  51. slideid++;
  52. slider.valueAsNumber = slideid;
  53. if (slideid == demos.length) {
  54. for (var index = 0; index < scene.meshes.length; index++) {
  55. scene.beginAnimation(scene.meshes[index], 354, 800, false, 1.0);
  56. }
  57. }
  58. else {
  59. scene.beginAnimation(scene.meshes[0], 266, 300, false, 1.0, function () {
  60. slide.material.diffuseTexture = new BABYLON.Texture(demos[slideid].image, scene);
  61. scene.beginAnimation(scene.meshes[0], 301, 354, false, 1.0, function() {
  62. });
  63. });
  64. for (var index = 1; index < scene.meshes.length; index++) {
  65. scene.beginAnimation(scene.meshes[index], 266, 354, false, 1.0);
  66. }
  67. }
  68. }
  69. });
  70. var mode = "CAMERA";
  71. if (!BABYLON.Engine.isSupported()) {
  72. document.getElementById("notSupported").className = "";
  73. return;
  74. }
  75. // Babylon
  76. var engine = new BABYLON.Engine(canvas, true);
  77. scene = new BABYLON.Scene(engine);
  78. var camera = new BABYLON.FreeCamera("Camera", new BABYLON.Vector3(-190, 120, -243), scene);
  79. camera.setTarget(new BABYLON.Vector3(-189, 120, -243));
  80. camera.rotation = new BABYLON.Vector3(0.30, 1.31, 0);
  81. camera.attachControl(canvas);
  82. // Loading
  83. var importScene = function () {
  84. loadingBack.removeEventListener("transitionend", importScene);
  85. loadingBack.removeEventListener("webkitTransitionEnd", importScene);
  86. BABYLON.SceneLoader.ImportMesh("", "/Scenes/Robot/Assets/", "Robot.babylon", scene, function () {
  87. for (var index = 0; index < scene.meshes.length; index++) {
  88. if (scene.meshes[index].name == "Slide") {
  89. slide = scene.meshes[index];
  90. slide.material.diffuseTexture = new BABYLON.Texture(demos[slideid].image, scene);
  91. }
  92. scene.stopAnimation(scene.meshes[index]);
  93. scene.beginAnimation(scene.meshes[index], 0, 265, false, 1.0);
  94. }
  95. // UI
  96. loadingBack.className = "loadingBack";
  97. loadingText.className = "loadingText";
  98. }, function (evt) {
  99. loadingText.innerHTML = "Loading, please wait..." + (evt.loaded * 100 / evt.total).toFixed() + "%";
  100. });
  101. };
  102. loadingBack.addEventListener("transitionend", importScene);
  103. loadingBack.addEventListener("webkitTransitionEnd", importScene);
  104. loadingBack.className = "";
  105. loadingText.className = "";
  106. loadingText.innerHTML = "Loading, please wait...";
  107. // Render loop
  108. var renderFunction = function () {
  109. // Fps
  110. divFps.innerHTML = BABYLON.Tools.GetFps().toFixed() + " fps";
  111. // Render scene
  112. scene.render();
  113. };
  114. // Launch render loop
  115. engine.runRenderLoop(renderFunction);
  116. // Resize
  117. window.addEventListener("resize", function () {
  118. engine.resize();
  119. });
  120. window.oncontextmenu = function () {
  121. return false;
  122. };
  123. };