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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. package/dist/xeokit-sdk.cjs.js +146 -132
  2. package/dist/xeokit-sdk.es.js +146 -132
  3. package/dist/xeokit-sdk.es5.js +84 -84
  4. package/dist/xeokit-sdk.min.cjs.js +1 -1
  5. package/dist/xeokit-sdk.min.es.js +1 -1
  6. package/dist/xeokit-sdk.min.es5.js +1 -1
  7. package/package.json +1 -1
  8. package/src/src/extras/ContextMenu/ContextMenu.js +907 -0
  9. package/src/src/extras/ContextMenu/index.js +1 -0
  10. package/src/src/extras/MarqueePicker/MarqueePicker.js +352 -0
  11. package/src/src/extras/MarqueePicker/MarqueePickerMouseControl.js +174 -0
  12. package/src/src/extras/MarqueePicker/index.js +2 -0
  13. package/src/src/extras/PointerLens/PointerLens.js +312 -0
  14. package/src/src/extras/PointerLens/index.js +1 -0
  15. package/src/src/extras/collision/ObjectsKdTree3.js +149 -0
  16. package/src/src/extras/collision/index.js +1 -0
  17. package/src/src/extras/index.js +4 -0
  18. package/src/src/index.js +3 -0
  19. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +731 -0
  20. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +84 -0
  21. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsMouseControl.js +435 -0
  22. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +406 -0
  23. package/src/src/plugins/AngleMeasurementsPlugin/index.js +3 -0
  24. package/src/src/plugins/AnnotationsPlugin/Annotation.js +368 -0
  25. package/src/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +583 -0
  26. package/src/src/plugins/AnnotationsPlugin/index.js +1 -0
  27. package/src/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
  28. package/src/src/plugins/AxisGizmoPlugin/index.js +1 -0
  29. package/src/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +977 -0
  30. package/src/src/plugins/BCFViewpointsPlugin/index.js +1 -0
  31. package/src/src/plugins/CityJSONLoaderPlugin/CityJSONDefaultDataSource.js +29 -0
  32. package/src/src/plugins/CityJSONLoaderPlugin/CityJSONLoaderPlugin.js +751 -0
  33. package/src/src/plugins/CityJSONLoaderPlugin/index.js +1 -0
  34. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +963 -0
  35. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +84 -0
  36. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsMouseControl.js +399 -0
  37. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +505 -0
  38. package/src/src/plugins/DistanceMeasurementsPlugin/index.js +3 -0
  39. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesControl.js +639 -0
  40. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesPlugin.js +436 -0
  41. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Overview.js +247 -0
  42. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Plane.js +167 -0
  43. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/index.js +1 -0
  44. package/src/src/plugins/FastNavPlugin/FastNavPlugin.js +429 -0
  45. package/src/src/plugins/FastNavPlugin/index.js +1 -0
  46. package/src/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +140 -0
  47. package/src/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +421 -0
  48. package/src/src/plugins/GLTFLoaderPlugin/GLTFSceneModelLoader.js +669 -0
  49. package/src/src/plugins/GLTFLoaderPlugin/index.js +2 -0
  50. package/src/src/plugins/LASLoaderPlugin/LASDefaultDataSource.js +58 -0
  51. package/src/src/plugins/LASLoaderPlugin/LASLoaderPlugin.js +563 -0
  52. package/src/src/plugins/LASLoaderPlugin/index.js +1 -0
  53. package/src/src/plugins/LASLoaderPlugin/loadLASHeader.js +183 -0
  54. package/src/src/plugins/NavCubePlugin/CubeTextureCanvas.js +290 -0
  55. package/src/src/plugins/NavCubePlugin/NavCubePlugin.js +753 -0
  56. package/src/src/plugins/NavCubePlugin/index.js +1 -0
  57. package/src/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
  58. package/src/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
  59. package/src/src/plugins/OBJLoaderPlugin/index.js +1 -0
  60. package/src/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
  61. package/src/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +274 -0
  62. package/src/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
  63. package/src/src/plugins/STLLoaderPlugin/index.js +2 -0
  64. package/src/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
  65. package/src/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
  66. package/src/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
  67. package/src/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +404 -0
  68. package/src/src/plugins/SectionPlanesPlugin/index.js +1 -0
  69. package/src/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
  70. package/src/src/plugins/SkyboxesPlugin/index.js +1 -0
  71. package/src/src/plugins/StoreyViewsPlugin/Storey.js +84 -0
  72. package/src/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
  73. package/src/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +773 -0
  74. package/src/src/plugins/StoreyViewsPlugin/index.js +1 -0
  75. package/src/src/plugins/TreeViewPlugin/RenderService.js +169 -0
  76. package/src/src/plugins/TreeViewPlugin/TreeViewNode.js +101 -0
  77. package/src/src/plugins/TreeViewPlugin/TreeViewPlugin.js +1370 -0
  78. package/src/src/plugins/TreeViewPlugin/index.js +1 -0
  79. package/src/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
  80. package/src/src/plugins/ViewCullPlugin/index.js +1 -0
  81. package/src/src/plugins/WebIFCLoaderPlugin/WebIFCDefaultDataSource.js +58 -0
  82. package/src/src/plugins/WebIFCLoaderPlugin/WebIFCLoaderPlugin.js +942 -0
  83. package/src/src/plugins/WebIFCLoaderPlugin/index.js +1 -0
  84. package/src/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +95 -0
  85. package/src/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +1194 -0
  86. package/src/src/plugins/XKTLoaderPlugin/index.js +2 -0
  87. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +169 -0
  88. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV10.js +660 -0
  89. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV11.js +663 -0
  90. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +230 -0
  91. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +223 -0
  92. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +283 -0
  93. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +246 -0
  94. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
  95. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +439 -0
  96. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +563 -0
  97. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV9.js +518 -0
  98. package/src/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +2 -0
  99. package/src/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
  100. package/src/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
  101. package/src/src/plugins/XML3DLoaderPlugin/index.js +1 -0
  102. package/src/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
  103. package/src/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
  104. package/src/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
  105. package/src/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
  106. package/src/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
  107. package/src/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
  108. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
  109. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
  110. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
  111. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
  112. package/src/src/plugins/index.js +21 -0
  113. package/src/src/plugins/lib/culling/ObjectCullStates.js +208 -0
  114. package/src/src/plugins/lib/earcut.js +677 -0
  115. package/src/src/plugins/lib/html/Dot.js +179 -0
  116. package/src/src/plugins/lib/html/Label.js +174 -0
  117. package/src/src/plugins/lib/html/Wire.js +220 -0
  118. package/src/src/viewer/Configs.js +127 -0
  119. package/src/src/viewer/Plugin.js +233 -0
  120. package/src/src/viewer/Viewer.js +542 -0
  121. package/src/src/viewer/index.js +5 -0
  122. package/src/src/viewer/localization/LocaleService.js +475 -0
  123. package/src/src/viewer/metadata/IFCObjectDefaultColors.js +163 -0
  124. package/src/src/viewer/metadata/IFCObjectDefaults.js +17 -0
  125. package/src/src/viewer/metadata/MetaModel.js +414 -0
  126. package/src/src/viewer/metadata/MetaObject.js +223 -0
  127. package/src/src/viewer/metadata/MetaScene.js +336 -0
  128. package/src/src/viewer/metadata/Property.js +55 -0
  129. package/src/src/viewer/metadata/PropertySet.js +77 -0
  130. package/src/src/viewer/scene/Bitmap/Bitmap.js +473 -0
  131. package/src/src/viewer/scene/Bitmap/index.js +1 -0
  132. package/src/src/viewer/scene/CameraControl/CameraControl.js +1750 -0
  133. package/src/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
  134. package/src/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
  135. package/src/src/viewer/scene/CameraControl/lib/controllers/PickController.js +265 -0
  136. package/src/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +384 -0
  137. package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
  138. package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +183 -0
  139. package/src/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
  140. package/src/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +345 -0
  141. package/src/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +376 -0
  142. package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +288 -0
  143. package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +235 -0
  144. package/src/src/viewer/scene/Component.js +915 -0
  145. package/src/src/viewer/scene/Entity.js +502 -0
  146. package/src/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
  147. package/src/src/viewer/scene/ImagePlane/index.js +1 -0
  148. package/src/src/viewer/scene/LineSet/LineSet.js +163 -0
  149. package/src/src/viewer/scene/LineSet/index.js +1 -0
  150. package/src/src/viewer/scene/camera/Camera.js +912 -0
  151. package/src/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
  152. package/src/src/viewer/scene/camera/CameraPath.js +194 -0
  153. package/src/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
  154. package/src/src/viewer/scene/camera/CustomProjection.js +149 -0
  155. package/src/src/viewer/scene/camera/Frustum.js +316 -0
  156. package/src/src/viewer/scene/camera/Ortho.js +286 -0
  157. package/src/src/viewer/scene/camera/Perspective.js +304 -0
  158. package/src/src/viewer/scene/camera/index.js +2 -0
  159. package/src/src/viewer/scene/canvas/Canvas.js +490 -0
  160. package/src/src/viewer/scene/canvas/Spinner.js +323 -0
  161. package/src/src/viewer/scene/constants/constants.js +371 -0
  162. package/src/src/viewer/scene/core.js +268 -0
  163. package/src/src/viewer/scene/geometry/Geometry.js +33 -0
  164. package/src/src/viewer/scene/geometry/ReadableGeometry.js +682 -0
  165. package/src/src/viewer/scene/geometry/VBOGeometry.js +319 -0
  166. package/src/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
  167. package/src/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
  168. package/src/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
  169. package/src/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
  170. package/src/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
  171. package/src/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
  172. package/src/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
  173. package/src/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
  174. package/src/src/viewer/scene/geometry/builders/index.js +8 -0
  175. package/src/src/viewer/scene/geometry/index.js +4 -0
  176. package/src/src/viewer/scene/geometry/loaders/index.js +2 -0
  177. package/src/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
  178. package/src/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
  179. package/src/src/viewer/scene/index.js +21 -0
  180. package/src/src/viewer/scene/input/Input.js +1333 -0
  181. package/src/src/viewer/scene/libs/k3d.js +1032 -0
  182. package/src/src/viewer/scene/lights/AmbientLight.js +175 -0
  183. package/src/src/viewer/scene/lights/CubeTexture.js +156 -0
  184. package/src/src/viewer/scene/lights/DirLight.js +314 -0
  185. package/src/src/viewer/scene/lights/Light.js +29 -0
  186. package/src/src/viewer/scene/lights/LightMap.js +77 -0
  187. package/src/src/viewer/scene/lights/PointLight.js +395 -0
  188. package/src/src/viewer/scene/lights/ReflectionMap.js +79 -0
  189. package/src/src/viewer/scene/lights/Shadow.js +138 -0
  190. package/src/src/viewer/scene/lights/index.js +5 -0
  191. package/src/src/viewer/scene/marker/Marker.js +383 -0
  192. package/src/src/viewer/scene/marker/SpriteMarker.js +356 -0
  193. package/src/src/viewer/scene/marker/index.js +2 -0
  194. package/src/src/viewer/scene/materials/EdgeMaterial.js +359 -0
  195. package/src/src/viewer/scene/materials/EmphasisMaterial.js +613 -0
  196. package/src/src/viewer/scene/materials/Fresnel.js +222 -0
  197. package/src/src/viewer/scene/materials/LambertMaterial.js +378 -0
  198. package/src/src/viewer/scene/materials/LinesMaterial.js +169 -0
  199. package/src/src/viewer/scene/materials/Material.js +39 -0
  200. package/src/src/viewer/scene/materials/MetallicMaterial.js +820 -0
  201. package/src/src/viewer/scene/materials/PhongMaterial.js +860 -0
  202. package/src/src/viewer/scene/materials/PointsMaterial.js +409 -0
  203. package/src/src/viewer/scene/materials/SpecularMaterial.js +807 -0
  204. package/src/src/viewer/scene/materials/Texture.js +513 -0
  205. package/src/src/viewer/scene/materials/index.js +8 -0
  206. package/src/src/viewer/scene/math/Frustum.js +118 -0
  207. package/src/src/viewer/scene/math/buildEdgeIndices.js +162 -0
  208. package/src/src/viewer/scene/math/geometryCompressionUtils.js +365 -0
  209. package/src/src/viewer/scene/math/index.js +3 -0
  210. package/src/src/viewer/scene/math/math.js +5386 -0
  211. package/src/src/viewer/scene/math/rtcCoords.js +139 -0
  212. package/src/src/viewer/scene/mementos/CameraMemento.js +200 -0
  213. package/src/src/viewer/scene/mementos/ModelMemento.js +263 -0
  214. package/src/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
  215. package/src/src/viewer/scene/mementos/index.js +3 -0
  216. package/src/src/viewer/scene/mesh/Mesh.js +2202 -0
  217. package/src/src/viewer/scene/mesh/draw/DrawRenderer.js +996 -0
  218. package/src/src/viewer/scene/mesh/draw/DrawShaderSource.js +1570 -0
  219. package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +259 -0
  220. package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +159 -0
  221. package/src/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +286 -0
  222. package/src/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +262 -0
  223. package/src/src/viewer/scene/mesh/index.js +1 -0
  224. package/src/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +217 -0
  225. package/src/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +157 -0
  226. package/src/src/viewer/scene/mesh/pick/PickMeshRenderer.js +223 -0
  227. package/src/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +151 -0
  228. package/src/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +200 -0
  229. package/src/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +124 -0
  230. package/src/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
  231. package/src/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +98 -0
  232. package/src/src/viewer/scene/metriqs/Metriqs.js +259 -0
  233. package/src/src/viewer/scene/model/ENTITY_FLAGS.js +21 -0
  234. package/src/src/viewer/scene/model/PerformanceModel.js +26 -0
  235. package/src/src/viewer/scene/model/RENDER_PASSES.js +34 -0
  236. package/src/src/viewer/scene/model/SceneModel.js +4018 -0
  237. package/src/src/viewer/scene/model/SceneModelEntity.js +715 -0
  238. package/src/src/viewer/scene/model/SceneModelMesh.js +341 -0
  239. package/src/src/viewer/scene/model/SceneModelTexture.js +38 -0
  240. package/src/src/viewer/scene/model/SceneModelTextureSet.js +59 -0
  241. package/src/src/viewer/scene/model/SceneModelTransform.js +404 -0
  242. package/src/src/viewer/scene/model/VBOSceneModel.js +26 -0
  243. package/src/src/viewer/scene/model/calculateUniquePositions.js +126 -0
  244. package/src/src/viewer/scene/model/compression.js +227 -0
  245. package/src/src/viewer/scene/model/dtx/BindableDataTexture.js +31 -0
  246. package/src/src/viewer/scene/model/dtx/lines/DTXLinesBuffer.js +27 -0
  247. package/src/src/viewer/scene/model/dtx/lines/DTXLinesLayer.js +891 -0
  248. package/src/src/viewer/scene/model/dtx/lines/DTXLinesState.js +46 -0
  249. package/src/src/viewer/scene/model/dtx/lines/DTXLinesTextureFactory.js +411 -0
  250. package/src/src/viewer/scene/model/dtx/lines/dataTextureRamStats.js +49 -0
  251. package/src/src/viewer/scene/model/dtx/lines/rebucketPositions.js +208 -0
  252. package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesColorRenderer.js +389 -0
  253. package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesRenderers.js +65 -0
  254. package/src/src/viewer/scene/model/dtx/triangles/DTXTrianglesLayer.js +1322 -0
  255. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesBuffer.js +46 -0
  256. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesState.js +250 -0
  257. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesTextureFactory.js +518 -0
  258. package/src/src/viewer/scene/model/dtx/triangles/lib/dataTextureRamStats.js +54 -0
  259. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesColorRenderer.js +619 -0
  260. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesDepthRenderer.js +464 -0
  261. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesColorRenderer.js +414 -0
  262. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesRenderer.js +422 -0
  263. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesNormalsRenderer.js +345 -0
  264. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesOcclusionRenderer.js +436 -0
  265. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickDepthRenderer.js +462 -0
  266. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickMeshRenderer.js +436 -0
  267. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsFlatRenderer.js +455 -0
  268. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsRenderer.js +440 -0
  269. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesRenderers.js +307 -0
  270. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSilhouetteRenderer.js +465 -0
  271. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapInitRenderer.js +466 -0
  272. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapRenderer.js +427 -0
  273. package/src/src/viewer/scene/model/index.js +5 -0
  274. package/src/src/viewer/scene/model/rebucketPositions.js +354 -0
  275. package/src/src/viewer/scene/model/vbo/ScratchMemory.js +63 -0
  276. package/src/src/viewer/scene/model/vbo/VBORenderer.js +646 -0
  277. package/src/src/viewer/scene/model/vbo/batching/lines/VBOBatchingLinesLayer.js +699 -0
  278. package/src/src/viewer/scene/model/vbo/batching/lines/lib/VBOBatchingLinesBuffer.js +19 -0
  279. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLineSnapInitRenderer.js +316 -0
  280. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesColorRenderer.js +114 -0
  281. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesRenderers.js +99 -0
  282. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSilhouetteRenderer.js +124 -0
  283. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapInitRenderer.js +311 -0
  284. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapRenderer.js +309 -0
  285. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOSceneModelLineBatchingRenderer.js +24 -0
  286. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsBuffer.js +20 -0
  287. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsLayer.js +718 -0
  288. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsRenderer.js +24 -0
  289. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsColorRenderer.js +168 -0
  290. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsOcclusionRenderer.js +136 -0
  291. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickDepthRenderer.js +156 -0
  292. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickMeshRenderer.js +148 -0
  293. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsRenderers.js +144 -0
  294. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsShadowRenderer.js +107 -0
  295. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSilhouetteRenderer.js +146 -0
  296. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapInitRenderer.js +309 -0
  297. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapRenderer.js +303 -0
  298. package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesBuffer.js +24 -0
  299. package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +1257 -0
  300. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesEdgesColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js} +6 -2
  301. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesEdgesRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js} +6 -4
  302. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +12 -0
  303. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesRenderers.js → src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js} +45 -45
  304. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js} +4 -3
  305. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js} +2 -2
  306. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesColorTextureRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js} +2 -2
  307. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesDepthRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js} +2 -2
  308. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesFlatColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js} +2 -2
  309. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesNormalsRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js} +2 -2
  310. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesOcclusionRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js} +2 -2
  311. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPBRRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js} +2 -2
  312. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickDepthRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js} +2 -2
  313. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickMeshRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js} +2 -2
  314. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickNormalsFlatRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js} +2 -2
  315. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickNormalsRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js} +2 -2
  316. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesShadowRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js} +2 -2
  317. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSilhouetteRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js} +3 -3
  318. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSnapInitRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js} +1 -1
  319. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSnapRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js} +1 -1
  320. package/src/src/viewer/scene/model/vbo/float16.js +760 -0
  321. package/src/src/viewer/scene/model/vbo/instancing/lines/VBOInstancingLinesLayer.js +704 -0
  322. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesColorRenderer.js +148 -0
  323. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderer.js +26 -0
  324. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderers.js +139 -0
  325. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSilhouetteRenderer.js +127 -0
  326. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapInitRenderer.js +331 -0
  327. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapRenderer.js +316 -0
  328. package/src/src/viewer/scene/model/vbo/instancing/points/VBOInstancingPointsLayer.js +728 -0
  329. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsColorRenderer.js +174 -0
  330. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsDepthRenderer.js +156 -0
  331. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsOcclusionRenderer.js +149 -0
  332. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickDepthRenderer.js +170 -0
  333. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickMeshRenderer.js +152 -0
  334. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderer.js +26 -0
  335. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderers.js +174 -0
  336. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsShadowRenderer.js +119 -0
  337. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSilhouetteRenderer.js +154 -0
  338. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapInitRenderer.js +330 -0
  339. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapRenderer.js +311 -0
  340. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingTrianglesRenderer.js +150 -0
  341. package/src/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +1190 -0
  342. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesEdgesColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js} +8 -4
  343. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesEdgesRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js} +8 -5
  344. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +12 -0
  345. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesRenderers.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js} +45 -45
  346. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js} +3 -3
  347. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesColorTextureRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js} +2 -2
  348. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesDepthRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js} +2 -2
  349. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesFlatColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js} +2 -2
  350. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesFlatNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js} +2 -2
  351. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOSceneModelTriangleInstancingRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js} +1 -1
  352. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js} +2 -2
  353. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesOcclusionRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js} +2 -2
  354. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPBRRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js} +2 -2
  355. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickDepthRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js} +2 -2
  356. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickMeshRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js} +2 -2
  357. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickNormalsFlatRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js} +2 -2
  358. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js} +2 -2
  359. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesShadowRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js} +2 -2
  360. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSilhouetteRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js} +2 -2
  361. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSnapInitRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js} +1 -1
  362. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSnapRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js} +1 -1
  363. package/src/src/viewer/scene/nodes/Node.js +1383 -0
  364. package/src/src/viewer/scene/nodes/index.js +1 -0
  365. package/src/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
  366. package/src/src/viewer/scene/paths/Curve.js +183 -0
  367. package/src/src/viewer/scene/paths/Path.js +239 -0
  368. package/src/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
  369. package/src/src/viewer/scene/paths/SplineCurve.js +133 -0
  370. package/src/src/viewer/scene/paths/index.js +5 -0
  371. package/src/src/viewer/scene/postfx/SAO.js +543 -0
  372. package/src/src/viewer/scene/scene/Scene.js +2802 -0
  373. package/src/src/viewer/scene/sectionPlane/SectionPlane.js +198 -0
  374. package/src/src/viewer/scene/sectionPlane/SectionPlaneCache.js +101 -0
  375. package/src/src/viewer/scene/sectionPlane/index.js +1 -0
  376. package/src/src/viewer/scene/skybox/Skybox.js +123 -0
  377. package/src/src/viewer/scene/skybox/index.js +1 -0
  378. package/src/src/viewer/scene/stats.js +44 -0
  379. package/src/src/viewer/scene/utils/Cache.js +29 -0
  380. package/src/src/viewer/scene/utils/FileLoader.js +161 -0
  381. package/src/src/viewer/scene/utils/Loader.js +55 -0
  382. package/src/src/viewer/scene/utils/LoadingManager.js +86 -0
  383. package/src/src/viewer/scene/utils/Map.js +45 -0
  384. package/src/src/viewer/scene/utils/Queue.js +56 -0
  385. package/src/src/viewer/scene/utils/WorkerPool.js +73 -0
  386. package/src/src/viewer/scene/utils/index.js +6 -0
  387. package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/KTX2TextureTranscoder.js +650 -0
  388. package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/index.js +1 -0
  389. package/src/src/viewer/scene/utils/textureTranscoders/TextureTranscoder.js +31 -0
  390. package/src/src/viewer/scene/utils/textureTranscoders/index.js +2 -0
  391. package/src/src/viewer/scene/utils.js +453 -0
  392. package/src/src/viewer/scene/viewport/Viewport.js +212 -0
  393. package/src/src/viewer/scene/webgl/ArrayBuf.js +121 -0
  394. package/src/src/viewer/scene/webgl/Attribute.js +23 -0
  395. package/src/src/viewer/scene/webgl/Drawable.js +270 -0
  396. package/src/src/viewer/scene/webgl/FrameContext.js +313 -0
  397. package/src/src/viewer/scene/webgl/PickResult.js +364 -0
  398. package/src/src/viewer/scene/webgl/Pickable.js +69 -0
  399. package/src/src/viewer/scene/webgl/Program.js +181 -0
  400. package/src/src/viewer/scene/webgl/RenderBuffer.js +378 -0
  401. package/src/src/viewer/scene/webgl/RenderBufferManager.js +34 -0
  402. package/src/src/viewer/scene/webgl/RenderFlags.js +203 -0
  403. package/src/src/viewer/scene/webgl/RenderState.js +40 -0
  404. package/src/src/viewer/scene/webgl/Renderer.js +1781 -0
  405. package/src/src/viewer/scene/webgl/Sampler.js +18 -0
  406. package/src/src/viewer/scene/webgl/Shader.js +49 -0
  407. package/src/src/viewer/scene/webgl/Texture2D.js +442 -0
  408. package/src/src/viewer/scene/webgl/convertConstant.js +244 -0
  409. package/src/src/viewer/scene/webgl/getExtension.js +32 -0
  410. package/src/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
  411. package/src/src/viewer/scene/webgl/occlusion/OcclusionTester.js +426 -0
  412. package/src/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +324 -0
  413. package/src/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +376 -0
  414. package/src/src/viewer/scene/webgl/webglEnums.js +61 -0
  415. package/src/src/viewer/scene/webglInfo.js +47 -0
  416. package/src/viewer/scene/model/SceneModel.js +1 -1
  417. package/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +1 -1
  418. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js +131 -0
  419. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js +135 -0
  420. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +12 -0
  421. package/src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js +375 -0
  422. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js +34 -0
  423. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js +238 -0
  424. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js +270 -0
  425. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js +126 -0
  426. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js +235 -0
  427. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js +139 -0
  428. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js +125 -0
  429. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js +561 -0
  430. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js +144 -0
  431. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js +130 -0
  432. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +121 -0
  433. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js +131 -0
  434. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js +107 -0
  435. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js +136 -0
  436. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js +311 -0
  437. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js +308 -0
  438. package/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +1 -1
  439. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js +136 -0
  440. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js +137 -0
  441. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +12 -0
  442. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js +376 -0
  443. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js +253 -0
  444. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js +278 -0
  445. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js +126 -0
  446. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js +244 -0
  447. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js +130 -0
  448. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js +29 -0
  449. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js +138 -0
  450. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js +128 -0
  451. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js +561 -0
  452. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js +149 -0
  453. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js +136 -0
  454. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +130 -0
  455. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js +145 -0
  456. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js +113 -0
  457. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js +139 -0
  458. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js +342 -0
  459. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js +325 -0
  460. package/src/viewer/scene/webgl/Renderer.js +20 -19
  461. package/src/viewer/scene/model/vbo/batching/triangles/renderers/VBOSceneModelTriangleBatchingEdgesRenderer.js +0 -12
  462. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/VBOSceneModelTriangleInstancingEdgesRenderer.js +0 -12
