@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,453 @@
1
+ /**
2
+ * @private
3
+ */
4
+ import {core} from "./core";
5
+
6
+ function xmlToJson(node, attributeRenamer) {
7
+ if (node.nodeType === node.TEXT_NODE) {
8
+ var v = node.nodeValue;
9
+ if (v.match(/^\s+$/) === null) {
10
+ return v;
11
+ }
12
+ } else if (node.nodeType === node.ELEMENT_NODE ||
13
+ node.nodeType === node.DOCUMENT_NODE) {
14
+ var json = {type: node.nodeName, children: []};
15
+
16
+ if (node.nodeType === node.ELEMENT_NODE) {
17
+ for (var j = 0; j < node.attributes.length; j++) {
18
+ var attribute = node.attributes[j];
19
+ var nm = attributeRenamer[attribute.nodeName] || attribute.nodeName;
20
+ json[nm] = attribute.nodeValue;
21
+ }
22
+ }
23
+
24
+ for (var i = 0; i < node.childNodes.length; i++) {
25
+ var item = node.childNodes[i];
26
+ var j = xmlToJson(item, attributeRenamer);
27
+ if (j) json.children.push(j);
28
+ }
29
+
30
+ return json;
31
+ }
32
+ }
33
+
34
+ /**
35
+ * @private
36
+ */
37
+ function clone(ob) {
38
+ return JSON.parse(JSON.stringify(ob));
39
+ }
40
+
41
+ /**
42
+ * @private
43
+ */
44
+ var guidChars = [["0", 10], ["A", 26], ["a", 26], ["_", 1], ["$", 1]].map(function (a) {
45
+ var li = [];
46
+ var st = a[0].charCodeAt(0);
47
+ var en = st + a[1];
48
+ for (var i = st; i < en; ++i) {
49
+ li.push(i);
50
+ }
51
+ return String.fromCharCode.apply(null, li);
52
+ }).join("");
53
+
54
+ /**
55
+ * @private
56
+ */
57
+ function b64(v, len) {
58
+ var r = (!len || len === 4) ? [0, 6, 12, 18] : [0, 6];
59
+ return r.map(function (i) {
60
+ return guidChars.substr(parseInt(v / (1 << i)) % 64, 1)
61
+ }).reverse().join("");
62
+ }
63
+
64
+ /**
65
+ * @private
66
+ */
67
+ function compressGuid(g) {
68
+ var bs = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30].map(function (i) {
69
+ return parseInt(g.substr(i, 2), 16);
70
+ });
71
+ return b64(bs[0], 2) + [1, 4, 7, 10, 13].map(function (i) {
72
+ return b64((bs[i] << 16) + (bs[i + 1] << 8) + bs[i + 2]);
73
+ }).join("");
74
+ }
75
+
76
+ /**
77
+ * @private
78
+ */
79
+ function findNodeOfType(m, t) {
80
+ var li = [];
81
+ var _ = function (n) {
82
+ if (n.type === t) li.push(n);
83
+ (n.children || []).forEach(function (c) {
84
+ _(c);
85
+ });
86
+ };
87
+ _(m);
88
+ return li;
89
+ }
90
+
91
+ /**
92
+ * @private
93
+ */
94
+ function timeout(dt) {
95
+ return new Promise(function (resolve, reject) {
96
+ setTimeout(resolve, dt);
97
+ });
98
+ }
99
+
100
+ /**
101
+ * @private
102
+ */
103
+ function httpRequest(args) {
104
+ return new Promise(function (resolve, reject) {
105
+ var xhr = new XMLHttpRequest();
106
+ xhr.open(args.method || "GET", args.url, true);
107
+ xhr.onload = function (e) {
108
+ if (xhr.readyState === 4) {
109
+ if (xhr.status === 200) {
110
+ resolve(xhr.responseXML);
111
+ } else {
112
+ reject(xhr.statusText);
113
+ }
114
+ }
115
+ };
116
+ xhr.send(null);
117
+ });
118
+ }
119
+
120
+ /**
121
+ * @private
122
+ */
123
+ const queryString = function () {
124
+ // This function is anonymous, is executed immediately and
125
+ // the return value is assigned to QueryString!
126
+ var query_string = {};
127
+ var query = window.location.search.substring(1);
128
+ var vars = query.split("&");
129
+ for (var i = 0; i < vars.length; i++) {
130
+ var pair = vars[i].split("=");
131
+ // If first entry with this name
132
+ if (typeof query_string[pair[0]] === "undefined") {
133
+ query_string[pair[0]] = decodeURIComponent(pair[1]);
134
+ // If second entry with this name
135
+ } else if (typeof query_string[pair[0]] === "string") {
136
+ var arr = [query_string[pair[0]], decodeURIComponent(pair[1])];
137
+ query_string[pair[0]] = arr;
138
+ // If third or later entry with this name
139
+ } else {
140
+ query_string[pair[0]].push(decodeURIComponent(pair[1]));
141
+ }
142
+ }
143
+ return query_string;
144
+ }();
145
+
146
+ /**
147
+ * @private
148
+ */
149
+ function loadJSON(url, ok, err) {
150
+ // Avoid checking ok and err on each use.
151
+ var defaultCallback = (_value) => undefined;
152
+ ok = ok || defaultCallback;
153
+ err = err || defaultCallback;
154
+
155
+ var request = new XMLHttpRequest();
156
+ request.overrideMimeType("application/json");
157
+ request.open('GET', url, true);
158
+ request.addEventListener('load', function (event) {
159
+ var response = event.target.response;
160
+ if (this.status === 200) {
161
+ var json;
162
+ try {
163
+ json = JSON.parse(response);
164
+ } catch (e) {
165
+ err(`utils.loadJSON(): Failed to parse JSON response - ${e}`);
166
+ }
167
+ ok(json);
168
+ } else if (this.status === 0) {
169
+ // Some browsers return HTTP Status 0 when using non-http protocol
170
+ // e.g. 'file://' or 'data://'. Handle as success.
171
+ console.warn('loadFile: HTTP Status 0 received.');
172
+ try {
173
+ ok(JSON.parse(response));
174
+ } catch (e) {
175
+ err(`utils.loadJSON(): Failed to parse JSON response - ${e}`);
176
+ }
177
+ } else {
178
+ err(event);
179
+ }
180
+ }, false);
181
+
182
+ request.addEventListener('error', function (event) {
183
+ err(event);
184
+ }, false);
185
+ request.send(null);
186
+ }
187
+
188
+ /**
189
+ * @private
190
+ */
191
+ function loadArraybuffer(url, ok, err) {
192
+ // Check for data: URI
193
+ var defaultCallback = (_value) => undefined;
194
+ ok = ok || defaultCallback;
195
+ err = err || defaultCallback;
196
+ const dataUriRegex = /^data:(.*?)(;base64)?,(.*)$/;
197
+ const dataUriRegexResult = url.match(dataUriRegex);
198
+ if (dataUriRegexResult) { // Safari can't handle data URIs through XMLHttpRequest
199
+ const isBase64 = !!dataUriRegexResult[2];
200
+ var data = dataUriRegexResult[3];
201
+ data = window.decodeURIComponent(data);
202
+ if (isBase64) {
203
+ data = window.atob(data);
204
+ }
205
+ try {
206
+ const buffer = new ArrayBuffer(data.length);
207
+ const view = new Uint8Array(buffer);
208
+ for (var i = 0; i < data.length; i++) {
209
+ view[i] = data.charCodeAt(i);
210
+ }
211
+ core.scheduleTask(() => {
212
+ ok(buffer);
213
+ });
214
+ } catch (error) {
215
+ core.scheduleTask(() => {
216
+ err(error);
217
+ });
218
+ }
219
+ } else {
220
+ const request = new XMLHttpRequest();
221
+ request.open('GET', url, true);
222
+ request.responseType = 'arraybuffer';
223
+ request.onreadystatechange = function () {
224
+ if (request.readyState === 4) {
225
+ if (request.status === 200) {
226
+ ok(request.response);
227
+ } else {
228
+ err('loadArrayBuffer error : ' + request.response);
229
+ }
230
+ }
231
+ };
232
+ request.send(null);
233
+ }
234
+ }
235
+
236
+ /**
237
+ Tests if the given object is an array
238
+ @private
239
+ */
240
+ function isArray(value) {
241
+ return value && !(value.propertyIsEnumerable('length')) && typeof value === 'object' && typeof value.length === 'number';
242
+ }
243
+
244
+ /**
245
+ Tests if the given value is a string
246
+ @param value
247
+ @returns {Boolean}
248
+ @private
249
+ */
250
+ function isString(value) {
251
+ return (typeof value === 'string' || value instanceof String);
252
+ }
253
+
254
+ /**
255
+ Tests if the given value is a number
256
+ @param value
257
+ @returns {Boolean}
258
+ @private
259
+ */
260
+ function isNumeric(value) {
261
+ return !isNaN(parseFloat(value)) && isFinite(value);
262
+ }
263
+
264
+ /**
265
+ Tests if the given value is an ID
266
+ @param value
267
+ @returns {Boolean}
268
+ @private
269
+ */
270
+ function isID(value) {
271
+ return utils.isString(value) || utils.isNumeric(value);
272
+ }
273
+
274
+ /**
275
+ Tests if the given components are the same, where the components can be either IDs or instances.
276
+ @param c1
277
+ @param c2
278
+ @returns {Boolean}
279
+ @private
280
+ */
281
+ function isSameComponent(c1, c2) {
282
+ if (!c1 || !c2) {
283
+ return false;
284
+ }
285
+ const id1 = (utils.isNumeric(c1) || utils.isString(c1)) ? `${c1}` : c1.id;
286
+ const id2 = (utils.isNumeric(c2) || utils.isString(c2)) ? `${c2}` : c2.id;
287
+ return id1 === id2;
288
+ }
289
+
290
+ /**
291
+ Tests if the given value is a function
292
+ @param value
293
+ @returns {Boolean}
294
+ @private
295
+ */
296
+ function isFunction(value) {
297
+ return (typeof value === "function");
298
+ }
299
+
300
+ /**
301
+ Tests if the given value is a JavaScript JSON object, eg, ````{ foo: "bar" }````.
302
+ @param value
303
+ @returns {Boolean}
304
+ @private
305
+ */
306
+ function isObject(value) {
307
+ const objectConstructor = {}.constructor;
308
+ return (!!value && value.constructor === objectConstructor);
309
+ }
310
+
311
+ /** Returns a shallow copy
312
+ */
313
+ function copy(o) {
314
+ return utils.apply(o, {});
315
+ }
316
+
317
+ /** Add properties of o to o2, overwriting them on o2 if already there
318
+ */
319
+ function apply(o, o2) {
320
+ for (const name in o) {
321
+ if (o.hasOwnProperty(name)) {
322
+ o2[name] = o[name];
323
+ }
324
+ }
325
+ return o2;
326
+ }
327
+
328
+ /**
329
+ Add non-null/defined properties of o to o2
330
+ @private
331
+ */
332
+ function apply2(o, o2) {
333
+ for (const name in o) {
334
+ if (o.hasOwnProperty(name)) {
335
+ if (o[name] !== undefined && o[name] !== null) {
336
+ o2[name] = o[name];
337
+ }
338
+ }
339
+ }
340
+ return o2;
341
+ }
342
+
343
+ /**
344
+ Add properties of o to o2 where undefined or null on o2
345
+ @private
346
+ */
347
+ function applyIf(o, o2) {
348
+ for (const name in o) {
349
+ if (o.hasOwnProperty(name)) {
350
+ if (o2[name] === undefined || o2[name] === null) {
351
+ o2[name] = o[name];
352
+ }
353
+ }
354
+ }
355
+ return o2;
356
+ }
357
+
358
+ /**
359
+ Returns true if the given map is empty.
360
+ @param obj
361
+ @returns {Boolean}
362
+ @private
363
+ */
364
+ function isEmptyObject(obj) {
365
+ for (const name in obj) {
366
+ if (obj.hasOwnProperty(name)) {
367
+ return false;
368
+ }
369
+ }
370
+ return true;
371
+ }
372
+
373
+ /**
374
+ Returns the given ID as a string, in quotes if the ID was a string to begin with.
375
+
376
+ This is useful for logging IDs.
377
+
378
+ @param {Number| String} id The ID
379
+ @returns {String}
380
+ @private
381
+ */
382
+ function inQuotes(id) {
383
+ return utils.isNumeric(id) ? (`${id}`) : (`'${id}'`);
384
+ }
385
+
386
+ /**
387
+ Returns the concatenation of two typed arrays.
388
+ @param a
389
+ @param b
390
+ @returns {*|a}
391
+ @private
392
+ */
393
+ function concat(a, b) {
394
+ const c = new a.constructor(a.length + b.length);
395
+ c.set(a);
396
+ c.set(b, a.length);
397
+ return c;
398
+ }
399
+
400
+ function flattenParentChildHierarchy(root) {
401
+ var list = [];
402
+
403
+ function visit(node) {
404
+ node.id = node.uuid;
405
+ delete node.oid;
406
+ list.push(node);
407
+ var children = node.children;
408
+
409
+ if (children) {
410
+ for (var i = 0, len = children.length; i < len; i++) {
411
+ const child = children[i];
412
+ child.parent = node.id;
413
+ visit(children[i]);
414
+ }
415
+ }
416
+ node.children = [];
417
+ }
418
+
419
+ visit(root);
420
+ return list;
421
+ }
422
+
423
+ /**
424
+ * @private
425
+ */
426
+ const utils = {
427
+ xmlToJson: xmlToJson,
428
+ clone: clone,
429
+ compressGuid: compressGuid,
430
+ findNodeOfType: findNodeOfType,
431
+ timeout: timeout,
432
+ httpRequest: httpRequest,
433
+ loadJSON: loadJSON,
434
+ loadArraybuffer: loadArraybuffer,
435
+ queryString: queryString,
436
+ isArray: isArray,
437
+ isString: isString,
438
+ isNumeric: isNumeric,
439
+ isID: isID,
440
+ isSameComponent: isSameComponent,
441
+ isFunction: isFunction,
442
+ isObject: isObject,
443
+ copy: copy,
444
+ apply: apply,
445
+ apply2: apply2,
446
+ applyIf: applyIf,
447
+ isEmptyObject: isEmptyObject,
448
+ inQuotes: inQuotes,
449
+ concat: concat,
450
+ flattenParentChildHierarchy: flattenParentChildHierarchy
451
+ };
452
+
453
+ export {utils};
@@ -0,0 +1,212 @@
1
+ /**
2
+ * @desc controls the canvas viewport for a {@link Scene}.
3
+ *
4
+ * * One Viewport per scene.
5
+ * * You can configure a Scene to render multiple times per frame, while setting the Viewport to different extents on each render.
6
+ * * Make a Viewport automatically size to its {@link Scene} {@link Canvas} by setting its {@link Viewport#autoBoundary} ````true````.
7
+ *
8
+ *
9
+ * Configuring the Scene to render twice on each frame, each time to a separate viewport:
10
+ *
11
+ * ````Javascript
12
+ * // Load glTF model
13
+ * var model = new xeokit.GLTFModel({
14
+ src: "models/gltf/GearboxAssy/glTF-MaterialsCommon/GearboxAssy.gltf"
15
+ });
16
+
17
+ var scene = model.scene;
18
+ var viewport = scene.viewport;
19
+
20
+ // Configure Scene to render twice for each frame
21
+ scene.passes = 2; // Default is 1
22
+ scene.clearEachPass = false; // Default is false
23
+
24
+ // Render to a separate viewport on each render
25
+
26
+ var viewport = scene.viewport;
27
+ viewport.autoBoundary = false;
28
+
29
+ scene.on("rendering", function (e) {
30
+ switch (e.pass) {
31
+ case 0:
32
+ viewport.boundary = [0, 0, 200, 200]; // xmin, ymin, width, height
33
+ break;
34
+
35
+ case 1:
36
+ viewport.boundary = [200, 0, 200, 200];
37
+ break;
38
+ }
39
+ });
40
+ ````
41
+
42
+ @class Viewport
43
+ @module xeokit
44
+ @submodule rendering
45
+ @constructor
46
+ @param {Component} owner Owner component. When destroyed, the owner will destroy this component as well.
47
+ @param {*} [cfg] Viewport configuration
48
+ @param {String} [cfg.id] Optional ID, unique among all components in the parent
49
+ {@link Scene}, generated automatically when omitted.
50
+ @param {String:Object} [cfg.meta] Optional map of user-defined metadata to attach to this Viewport.
51
+ @param [cfg.boundary] {Number[]} Canvas-space Viewport boundary, given as
52
+ (min, max, width, height). Defaults to the size of the parent
53
+ {@link Scene} {@link Canvas}.
54
+ @param [cfg.autoBoundary=false] {Boolean} Indicates if this Viewport's {@link Viewport#boundary}
55
+ automatically synchronizes with the size of the parent {@link Scene} {@link Canvas}.
56
+
57
+ @extends Component
58
+ */
59
+ import {Component} from '../Component.js';
60
+ import {RenderState} from '../webgl/RenderState.js';
61
+
62
+ class Viewport extends Component {
63
+
64
+ /**
65
+ @private
66
+ */
67
+ get type() {
68
+ return "Viewport";
69
+ }
70
+
71
+ /**
72
+ @private
73
+ */
74
+ constructor(owner, cfg = {}) {
75
+
76
+ super(owner, cfg);
77
+
78
+ this._state = new RenderState({
79
+ boundary: [0, 0, 100, 100]
80
+ });
81
+
82
+ this.boundary = cfg.boundary;
83
+ this.autoBoundary = cfg.autoBoundary;
84
+ }
85
+
86
+
87
+ /**
88
+ * Sets the canvas-space boundary of this Viewport, indicated as ````[min, max, width, height]````.
89
+ *
90
+ * When {@link Viewport#autoBoundary} is ````true````, ignores calls to this method and automatically synchronizes with {@link Canvas#boundary}.
91
+ *
92
+ * Fires a "boundary"" event on change.
93
+ *
94
+ * Defaults to the {@link Canvas} extents.
95
+ *
96
+ * @param {Number[]} value New Viewport extents.
97
+ */
98
+ set boundary(value) {
99
+
100
+ if (this._autoBoundary) {
101
+ return;
102
+ }
103
+
104
+ if (!value) {
105
+
106
+ const canvasBoundary = this.scene.canvas.boundary;
107
+
108
+ const width = canvasBoundary[2];
109
+ const height = canvasBoundary[3];
110
+
111
+ value = [0, 0, width, height];
112
+ }
113
+
114
+ this._state.boundary = value;
115
+
116
+ this.glRedraw();
117
+
118
+ /**
119
+ Fired whenever this Viewport's {@link Viewport#boundary} property changes.
120
+
121
+ @event boundary
122
+ @param value {Boolean} The property's new value
123
+ */
124
+ this.fire("boundary", this._state.boundary);
125
+ }
126
+
127
+ /**
128
+ * Gets the canvas-space boundary of this Viewport, indicated as ````[min, max, width, height]````.
129
+ *
130
+ * @returns {Number[]} The Viewport extents.
131
+ */
132
+ get boundary() {
133
+ return this._state.boundary;
134
+ }
135
+
136
+ /**
137
+ * Sets if {@link Viewport#boundary} automatically synchronizes with {@link Canvas#boundary}.
138
+ *
139
+ * Default is ````false````.
140
+ *
141
+ * @param {Boolean} value Set true to automatically sycnhronize.
142
+ */
143
+ set autoBoundary(value) {
144
+
145
+ value = !!value;
146
+
147
+ if (value === this._autoBoundary) {
148
+ return;
149
+ }
150
+
151
+ this._autoBoundary = value;
152
+
153
+ if (this._autoBoundary) {
154
+ this._onCanvasSize = this.scene.canvas.on("boundary",
155
+ function (boundary) {
156
+
157
+ const width = boundary[2];
158
+ const height = boundary[3];
159
+
160
+ this._state.boundary = [0, 0, width, height];
161
+
162
+ this.glRedraw();
163
+
164
+ /**
165
+ Fired whenever this Viewport's {@link Viewport#boundary} property changes.
166
+
167
+ @event boundary
168
+ @param value {Boolean} The property's new value
169
+ */
170
+ this.fire("boundary", this._state.boundary);
171
+
172
+ }, this);
173
+
174
+ } else if (this._onCanvasSize) {
175
+ this.scene.canvas.off(this._onCanvasSize);
176
+ this._onCanvasSize = null;
177
+ }
178
+
179
+ /**
180
+ Fired whenever this Viewport's {@link autoBoundary/autoBoundary} property changes.
181
+
182
+ @event autoBoundary
183
+ @param value The property's new value
184
+ */
185
+ this.fire("autoBoundary", this._autoBoundary);
186
+ }
187
+
188
+ /**
189
+ * Gets if {@link Viewport#boundary} automatically synchronizes with {@link Canvas#boundary}.
190
+ *
191
+ * Default is ````false````.
192
+ *
193
+ * @returns {Boolean} Returns ````true```` when automatically sycnhronizing.
194
+ */
195
+ get autoBoundary() {
196
+ return this._autoBoundary;
197
+ }
198
+
199
+ _getState() {
200
+ return this._state;
201
+ }
202
+
203
+ /**
204
+ * @private
205
+ */
206
+ destroy() {
207
+ super.destroy();
208
+ this._state.destroy();
209
+ }
210
+ }
211
+
212
+ export {Viewport};