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

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 (450) hide show
  1. package/package.json +1 -1
  2. package/src/src/extras/ContextMenu/ContextMenu.js +907 -0
  3. package/src/src/extras/ContextMenu/index.js +1 -0
  4. package/src/src/extras/MarqueePicker/MarqueePicker.js +352 -0
  5. package/src/src/extras/MarqueePicker/MarqueePickerMouseControl.js +174 -0
  6. package/src/src/extras/MarqueePicker/index.js +2 -0
  7. package/src/src/extras/PointerLens/PointerLens.js +312 -0
  8. package/src/src/extras/PointerLens/index.js +1 -0
  9. package/src/src/extras/collision/ObjectsKdTree3.js +149 -0
  10. package/src/src/extras/collision/index.js +1 -0
  11. package/src/src/extras/index.js +4 -0
  12. package/src/src/index.js +3 -0
  13. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +731 -0
  14. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +84 -0
  15. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsMouseControl.js +435 -0
  16. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +406 -0
  17. package/src/src/plugins/AngleMeasurementsPlugin/index.js +3 -0
  18. package/src/src/plugins/AnnotationsPlugin/Annotation.js +368 -0
  19. package/src/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +583 -0
  20. package/src/src/plugins/AnnotationsPlugin/index.js +1 -0
  21. package/src/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
  22. package/src/src/plugins/AxisGizmoPlugin/index.js +1 -0
  23. package/src/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +977 -0
  24. package/src/src/plugins/BCFViewpointsPlugin/index.js +1 -0
  25. package/src/src/plugins/CityJSONLoaderPlugin/CityJSONDefaultDataSource.js +29 -0
  26. package/src/src/plugins/CityJSONLoaderPlugin/CityJSONLoaderPlugin.js +751 -0
  27. package/src/src/plugins/CityJSONLoaderPlugin/index.js +1 -0
  28. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +963 -0
  29. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +84 -0
  30. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsMouseControl.js +399 -0
  31. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +505 -0
  32. package/src/src/plugins/DistanceMeasurementsPlugin/index.js +3 -0
  33. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesControl.js +639 -0
  34. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesPlugin.js +436 -0
  35. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Overview.js +247 -0
  36. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Plane.js +167 -0
  37. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/index.js +1 -0
  38. package/src/src/plugins/FastNavPlugin/FastNavPlugin.js +429 -0
  39. package/src/src/plugins/FastNavPlugin/index.js +1 -0
  40. package/src/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +140 -0
  41. package/src/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +421 -0
  42. package/src/src/plugins/GLTFLoaderPlugin/GLTFSceneModelLoader.js +669 -0
  43. package/src/src/plugins/GLTFLoaderPlugin/index.js +2 -0
  44. package/src/src/plugins/LASLoaderPlugin/LASDefaultDataSource.js +58 -0
  45. package/src/src/plugins/LASLoaderPlugin/LASLoaderPlugin.js +563 -0
  46. package/src/src/plugins/LASLoaderPlugin/index.js +1 -0
  47. package/src/src/plugins/LASLoaderPlugin/loadLASHeader.js +183 -0
  48. package/src/src/plugins/NavCubePlugin/CubeTextureCanvas.js +290 -0
  49. package/src/src/plugins/NavCubePlugin/NavCubePlugin.js +753 -0
  50. package/src/src/plugins/NavCubePlugin/index.js +1 -0
  51. package/src/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
  52. package/src/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
  53. package/src/src/plugins/OBJLoaderPlugin/index.js +1 -0
  54. package/src/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
  55. package/src/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +274 -0
  56. package/src/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
  57. package/src/src/plugins/STLLoaderPlugin/index.js +2 -0
  58. package/src/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
  59. package/src/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
  60. package/src/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
  61. package/src/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +404 -0
  62. package/src/src/plugins/SectionPlanesPlugin/index.js +1 -0
  63. package/src/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
  64. package/src/src/plugins/SkyboxesPlugin/index.js +1 -0
  65. package/src/src/plugins/StoreyViewsPlugin/Storey.js +84 -0
  66. package/src/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
  67. package/src/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +773 -0
  68. package/src/src/plugins/StoreyViewsPlugin/index.js +1 -0
  69. package/src/src/plugins/TreeViewPlugin/RenderService.js +169 -0
  70. package/src/src/plugins/TreeViewPlugin/TreeViewNode.js +101 -0
  71. package/src/src/plugins/TreeViewPlugin/TreeViewPlugin.js +1370 -0
  72. package/src/src/plugins/TreeViewPlugin/index.js +1 -0
  73. package/src/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
  74. package/src/src/plugins/ViewCullPlugin/index.js +1 -0
  75. package/src/src/plugins/WebIFCLoaderPlugin/WebIFCDefaultDataSource.js +58 -0
  76. package/src/src/plugins/WebIFCLoaderPlugin/WebIFCLoaderPlugin.js +942 -0
  77. package/src/src/plugins/WebIFCLoaderPlugin/index.js +1 -0
  78. package/src/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +95 -0
  79. package/src/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +1194 -0
  80. package/src/src/plugins/XKTLoaderPlugin/index.js +2 -0
  81. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +169 -0
  82. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV10.js +660 -0
  83. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV11.js +663 -0
  84. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +230 -0
  85. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +223 -0
  86. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +283 -0
  87. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +246 -0
  88. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
  89. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +439 -0
  90. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +563 -0
  91. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV9.js +518 -0
  92. package/src/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +2 -0
  93. package/src/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
  94. package/src/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
  95. package/src/src/plugins/XML3DLoaderPlugin/index.js +1 -0
  96. package/src/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
  97. package/src/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
  98. package/src/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
  99. package/src/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
  100. package/src/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
  101. package/src/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
  102. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
  103. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
  104. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
  105. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
  106. package/src/src/plugins/index.js +21 -0
  107. package/src/src/plugins/lib/culling/ObjectCullStates.js +208 -0
  108. package/src/src/plugins/lib/earcut.js +677 -0
  109. package/src/src/plugins/lib/html/Dot.js +179 -0
  110. package/src/src/plugins/lib/html/Label.js +174 -0
  111. package/src/src/plugins/lib/html/Wire.js +220 -0
  112. package/src/src/viewer/Configs.js +127 -0
  113. package/src/src/viewer/Plugin.js +233 -0
  114. package/src/src/viewer/Viewer.js +542 -0
  115. package/src/src/viewer/index.js +5 -0
  116. package/src/src/viewer/localization/LocaleService.js +475 -0
  117. package/src/src/viewer/metadata/IFCObjectDefaultColors.js +163 -0
  118. package/src/src/viewer/metadata/IFCObjectDefaults.js +17 -0
  119. package/src/src/viewer/metadata/MetaModel.js +414 -0
  120. package/src/src/viewer/metadata/MetaObject.js +223 -0
  121. package/src/src/viewer/metadata/MetaScene.js +336 -0
  122. package/src/src/viewer/metadata/Property.js +55 -0
  123. package/src/src/viewer/metadata/PropertySet.js +77 -0
  124. package/src/src/viewer/scene/Bitmap/Bitmap.js +473 -0
  125. package/src/src/viewer/scene/Bitmap/index.js +1 -0
  126. package/src/src/viewer/scene/CameraControl/CameraControl.js +1750 -0
  127. package/src/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
  128. package/src/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
  129. package/src/src/viewer/scene/CameraControl/lib/controllers/PickController.js +265 -0
  130. package/src/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +384 -0
  131. package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
  132. package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +183 -0
  133. package/src/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
  134. package/src/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +345 -0
  135. package/src/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +376 -0
  136. package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +288 -0
  137. package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +235 -0
  138. package/src/src/viewer/scene/Component.js +915 -0
  139. package/src/src/viewer/scene/Entity.js +502 -0
  140. package/src/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
  141. package/src/src/viewer/scene/ImagePlane/index.js +1 -0
  142. package/src/src/viewer/scene/LineSet/LineSet.js +163 -0
  143. package/src/src/viewer/scene/LineSet/index.js +1 -0
  144. package/src/src/viewer/scene/camera/Camera.js +912 -0
  145. package/src/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
  146. package/src/src/viewer/scene/camera/CameraPath.js +194 -0
  147. package/src/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
  148. package/src/src/viewer/scene/camera/CustomProjection.js +149 -0
  149. package/src/src/viewer/scene/camera/Frustum.js +316 -0
  150. package/src/src/viewer/scene/camera/Ortho.js +286 -0
  151. package/src/src/viewer/scene/camera/Perspective.js +304 -0
  152. package/src/src/viewer/scene/camera/index.js +2 -0
  153. package/src/src/viewer/scene/canvas/Canvas.js +490 -0
  154. package/src/src/viewer/scene/canvas/Spinner.js +323 -0
  155. package/src/src/viewer/scene/constants/constants.js +371 -0
  156. package/src/src/viewer/scene/core.js +268 -0
  157. package/src/src/viewer/scene/geometry/Geometry.js +33 -0
  158. package/src/src/viewer/scene/geometry/ReadableGeometry.js +682 -0
  159. package/src/src/viewer/scene/geometry/VBOGeometry.js +319 -0
  160. package/src/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
  161. package/src/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
  162. package/src/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
  163. package/src/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
  164. package/src/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
  165. package/src/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
  166. package/src/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
  167. package/src/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
  168. package/src/src/viewer/scene/geometry/builders/index.js +8 -0
  169. package/src/src/viewer/scene/geometry/index.js +4 -0
  170. package/src/src/viewer/scene/geometry/loaders/index.js +2 -0
  171. package/src/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
  172. package/src/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
  173. package/src/src/viewer/scene/index.js +21 -0
  174. package/src/src/viewer/scene/input/Input.js +1333 -0
  175. package/src/src/viewer/scene/libs/k3d.js +1032 -0
  176. package/src/src/viewer/scene/lights/AmbientLight.js +175 -0
  177. package/src/src/viewer/scene/lights/CubeTexture.js +156 -0
  178. package/src/src/viewer/scene/lights/DirLight.js +314 -0
  179. package/src/src/viewer/scene/lights/Light.js +29 -0
  180. package/src/src/viewer/scene/lights/LightMap.js +77 -0
  181. package/src/src/viewer/scene/lights/PointLight.js +395 -0
  182. package/src/src/viewer/scene/lights/ReflectionMap.js +79 -0
  183. package/src/src/viewer/scene/lights/Shadow.js +138 -0
  184. package/src/src/viewer/scene/lights/index.js +5 -0
  185. package/src/src/viewer/scene/marker/Marker.js +383 -0
  186. package/src/src/viewer/scene/marker/SpriteMarker.js +356 -0
  187. package/src/src/viewer/scene/marker/index.js +2 -0
  188. package/src/src/viewer/scene/materials/EdgeMaterial.js +359 -0
  189. package/src/src/viewer/scene/materials/EmphasisMaterial.js +613 -0
  190. package/src/src/viewer/scene/materials/Fresnel.js +222 -0
  191. package/src/src/viewer/scene/materials/LambertMaterial.js +378 -0
  192. package/src/src/viewer/scene/materials/LinesMaterial.js +169 -0
  193. package/src/src/viewer/scene/materials/Material.js +39 -0
  194. package/src/src/viewer/scene/materials/MetallicMaterial.js +820 -0
  195. package/src/src/viewer/scene/materials/PhongMaterial.js +860 -0
  196. package/src/src/viewer/scene/materials/PointsMaterial.js +409 -0
  197. package/src/src/viewer/scene/materials/SpecularMaterial.js +807 -0
  198. package/src/src/viewer/scene/materials/Texture.js +513 -0
  199. package/src/src/viewer/scene/materials/index.js +8 -0
  200. package/src/src/viewer/scene/math/Frustum.js +118 -0
  201. package/src/src/viewer/scene/math/buildEdgeIndices.js +162 -0
  202. package/src/src/viewer/scene/math/geometryCompressionUtils.js +365 -0
  203. package/src/src/viewer/scene/math/index.js +3 -0
  204. package/src/src/viewer/scene/math/math.js +5386 -0
  205. package/src/src/viewer/scene/math/rtcCoords.js +139 -0
  206. package/src/src/viewer/scene/mementos/CameraMemento.js +200 -0
  207. package/src/src/viewer/scene/mementos/ModelMemento.js +263 -0
  208. package/src/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
  209. package/src/src/viewer/scene/mementos/index.js +3 -0
  210. package/src/src/viewer/scene/mesh/Mesh.js +2202 -0
  211. package/src/src/viewer/scene/mesh/draw/DrawRenderer.js +996 -0
  212. package/src/src/viewer/scene/mesh/draw/DrawShaderSource.js +1570 -0
  213. package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +259 -0
  214. package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +159 -0
  215. package/src/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +286 -0
  216. package/src/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +262 -0
  217. package/src/src/viewer/scene/mesh/index.js +1 -0
  218. package/src/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +217 -0
  219. package/src/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +157 -0
  220. package/src/src/viewer/scene/mesh/pick/PickMeshRenderer.js +223 -0
  221. package/src/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +151 -0
  222. package/src/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +200 -0
  223. package/src/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +124 -0
  224. package/src/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
  225. package/src/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +98 -0
  226. package/src/src/viewer/scene/metriqs/Metriqs.js +259 -0
  227. package/src/src/viewer/scene/model/ENTITY_FLAGS.js +21 -0
  228. package/src/src/viewer/scene/model/PerformanceModel.js +26 -0
  229. package/src/src/viewer/scene/model/RENDER_PASSES.js +34 -0
  230. package/src/src/viewer/scene/model/SceneModel.js +4018 -0
  231. package/src/src/viewer/scene/model/SceneModelEntity.js +715 -0
  232. package/src/src/viewer/scene/model/SceneModelMesh.js +341 -0
  233. package/src/src/viewer/scene/model/SceneModelTexture.js +38 -0
  234. package/src/src/viewer/scene/model/SceneModelTextureSet.js +59 -0
  235. package/src/src/viewer/scene/model/SceneModelTransform.js +404 -0
  236. package/src/src/viewer/scene/model/VBOSceneModel.js +26 -0
  237. package/src/src/viewer/scene/model/calculateUniquePositions.js +126 -0
  238. package/src/src/viewer/scene/model/compression.js +227 -0
  239. package/src/src/viewer/scene/model/dtx/BindableDataTexture.js +31 -0
  240. package/src/src/viewer/scene/model/dtx/lines/DTXLinesBuffer.js +27 -0
  241. package/src/src/viewer/scene/model/dtx/lines/DTXLinesLayer.js +891 -0
  242. package/src/src/viewer/scene/model/dtx/lines/DTXLinesState.js +46 -0
  243. package/src/src/viewer/scene/model/dtx/lines/DTXLinesTextureFactory.js +411 -0
  244. package/src/src/viewer/scene/model/dtx/lines/dataTextureRamStats.js +49 -0
  245. package/src/src/viewer/scene/model/dtx/lines/rebucketPositions.js +208 -0
  246. package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesColorRenderer.js +389 -0
  247. package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesRenderers.js +65 -0
  248. package/src/src/viewer/scene/model/dtx/triangles/DTXTrianglesLayer.js +1322 -0
  249. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesBuffer.js +46 -0
  250. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesState.js +250 -0
  251. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesTextureFactory.js +518 -0
  252. package/src/src/viewer/scene/model/dtx/triangles/lib/dataTextureRamStats.js +54 -0
  253. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesColorRenderer.js +619 -0
  254. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesDepthRenderer.js +464 -0
  255. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesColorRenderer.js +414 -0
  256. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesRenderer.js +422 -0
  257. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesNormalsRenderer.js +345 -0
  258. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesOcclusionRenderer.js +436 -0
  259. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickDepthRenderer.js +462 -0
  260. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickMeshRenderer.js +436 -0
  261. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsFlatRenderer.js +455 -0
  262. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsRenderer.js +440 -0
  263. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesRenderers.js +307 -0
  264. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSilhouetteRenderer.js +465 -0
  265. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapInitRenderer.js +466 -0
  266. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapRenderer.js +427 -0
  267. package/src/src/viewer/scene/model/index.js +5 -0
  268. package/src/src/viewer/scene/model/rebucketPositions.js +354 -0
  269. package/src/src/viewer/scene/model/vbo/ScratchMemory.js +63 -0
  270. package/src/src/viewer/scene/model/vbo/VBORenderer.js +646 -0
  271. package/src/src/viewer/scene/model/vbo/batching/lines/VBOBatchingLinesLayer.js +699 -0
  272. package/src/src/viewer/scene/model/vbo/batching/lines/lib/VBOBatchingLinesBuffer.js +19 -0
  273. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLineSnapInitRenderer.js +316 -0
  274. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesColorRenderer.js +114 -0
  275. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesRenderers.js +99 -0
  276. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSilhouetteRenderer.js +124 -0
  277. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapInitRenderer.js +311 -0
  278. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapRenderer.js +309 -0
  279. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOSceneModelLineBatchingRenderer.js +24 -0
  280. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsBuffer.js +20 -0
  281. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsLayer.js +718 -0
  282. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsRenderer.js +24 -0
  283. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsColorRenderer.js +168 -0
  284. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsOcclusionRenderer.js +136 -0
  285. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickDepthRenderer.js +156 -0
  286. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickMeshRenderer.js +148 -0
  287. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsRenderers.js +144 -0
  288. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsShadowRenderer.js +107 -0
  289. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSilhouetteRenderer.js +146 -0
  290. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapInitRenderer.js +309 -0
  291. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapRenderer.js +303 -0
  292. package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesBuffer.js +24 -0
  293. package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +1257 -0
  294. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js +131 -0
  295. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js +135 -0
  296. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +12 -0
  297. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js +375 -0
  298. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js +34 -0
  299. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js +238 -0
  300. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js +270 -0
  301. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js +126 -0
  302. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js +235 -0
  303. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js +139 -0
  304. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js +125 -0
  305. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js +561 -0
  306. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js +144 -0
  307. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js +130 -0
  308. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +121 -0
  309. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js +131 -0
  310. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js +107 -0
  311. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js +136 -0
  312. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js +311 -0
  313. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js +308 -0
  314. package/src/src/viewer/scene/model/vbo/float16.js +760 -0
  315. package/src/src/viewer/scene/model/vbo/instancing/lines/VBOInstancingLinesLayer.js +704 -0
  316. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesColorRenderer.js +148 -0
  317. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderer.js +26 -0
  318. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderers.js +139 -0
  319. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSilhouetteRenderer.js +127 -0
  320. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapInitRenderer.js +331 -0
  321. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapRenderer.js +316 -0
  322. package/src/src/viewer/scene/model/vbo/instancing/points/VBOInstancingPointsLayer.js +728 -0
  323. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsColorRenderer.js +174 -0
  324. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsDepthRenderer.js +156 -0
  325. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsOcclusionRenderer.js +149 -0
  326. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickDepthRenderer.js +170 -0
  327. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickMeshRenderer.js +152 -0
  328. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderer.js +26 -0
  329. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderers.js +174 -0
  330. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsShadowRenderer.js +119 -0
  331. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSilhouetteRenderer.js +154 -0
  332. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapInitRenderer.js +330 -0
  333. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapRenderer.js +311 -0
  334. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingTrianglesRenderer.js +150 -0
  335. package/src/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +1190 -0
  336. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js +136 -0
  337. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js +137 -0
  338. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +12 -0
  339. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js +376 -0
  340. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js +253 -0
  341. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js +278 -0
  342. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js +126 -0
  343. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js +244 -0
  344. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js +130 -0
  345. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js +29 -0
  346. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js +138 -0
  347. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js +128 -0
  348. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js +561 -0
  349. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js +149 -0
  350. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js +136 -0
  351. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +130 -0
  352. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js +145 -0
  353. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js +113 -0
  354. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js +139 -0
  355. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js +342 -0
  356. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js +325 -0
  357. package/src/src/viewer/scene/nodes/Node.js +1383 -0
  358. package/src/src/viewer/scene/nodes/index.js +1 -0
  359. package/src/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
  360. package/src/src/viewer/scene/paths/Curve.js +183 -0
  361. package/src/src/viewer/scene/paths/Path.js +239 -0
  362. package/src/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
  363. package/src/src/viewer/scene/paths/SplineCurve.js +133 -0
  364. package/src/src/viewer/scene/paths/index.js +5 -0
  365. package/src/src/viewer/scene/postfx/SAO.js +543 -0
  366. package/src/src/viewer/scene/scene/Scene.js +2802 -0
  367. package/src/src/viewer/scene/sectionPlane/SectionPlane.js +198 -0
  368. package/src/src/viewer/scene/sectionPlane/SectionPlaneCache.js +101 -0
  369. package/src/src/viewer/scene/sectionPlane/index.js +1 -0
  370. package/src/src/viewer/scene/skybox/Skybox.js +123 -0
  371. package/src/src/viewer/scene/skybox/index.js +1 -0
  372. package/src/src/viewer/scene/stats.js +44 -0
  373. package/src/src/viewer/scene/utils/Cache.js +29 -0
  374. package/src/src/viewer/scene/utils/FileLoader.js +161 -0
  375. package/src/src/viewer/scene/utils/Loader.js +55 -0
  376. package/src/src/viewer/scene/utils/LoadingManager.js +86 -0
  377. package/src/src/viewer/scene/utils/Map.js +45 -0
  378. package/src/src/viewer/scene/utils/Queue.js +56 -0
  379. package/src/src/viewer/scene/utils/WorkerPool.js +73 -0
  380. package/src/src/viewer/scene/utils/index.js +6 -0
  381. package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/KTX2TextureTranscoder.js +650 -0
  382. package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/index.js +1 -0
  383. package/src/src/viewer/scene/utils/textureTranscoders/TextureTranscoder.js +31 -0
  384. package/src/src/viewer/scene/utils/textureTranscoders/index.js +2 -0
  385. package/src/src/viewer/scene/utils.js +453 -0
  386. package/src/src/viewer/scene/viewport/Viewport.js +212 -0
  387. package/src/src/viewer/scene/webgl/ArrayBuf.js +121 -0
  388. package/src/src/viewer/scene/webgl/Attribute.js +23 -0
  389. package/src/src/viewer/scene/webgl/Drawable.js +270 -0
  390. package/src/src/viewer/scene/webgl/FrameContext.js +313 -0
  391. package/src/src/viewer/scene/webgl/PickResult.js +364 -0
  392. package/src/src/viewer/scene/webgl/Pickable.js +69 -0
  393. package/src/src/viewer/scene/webgl/Program.js +181 -0
  394. package/src/src/viewer/scene/webgl/RenderBuffer.js +378 -0
  395. package/src/src/viewer/scene/webgl/RenderBufferManager.js +34 -0
  396. package/src/src/viewer/scene/webgl/RenderFlags.js +203 -0
  397. package/src/src/viewer/scene/webgl/RenderState.js +40 -0
  398. package/src/src/viewer/scene/webgl/Renderer.js +1781 -0
  399. package/src/src/viewer/scene/webgl/Sampler.js +18 -0
  400. package/src/src/viewer/scene/webgl/Shader.js +49 -0
  401. package/src/src/viewer/scene/webgl/Texture2D.js +442 -0
  402. package/src/src/viewer/scene/webgl/convertConstant.js +244 -0
  403. package/src/src/viewer/scene/webgl/getExtension.js +32 -0
  404. package/src/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
  405. package/src/src/viewer/scene/webgl/occlusion/OcclusionTester.js +426 -0
  406. package/src/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +324 -0
  407. package/src/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +376 -0
  408. package/src/src/viewer/scene/webgl/webglEnums.js +61 -0
  409. package/src/src/viewer/scene/webglInfo.js +47 -0
  410. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js +131 -0
  411. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js +135 -0
  412. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +12 -0
  413. package/src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js +375 -0
  414. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js +34 -0
  415. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js +238 -0
  416. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js +270 -0
  417. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js +126 -0
  418. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js +235 -0
  419. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js +139 -0
  420. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js +125 -0
  421. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js +561 -0
  422. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js +144 -0
  423. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js +130 -0
  424. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +121 -0
  425. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js +131 -0
  426. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js +107 -0
  427. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js +136 -0
  428. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js +311 -0
  429. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js +308 -0
  430. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js +136 -0
  431. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js +137 -0
  432. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +12 -0
  433. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js +376 -0
  434. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js +253 -0
  435. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js +278 -0
  436. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js +126 -0
  437. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js +244 -0
  438. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js +130 -0
  439. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js +29 -0
  440. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js +138 -0
  441. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js +128 -0
  442. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js +561 -0
  443. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js +149 -0
  444. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js +136 -0
  445. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +130 -0
  446. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js +145 -0
  447. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js +113 -0
  448. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js +139 -0
  449. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js +342 -0
  450. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js +325 -0