@@ -0,0 +1,669 @@
1
+ import {math} from '../math/math.js';
2
+ import {utils} from '../utils.js';
3
+ import {core} from '../core.js';
4
+ import {Component} from '../Component.js';
5
+
6
+ const tempVec3 = math.vec3();
7
+ const newLook = math.vec3();
8
+ const newEye = math.vec3();
9
+ const newUp = math.vec3();
10
+ const newLookEyeVec = math.vec3();
11
+
12
+ /**
13
+ * @desc Jumps or flies the {@link Scene}'s {@link Camera} to a given target.
14
+ *
15
+ * * Located at {@link Viewer#cameraFlight}
16
+ * * Can fly or jump to its target.
17
+ * * While flying, can be stopped, or redirected to a different target.
18
+ * * Can also smoothly transition between ortho and perspective projections.
19
+ *
20
+ *
21
+ * A CameraFlightAnimation's target can be:
22
+ *
23
+ * * specific ````eye````, ````look```` and ````up```` positions,
24
+ * * an axis-aligned World-space bounding box (AABB), or
25
+ * * an instance or ID of any {@link Component} subtype that provides a World-space AABB.
26
+ *
27
+ * A target can also contain a ````projection```` type to transition into. For example, if your {@link Camera#projection} is
28
+ * currently ````"perspective"```` and you supply {@link CameraFlightAnimation#flyTo} with a ````projection```` property
29
+ * equal to "ortho", then CameraFlightAnimation will smoothly transition the Camera into an orthographic projection.
30
+ *
31
+ * Configure {@link CameraFlightAnimation#fit} and {@link CameraFlightAnimation#fitFOV} to make it stop at the point
32
+ * where the target occupies a certain amount of the field-of-view.
33
+ *
34
+ * ## Flying to an Entity
35
+ *
36
+ * Flying to an {@link Entity}:
37
+ *
38
+ * ````Javascript
39
+ * var entity = new Mesh(viewer.scene);
40
+ *
41
+ * // Fly to the Entity's World-space AABB
42
+ * viewer.cameraFlight.flyTo(entity);
43
+ * ````
44
+ * ## Flying to a Position
45
+ *
46
+ * Flying the CameraFlightAnimation from the previous example to specified eye, look and up positions:
47
+ *
48
+ * ````Javascript
49
+ * viewer.cameraFlight.flyTo({
50
+ * eye: [-5,-5,-5],
51
+ * look: [0,0,0]
52
+ * up: [0,1,0],
53
+ * duration: 1 // Default, seconds
54
+ * },() => {
55
+ * // Done
56
+ * });
57
+ * ````
58
+ *
59
+ * ## Flying to an AABB
60
+ *
61
+ * Flying the CameraFlightAnimation from the previous two examples explicitly to the {@link Boundary3D"}}Boundary3D's{{/crossLink}}
62
+ * axis-aligned bounding box:
63
+ *
64
+ * ````Javascript
65
+ * viewer.cameraFlight.flyTo(entity.aabb);
66
+ * ````
67
+ *
68
+ * ## Transitioning Between Projections
69
+ *
70
+ * CameraFlightAnimation also allows us to smoothly transition between Camera projections. We can do that by itself, or
71
+ * in addition to flying the Camera to a target.
72
+ *
73
+ * Let's transition the Camera to orthographic projection:
74
+ *
75
+ * [[Run example](/examples/#camera_CameraFlightAnimation_projection)]
76
+ *
77
+ * ````Javascript
78
+ * viewer.cameraFlight.flyTo({ projection: "ortho", () => {
79
+ * // Done
80
+ * });
81
+ * ````
82
+ *
83
+ * Now let's transition the Camera back to perspective projection:
84
+ *
85
+ * ````Javascript
86
+ * viewer.cameraFlight.flyTo({ projection: "perspective"}, () => {
87
+ * // Done
88
+ * });
89
+ * ````
90
+ *
91
+ * Fly Camera to a position, while transitioning to orthographic projection:
92
+ *
93
+ * ````Javascript
94
+ * viewer.cameraFlight.flyTo({
95
+ * eye: [-100,20,2],
96
+ * look: [0,0,-40],
97
+ * up: [0,1,0],
98
+ * projection: "ortho", () => {
99
+ * // Done
100
+ * });
101
+ * ````
102
+ */
103
+ class CameraFlightAnimation extends Component {
104
+
105
+ /**
106
+ * @private
107
+ */
108
+ get type() {
109
+ return "CameraFlightAnimation";
110
+ }
111
+
112
+ /**
113
+ @constructor
114
+ @private
115
+ */
116
+ constructor(owner, cfg = {}) {
117
+
118
+ super(owner, cfg);
119
+
120
+ this._look1 = math.vec3();
121
+ this._eye1 = math.vec3();
122
+ this._up1 = math.vec3();
123
+ this._look2 = math.vec3();
124
+ this._eye2 = math.vec3();
125
+ this._up2 = math.vec3();
126
+ this._orthoScale1 = 1;
127
+ this._orthoScale2 = 1;
128
+ this._flying = false;
129
+ this._flyEyeLookUp = false;
130
+ this._flyingEye = false;
131
+ this._flyingLook = false;
132
+ this._callback = null;
133
+ this._callbackScope = null;
134
+ this._time1 = null;
135
+ this._time2 = null;
136
+ this.easing = cfg.easing !== false;
137
+
138
+ this.duration = cfg.duration;
139
+ this.fit = cfg.fit;
140
+ this.fitFOV = cfg.fitFOV;
141
+ this.trail = cfg.trail;
142
+ }
143
+
144
+ /**
145
+ * Flies the {@link Camera} to a target.
146
+ *
147
+ * * When the target is a boundary, the {@link Camera} will fly towards the target and stop when the target fills most of the canvas.
148
+ * * When the target is an explicit {@link Camera} position, given as ````eye````, ````look```` and ````up````, then CameraFlightAnimation will interpolate the {@link Camera} to that target and stop there.
149
+ *
150
+ * @param {Object|Component} [params=Scene] Either a parameters object or a {@link Component} subtype that has
151
+ * an AABB. Defaults to the {@link Scene}, which causes the {@link Camera} to fit the Scene in view.
152
+ * @param {Number} [params.arc=0] Factor in range ````[0..1]```` indicating how much the {@link Camera#eye} position
153
+ * will swing away from its {@link Camera#look} position as it flies to the target.
154
+ * @param {Number|String|Component} [params.component] ID or instance of a component to fly to. Defaults to the entire {@link Scene}.
155
+ * @param {Number[]} [params.aabb] World-space axis-aligned bounding box (AABB) target to fly to.
156
+ * @param {Number[]} [params.eye] Position to fly the eye position to.
157
+ * @param {Number[]} [params.look] Position to fly the look position to.
158
+ * @param {Number[]} [params.up] Position to fly the up vector to.
159
+ * @param {String} [params.projection] Projection type to transition into as we fly. Can be any of the values of {@link Camera.projection}.
160
+ * @param {Boolean} [params.fit=true] Whether to fit the target to the view volume. Overrides {@link CameraFlightAnimation#fit}.
161
+ * @param {Number} [params.fitFOV] How much of field-of-view, in degrees, that a target {@link Entity} or its AABB should
162
+ * fill the canvas on arrival. Overrides {@link CameraFlightAnimation#fitFOV}.
163
+ * @param {Number} [params.duration] Flight duration in seconds. Overrides {@link CameraFlightAnimation#duration}.
164
+ * @param {Number} [params.orthoScale] Animate the Camera's orthographic scale to this target value. See {@link Ortho#scale}.
165
+ * @param {Function} [callback] Callback fired on arrival.
166
+ * @param {Object} [scope] Optional scope for callback.
167
+ */
168
+ flyTo(params, callback, scope) {
169
+
170
+ params = params || this.scene;
171
+
172
+ if (this._flying) {
173
+ this.stop();
174
+ }
175
+
176
+ this._flying = false;
177
+ this._flyingEye = false;
178
+ this._flyingLook = false;
179
+ this._flyingEyeLookUp = false;
180
+
181
+ this._callback = callback;
182
+ this._callbackScope = scope;
183
+
184
+ const camera = this.scene.camera;
185
+ const flyToProjection = (!!params.projection) && (params.projection !== camera.projection);
186
+
187
+ this._eye1[0] = camera.eye[0];
188
+ this._eye1[1] = camera.eye[1];
189
+ this._eye1[2] = camera.eye[2];
190
+
191
+ this._look1[0] = camera.look[0];
192
+ this._look1[1] = camera.look[1];
193
+ this._look1[2] = camera.look[2];
194
+
195
+ this._up1[0] = camera.up[0];
196
+ this._up1[1] = camera.up[1];
197
+ this._up1[2] = camera.up[2];
198
+
199
+ this._orthoScale1 = camera.ortho.scale;
200
+ this._orthoScale2 = params.orthoScale || this._orthoScale1;
201
+
202
+ let aabb;
203
+ let eye;
204
+ let look;
205
+ let up;
206
+ let componentId;
207
+
208
+ if (params.aabb) {
209
+ aabb = params.aabb;
210
+
211
+ } else if (params.length === 6) {
212
+ aabb = params;
213
+
214
+ } else if ((params.eye && params.look) || params.up) {
215
+ eye = params.eye;
216
+ look = params.look;
217
+ up = params.up;
218
+
219
+ } else if (params.eye) {
220
+ eye = params.eye;
221
+
222
+ } else if (params.look) {
223
+ look = params.look;
224
+
225
+ } else { // Argument must be an instance or ID of a Component (subtype)
226
+
227
+ let component = params;
228
+
229
+ if (utils.isNumeric(component) || utils.isString(component)) {
230
+
231
+ componentId = component;
232
+ component = this.scene.components[componentId];
233
+
234
+ if (!component) {
235
+ this.error("Component not found: " + utils.inQuotes(componentId));
236
+ if (callback) {
237
+ if (scope) {
238
+ callback.call(scope);
239
+ } else {
240
+ callback();
241
+ }
242
+ }
243
+ return;
244
+ }
245
+ }
246
+ if (!flyToProjection) {
247
+ aabb = component.aabb || this.scene.aabb;
248
+ }
249
+ }
250
+
251
+ const poi = params.poi;
252
+
253
+ if (aabb) {
254
+
255
+ if (aabb[3] < aabb[0] || aabb[4] < aabb[1] || aabb[5] < aabb[2]) { // Don't fly to an inverted boundary
256
+ return;
257
+ }
258
+
259
+ if (aabb[3] === aabb[0] && aabb[4] === aabb[1] && aabb[5] === aabb[2]) { // Don't fly to an empty boundary
260
+ return;
261
+ }
262
+
263
+ aabb = aabb.slice();
264
+ const aabbCenter = math.getAABB3Center(aabb);
265
+
266
+ this._look2 = poi || aabbCenter;
267
+
268
+ const eyeLookVec = math.subVec3(this._eye1, this._look1, tempVec3);
269
+ const eyeLookVecNorm = math.normalizeVec3(eyeLookVec);
270
+ const diag = poi ? math.getAABB3DiagPoint(aabb, poi) : math.getAABB3Diag(aabb);
271
+ const fitFOV = params.fitFOV || this._fitFOV;
272
+ const sca = Math.abs(diag / Math.tan(fitFOV * math.DEGTORAD));
273
+
274
+ this._orthoScale2 = diag * 1.1;
275
+
276
+ this._eye2[0] = this._look2[0] + (eyeLookVecNorm[0] * sca);
277
+ this._eye2[1] = this._look2[1] + (eyeLookVecNorm[1] * sca);
278
+ this._eye2[2] = this._look2[2] + (eyeLookVecNorm[2] * sca);
279
+
280
+ this._up2[0] = this._up1[0];
281
+ this._up2[1] = this._up1[1];
282
+ this._up2[2] = this._up1[2];
283
+
284
+ this._flyingEyeLookUp = true;
285
+
286
+ } else if (eye || look || up) {
287
+
288
+ this._flyingEyeLookUp = !!eye && !!look && !!up;
289
+ this._flyingEye = !!eye && !look;
290
+ this._flyingLook = !!look && !eye;
291
+
292
+ if (eye) {
293
+ this._eye2[0] = eye[0];
294
+ this._eye2[1] = eye[1];
295
+ this._eye2[2] = eye[2];
296
+ }
297
+
298
+ if (look) {
299
+ this._look2[0] = look[0];
300
+ this._look2[1] = look[1];
301
+ this._look2[2] = look[2];
302
+ }
303
+
304
+ if (up) {
305
+ this._up2[0] = up[0];
306
+ this._up2[1] = up[1];
307
+ this._up2[2] = up[2];
308
+ }
309
+ }
310
+
311
+ if (flyToProjection) {
312
+
313
+ if (params.projection === "ortho" && camera.projection !== "ortho") {
314
+ this._projection2 = "ortho";
315
+ this._projMatrix1 = camera.projMatrix.slice();
316
+ this._projMatrix2 = camera.ortho.matrix.slice();
317
+ camera.projection = "customProjection";
318
+ }
319
+
320
+ if (params.projection === "perspective" && camera.projection !== "perspective") {
321
+ this._projection2 = "perspective";
322
+ this._projMatrix1 = camera.projMatrix.slice();
323
+ this._projMatrix2 = camera.perspective.matrix.slice();
324
+ camera.projection = "customProjection";
325
+ }
326
+ } else {
327
+ this._projection2 = null;
328
+ }
329
+
330
+ this.fire("started", params, true);
331
+
332
+ this._time1 = Date.now();
333
+ this._time2 = this._time1 + (params.duration ? params.duration * 1000 : this._duration);
334
+
335
+ this._flying = true; // False as soon as we stop
336
+
337
+ core.scheduleTask(this._update, this);
338
+ }
339
+
340
+ /**
341
+ * Jumps the {@link Scene}'s {@link Camera} to the given target.
342
+ *
343
+ * * When the target is a boundary, this CameraFlightAnimation will position the {@link Camera} at where the target fills most of the canvas.
344
+ * * When the target is an explicit {@link Camera} position, given as ````eye````, ````look```` and ````up```` vectors, then this CameraFlightAnimation will jump the {@link Camera} to that target.
345
+ *
346
+ * @param {*|Component} params Either a parameters object or a {@link Component} subtype that has a World-space AABB.
347
+ * @param {Number} [params.arc=0] Factor in range [0..1] indicating how much the {@link Camera#eye} will swing away from its {@link Camera#look} as it flies to the target.
348
+ * @param {Number|String|Component} [params.component] ID or instance of a component to fly to.
349
+ * @param {Number[]} [params.aabb] World-space axis-aligned bounding box (AABB) target to fly to.
350
+ * @param {Number[]} [params.eye] Position to fly the eye position to.
351
+ * @param {Number[]} [params.look] Position to fly the look position to.
352
+ * @param {Number[]} [params.up] Position to fly the up vector to.
353
+ * @param {String} [params.projection] Projection type to transition into. Can be any of the values of {@link Camera.projection}.
354
+ * @param {Number} [params.fitFOV] How much of field-of-view, in degrees, that a target {@link Entity} or its AABB should fill the canvas on arrival. Overrides {@link CameraFlightAnimation#fitFOV}.
355
+ * @param {Boolean} [params.fit] Whether to fit the target to the view volume. Overrides {@link CameraFlightAnimation#fit}.
356
+ */
357
+ jumpTo(params) {
358
+ this._jumpTo(params);
359
+ }
360
+
361
+ _jumpTo(params) {
362
+
363
+ if (this._flying) {
364
+ this.stop();
365
+ }
366
+
367
+ const camera = this.scene.camera;
368
+
369
+ var aabb;
370
+ var componentId;
371
+ var newEye;
372
+ var newLook;
373
+ var newUp;
374
+
375
+ if (params.aabb) { // Boundary3D
376
+ aabb = params.aabb;
377
+
378
+ } else if (params.length === 6) { // AABB
379
+ aabb = params;
380
+
381
+ } else if (params.eye || params.look || params.up) { // Camera pose
382
+ newEye = params.eye;
383
+ newLook = params.look;
384
+ newUp = params.up;
385
+
386
+ } else { // Argument must be an instance or ID of a Component (subtype)
387
+
388
+ let component = params;
389
+
390
+ if (utils.isNumeric(component) || utils.isString(component)) {
391
+ componentId = component;
392
+ component = this.scene.components[componentId];
393
+ if (!component) {
394
+ this.error("Component not found: " + utils.inQuotes(componentId));
395
+ return;
396
+ }
397
+ }
398
+ aabb = component.aabb || this.scene.aabb;
399
+ }
400
+
401
+ const poi = params.poi;
402
+
403
+ if (aabb) {
404
+
405
+ if (aabb[3] <= aabb[0] || aabb[4] <= aabb[1] || aabb[5] <= aabb[2]) { // Don't fly to an empty boundary
406
+ return;
407
+ }
408
+
409
+ var diag = poi ? math.getAABB3DiagPoint(aabb, poi) : math.getAABB3Diag(aabb);
410
+
411
+ newLook = poi || math.getAABB3Center(aabb, newLook);
412
+
413
+ if (this._trail) {
414
+ math.subVec3(camera.look, newLook, newLookEyeVec);
415
+ } else {
416
+ math.subVec3(camera.eye, camera.look, newLookEyeVec);
417
+ }
418
+
419
+ math.normalizeVec3(newLookEyeVec);
420
+ let dist;
421
+ const fit = (params.fit !== undefined) ? params.fit : this._fit;
422
+
423
+ if (fit) {
424
+ dist = Math.abs((diag) / Math.tan((params.fitFOV || this._fitFOV) * math.DEGTORAD));
425
+
426
+ } else {
427
+ dist = math.lenVec3(math.subVec3(camera.eye, camera.look, tempVec3));
428
+ }
429
+
430
+ math.mulVec3Scalar(newLookEyeVec, dist);
431
+
432
+ camera.eye = math.addVec3(newLook, newLookEyeVec, tempVec3);
433
+ camera.look = newLook;
434
+
435
+ this.scene.camera.ortho.scale = diag * 1.1;
436
+
437
+ } else if (newEye || newLook || newUp) {
438
+
439
+ if (newEye) {
440
+ camera.eye = newEye;
441
+ }
442
+ if (newLook) {
443
+ camera.look = newLook;
444
+ }
445
+ if (newUp) {
446
+ camera.up = newUp;
447
+ }
448
+ }
449
+
450
+ if (params.projection) {
451
+ camera.projection = params.projection;
452
+ }
453
+ }
454
+
455
+ _update() {
456
+ if (!this._flying) {
457
+ return;
458
+ }
459
+ const time = Date.now();
460
+ let t = (time - this._time1) / (this._time2 - this._time1);
461
+ const stopping = (t >= 1);
462
+
463
+ if (t > 1) {
464
+ t = 1;
465
+ }
466
+
467
+ const tFlight = this.easing ? CameraFlightAnimation._ease(t, 0, 1, 1) : t;
468
+ const camera = this.scene.camera;
469
+
470
+ if (this._flyingEye || this._flyingLook) {
471
+
472
+ if (this._flyingEye) {
473
+ math.subVec3(camera.eye, camera.look, newLookEyeVec);
474
+ camera.eye = math.lerpVec3(tFlight, 0, 1, this._eye1, this._eye2, newEye);
475
+ camera.look = math.subVec3(newEye, newLookEyeVec, newLook);
476
+ } else if (this._flyingLook) {
477
+ camera.look = math.lerpVec3(tFlight, 0, 1, this._look1, this._look2, newLook);
478
+ camera.up = math.lerpVec3(tFlight, 0, 1, this._up1, this._up2, newUp);
479
+ }
480
+
481
+ } else if (this._flyingEyeLookUp) {
482
+
483
+ camera.eye = math.lerpVec3(tFlight, 0, 1, this._eye1, this._eye2, newEye);
484
+ camera.look = math.lerpVec3(tFlight, 0, 1, this._look1, this._look2, newLook);
485
+ camera.up = math.lerpVec3(tFlight, 0, 1, this._up1, this._up2, newUp);
486
+ }
487
+
488
+ if (this._projection2) {
489
+ const tProj = (this._projection2 === "ortho") ? CameraFlightAnimation._easeOutExpo(t, 0, 1, 1) : CameraFlightAnimation._easeInCubic(t, 0, 1, 1);
490
+ camera.customProjection.matrix = math.lerpMat4(tProj, 0, 1, this._projMatrix1, this._projMatrix2);
491
+
492
+ } else {
493
+ camera.ortho.scale = this._orthoScale1 + (t * (this._orthoScale2 - this._orthoScale1));
494
+ }
495
+
496
+ if (stopping) {
497
+ camera.ortho.scale = this._orthoScale2;
498
+ this.stop();
499
+ return;
500
+ }
501
+ core.scheduleTask(this._update, this); // Keep flying
502
+ }
503
+
504
+ static _ease(t, b, c, d) { // Quadratic easing out - decelerating to zero velocity http://gizma.com/easing
505
+ t /= d;
506
+ return -c * t * (t - 2) + b;
507
+ }
508
+
509
+ static _easeInCubic(t, b, c, d) {
510
+ t /= d;
511
+ return c * t * t * t + b;
512
+ }
513
+
514
+ static _easeOutExpo(t, b, c, d) {
515
+ return c * (-Math.pow(2, -10 * t / d) + 1) + b;
516
+ }
517
+
518
+ /**
519
+ * Stops an earlier flyTo, fires arrival callback.
520
+ */
521
+ stop() {
522
+ if (!this._flying) {
523
+ return;
524
+ }
525
+ this._flying = false;
526
+ this._time1 = null;
527
+ this._time2 = null;
528
+ if (this._projection2) {
529
+ this.scene.camera.projection = this._projection2;
530
+ }
531
+ const callback = this._callback;
532
+ if (callback) {
533
+ this._callback = null;
534
+ if (this._callbackScope) {
535
+ callback.call(this._callbackScope);
536
+ } else {
537
+ callback();
538
+ }
539
+ }
540
+ this.fire("stopped", true, true);
541
+ }
542
+
543
+ /**
544
+ * Cancels an earlier flyTo without calling the arrival callback.
545
+ */
546
+ cancel() {
547
+ if (!this._flying) {
548
+ return;
549
+ }
550
+ this._flying = false;
551
+ this._time1 = null;
552
+ this._time2 = null;
553
+ if (this._callback) {
554
+ this._callback = null;
555
+ }
556
+ this.fire("canceled", true, true);
557
+ }
558
+
559
+ /**
560
+ * Sets the flight duration, in seconds, when calling {@link CameraFlightAnimation#flyTo}.
561
+ *
562
+ * Stops any flight currently in progress.
563
+ *
564
+ * default value is ````0.5````.
565
+ *
566
+ * @param {Number} value New duration value.
567
+ */
568
+ set duration(value) {
569
+ this._duration = value ? (value * 1000.0) : 500;
570
+ this.stop();
571
+ }
572
+
573
+ /**
574
+ * Gets the flight duration, in seconds, when calling {@link CameraFlightAnimation#flyTo}.
575
+ *
576
+ * default value is ````0.5````.
577
+ *
578
+ * @returns {Number} New duration value.
579
+ */
580
+ get duration() {
581
+ return this._duration / 1000.0;
582
+ }
583
+
584
+ /**
585
+ * Sets if, when CameraFlightAnimation is flying to a boundary, it will always adjust the distance between the
586
+ * {@link Camera#eye} and {@link Camera#look} so as to ensure that the target boundary is always filling the view volume.
587
+ *
588
+ * When false, the eye will remain at its current distance from the look position.
589
+ *
590
+ * Default value is ````true````.
591
+ *
592
+ * @param {Boolean} value Set ````true```` to activate this behaviour.
593
+ */
594
+ set fit(value) {
595
+ this._fit = value !== false;
596
+ }
597
+
598
+ /**
599
+ * Gets if, when CameraFlightAnimation is flying to a boundary, it will always adjust the distance between the
600
+ * {@link Camera#eye} and {@link Camera#look} so as to ensure that the target boundary is always filling the view volume.
601
+ *
602
+ * When false, the eye will remain at its current distance from the look position.
603
+ *
604
+ * Default value is ````true````.
605
+ *
606
+ * @returns {Boolean} value Set ````true```` to activate this behaviour.
607
+ */
608
+ get fit() {
609
+ return this._fit;
610
+ }
611
+
612
+ /**
613
+ * Sets how much of the perspective field-of-view, in degrees, that a target {@link Entity#aabb} should
614
+ * fill the canvas when calling {@link CameraFlightAnimation#flyTo} or {@link CameraFlightAnimation#jumpTo}.
615
+ *
616
+ * Default value is ````45````.
617
+ *
618
+ * @param {Number} value New FOV value.
619
+ */
620
+ set fitFOV(value) {
621
+ this._fitFOV = value || 45;
622
+ }
623
+
624
+ /**
625
+ * Gets how much of the perspective field-of-view, in degrees, that a target {@link Entity#aabb} should
626
+ * fill the canvas when calling {@link CameraFlightAnimation#flyTo} or {@link CameraFlightAnimation#jumpTo}.
627
+ *
628
+ * Default value is ````45````.
629
+ *
630
+ * @returns {Number} Current FOV value.
631
+ */
632
+ get fitFOV() {
633
+ return this._fitFOV;
634
+ }
635
+
636
+ /**
637
+ * Sets if this CameraFlightAnimation to point the {@link Camera}
638
+ * in the direction that it is travelling when flying to a target after calling {@link CameraFlightAnimation#flyTo}.
639
+ *
640
+ * Default value is ````true````.
641
+ *
642
+ * @param {Boolean} value Set ````true```` to activate trailing behaviour.
643
+ */
644
+ set trail(value) {
645
+ this._trail = !!value;
646
+ }
647
+
648
+ /**
649
+ * Gets if this CameraFlightAnimation points the {@link Camera}
650
+ * in the direction that it is travelling when flying to a target after calling {@link CameraFlightAnimation#flyTo}.
651
+ *
652
+ * Default value is ````true````.
653
+ *
654
+ * @returns {Boolean} True if trailing behaviour is active.
655
+ */
656
+ get trail() {
657
+ return this._trail;
658
+ }
659
+
660
+ /**
661
+ * @private
662
+ */
663
+ destroy() {
664
+ this.stop();
665
+ super.destroy();
666
+ }
667
+ }
668
+
669
+ export {CameraFlightAnimation};