heidentor.html 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="description" content="">
  6. <meta name="author" content="">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
  8. <title>Potree Viewer</title>
  9. <link rel="stylesheet" type="text/css" href="../build/potree/potree.css">
  10. <link rel="stylesheet" type="text/css" href="../libs/jquery-ui/jquery-ui.min.css">
  11. <link rel="stylesheet" type="text/css" href="../libs/openlayers3/ol.css">
  12. <link rel="stylesheet" type="text/css" href="../libs/spectrum/spectrum.css">
  13. <link rel="stylesheet" type="text/css" href="../libs/jstree/themes/mixed/style.css">
  14. </head>
  15. <body>
  16. <script src="../libs/jquery/jquery-3.1.1.min.js"></script>
  17. <script src="../libs/spectrum/spectrum.js"></script>
  18. <script src="../libs/jquery-ui/jquery-ui.min.js"></script>
  19. <script src="../libs/other/BinaryHeap.js"></script>
  20. <script src="../libs/tween/tween.min.js"></script>
  21. <script src="../libs/d3/d3.js"></script>
  22. <script src="../libs/proj4/proj4.js"></script>
  23. <script src="../libs/openlayers3/ol.js"></script>
  24. <script src="../libs/i18next/i18next.js"></script>
  25. <script src="../libs/jstree/jstree.js"></script>
  26. <script src="../build/potree/potree.js"></script>
  27. <script src="../libs/plasio/js/laslaz.js"></script>
  28. <!-- INCLUDE ADDITIONAL DEPENDENCIES HERE -->
  29. <!-- INCLUDE SETTINGS HERE -->
  30. <div class="potree_container" style="position: absolute; width: 100%; height: 100%; left: 0px; top: 0px; ">
  31. <div id="potree_render_area" style="background-image: url('../build/potree/resources/images/background.jpg');"></div>
  32. <div id="potree_sidebar_container"> </div>
  33. <input id="tiffTest" type="button" value="tiff test" />
  34. </div>
  35. <script type="module">
  36. import * as THREE from "../libs/three.js/build/three.module.js";
  37. window.viewer = new Potree.Viewer(document.getElementById("potree_render_area"));
  38. viewer.setEDLEnabled(false);
  39. viewer.setFOV(60);
  40. viewer.setPointBudget(1_000_000);
  41. viewer.setMinNodeSize(0);
  42. viewer.loadSettingsFromURL();
  43. viewer.setBackground("skybox");
  44. viewer.setShowBoundingBox(false);
  45. viewer.setDescription(`Heidentor point cloud courtesy of <a href="http://archpro.lbg.ac.at/" target="_blank">Ludwig Boltzmann Institute - Archeological Prospection and Virtual Archeology</a> (26M points)`);
  46. viewer.loadGUI(() => {
  47. viewer.setLanguage('en');
  48. $("#menu_appearance").next().show();
  49. $("#menu_tools").next().show();
  50. $("#menu_scene").next().show();
  51. //viewer.toggleSidebar();
  52. });
  53. Potree.loadPointCloud("http://5.9.65.151/mschuetz/potree/resources/pointclouds/archpro/heidentor/cloud.js", "Heidentor", function(e){
  54. viewer.scene.addPointCloud(e.pointcloud);
  55. e.pointcloud.position.z = 0;
  56. let material = e.pointcloud.material;
  57. material.size = 1;
  58. material.pointSizeType = Potree.PointSizeType.ADAPTIVE;
  59. viewer.scene.view.setView(
  60. [13.856, -9.125, 14.563],
  61. [-3.548, 2.728, 6.140],
  62. );
  63. });
  64. { // ground plane
  65. const texture = new THREE.TextureLoader().load(`${Potree.resourcePath}/textures/rectangle.png`);
  66. texture.wrapS = THREE.RepeatWrapping;
  67. texture.wrapT = THREE.RepeatWrapping;
  68. texture.repeat.x = 10;
  69. texture.repeat.y = 10;
  70. texture.anisotropy = 16;
  71. let geometry = new THREE.PlaneBufferGeometry(1, 1, 10, 10);
  72. let material = new THREE.MeshBasicMaterial();
  73. material.map = texture;
  74. material.needsUpdate = true;
  75. let plane = new THREE.Mesh(geometry, material);
  76. plane.scale.set(18, 18, 18);
  77. plane.position.set(-2, 3, 0);
  78. plane.material.color.setRGB(0.8, 0.8, 0.8);
  79. window.plane = plane;
  80. viewer.scene.scene.add(plane);
  81. }
  82. // { // spheres to indicate coordinate axes
  83. // let sg = new THREE.SphereGeometry(0.1, 8, 8);
  84. // { // ORIGIN
  85. // let sm = new THREE.MeshBasicMaterial({color: 0xaaaaaa});
  86. // let sphere = new THREE.Mesh(sg, sm);
  87. // sphere.position.set(0, 0, 0);
  88. // viewer.scene.scene.add(sphere);
  89. // }
  90. // { // X
  91. // let sm = new THREE.MeshBasicMaterial({color: 0xff0000});
  92. // let sphere = new THREE.Mesh(sg, sm);
  93. // sphere.position.set(2, 0, 0);
  94. // viewer.scene.scene.add(sphere);
  95. // }
  96. // { // Y
  97. // let sm = new THREE.MeshBasicMaterial({color: 0x00ff00});
  98. // let sphere = new THREE.Mesh(sg, sm);
  99. // sphere.position.set(0, 2, 0);
  100. // viewer.scene.scene.add(sphere);
  101. // }
  102. // { // Z
  103. // let sm = new THREE.MeshBasicMaterial({color: 0x0000ff});
  104. // let sphere = new THREE.Mesh(sg, sm);
  105. // sphere.position.set(0, 0, 2);
  106. // viewer.scene.scene.add(sphere);
  107. // }
  108. // { // RANDOM SPHERES
  109. // for(let i = 0; i < 2000; i++){
  110. // let color =
  111. // ((Math.random() * 255) << 16) |
  112. // ((Math.random() * 255) << 8) |
  113. // ((Math.random() * 255) << 0);
  114. // let sm = new THREE.MeshBasicMaterial({color: color});
  115. // let sphere = new THREE.Mesh(sg, sm);
  116. // sphere.position.set(
  117. // 100 * Math.random() - 50,
  118. // 100 * Math.random() - 50,
  119. // 2);
  120. // sphere.scale.set(3, 3, 3);
  121. // viewer.scene.scene.add(sphere);
  122. // sphere.frustumCulled = false;
  123. // }
  124. // }
  125. // }
  126. </script>
  127. </body>
  128. </html>