@@ -0,0 +1,283 @@
1
+ /*
2
+
3
+ Parser for .XKT Format V4
4
+
5
+ .XKT specifications: https://github.com/xeokit/xeokit-sdk/wiki/XKT-Format
6
+
7
+ */
8
+
9
+ import {utils} from "../../../viewer/scene/utils.js";
10
+ import * as p from "./lib/pako.js";
11
+
12
+ let pako = window.pako || p;
13
+ if (!pako.inflate) { // See https://github.com/nodeca/pako/issues/97
14
+ pako = pako.default;
15
+ }
16
+
17
+ function extract(elements) {
18
+ return {
19
+ positions: elements[0],
20
+ normals: elements[1],
21
+ indices: elements[2],
22
+ edgeIndices: elements[3],
23
+ decodeMatrices: elements[4],
24
+ matrices: elements[5],
25
+ eachPrimitivePositionsAndNormalsPortion: elements[6],
26
+ eachPrimitiveIndicesPortion: elements[7],
27
+ eachPrimitiveEdgeIndicesPortion: elements[8],
28
+ eachPrimitiveDecodeMatricesPortion: elements[9],
29
+ eachPrimitiveColor: elements[10],
30
+ primitiveInstances: elements[11],
31
+ eachEntityId: elements[12],
32
+ eachEntityPrimitiveInstancesPortion: elements[13],
33
+ eachEntityMatricesPortion: elements[14],
34
+ eachEntityMatrix: elements[15]
35
+ };
36
+ }
37
+
38
+ function inflate(deflatedData) {
39
+ return {
40
+ positions: new Uint16Array(pako.inflate(deflatedData.positions).buffer),
41
+ normals: new Int8Array(pako.inflate(deflatedData.normals).buffer),
42
+ indices: new Uint32Array(pako.inflate(deflatedData.indices).buffer),
43
+ edgeIndices: new Uint32Array(pako.inflate(deflatedData.edgeIndices).buffer),
44
+ decodeMatrices: new Float32Array(pako.inflate(deflatedData.decodeMatrices).buffer),
45
+ matrices: new Float32Array(pako.inflate(deflatedData.matrices).buffer),
46
+ eachPrimitivePositionsAndNormalsPortion: new Uint32Array(pako.inflate(deflatedData.eachPrimitivePositionsAndNormalsPortion).buffer),
47
+ eachPrimitiveIndicesPortion: new Uint32Array(pako.inflate(deflatedData.eachPrimitiveIndicesPortion).buffer),
48
+ eachPrimitiveEdgeIndicesPortion: new Uint32Array(pako.inflate(deflatedData.eachPrimitiveEdgeIndicesPortion).buffer),
49
+ eachPrimitiveDecodeMatricesPortion: new Uint32Array(pako.inflate(deflatedData.eachPrimitiveDecodeMatricesPortion).buffer),
50
+ eachPrimitiveColor: new Uint8Array(pako.inflate(deflatedData.eachPrimitiveColor).buffer),
51
+ primitiveInstances: new Uint32Array(pako.inflate(deflatedData.primitiveInstances).buffer),
52
+ eachEntityId: pako.inflate(deflatedData.eachEntityId, {to: 'string'}),
53
+ eachEntityPrimitiveInstancesPortion: new Uint32Array(pako.inflate(deflatedData.eachEntityPrimitiveInstancesPortion).buffer),
54
+ eachEntityMatricesPortion: new Uint32Array(pako.inflate(deflatedData.eachEntityMatricesPortion).buffer)
55
+ };
56
+ }
57
+
58
+ const decompressColor = (function () {
59
+ const color2 = new Float32Array(3);
60
+ return function (color) {
61
+ color2[0] = color[0] / 255.0;
62
+ color2[1] = color[1] / 255.0;
63
+ color2[2] = color[2] / 255.0;
64
+ return color2;
65
+ };
66
+ })();
67
+
68
+ function load(viewer, options, inflatedData, sceneModel, metaModel, manifestCtx) {
69
+
70
+ const modelPartId = manifestCtx.getNextId();
71
+
72
+ sceneModel.positionsCompression = "precompressed";
73
+ sceneModel.normalsCompression = "precompressed";
74
+
75
+ const positions = inflatedData.positions;
76
+ const normals = inflatedData.normals;
77
+ const indices = inflatedData.indices;
78
+ const edgeIndices = inflatedData.edgeIndices;
79
+ const decodeMatrices = inflatedData.decodeMatrices;
80
+ const matrices = inflatedData.matrices;
81
+
82
+ const eachPrimitivePositionsAndNormalsPortion = inflatedData.eachPrimitivePositionsAndNormalsPortion;
83
+ const eachPrimitiveIndicesPortion = inflatedData.eachPrimitiveIndicesPortion;
84
+ const eachPrimitiveEdgeIndicesPortion = inflatedData.eachPrimitiveEdgeIndicesPortion;
85
+ const eachPrimitiveDecodeMatricesPortion = inflatedData.eachPrimitiveDecodeMatricesPortion;
86
+ const eachPrimitiveColor = inflatedData.eachPrimitiveColor;
87
+
88
+ const primitiveInstances = inflatedData.primitiveInstances;
89
+
90
+ const eachEntityId = JSON.parse(inflatedData.eachEntityId);
91
+ const eachEntityPrimitiveInstancesPortion = inflatedData.eachEntityPrimitiveInstancesPortion;
92
+ const eachEntityMatricesPortion = inflatedData.eachEntityMatricesPortion;
93
+
94
+ const numPrimitives = eachPrimitivePositionsAndNormalsPortion.length;
95
+ const numPrimitiveInstances = primitiveInstances.length;
96
+ const primitiveInstanceCounts = new Uint8Array(numPrimitives); // For each mesh, how many times it is instanced
97
+ const orderedPrimitiveIndexes = new Uint32Array(numPrimitives); // For each mesh, its index sorted into runs that share the same decode matrix
98
+
99
+ const numEntities = eachEntityId.length;
100
+
101
+ // Get lookup that orders primitives into runs that share the same decode matrices;
102
+ // this is used to create meshes in batches that use the same decode matrix
103
+
104
+ for (let primitiveIndex = 0; primitiveIndex < numPrimitives; primitiveIndex++) {
105
+ orderedPrimitiveIndexes[primitiveIndex] = primitiveIndex;
106
+ }
107
+
108
+ orderedPrimitiveIndexes.sort((i1, i2) => {
109
+ if (eachPrimitiveDecodeMatricesPortion[i1] < eachPrimitiveDecodeMatricesPortion[i2]) {
110
+ return -1;
111
+ }
112
+ if (eachPrimitiveDecodeMatricesPortion[i1] > eachPrimitiveDecodeMatricesPortion[i2]) {
113
+ return 1;
114
+ }
115
+ return 0;
116
+ });
117
+
118
+ // Count instances of each primitive
119
+
120
+ for (let primitiveInstanceIndex = 0; primitiveInstanceIndex < numPrimitiveInstances; primitiveInstanceIndex++) {
121
+ const primitiveIndex = primitiveInstances[primitiveInstanceIndex];
122
+ primitiveInstanceCounts[primitiveIndex]++;
123
+ }
124
+
125
+ // Map batched primitives to the entities that will use them
126
+
127
+ const batchedPrimitiveEntityIndexes = {};
128
+
129
+ for (let entityIndex = 0; entityIndex < numEntities; entityIndex++) {
130
+
131
+ const lastEntityIndex = (numEntities - 1);
132
+ const atLastEntity = (entityIndex === lastEntityIndex);
133
+ const firstEntityPrimitiveInstanceIndex = eachEntityPrimitiveInstancesPortion [entityIndex];
134
+ const lastEntityPrimitiveInstanceIndex = atLastEntity ? eachEntityPrimitiveInstancesPortion[lastEntityIndex] : eachEntityPrimitiveInstancesPortion[entityIndex + 1];
135
+
136
+ for (let primitiveInstancesIndex = firstEntityPrimitiveInstanceIndex; primitiveInstancesIndex < lastEntityPrimitiveInstanceIndex; primitiveInstancesIndex++) {
137
+
138
+ const primitiveIndex = primitiveInstances[primitiveInstancesIndex];
139
+ const primitiveInstanceCount = primitiveInstanceCounts[primitiveIndex];
140
+ const isInstancedPrimitive = (primitiveInstanceCount > 1);
141
+
142
+ if (!isInstancedPrimitive) {
143
+ batchedPrimitiveEntityIndexes[primitiveIndex] = entityIndex;
144
+ }
145
+ }
146
+ }
147
+
148
+ var countGeometries = 0;
149
+
150
+ // Create 1) geometries for instanced primitives, and 2) meshes for batched primitives. We create all the
151
+ // batched meshes now, before we create entities, because we're creating the batched meshes in runs that share
152
+ // the same decode matrices. Each run of meshes with the same decode matrix will end up in the same
153
+ // BatchingLayer; the SceneModel#createMesh() method starts a new BatchingLayer each time the decode
154
+ // matrix has changed since the last invocation of that method, hence why we need to order batched meshes
155
+ // in runs like this.
156
+
157
+ for (let primitiveIndex = 0; primitiveIndex < numPrimitives; primitiveIndex++) {
158
+
159
+ const orderedPrimitiveIndex = orderedPrimitiveIndexes[primitiveIndex];
160
+
161
+ const atLastPrimitive = (orderedPrimitiveIndex === (numPrimitives - 1));
162
+
163
+ const primitiveInstanceCount = primitiveInstanceCounts[orderedPrimitiveIndex];
164
+ const isInstancedPrimitive = (primitiveInstanceCount > 1);
165
+
166
+ const color = decompressColor(eachPrimitiveColor.subarray((orderedPrimitiveIndex * 4), (orderedPrimitiveIndex * 4) + 3));
167
+ const opacity = eachPrimitiveColor[(orderedPrimitiveIndex * 4) + 3] / 255.0;
168
+
169
+ const primitivePositions = positions.subarray(eachPrimitivePositionsAndNormalsPortion [orderedPrimitiveIndex], atLastPrimitive ? positions.length : eachPrimitivePositionsAndNormalsPortion [orderedPrimitiveIndex + 1]);
170
+ const primitiveNormals = normals.subarray(eachPrimitivePositionsAndNormalsPortion [orderedPrimitiveIndex], atLastPrimitive ? normals.length : eachPrimitivePositionsAndNormalsPortion [orderedPrimitiveIndex + 1]);
171
+ const primitiveIndices = indices.subarray(eachPrimitiveIndicesPortion [orderedPrimitiveIndex], atLastPrimitive ? indices.length : eachPrimitiveIndicesPortion [orderedPrimitiveIndex + 1]);
172
+ const primitiveEdgeIndices = edgeIndices.subarray(eachPrimitiveEdgeIndicesPortion [orderedPrimitiveIndex], atLastPrimitive ? edgeIndices.length : eachPrimitiveEdgeIndicesPortion [orderedPrimitiveIndex + 1]);
173
+ const primitiveDecodeMatrix = decodeMatrices.subarray(eachPrimitiveDecodeMatricesPortion [orderedPrimitiveIndex], eachPrimitiveDecodeMatricesPortion [orderedPrimitiveIndex] + 16);
174
+
175
+ if (isInstancedPrimitive) {
176
+
177
+ // Primitive instanced by more than one entity, and has positions in Model-space
178
+
179
+ const geometryId = `${modelPartId}-geometry.${orderedPrimitiveIndex}`; // These IDs are local to the SceneModel
180
+
181
+ sceneModel.createGeometry({
182
+ id: geometryId,
183
+ primitive: "triangles",
184
+ positionsCompressed: primitivePositions,
185
+ normalsCompressed: primitiveNormals,
186
+ indices: primitiveIndices,
187
+ edgeIndices: primitiveEdgeIndices,
188
+ positionsDecodeMatrix: primitiveDecodeMatrix
189
+ });
190
+
191
+ countGeometries++;
192
+
193
+ } else {
194
+
195
+ // Primitive is used only by one entity, and has positions pre-transformed into World-space
196
+
197
+ const meshId = `${modelPartId}-${orderedPrimitiveIndex}`;
198
+
199
+ const entityIndex = batchedPrimitiveEntityIndexes[orderedPrimitiveIndex];
200
+ const entityId = eachEntityId[entityIndex];
201
+
202
+ const meshDefaults = {}; // TODO: get from lookup from entity IDs
203
+
204
+ sceneModel.createMesh(utils.apply(meshDefaults, {
205
+ id: meshId,
206
+ primitive: "triangles",
207
+ positionsCompressed: primitivePositions,
208
+ normalsCompressed: primitiveNormals,
209
+ indices: primitiveIndices,
210
+ edgeIndices: primitiveEdgeIndices,
211
+ positionsDecodeMatrix: primitiveDecodeMatrix,
212
+ color: color,
213
+ opacity: opacity
214
+ }));
215
+ }
216
+ }
217
+
218
+ let countInstances = 0;
219
+
220
+ for (let entityIndex = 0; entityIndex < numEntities; entityIndex++) {
221
+
222
+ const lastEntityIndex = (numEntities - 1);
223
+ const atLastEntity = (entityIndex === lastEntityIndex);
224
+ const entityId = eachEntityId[entityIndex];
225
+ const firstEntityPrimitiveInstanceIndex = eachEntityPrimitiveInstancesPortion [entityIndex];
226
+ const lastEntityPrimitiveInstanceIndex = atLastEntity ? eachEntityPrimitiveInstancesPortion[lastEntityIndex] : eachEntityPrimitiveInstancesPortion[entityIndex + 1];
227
+
228
+ const meshIds = [];
229
+
230
+ for (let primitiveInstancesIndex = firstEntityPrimitiveInstanceIndex; primitiveInstancesIndex < lastEntityPrimitiveInstanceIndex; primitiveInstancesIndex++) {
231
+
232
+ const primitiveIndex = primitiveInstances[primitiveInstancesIndex];
233
+ const primitiveInstanceCount = primitiveInstanceCounts[primitiveIndex];
234
+ const isInstancedPrimitive = (primitiveInstanceCount > 1);
235
+
236
+ if (isInstancedPrimitive) {
237
+
238
+ const meshDefaults = {}; // TODO: get from lookup from entity IDs
239
+
240
+ const meshId = `${modelPartId}-instance.${countInstances++}`;
241
+ const geometryId = `${modelPartId}-geometry.${primitiveIndex}`; // These IDs are local to the SceneModel
242
+
243
+ const matricesIndex = (eachEntityMatricesPortion [entityIndex]) * 16;
244
+ const matrix = matrices.subarray(matricesIndex, matricesIndex + 16);
245
+
246
+ sceneModel.createMesh(utils.apply(meshDefaults, {
247
+ id: meshId,
248
+ geometryId: geometryId,
249
+ matrix: matrix
250
+ }));
251
+
252
+ meshIds.push(meshId);
253
+
254
+ } else {
255
+ const meshId = `${modelPartId}-${primitiveIndex}`;
256
+ meshIds.push(primitiveIndex);
257
+ }
258
+ }
259
+
260
+ if (meshIds.length > 0) {
261
+
262
+ const entityDefaults = {}; // TODO: get from lookup from entity IDs
263
+
264
+ sceneModel.createEntity(utils.apply(entityDefaults, {
265
+ id: entityId,
266
+ isObject: true, ///////////////// TODO: If metaobject exists
267
+ meshIds: meshIds
268
+ }));
269
+ }
270
+ }
271
+ }
272
+
273
+ /** @private */
274
+ const ParserV4 = {
275
+ version: 4,
276
+ parse: function (viewer, options, elements, sceneModel, metaModel, manifestCtx) {
277
+ const deflatedData = extract(elements);
278
+ const inflatedData = inflate(deflatedData);
279
+ load(viewer, options, inflatedData, sceneModel, metaModel, manifestCtx);
280
+ }
281
+ };
282
+
283
+ export {ParserV4};
@@ -0,0 +1,246 @@
1
+ /*
2
+
3
+ Parser for .XKT Format V5
4
+
5
+ .XKT specifications: https://github.com/xeokit/xeokit-sdk/wiki/XKT-Format
6
+
7
+ */
8
+
9
+ import {utils} from "../../../viewer/scene/utils.js";
10
+ import * as p from "./lib/pako.js";
11
+
12
+ let pako = window.pako || p;
13
+ if (!pako.inflate) { // See https://github.com/nodeca/pako/issues/97
14
+ pako = pako.default;
15
+ }
16
+
17
+ function extract(elements) {
18
+ return {
19
+ positions: elements[0],
20
+ normals: elements[1],
21
+ indices: elements[2],
22
+ edgeIndices: elements[3],
23
+ matrices: elements[4],
24
+ eachPrimitivePositionsAndNormalsPortion: elements[5],
25
+ eachPrimitiveIndicesPortion: elements[6],
26
+ eachPrimitiveEdgeIndicesPortion: elements[7],
27
+ eachPrimitiveColor: elements[8],
28
+ primitiveInstances: elements[9],
29
+ eachEntityId: elements[10],
30
+ eachEntityPrimitiveInstancesPortion: elements[11],
31
+ eachEntityMatricesPortion: elements[12]
32
+ };
33
+ }
34
+
35
+ function inflate(deflatedData) {
36
+ return {
37
+ positions: new Float32Array(pako.inflate(deflatedData.positions).buffer),
38
+ normals: new Int8Array(pako.inflate(deflatedData.normals).buffer),
39
+ indices: new Uint32Array(pako.inflate(deflatedData.indices).buffer),
40
+ edgeIndices: new Uint32Array(pako.inflate(deflatedData.edgeIndices).buffer),
41
+ matrices: new Float32Array(pako.inflate(deflatedData.matrices).buffer),
42
+ eachPrimitivePositionsAndNormalsPortion: new Uint32Array(pako.inflate(deflatedData.eachPrimitivePositionsAndNormalsPortion).buffer),
43
+ eachPrimitiveIndicesPortion: new Uint32Array(pako.inflate(deflatedData.eachPrimitiveIndicesPortion).buffer),
44
+ eachPrimitiveEdgeIndicesPortion: new Uint32Array(pako.inflate(deflatedData.eachPrimitiveEdgeIndicesPortion).buffer),
45
+ eachPrimitiveColor: new Uint8Array(pako.inflate(deflatedData.eachPrimitiveColor).buffer),
46
+ primitiveInstances: new Uint32Array(pako.inflate(deflatedData.primitiveInstances).buffer),
47
+ eachEntityId: pako.inflate(deflatedData.eachEntityId, {to: 'string'}),
48
+ eachEntityPrimitiveInstancesPortion: new Uint32Array(pako.inflate(deflatedData.eachEntityPrimitiveInstancesPortion).buffer),
49
+ eachEntityMatricesPortion: new Uint32Array(pako.inflate(deflatedData.eachEntityMatricesPortion).buffer)
50
+ };
51
+ }
52
+
53
+ const decompressColor = (function () {
54
+ const color2 = new Float32Array(3);
55
+ return function (color) {
56
+ color2[0] = color[0] / 255.0;
57
+ color2[1] = color[1] / 255.0;
58
+ color2[2] = color[2] / 255.0;
59
+ return color2;
60
+ };
61
+ })();
62
+
63
+ function load(viewer, options, inflatedData, sceneModel, metaModel, manifestCtx) {
64
+
65
+ const modelPartId = manifestCtx.getNextId();
66
+
67
+ sceneModel.positionsCompression = "disabled"; // Positions in XKT V4 are floats, which we never quantize, for precision with big models
68
+ sceneModel.normalsCompression = "precompressed"; // Normals are oct-encoded though
69
+
70
+ const positions = inflatedData.positions;
71
+ const normals = inflatedData.normals;
72
+ const indices = inflatedData.indices;
73
+ const edgeIndices = inflatedData.edgeIndices;
74
+ const matrices = inflatedData.matrices;
75
+
76
+ const eachPrimitivePositionsAndNormalsPortion = inflatedData.eachPrimitivePositionsAndNormalsPortion;
77
+ const eachPrimitiveIndicesPortion = inflatedData.eachPrimitiveIndicesPortion;
78
+ const eachPrimitiveEdgeIndicesPortion = inflatedData.eachPrimitiveEdgeIndicesPortion;
79
+ const eachPrimitiveColor = inflatedData.eachPrimitiveColor;
80
+
81
+ const primitiveInstances = inflatedData.primitiveInstances;
82
+
83
+ const eachEntityId = JSON.parse(inflatedData.eachEntityId);
84
+ const eachEntityPrimitiveInstancesPortion = inflatedData.eachEntityPrimitiveInstancesPortion;
85
+ const eachEntityMatricesPortion = inflatedData.eachEntityMatricesPortion;
86
+
87
+ const numPrimitives = eachPrimitivePositionsAndNormalsPortion.length;
88
+ const numPrimitiveInstances = primitiveInstances.length;
89
+ const primitiveInstanceCounts = new Uint8Array(numPrimitives); // For each mesh, how many times it is instanced
90
+
91
+ const numEntities = eachEntityId.length;
92
+
93
+ // Count instances of each primitive
94
+
95
+ for (let primitiveInstanceIndex = 0; primitiveInstanceIndex < numPrimitiveInstances; primitiveInstanceIndex++) {
96
+ const primitiveIndex = primitiveInstances[primitiveInstanceIndex];
97
+ primitiveInstanceCounts[primitiveIndex]++;
98
+ }
99
+
100
+ // Map batched primitives to the entities that will use them
101
+
102
+ const batchedPrimitiveEntityIndexes = {};
103
+
104
+ for (let entityIndex = 0; entityIndex < numEntities; entityIndex++) {
105
+
106
+ const lastEntityIndex = (numEntities - 1);
107
+ const atLastEntity = (entityIndex === lastEntityIndex);
108
+ const firstEntityPrimitiveInstanceIndex = eachEntityPrimitiveInstancesPortion [entityIndex];
109
+ const lastEntityPrimitiveInstanceIndex = atLastEntity ? eachEntityPrimitiveInstancesPortion[lastEntityIndex] : eachEntityPrimitiveInstancesPortion[entityIndex + 1];
110
+
111
+ for (let primitiveInstancesIndex = firstEntityPrimitiveInstanceIndex; primitiveInstancesIndex < lastEntityPrimitiveInstanceIndex; primitiveInstancesIndex++) {
112
+
113
+ const primitiveIndex = primitiveInstances[primitiveInstancesIndex];
114
+ const primitiveInstanceCount = primitiveInstanceCounts[primitiveIndex];
115
+ const isInstancedPrimitive = (primitiveInstanceCount > 1);
116
+
117
+ if (!isInstancedPrimitive) {
118
+ batchedPrimitiveEntityIndexes[primitiveIndex] = entityIndex;
119
+ }
120
+ }
121
+ }
122
+
123
+ var countGeometries = 0;
124
+
125
+ // Create geometries for instanced primitives and meshes for batched primitives.
126
+
127
+ for (let primitiveIndex = 0; primitiveIndex < numPrimitives; primitiveIndex++) {
128
+
129
+ const atLastPrimitive = (primitiveIndex === (numPrimitives - 1));
130
+
131
+ const primitiveInstanceCount = primitiveInstanceCounts[primitiveIndex];
132
+ const isInstancedPrimitive = (primitiveInstanceCount > 1);
133
+
134
+ const color = decompressColor(eachPrimitiveColor.subarray((primitiveIndex * 4), (primitiveIndex * 4) + 3));
135
+ const opacity = eachPrimitiveColor[(primitiveIndex * 4) + 3] / 255.0;
136
+
137
+ const primitivePositions = positions.subarray(eachPrimitivePositionsAndNormalsPortion [primitiveIndex], atLastPrimitive ? positions.length : eachPrimitivePositionsAndNormalsPortion [primitiveIndex + 1]);
138
+ const primitiveNormals = normals.subarray(eachPrimitivePositionsAndNormalsPortion [primitiveIndex], atLastPrimitive ? normals.length : eachPrimitivePositionsAndNormalsPortion [primitiveIndex + 1]);
139
+ const primitiveIndices = indices.subarray(eachPrimitiveIndicesPortion [primitiveIndex], atLastPrimitive ? indices.length : eachPrimitiveIndicesPortion [primitiveIndex + 1]);
140
+ const primitiveEdgeIndices = edgeIndices.subarray(eachPrimitiveEdgeIndicesPortion [primitiveIndex], atLastPrimitive ? edgeIndices.length : eachPrimitiveEdgeIndicesPortion [primitiveIndex + 1]);
141
+
142
+ if (isInstancedPrimitive) {
143
+
144
+ // Primitive instanced by more than one entity, and has positions in Model-space
145
+
146
+ const geometryId = `${modelPartId}-geometry.${primitiveIndex}`; // These IDs are local to the SceneModel
147
+
148
+ sceneModel.createGeometry({
149
+ id: geometryId,
150
+ primitive: "triangles",
151
+ positionsCompressed: primitivePositions,
152
+ normalsCompressed: primitiveNormals,
153
+ indices: primitiveIndices,
154
+ edgeIndices: primitiveEdgeIndices
155
+ });
156
+
157
+ countGeometries++;
158
+
159
+ } else {
160
+
161
+ // Primitive is used only by one entity, and has positions pre-transformed into World-space
162
+
163
+ const meshId = primitiveIndex; // These IDs are local to the SceneModel
164
+
165
+ const entityIndex = batchedPrimitiveEntityIndexes[primitiveIndex];
166
+ const entityId = eachEntityId[entityIndex];
167
+
168
+ const meshDefaults = {}; // TODO: get from lookup from entity IDs
169
+
170
+ sceneModel.createMesh(utils.apply(meshDefaults, {
171
+ id: meshId,
172
+ primitive: "triangles",
173
+ positionsCompressed: primitivePositions,
174
+ normalsCompressed: primitiveNormals,
175
+ indices: primitiveIndices,
176
+ edgeIndices: primitiveEdgeIndices,
177
+ color: color,
178
+ opacity: opacity
179
+ }));
180
+ }
181
+ }
182
+
183
+ let countInstances = 0;
184
+
185
+ for (let entityIndex = 0; entityIndex < numEntities; entityIndex++) {
186
+
187
+ const lastEntityIndex = (numEntities - 1);
188
+ const atLastEntity = (entityIndex === lastEntityIndex);
189
+ const entityId = eachEntityId[entityIndex];
190
+ const firstEntityPrimitiveInstanceIndex = eachEntityPrimitiveInstancesPortion [entityIndex];
191
+ const lastEntityPrimitiveInstanceIndex = atLastEntity ? eachEntityPrimitiveInstancesPortion[lastEntityIndex] : eachEntityPrimitiveInstancesPortion[entityIndex + 1];
192
+
193
+ const meshIds = [];
194
+
195
+ for (let primitiveInstancesIndex = firstEntityPrimitiveInstanceIndex; primitiveInstancesIndex < lastEntityPrimitiveInstanceIndex; primitiveInstancesIndex++) {
196
+
197
+ const primitiveIndex = primitiveInstances[primitiveInstancesIndex];
198
+ const primitiveInstanceCount = primitiveInstanceCounts[primitiveIndex];
199
+ const isInstancedPrimitive = (primitiveInstanceCount > 1);
200
+
201
+ if (isInstancedPrimitive) {
202
+
203
+ const meshDefaults = {}; // TODO: get from lookup from entity IDs
204
+
205
+ const meshId = "instance." + countInstances++;
206
+ const geometryId = "geometry" + primitiveIndex;
207
+ const matricesIndex = (eachEntityMatricesPortion [entityIndex]) * 16;
208
+ const matrix = matrices.subarray(matricesIndex, matricesIndex + 16);
209
+
210
+ sceneModel.createMesh(utils.apply(meshDefaults, {
211
+ id: meshId,
212
+ geometryId: geometryId,
213
+ matrix: matrix
214
+ }));
215
+
216
+ meshIds.push(meshId);
217
+
218
+ } else {
219
+ meshIds.push(primitiveIndex);
220
+ }
221
+ }
222
+
223
+ if (meshIds.length > 0) {
224
+
225
+ const entityDefaults = {}; // TODO: get from lookup from entity IDs
226
+
227
+ sceneModel.createEntity(utils.apply(entityDefaults, {
228
+ id: entityId,
229
+ isObject: true, ///////////////// TODO: If metaobject exists
230
+ meshIds: meshIds
231
+ }));
232
+ }
233
+ }
234
+ }
235
+
236
+ /** @private */
237
+ const ParserV5 = {
238
+ version: 5,
239
+ parse: function (viewer, options, elements, sceneModel, metaModel, manifestCtx) {
240
+ const deflatedData = extract(elements);
241
+ const inflatedData = inflate(deflatedData);
242
+ load(viewer, options, inflatedData, sceneModel, metaModel, manifestCtx);
243
+ }
244
+ };
245
+
246
+ export {ParserV5};