@xeokit/xeokit-sdk 2.5.2-beta-10 → 2.5.2-beta-13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. package/dist/xeokit-sdk.cjs.js +146 -132
  2. package/dist/xeokit-sdk.es.js +146 -132
  3. package/dist/xeokit-sdk.es5.js +84 -84
  4. package/dist/xeokit-sdk.min.cjs.js +1 -1
  5. package/dist/xeokit-sdk.min.es.js +1 -1
  6. package/dist/xeokit-sdk.min.es5.js +1 -1
  7. package/package.json +1 -1
  8. package/src/src/extras/ContextMenu/ContextMenu.js +907 -0
  9. package/src/src/extras/ContextMenu/index.js +1 -0
  10. package/src/src/extras/MarqueePicker/MarqueePicker.js +352 -0
  11. package/src/src/extras/MarqueePicker/MarqueePickerMouseControl.js +174 -0
  12. package/src/src/extras/MarqueePicker/index.js +2 -0
  13. package/src/src/extras/PointerLens/PointerLens.js +312 -0
  14. package/src/src/extras/PointerLens/index.js +1 -0
  15. package/src/src/extras/collision/ObjectsKdTree3.js +149 -0
  16. package/src/src/extras/collision/index.js +1 -0
  17. package/src/src/extras/index.js +4 -0
  18. package/src/src/index.js +3 -0
  19. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +731 -0
  20. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +84 -0
  21. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsMouseControl.js +435 -0
  22. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +406 -0
  23. package/src/src/plugins/AngleMeasurementsPlugin/index.js +3 -0
  24. package/src/src/plugins/AnnotationsPlugin/Annotation.js +368 -0
  25. package/src/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +583 -0
  26. package/src/src/plugins/AnnotationsPlugin/index.js +1 -0
  27. package/src/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
  28. package/src/src/plugins/AxisGizmoPlugin/index.js +1 -0
  29. package/src/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +977 -0
  30. package/src/src/plugins/BCFViewpointsPlugin/index.js +1 -0
  31. package/src/src/plugins/CityJSONLoaderPlugin/CityJSONDefaultDataSource.js +29 -0
  32. package/src/src/plugins/CityJSONLoaderPlugin/CityJSONLoaderPlugin.js +751 -0
  33. package/src/src/plugins/CityJSONLoaderPlugin/index.js +1 -0
  34. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +963 -0
  35. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +84 -0
  36. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsMouseControl.js +399 -0
  37. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +505 -0
  38. package/src/src/plugins/DistanceMeasurementsPlugin/index.js +3 -0
  39. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesControl.js +639 -0
  40. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesPlugin.js +436 -0
  41. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Overview.js +247 -0
  42. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Plane.js +167 -0
  43. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/index.js +1 -0
  44. package/src/src/plugins/FastNavPlugin/FastNavPlugin.js +429 -0
  45. package/src/src/plugins/FastNavPlugin/index.js +1 -0
  46. package/src/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +140 -0
  47. package/src/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +421 -0
  48. package/src/src/plugins/GLTFLoaderPlugin/GLTFSceneModelLoader.js +669 -0
  49. package/src/src/plugins/GLTFLoaderPlugin/index.js +2 -0
  50. package/src/src/plugins/LASLoaderPlugin/LASDefaultDataSource.js +58 -0
  51. package/src/src/plugins/LASLoaderPlugin/LASLoaderPlugin.js +563 -0
  52. package/src/src/plugins/LASLoaderPlugin/index.js +1 -0
  53. package/src/src/plugins/LASLoaderPlugin/loadLASHeader.js +183 -0
  54. package/src/src/plugins/NavCubePlugin/CubeTextureCanvas.js +290 -0
  55. package/src/src/plugins/NavCubePlugin/NavCubePlugin.js +753 -0
  56. package/src/src/plugins/NavCubePlugin/index.js +1 -0
  57. package/src/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
  58. package/src/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
  59. package/src/src/plugins/OBJLoaderPlugin/index.js +1 -0
  60. package/src/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
  61. package/src/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +274 -0
  62. package/src/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
  63. package/src/src/plugins/STLLoaderPlugin/index.js +2 -0
  64. package/src/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
  65. package/src/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
  66. package/src/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
  67. package/src/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +404 -0
  68. package/src/src/plugins/SectionPlanesPlugin/index.js +1 -0
  69. package/src/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
  70. package/src/src/plugins/SkyboxesPlugin/index.js +1 -0
  71. package/src/src/plugins/StoreyViewsPlugin/Storey.js +84 -0
  72. package/src/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
  73. package/src/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +773 -0
  74. package/src/src/plugins/StoreyViewsPlugin/index.js +1 -0
  75. package/src/src/plugins/TreeViewPlugin/RenderService.js +169 -0
  76. package/src/src/plugins/TreeViewPlugin/TreeViewNode.js +101 -0
  77. package/src/src/plugins/TreeViewPlugin/TreeViewPlugin.js +1370 -0
  78. package/src/src/plugins/TreeViewPlugin/index.js +1 -0
  79. package/src/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
  80. package/src/src/plugins/ViewCullPlugin/index.js +1 -0
  81. package/src/src/plugins/WebIFCLoaderPlugin/WebIFCDefaultDataSource.js +58 -0
  82. package/src/src/plugins/WebIFCLoaderPlugin/WebIFCLoaderPlugin.js +942 -0
  83. package/src/src/plugins/WebIFCLoaderPlugin/index.js +1 -0
  84. package/src/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +95 -0
  85. package/src/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +1194 -0
  86. package/src/src/plugins/XKTLoaderPlugin/index.js +2 -0
  87. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +169 -0
  88. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV10.js +660 -0
  89. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV11.js +663 -0
  90. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +230 -0
  91. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +223 -0
  92. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +283 -0
  93. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +246 -0
  94. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
  95. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +439 -0
  96. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +563 -0
  97. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV9.js +518 -0
  98. package/src/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +2 -0
  99. package/src/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
  100. package/src/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
  101. package/src/src/plugins/XML3DLoaderPlugin/index.js +1 -0
  102. package/src/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
  103. package/src/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
  104. package/src/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
  105. package/src/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
  106. package/src/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
  107. package/src/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
  108. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
  109. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
  110. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
  111. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
  112. package/src/src/plugins/index.js +21 -0
  113. package/src/src/plugins/lib/culling/ObjectCullStates.js +208 -0
  114. package/src/src/plugins/lib/earcut.js +677 -0
  115. package/src/src/plugins/lib/html/Dot.js +179 -0
  116. package/src/src/plugins/lib/html/Label.js +174 -0
  117. package/src/src/plugins/lib/html/Wire.js +220 -0
  118. package/src/src/viewer/Configs.js +127 -0
  119. package/src/src/viewer/Plugin.js +233 -0
  120. package/src/src/viewer/Viewer.js +542 -0
  121. package/src/src/viewer/index.js +5 -0
  122. package/src/src/viewer/localization/LocaleService.js +475 -0
  123. package/src/src/viewer/metadata/IFCObjectDefaultColors.js +163 -0
  124. package/src/src/viewer/metadata/IFCObjectDefaults.js +17 -0
  125. package/src/src/viewer/metadata/MetaModel.js +414 -0
  126. package/src/src/viewer/metadata/MetaObject.js +223 -0
  127. package/src/src/viewer/metadata/MetaScene.js +336 -0
  128. package/src/src/viewer/metadata/Property.js +55 -0
  129. package/src/src/viewer/metadata/PropertySet.js +77 -0
  130. package/src/src/viewer/scene/Bitmap/Bitmap.js +473 -0
  131. package/src/src/viewer/scene/Bitmap/index.js +1 -0
  132. package/src/src/viewer/scene/CameraControl/CameraControl.js +1750 -0
  133. package/src/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
  134. package/src/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
  135. package/src/src/viewer/scene/CameraControl/lib/controllers/PickController.js +265 -0
  136. package/src/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +384 -0
  137. package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
  138. package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +183 -0
  139. package/src/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
  140. package/src/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +345 -0
  141. package/src/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +376 -0
  142. package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +288 -0
  143. package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +235 -0
  144. package/src/src/viewer/scene/Component.js +915 -0
  145. package/src/src/viewer/scene/Entity.js +502 -0
  146. package/src/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
  147. package/src/src/viewer/scene/ImagePlane/index.js +1 -0
  148. package/src/src/viewer/scene/LineSet/LineSet.js +163 -0
  149. package/src/src/viewer/scene/LineSet/index.js +1 -0
  150. package/src/src/viewer/scene/camera/Camera.js +912 -0
  151. package/src/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
  152. package/src/src/viewer/scene/camera/CameraPath.js +194 -0
  153. package/src/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
  154. package/src/src/viewer/scene/camera/CustomProjection.js +149 -0
  155. package/src/src/viewer/scene/camera/Frustum.js +316 -0
  156. package/src/src/viewer/scene/camera/Ortho.js +286 -0
  157. package/src/src/viewer/scene/camera/Perspective.js +304 -0
  158. package/src/src/viewer/scene/camera/index.js +2 -0
  159. package/src/src/viewer/scene/canvas/Canvas.js +490 -0
  160. package/src/src/viewer/scene/canvas/Spinner.js +323 -0
  161. package/src/src/viewer/scene/constants/constants.js +371 -0
  162. package/src/src/viewer/scene/core.js +268 -0
  163. package/src/src/viewer/scene/geometry/Geometry.js +33 -0
  164. package/src/src/viewer/scene/geometry/ReadableGeometry.js +682 -0
  165. package/src/src/viewer/scene/geometry/VBOGeometry.js +319 -0
  166. package/src/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
  167. package/src/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
  168. package/src/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
  169. package/src/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
  170. package/src/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
  171. package/src/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
  172. package/src/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
  173. package/src/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
  174. package/src/src/viewer/scene/geometry/builders/index.js +8 -0
  175. package/src/src/viewer/scene/geometry/index.js +4 -0
  176. package/src/src/viewer/scene/geometry/loaders/index.js +2 -0
  177. package/src/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
  178. package/src/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
  179. package/src/src/viewer/scene/index.js +21 -0
  180. package/src/src/viewer/scene/input/Input.js +1333 -0
  181. package/src/src/viewer/scene/libs/k3d.js +1032 -0
  182. package/src/src/viewer/scene/lights/AmbientLight.js +175 -0
  183. package/src/src/viewer/scene/lights/CubeTexture.js +156 -0
  184. package/src/src/viewer/scene/lights/DirLight.js +314 -0
  185. package/src/src/viewer/scene/lights/Light.js +29 -0
  186. package/src/src/viewer/scene/lights/LightMap.js +77 -0
  187. package/src/src/viewer/scene/lights/PointLight.js +395 -0
  188. package/src/src/viewer/scene/lights/ReflectionMap.js +79 -0
  189. package/src/src/viewer/scene/lights/Shadow.js +138 -0
  190. package/src/src/viewer/scene/lights/index.js +5 -0
  191. package/src/src/viewer/scene/marker/Marker.js +383 -0
  192. package/src/src/viewer/scene/marker/SpriteMarker.js +356 -0
  193. package/src/src/viewer/scene/marker/index.js +2 -0
  194. package/src/src/viewer/scene/materials/EdgeMaterial.js +359 -0
  195. package/src/src/viewer/scene/materials/EmphasisMaterial.js +613 -0
  196. package/src/src/viewer/scene/materials/Fresnel.js +222 -0
  197. package/src/src/viewer/scene/materials/LambertMaterial.js +378 -0
  198. package/src/src/viewer/scene/materials/LinesMaterial.js +169 -0
  199. package/src/src/viewer/scene/materials/Material.js +39 -0
  200. package/src/src/viewer/scene/materials/MetallicMaterial.js +820 -0
  201. package/src/src/viewer/scene/materials/PhongMaterial.js +860 -0
  202. package/src/src/viewer/scene/materials/PointsMaterial.js +409 -0
  203. package/src/src/viewer/scene/materials/SpecularMaterial.js +807 -0
  204. package/src/src/viewer/scene/materials/Texture.js +513 -0
  205. package/src/src/viewer/scene/materials/index.js +8 -0
  206. package/src/src/viewer/scene/math/Frustum.js +118 -0
  207. package/src/src/viewer/scene/math/buildEdgeIndices.js +162 -0
  208. package/src/src/viewer/scene/math/geometryCompressionUtils.js +365 -0
  209. package/src/src/viewer/scene/math/index.js +3 -0
  210. package/src/src/viewer/scene/math/math.js +5386 -0
  211. package/src/src/viewer/scene/math/rtcCoords.js +139 -0
  212. package/src/src/viewer/scene/mementos/CameraMemento.js +200 -0
  213. package/src/src/viewer/scene/mementos/ModelMemento.js +263 -0
  214. package/src/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
  215. package/src/src/viewer/scene/mementos/index.js +3 -0
  216. package/src/src/viewer/scene/mesh/Mesh.js +2202 -0
  217. package/src/src/viewer/scene/mesh/draw/DrawRenderer.js +996 -0
  218. package/src/src/viewer/scene/mesh/draw/DrawShaderSource.js +1570 -0
  219. package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +259 -0
  220. package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +159 -0
  221. package/src/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +286 -0
  222. package/src/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +262 -0
  223. package/src/src/viewer/scene/mesh/index.js +1 -0
  224. package/src/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +217 -0
  225. package/src/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +157 -0
  226. package/src/src/viewer/scene/mesh/pick/PickMeshRenderer.js +223 -0
  227. package/src/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +151 -0
  228. package/src/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +200 -0
  229. package/src/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +124 -0
  230. package/src/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
  231. package/src/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +98 -0
  232. package/src/src/viewer/scene/metriqs/Metriqs.js +259 -0
  233. package/src/src/viewer/scene/model/ENTITY_FLAGS.js +21 -0
  234. package/src/src/viewer/scene/model/PerformanceModel.js +26 -0
  235. package/src/src/viewer/scene/model/RENDER_PASSES.js +34 -0
  236. package/src/src/viewer/scene/model/SceneModel.js +4018 -0
  237. package/src/src/viewer/scene/model/SceneModelEntity.js +715 -0
  238. package/src/src/viewer/scene/model/SceneModelMesh.js +341 -0
  239. package/src/src/viewer/scene/model/SceneModelTexture.js +38 -0
  240. package/src/src/viewer/scene/model/SceneModelTextureSet.js +59 -0
  241. package/src/src/viewer/scene/model/SceneModelTransform.js +404 -0
  242. package/src/src/viewer/scene/model/VBOSceneModel.js +26 -0
  243. package/src/src/viewer/scene/model/calculateUniquePositions.js +126 -0
  244. package/src/src/viewer/scene/model/compression.js +227 -0
  245. package/src/src/viewer/scene/model/dtx/BindableDataTexture.js +31 -0
  246. package/src/src/viewer/scene/model/dtx/lines/DTXLinesBuffer.js +27 -0
  247. package/src/src/viewer/scene/model/dtx/lines/DTXLinesLayer.js +891 -0
  248. package/src/src/viewer/scene/model/dtx/lines/DTXLinesState.js +46 -0
  249. package/src/src/viewer/scene/model/dtx/lines/DTXLinesTextureFactory.js +411 -0
  250. package/src/src/viewer/scene/model/dtx/lines/dataTextureRamStats.js +49 -0
  251. package/src/src/viewer/scene/model/dtx/lines/rebucketPositions.js +208 -0
  252. package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesColorRenderer.js +389 -0
  253. package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesRenderers.js +65 -0
  254. package/src/src/viewer/scene/model/dtx/triangles/DTXTrianglesLayer.js +1322 -0
  255. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesBuffer.js +46 -0
  256. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesState.js +250 -0
  257. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesTextureFactory.js +518 -0
  258. package/src/src/viewer/scene/model/dtx/triangles/lib/dataTextureRamStats.js +54 -0
  259. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesColorRenderer.js +619 -0
  260. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesDepthRenderer.js +464 -0
  261. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesColorRenderer.js +414 -0
  262. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesRenderer.js +422 -0
  263. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesNormalsRenderer.js +345 -0
  264. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesOcclusionRenderer.js +436 -0
  265. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickDepthRenderer.js +462 -0
  266. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickMeshRenderer.js +436 -0
  267. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsFlatRenderer.js +455 -0
  268. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsRenderer.js +440 -0
  269. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesRenderers.js +307 -0
  270. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSilhouetteRenderer.js +465 -0
  271. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapInitRenderer.js +466 -0
  272. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapRenderer.js +427 -0
  273. package/src/src/viewer/scene/model/index.js +5 -0
  274. package/src/src/viewer/scene/model/rebucketPositions.js +354 -0
  275. package/src/src/viewer/scene/model/vbo/ScratchMemory.js +63 -0
  276. package/src/src/viewer/scene/model/vbo/VBORenderer.js +646 -0
  277. package/src/src/viewer/scene/model/vbo/batching/lines/VBOBatchingLinesLayer.js +699 -0
  278. package/src/src/viewer/scene/model/vbo/batching/lines/lib/VBOBatchingLinesBuffer.js +19 -0
  279. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLineSnapInitRenderer.js +316 -0
  280. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesColorRenderer.js +114 -0
  281. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesRenderers.js +99 -0
  282. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSilhouetteRenderer.js +124 -0
  283. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapInitRenderer.js +311 -0
  284. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapRenderer.js +309 -0
  285. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOSceneModelLineBatchingRenderer.js +24 -0
  286. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsBuffer.js +20 -0
  287. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsLayer.js +718 -0
  288. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsRenderer.js +24 -0
  289. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsColorRenderer.js +168 -0
  290. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsOcclusionRenderer.js +136 -0
  291. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickDepthRenderer.js +156 -0
  292. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickMeshRenderer.js +148 -0
  293. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsRenderers.js +144 -0
  294. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsShadowRenderer.js +107 -0
  295. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSilhouetteRenderer.js +146 -0
  296. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapInitRenderer.js +309 -0
  297. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapRenderer.js +303 -0
  298. package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesBuffer.js +24 -0
  299. package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +1257 -0
  300. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesEdgesColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js} +6 -2
  301. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesEdgesRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js} +6 -4
  302. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +12 -0
  303. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesRenderers.js → src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js} +45 -45
  304. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js} +4 -3
  305. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js} +2 -2
  306. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesColorTextureRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js} +2 -2
  307. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesDepthRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js} +2 -2
  308. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesFlatColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js} +2 -2
  309. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesNormalsRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js} +2 -2
  310. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesOcclusionRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js} +2 -2
  311. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPBRRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js} +2 -2
  312. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickDepthRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js} +2 -2
  313. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickMeshRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js} +2 -2
  314. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickNormalsFlatRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js} +2 -2
  315. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickNormalsRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js} +2 -2
  316. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesShadowRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js} +2 -2
  317. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSilhouetteRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js} +3 -3
  318. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSnapInitRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js} +1 -1
  319. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSnapRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js} +1 -1
  320. package/src/src/viewer/scene/model/vbo/float16.js +760 -0
  321. package/src/src/viewer/scene/model/vbo/instancing/lines/VBOInstancingLinesLayer.js +704 -0
  322. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesColorRenderer.js +148 -0
  323. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderer.js +26 -0
  324. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderers.js +139 -0
  325. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSilhouetteRenderer.js +127 -0
  326. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapInitRenderer.js +331 -0
  327. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapRenderer.js +316 -0
  328. package/src/src/viewer/scene/model/vbo/instancing/points/VBOInstancingPointsLayer.js +728 -0
  329. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsColorRenderer.js +174 -0
  330. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsDepthRenderer.js +156 -0
  331. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsOcclusionRenderer.js +149 -0
  332. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickDepthRenderer.js +170 -0
  333. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickMeshRenderer.js +152 -0
  334. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderer.js +26 -0
  335. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderers.js +174 -0
  336. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsShadowRenderer.js +119 -0
  337. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSilhouetteRenderer.js +154 -0
  338. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapInitRenderer.js +330 -0
  339. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapRenderer.js +311 -0
  340. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingTrianglesRenderer.js +150 -0
  341. package/src/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +1190 -0
  342. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesEdgesColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js} +8 -4
  343. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesEdgesRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js} +8 -5
  344. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +12 -0
  345. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesRenderers.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js} +45 -45
  346. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js} +3 -3
  347. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesColorTextureRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js} +2 -2
  348. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesDepthRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js} +2 -2
  349. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesFlatColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js} +2 -2
  350. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesFlatNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js} +2 -2
  351. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOSceneModelTriangleInstancingRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js} +1 -1
  352. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js} +2 -2
  353. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesOcclusionRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js} +2 -2
  354. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPBRRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js} +2 -2
  355. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickDepthRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js} +2 -2
  356. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickMeshRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js} +2 -2
  357. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickNormalsFlatRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js} +2 -2
  358. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js} +2 -2
  359. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesShadowRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js} +2 -2
  360. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSilhouetteRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js} +2 -2
  361. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSnapInitRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js} +1 -1
  362. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSnapRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js} +1 -1
  363. package/src/src/viewer/scene/nodes/Node.js +1383 -0
  364. package/src/src/viewer/scene/nodes/index.js +1 -0
  365. package/src/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
  366. package/src/src/viewer/scene/paths/Curve.js +183 -0
  367. package/src/src/viewer/scene/paths/Path.js +239 -0
  368. package/src/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
  369. package/src/src/viewer/scene/paths/SplineCurve.js +133 -0
  370. package/src/src/viewer/scene/paths/index.js +5 -0
  371. package/src/src/viewer/scene/postfx/SAO.js +543 -0
  372. package/src/src/viewer/scene/scene/Scene.js +2802 -0
  373. package/src/src/viewer/scene/sectionPlane/SectionPlane.js +198 -0
  374. package/src/src/viewer/scene/sectionPlane/SectionPlaneCache.js +101 -0
  375. package/src/src/viewer/scene/sectionPlane/index.js +1 -0
  376. package/src/src/viewer/scene/skybox/Skybox.js +123 -0
  377. package/src/src/viewer/scene/skybox/index.js +1 -0
  378. package/src/src/viewer/scene/stats.js +44 -0
  379. package/src/src/viewer/scene/utils/Cache.js +29 -0
  380. package/src/src/viewer/scene/utils/FileLoader.js +161 -0
  381. package/src/src/viewer/scene/utils/Loader.js +55 -0
  382. package/src/src/viewer/scene/utils/LoadingManager.js +86 -0
  383. package/src/src/viewer/scene/utils/Map.js +45 -0
  384. package/src/src/viewer/scene/utils/Queue.js +56 -0
  385. package/src/src/viewer/scene/utils/WorkerPool.js +73 -0
  386. package/src/src/viewer/scene/utils/index.js +6 -0
  387. package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/KTX2TextureTranscoder.js +650 -0
  388. package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/index.js +1 -0
  389. package/src/src/viewer/scene/utils/textureTranscoders/TextureTranscoder.js +31 -0
  390. package/src/src/viewer/scene/utils/textureTranscoders/index.js +2 -0
  391. package/src/src/viewer/scene/utils.js +453 -0
  392. package/src/src/viewer/scene/viewport/Viewport.js +212 -0
  393. package/src/src/viewer/scene/webgl/ArrayBuf.js +121 -0
  394. package/src/src/viewer/scene/webgl/Attribute.js +23 -0
  395. package/src/src/viewer/scene/webgl/Drawable.js +270 -0
  396. package/src/src/viewer/scene/webgl/FrameContext.js +313 -0
  397. package/src/src/viewer/scene/webgl/PickResult.js +364 -0
  398. package/src/src/viewer/scene/webgl/Pickable.js +69 -0
  399. package/src/src/viewer/scene/webgl/Program.js +181 -0
  400. package/src/src/viewer/scene/webgl/RenderBuffer.js +378 -0
  401. package/src/src/viewer/scene/webgl/RenderBufferManager.js +34 -0
  402. package/src/src/viewer/scene/webgl/RenderFlags.js +203 -0
  403. package/src/src/viewer/scene/webgl/RenderState.js +40 -0
  404. package/src/src/viewer/scene/webgl/Renderer.js +1781 -0
  405. package/src/src/viewer/scene/webgl/Sampler.js +18 -0
  406. package/src/src/viewer/scene/webgl/Shader.js +49 -0
  407. package/src/src/viewer/scene/webgl/Texture2D.js +442 -0
  408. package/src/src/viewer/scene/webgl/convertConstant.js +244 -0
  409. package/src/src/viewer/scene/webgl/getExtension.js +32 -0
  410. package/src/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
  411. package/src/src/viewer/scene/webgl/occlusion/OcclusionTester.js +426 -0
  412. package/src/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +324 -0
  413. package/src/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +376 -0
  414. package/src/src/viewer/scene/webgl/webglEnums.js +61 -0
  415. package/src/src/viewer/scene/webglInfo.js +47 -0
  416. package/src/viewer/scene/model/SceneModel.js +1 -1
  417. package/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +1 -1
  418. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js +131 -0
  419. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js +135 -0
  420. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +12 -0
  421. package/src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js +375 -0
  422. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js +34 -0
  423. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js +238 -0
  424. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js +270 -0
  425. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js +126 -0
  426. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js +235 -0
  427. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js +139 -0
  428. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js +125 -0
  429. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js +561 -0
  430. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js +144 -0
  431. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js +130 -0
  432. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +121 -0
  433. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js +131 -0
  434. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js +107 -0
  435. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js +136 -0
  436. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js +311 -0
  437. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js +308 -0
  438. package/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +1 -1
  439. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js +136 -0
  440. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js +137 -0
  441. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +12 -0
  442. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js +376 -0
  443. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js +253 -0
  444. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js +278 -0
  445. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js +126 -0
  446. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js +244 -0
  447. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js +130 -0
  448. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js +29 -0
  449. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js +138 -0
  450. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js +128 -0
  451. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js +561 -0
  452. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js +149 -0
  453. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js +136 -0
  454. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +130 -0
  455. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js +145 -0
  456. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js +113 -0
  457. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js +139 -0
  458. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js +342 -0
  459. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js +325 -0
  460. package/src/viewer/scene/webgl/Renderer.js +20 -19
  461. package/src/viewer/scene/model/vbo/batching/triangles/renderers/VBOSceneModelTriangleBatchingEdgesRenderer.js +0 -12
  462. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/VBOSceneModelTriangleInstancingEdgesRenderer.js +0 -12
@@ -0,0 +1,436 @@
1
+ import {math} from "../../viewer/scene/math/math.js";
2
+ import {Plugin} from "../../viewer/Plugin.js";
3
+ import {SectionPlane} from "../../viewer/scene/sectionPlane/SectionPlane.js";
4
+ import {FaceAlignedSectionPlanesControl} from "./FaceAlignedSectionPlanesControl.js";
5
+ import {Overview} from "./Overview.js";
6
+
7
+ const tempAABB = math.AABB3();
8
+ const tempVec3 = math.vec3();
9
+
10
+ /**
11
+ * FaceAlignedSectionPlanesPlugin is a {@link Viewer} plugin that creates and edits face-aligned {@link SectionPlane}s.
12
+ *
13
+ * [<img src="https://xeokit.github.io/xeokit-sdk/assets/images/FaceAlignedSectionPlanesPlugin.gif">](https://xeokit.github.io/xeokit-sdk/examples/#gizmos_FaceAlignedSectionPlanesPlugin)
14
+ *
15
+ * [[Run this example](https://xeokit.github.io/xeokit-sdk/examples/#gizmos_FaceAlignedSectionPlanesPlugin)]
16
+ *
17
+ * ## Overview
18
+ *
19
+ * * Use the FaceAlignedSectionPlanesPlugin to
20
+ * create and edit {@link SectionPlane}s to slice portions off your models and reveal internal structures.
21
+ *
22
+ * * As shown in the screen capture above, FaceAlignedSectionPlanesPlugin shows an overview of all your SectionPlanes (on the right, in
23
+ * this example).
24
+ * * Click a plane in the overview to activate a 3D control with which you can interactively
25
+ * reposition its SectionPlane in the main canvas.
26
+ * * Configure the plugin with an HTML element that the user can click-and-drag on to reposition the SectionPlane for which the control is active.
27
+ * * Use {@link BCFViewpointsPlugin} to save and load SectionPlanes in BCF viewpoints.
28
+ *
29
+ * ## Usage
30
+ *
31
+ * In the example below, we'll use a {@link GLTFLoaderPlugin} to load a model, and a FaceAlignedSectionPlanesPlugin
32
+ * to slice it open with two {@link SectionPlane}s. We'll show the overview in the bottom right of the Viewer
33
+ * canvas. Finally, we'll programmatically activate the 3D editing control, so that we can use it to interactively
34
+ * reposition our second SectionPlane.
35
+ *
36
+ * ````JavaScript
37
+ * import {Viewer, GLTFLoaderPlugin, FaceAlignedSectionPlanesPlugin} from "xeokit-sdk.es.js";
38
+ *
39
+ * // Create a Viewer and arrange its Camera
40
+ *
41
+ * const viewer = new Viewer({
42
+ * canvasId: "myCanvas"
43
+ * });
44
+ *
45
+ * viewer.camera.eye = [-5.02, 2.22, 15.09];
46
+ * viewer.camera.look = [4.97, 2.79, 9.89];
47
+ * viewer.camera.up = [-0.05, 0.99, 0.02];
48
+ *
49
+ * // Add a GLTFLoaderPlugin
50
+ *
51
+ * const gltfLoader = new GLTFLoaderPlugin(viewer);
52
+ *
53
+ * // Add a FaceAlignedSectionPlanesPlugin, with overview visible
54
+ *
55
+ * const faceAlignedSectionPlanes = new FaceAlignedSectionPlanesPlugin(viewer, {
56
+ * overviewCanvasID: "myOverviewCanvas",
57
+ * overviewVisible: true,
58
+ * controlElementId: "myControlElement", // ID of element to capture drag events that move the SectionPlane
59
+ * dragSensitivity: 1 // Sensitivity factor that governs the rate at which dragging moves the SectionPlane
60
+ * });
61
+ *
62
+ * // Load a model
63
+ *
64
+ * const model = gltfLoader.load({
65
+ * id: "myModel",
66
+ * src: "./models/gltf/schependomlaan/scene.glb"
67
+ * });
68
+ *
69
+ * // Create a couple of section planes
70
+ * // These will be shown in the overview
71
+ *
72
+ * faceAlignedSectionPlanes.createSectionPlane({
73
+ * id: "mySectionPlane",
74
+ * pos: [1.04, 1.95, 9.74],
75
+ * dir: [1.0, 0.0, 0.0]
76
+ * });
77
+ *
78
+ * faceAlignedSectionPlanes.createSectionPlane({
79
+ * id: "mySectionPlane2",
80
+ * pos: [2.30, 4.46, 14.93],
81
+ * dir: [0.0, -0.09, -0.79]
82
+ * });
83
+ *
84
+ * // Show the FaceAlignedSectionPlanesPlugin's 3D editing gizmo,
85
+ * // to interactively reposition one of our SectionPlanes
86
+ *
87
+ * faceAlignedSectionPlanes.showControl("mySectionPlane2");
88
+ *
89
+ * const mySectionPlane2 = faceAlignedSectionPlanes.sectionPlanes["mySectionPlane2"];
90
+ *
91
+ * // Programmatically reposition one of our SectionPlanes
92
+ * // This also updates its position as shown in the overview gizmo
93
+ *
94
+ * mySectionPlane2.pos = [11.0, 6.0, -12];
95
+ * mySectionPlane2.dir = [0.4, 0.0, 0.5];
96
+ * ````
97
+ */
98
+ export class FaceAlignedSectionPlanesPlugin extends Plugin {
99
+
100
+ /**
101
+ * @constructor
102
+ * @param {Viewer} viewer The Viewer.
103
+ * @param {Object} cfg Plugin configuration.
104
+ * @param {String} [cfg.id="SectionPlanes"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.
105
+ * @param {String} [cfg.overviewCanvasId] ID of a canvas element to display the overview.
106
+ * @param {String} [cfg.overviewVisible=true] Initial visibility of the overview canvas.
107
+ * @param {String} cfg.controlElementId ID of an HTML element that catches drag events to move the active SectionPlane.
108
+ * @param {Number} [cfg.dragSensitivity=1] Sensitivity factor that governs the rate at which dragging on the control element moves SectionPlane.
109
+ */
110
+ constructor(viewer, cfg = {}) {
111
+
112
+ super("FaceAlignedSectionPlanesPlugin", viewer);
113
+
114
+ this._freeControls = [];
115
+ this._sectionPlanes = viewer.scene.sectionPlanes;
116
+ this._controls = {};
117
+ this._shownControlId = null;
118
+ this._dragSensitivity = cfg.dragSensitivity || 1;
119
+
120
+ if (cfg.overviewCanvasId !== null && cfg.overviewCanvasId !== undefined) {
121
+
122
+ const overviewCanvas = document.getElementById(cfg.overviewCanvasId);
123
+
124
+ if (!overviewCanvas) {
125
+ this.warn("Can't find overview canvas: '" + cfg.overviewCanvasId + "' - will create plugin without overview");
126
+
127
+ } else {
128
+
129
+ this._overview = new Overview(this, {
130
+ overviewCanvas: overviewCanvas,
131
+ visible: cfg.overviewVisible,
132
+
133
+ onHoverEnterPlane: ((id) => {
134
+ this._overview.setPlaneHighlighted(id, true);
135
+ }),
136
+
137
+ onHoverLeavePlane: ((id) => {
138
+ this._overview.setPlaneHighlighted(id, false);
139
+ }),
140
+
141
+ onClickedPlane: ((id) => {
142
+ if (this.getShownControl() === id) {
143
+ this.hideControl();
144
+ return;
145
+ }
146
+ this.showControl(id);
147
+ const sectionPlane = this.sectionPlanes[id];
148
+ const sectionPlanePos = sectionPlane.pos;
149
+ tempAABB.set(this.viewer.scene.aabb);
150
+ math.getAABB3Center(tempAABB, tempVec3);
151
+ tempAABB[0] += sectionPlanePos[0] - tempVec3[0];
152
+ tempAABB[1] += sectionPlanePos[1] - tempVec3[1];
153
+ tempAABB[2] += sectionPlanePos[2] - tempVec3[2];
154
+ tempAABB[3] += sectionPlanePos[0] - tempVec3[0];
155
+ tempAABB[4] += sectionPlanePos[1] - tempVec3[1];
156
+ tempAABB[5] += sectionPlanePos[2] - tempVec3[2];
157
+ this.viewer.cameraFlight.flyTo({
158
+ aabb: tempAABB,
159
+ fitFOV: 65
160
+ });
161
+ }),
162
+
163
+ onClickedNothing: (() => {
164
+ this.hideControl();
165
+ })
166
+ });
167
+ }
168
+ }
169
+
170
+ if (cfg.controlElementId === null || cfg.controlElementId === undefined) {
171
+ this.error("Parameter expected: controlElementId");
172
+ } else {
173
+ this._controlElement = document.getElementById(cfg.controlElementId);
174
+ if (!this._controlElement) {
175
+ this.warn("Can't find control element: '" + cfg.controlElementId + "' - will create plugin without control element");
176
+
177
+ }
178
+ }
179
+
180
+ this._onSceneSectionPlaneCreated = viewer.scene.on("sectionPlaneCreated", (sectionPlane) => {
181
+
182
+ // SectionPlane created, either via FaceAlignedSectionPlanesPlugin#createSectionPlane(), or by directly
183
+ // instantiating a SectionPlane independently of FaceAlignedSectionPlanesPlugin, which can be done
184
+ // by BCFViewpointsPlugin#loadViewpoint().
185
+
186
+ this._sectionPlaneCreated(sectionPlane);
187
+ });
188
+ }
189
+
190
+ /**
191
+ * Sets the factor that governs how fast a SectionPlane moves as we drag on the control element.
192
+ *
193
+ * @param {Number} dragSensitivity The dragging sensitivity factor.
194
+ */
195
+ setDragSensitivity(dragSensitivity) {
196
+ this._dragSensitivity = dragSensitivity || 1;
197
+ }
198
+
199
+ /**
200
+ * Gets the factor that governs how fast a SectionPlane moves as we drag on the control element.
201
+ *
202
+ * @return {Number} The dragging sensitivity factor.
203
+ */
204
+ getDragSensitivity() {
205
+ return this._dragSensitivity;
206
+ }
207
+
208
+ /**
209
+ * Sets if the overview canvas is visible.
210
+ *
211
+ * @param {Boolean} visible Whether or not the overview canvas is visible.
212
+ */
213
+ setOverviewVisible(visible) {
214
+ if (this._overview) {
215
+ this._overview.setVisible(visible);
216
+ }
217
+ }
218
+
219
+ /**
220
+ * Gets if the overview canvas is visible.
221
+ *
222
+ * @return {Boolean} True when the overview canvas is visible.
223
+ */
224
+ getOverviewVisible() {
225
+ if (this._overview) {
226
+ return this._overview.getVisible();
227
+ }
228
+ }
229
+
230
+ /**
231
+ * Returns a map of the {@link SectionPlane}s created by this FaceAlignedSectionPlanesPlugin.
232
+ *
233
+ * @returns {{String:SectionPlane}} A map containing the {@link SectionPlane}s, each mapped to its {@link SectionPlane#id}.
234
+ */
235
+ get sectionPlanes() {
236
+ return this._sectionPlanes;
237
+ }
238
+
239
+ /**
240
+ * Creates a {@link SectionPlane}.
241
+ *
242
+ * The {@link SectionPlane} will be registered by {@link SectionPlane#id} in {@link FaceAlignedSectionPlanesPlugin#sectionPlanes}.
243
+ *
244
+ * @param {Object} params {@link SectionPlane} configuration.
245
+ * @param {String} [params.id] Unique ID to assign to the {@link SectionPlane}. Must be unique among all components in the {@link Viewer}'s {@link Scene}. Auto-generated when omitted.
246
+ * @param {Number[]} [params.pos=[0,0,0]] World-space position of the {@link SectionPlane}.
247
+ * @param {Number[]} [params.dir=[0,0,-1]] World-space vector indicating the orientation of the {@link SectionPlane}.
248
+ * @param {Boolean} [params.active=true] Whether the {@link SectionPlane} is initially active. Only clips while this is true.
249
+ * @returns {SectionPlane} The new {@link SectionPlane}.
250
+ */
251
+ createSectionPlane(params = {}) {
252
+
253
+ if (params.id !== undefined && params.id !== null && this.viewer.scene.components[params.id]) {
254
+ this.error("Viewer component with this ID already exists: " + params.id);
255
+ delete params.id;
256
+ }
257
+
258
+ // Note that SectionPlane constructor fires "sectionPlaneCreated" on the Scene,
259
+ // which FaceAlignedSectionPlanesPlugin handles and calls #_sectionPlaneCreated to create gizmo and add to overview canvas.
260
+
261
+ const sectionPlane = new SectionPlane(this.viewer.scene, {
262
+ id: params.id,
263
+ pos: params.pos,
264
+ dir: params.dir,
265
+ active: true || params.active
266
+ });
267
+ return sectionPlane;
268
+ }
269
+
270
+ _sectionPlaneCreated(sectionPlane) {
271
+ const control = (this._freeControls.length > 0) ? this._freeControls.pop() : new FaceAlignedSectionPlanesControl(this);
272
+ control._setSectionPlane(sectionPlane);
273
+ control.setVisible(false);
274
+ this._controls[sectionPlane.id] = control;
275
+ if (this._overview) {
276
+ this._overview.addSectionPlane(sectionPlane);
277
+ }
278
+ sectionPlane.once("destroyed", () => {
279
+ this._sectionPlaneDestroyed(sectionPlane);
280
+ });
281
+ }
282
+
283
+ /**
284
+ * Inverts the direction of {@link SectionPlane#dir} on every existing SectionPlane.
285
+ *
286
+ * Inverts all SectionPlanes, including those that were not created with FaceAlignedSectionPlanesPlugin.
287
+ */
288
+ flipSectionPlanes() {
289
+ const sectionPlanes = this.viewer.scene.sectionPlanes;
290
+ for (let id in sectionPlanes) {
291
+ const sectionPlane = sectionPlanes[id];
292
+ sectionPlane.flipDir();
293
+ }
294
+ }
295
+
296
+ /**
297
+ * Shows the 3D editing gizmo for a {@link SectionPlane}.
298
+ *
299
+ * @param {String} id ID of the {@link SectionPlane}.
300
+ */
301
+ showControl(id) {
302
+ const control = this._controls[id];
303
+ if (!control) {
304
+ this.error("Control not found: " + id);
305
+ return;
306
+ }
307
+ this.hideControl();
308
+ control.setVisible(true);
309
+ if (this._overview) {
310
+ this._overview.setPlaneSelected(id, true);
311
+ }
312
+ this._shownControlId = id;
313
+ }
314
+
315
+ /**
316
+ * Gets the ID of the {@link SectionPlane} that the 3D editing gizmo is shown for.
317
+ *
318
+ * Returns ````null```` when the editing gizmo is not shown.
319
+ *
320
+ * @returns {String} ID of the the {@link SectionPlane} that the 3D editing gizmo is shown for, if shown, else ````null````.
321
+ */
322
+ getShownControl() {
323
+ return this._shownControlId;
324
+ }
325
+
326
+ /**
327
+ * Hides the 3D {@link SectionPlane} editing gizmo if shown.
328
+ */
329
+ hideControl() {
330
+ for (let id in this._controls) {
331
+ if (this._controls.hasOwnProperty(id)) {
332
+ this._controls[id].setVisible(false);
333
+ if (this._overview) {
334
+ this._overview.setPlaneSelected(id, false);
335
+ }
336
+ }
337
+ }
338
+ this._shownControlId = null;
339
+ }
340
+
341
+ /**
342
+ * Destroys a {@link SectionPlane} created by this FaceAlignedSectionPlanesPlugin.
343
+ *
344
+ * @param {String} id ID of the {@link SectionPlane}.
345
+ */
346
+ destroySectionPlane(id) {
347
+ let sectionPlane = this.viewer.scene.sectionPlanes[id];
348
+ if (!sectionPlane) {
349
+ this.error("SectionPlane not found: " + id);
350
+ return;
351
+ }
352
+ this._sectionPlaneDestroyed(sectionPlane);
353
+ sectionPlane.destroy();
354
+
355
+ if (id === this._shownControlId) {
356
+ this._shownControlId = null;
357
+ }
358
+ }
359
+
360
+ _sectionPlaneDestroyed(sectionPlane) {
361
+ if (this._overview) {
362
+ this._overview.removeSectionPlane(sectionPlane);
363
+ }
364
+ const control = this._controls[sectionPlane.id];
365
+ if (!control) {
366
+ return;
367
+ }
368
+ control.setVisible(false);
369
+ control._setSectionPlane(null);
370
+ delete this._controls[sectionPlane.id];
371
+ this._freeControls.push(control);
372
+ }
373
+
374
+ /**
375
+ * Destroys all {@link SectionPlane}s created by this FaceAlignedSectionPlanesPlugin.
376
+ */
377
+ clear() {
378
+ const ids = Object.keys(this._sectionPlanes);
379
+ for (let i = 0, len = ids.length; i < len; i++) {
380
+ this.destroySectionPlane(ids[i]);
381
+ }
382
+ }
383
+
384
+ /**
385
+ * @private
386
+ */
387
+ send(name, value) {
388
+ switch (name) {
389
+
390
+ case "snapshotStarting": // Viewer#getSnapshot() about to take snapshot - hide controls
391
+ for (let id in this._controls) {
392
+ if (this._controls.hasOwnProperty(id)) {
393
+ this._controls[id].setCulled(true);
394
+ }
395
+ }
396
+ break;
397
+
398
+ case "snapshotFinished": // Viewer#getSnapshot() finished taking snapshot - show controls again
399
+ for (let id in this._controls) {
400
+ if (this._controls.hasOwnProperty(id)) {
401
+ this._controls[id].setCulled(false);
402
+ }
403
+ }
404
+ break;
405
+
406
+ case "clearSectionPlanes":
407
+ this.clear();
408
+ break;
409
+ }
410
+ }
411
+
412
+ /**
413
+ * Destroys this FaceAlignedSectionPlanesPlugin.
414
+ *
415
+ * Also destroys each {@link SectionPlane} created by this FaceAlignedSectionPlanesPlugin.
416
+ *
417
+ * Does not destroy the canvas the FaceAlignedSectionPlanesPlugin was configured with.
418
+ */
419
+ destroy() {
420
+ this.clear();
421
+ if (this._overview) {
422
+ this._overview.destroy();
423
+ }
424
+ this._destroyFreeControls();
425
+ super.destroy();
426
+ }
427
+
428
+ _destroyFreeControls() {
429
+ let control = this._freeControls.pop();
430
+ while (control) {
431
+ control._destroy();
432
+ control = this._freeControls.pop();
433
+ }
434
+ this.viewer.scene.off(this._onSceneSectionPlaneCreated);
435
+ }
436
+ }
@@ -0,0 +1,247 @@
1
+ import {math} from "../../viewer/scene/math/math.js";
2
+ import {Scene} from "../../viewer/scene/scene/Scene.js";
3
+ import {DirLight} from "./../../viewer/scene/lights/DirLight.js";
4
+ import {Plane} from "./Plane.js";
5
+
6
+ /**
7
+ * @desc An interactive 3D overview for navigating the {@link SectionPlane}s created by its {@link FaceAlignedSectionPlanesPlugin}.
8
+ *
9
+ * * Located at {@link FaceAlignedSectionPlanesPlugin#overview}.
10
+ * * Renders the overview on a separate canvas at a corner of the {@link Viewer}'s {@link Scene} {@link Canvas}.
11
+ * * The overview shows a 3D plane object for each {@link SectionPlane} in the {@link Scene}.
12
+ * * Click a plane object in the overview to toggle the visibility of a 3D gizmo to edit the position and orientation of its {@link SectionPlane}.
13
+ *
14
+ * @private
15
+ */
16
+ export class Overview {
17
+
18
+ /**
19
+ * @private
20
+ */
21
+ constructor(plugin, cfg) {
22
+
23
+ if (!cfg.onHoverEnterPlane || !cfg.onHoverLeavePlane || !cfg.onClickedNothing || !cfg.onClickedPlane) {
24
+ throw "Missing config(s): onHoverEnterPlane, onHoverLeavePlane, onClickedNothing || onClickedPlane";
25
+ }
26
+
27
+ /**
28
+ * The {@link FaceAlignedSectionPlanesPlugin} that owns this SectionPlanesOverview.
29
+ *
30
+ * @type {FaceAlignedSectionPlanesPlugin}
31
+ */
32
+ this.plugin = plugin;
33
+
34
+ this._viewer = plugin.viewer;
35
+
36
+ this._onHoverEnterPlane = cfg.onHoverEnterPlane;
37
+ this._onHoverLeavePlane = cfg.onHoverLeavePlane;
38
+ this._onClickedNothing = cfg.onClickedNothing;
39
+ this._onClickedPlane = cfg.onClickedPlane;
40
+ this._visible = true;
41
+
42
+ this._planes = {};
43
+
44
+ //--------------------------------------------------------------------------------------------------------------
45
+ // Init canvas
46
+ //--------------------------------------------------------------------------------------------------------------
47
+
48
+ this._canvas = cfg.overviewCanvas;
49
+
50
+ //--------------------------------------------------------------------------------------------------------------
51
+ // Init scene
52
+ //--------------------------------------------------------------------------------------------------------------
53
+
54
+ this._scene = new Scene(this._viewer, {
55
+ canvasId: this._canvas.id,
56
+ transparent: true
57
+ });
58
+ this._scene.clearLights();
59
+ new DirLight(this._scene, {
60
+ dir: [0.4, -0.4, 0.8],
61
+ color: [0.8, 1.0, 1.0],
62
+ intensity: 1.0,
63
+ space: "view"
64
+ });
65
+ new DirLight(this._scene, {
66
+ dir: [-0.8, -0.3, -0.4],
67
+ color: [0.8, 0.8, 0.8],
68
+ intensity: 1.0,
69
+ space: "view"
70
+ });
71
+ new DirLight(this._scene, {
72
+ dir: [0.8, -0.6, -0.8],
73
+ color: [1.0, 1.0, 1.0],
74
+ intensity: 1.0,
75
+ space: "view"
76
+ });
77
+
78
+ this._scene.camera;
79
+ this._scene.camera.perspective.fov = 70;
80
+
81
+ this._zUp = false;
82
+
83
+ //--------------------------------------------------------------------------------------------------------------
84
+ // Synchronize overview scene camera with viewer camera
85
+ //--------------------------------------------------------------------------------------------------------------
86
+
87
+ {
88
+ const camera = this._scene.camera;
89
+ const matrix = math.rotationMat4c(-90 * math.DEGTORAD, 1, 0, 0);
90
+ const eyeLookVec = math.vec3();
91
+ const eyeLookVecOverview = math.vec3();
92
+ const upOverview = math.vec3();
93
+
94
+ this._synchCamera = () => {
95
+ const eye = this._viewer.camera.eye;
96
+ const look = this._viewer.camera.look;
97
+ const up = this._viewer.camera.up;
98
+ math.mulVec3Scalar(math.normalizeVec3(math.subVec3(eye, look, eyeLookVec)), 7);
99
+ if (this._zUp) { // +Z up
100
+ math.transformVec3(matrix, eyeLookVec, eyeLookVecOverview);
101
+ math.transformVec3(matrix, up, upOverview);
102
+ camera.look = [0, 0, 0];
103
+ camera.eye = math.transformVec3(matrix, eyeLookVec, eyeLookVecOverview);
104
+ camera.up = math.transformPoint3(matrix, up, upOverview);
105
+ } else { // +Y up
106
+ camera.look = [0, 0, 0];
107
+ camera.eye = eyeLookVec;
108
+ camera.up = up;
109
+ }
110
+ };
111
+ }
112
+
113
+ this._onViewerCameraMatrix = this._viewer.camera.on("matrix", this._synchCamera);
114
+
115
+ this._onViewerCameraWorldAxis = this._viewer.camera.on("worldAxis", this._synchCamera);
116
+
117
+ this._onViewerCameraFOV = this._viewer.camera.perspective.on("fov", (fov) => {
118
+ this._scene.camera.perspective.fov = fov;
119
+ });
120
+
121
+ //--------------------------------------------------------------------------------------------------------------
122
+ // Bind overview canvas events
123
+ //--------------------------------------------------------------------------------------------------------------
124
+
125
+ {
126
+ var hoveredEntity = null;
127
+
128
+ this._onInputMouseMove = this._scene.input.on("mousemove", (coords) => {
129
+ const hit = this._scene.pick({
130
+ canvasPos: coords
131
+ });
132
+ if (hit) {
133
+ if (!hoveredEntity || hit.entity.id !== hoveredEntity.id) {
134
+ if (hoveredEntity) {
135
+ const plane = this._planes[hoveredEntity.id];
136
+ if (plane) {
137
+ this._onHoverLeavePlane(hoveredEntity.id);
138
+ }
139
+ }
140
+ hoveredEntity = hit.entity;
141
+ const plane = this._planes[hoveredEntity.id];
142
+ if (plane) {
143
+ this._onHoverEnterPlane(hoveredEntity.id);
144
+ }
145
+ }
146
+ } else {
147
+ if (hoveredEntity) {
148
+ this._onHoverLeavePlane(hoveredEntity.id);
149
+ hoveredEntity = null;
150
+ }
151
+ }
152
+ });
153
+
154
+ this._scene.canvas.canvas.addEventListener("mouseup", this._onCanvasMouseUp = () => {
155
+ if (hoveredEntity) {
156
+ const plane = this._planes[hoveredEntity.id];
157
+ if (plane) {
158
+ this._onClickedPlane(hoveredEntity.id);
159
+ }
160
+ } else {
161
+ this._onClickedNothing();
162
+ }
163
+ });
164
+
165
+ this._scene.canvas.canvas.addEventListener("mouseout", this._onCanvasMouseOut = () => {
166
+ if (hoveredEntity) {
167
+ this._onHoverLeavePlane(hoveredEntity.id);
168
+ hoveredEntity = null;
169
+ }
170
+ });
171
+ }
172
+
173
+ //--------------------------------------------------------------------------------------------------------------
174
+ // Configure overview
175
+ //--------------------------------------------------------------------------------------------------------------
176
+
177
+ this.setVisible(cfg.overviewVisible);
178
+ }
179
+
180
+ /** Called by SectionPlanesPlugin#createSectionPlane()
181
+ * @private
182
+ */
183
+ addSectionPlane(sectionPlane) {
184
+ this._planes[sectionPlane.id] = new Plane(this, this._scene, sectionPlane);
185
+ }
186
+
187
+ /** @private
188
+ */
189
+ setPlaneHighlighted(id, highlighted) {
190
+ const plane = this._planes[id];
191
+ if (plane) {
192
+ plane.setHighlighted(highlighted);
193
+ }
194
+ }
195
+
196
+ /** @private
197
+ */
198
+ setPlaneSelected(id, selected) {
199
+ const plane = this._planes[id];
200
+ if (plane) {
201
+ plane.setSelected(selected);
202
+ }
203
+ }
204
+
205
+ /** @private
206
+ */
207
+ removeSectionPlane(sectionPlane) {
208
+ const plane = this._planes[sectionPlane.id];
209
+ if (plane) {
210
+ plane.destroy();
211
+ delete this._planes[sectionPlane.id];
212
+ }
213
+ }
214
+
215
+ /**
216
+ * Sets if this SectionPlanesOverview is visible.
217
+ *
218
+ * @param {Boolean} visible Whether or not this SectionPlanesOverview is visible.
219
+ */
220
+ setVisible(visible = true) {
221
+ this._visible = visible;
222
+ this._canvas.style.visibility = visible ? "visible" : "hidden";
223
+ }
224
+
225
+ /**
226
+ * Gets if this SectionPlanesOverview is visible.
227
+ *
228
+ * @return {Boolean} True when this SectionPlanesOverview is visible.
229
+ */
230
+ getVisible() {
231
+ return this._visible;
232
+ }
233
+
234
+ /** @private
235
+ */
236
+ destroy() {
237
+ this._viewer.camera.off(this._onViewerCameraMatrix);
238
+ this._viewer.camera.off(this._onViewerCameraWorldAxis);
239
+ this._viewer.camera.perspective.off(this._onViewerCameraFOV);
240
+
241
+ this._scene.input.off(this._onInputMouseMove);
242
+ this._scene.canvas.canvas.removeEventListener("mouseup", this._onCanvasMouseUp);
243
+ this._scene.canvas.canvas.removeEventListener("mouseout", this._onCanvasMouseOut);
244
+ this._scene.destroy();
245
+ }
246
+ }
247
+