@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,77 @@
1
+ import {CubeTexture} from './CubeTexture.js';
2
+
3
+ /**
4
+ * @desc A **LightMap** specifies a cube texture light map.
5
+ *
6
+ * ## Usage
7
+ *
8
+ * ````javascript
9
+ * import {Viewer, Mesh, buildSphereGeometry,
10
+ * ReadableGeometry, MetallicMaterial, LightMap} from "xeokit-sdk.es.js";
11
+ *
12
+ * // Create a Viewer and arrange the camera
13
+ *
14
+ * const viewer = new Viewer({
15
+ * canvasId: "myCanvas"
16
+ * });
17
+ *
18
+ * viewer.scene.camera.eye = [0, 0, 5];
19
+ * viewer.scene.camera.look = [0, 0, 0];
20
+ * viewer.scene.camera.up = [0, 1, 0];
21
+ *
22
+ * new LightMap(viewer.scene, {
23
+ * src: [
24
+ * "textures/light/Uffizi_Gallery/Uffizi_Gallery_Irradiance_PX.png",
25
+ * "textures/light/Uffizi_Gallery/Uffizi_Gallery_Irradiance_NX.png",
26
+ * "textures/light/Uffizi_Gallery/Uffizi_Gallery_Irradiance_PY.png",
27
+ * "textures/light/Uffizi_Gallery/Uffizi_Gallery_Irradiance_NY.png",
28
+ * "textures/light/Uffizi_Gallery/Uffizi_Gallery_Irradiance_PZ.png",
29
+ * "textures/light/Uffizi_Gallery/Uffizi_Gallery_Irradiance_NZ.png"
30
+ * ]
31
+ * });
32
+ *
33
+ * // Create a sphere and ground plane
34
+ *
35
+ * new Mesh(viewer.scene, {
36
+ * geometry: new ReadableGeometry(viewer.scene, buildSphereGeometry({
37
+ * radius: 2.0
38
+ * }),
39
+ * new MetallicMaterial(viewer.scene, {
40
+ * baseColor: [1, 1, 1],
41
+ * metallic: 1.0,
42
+ * roughness: 1.0
43
+ * })
44
+ * });
45
+ * ````
46
+ */
47
+ class LightMap extends CubeTexture {
48
+
49
+ /**
50
+ @private
51
+ */
52
+ get type() {
53
+ return "LightMap";
54
+ }
55
+
56
+ /**
57
+ * @constructor
58
+ * @param {Component} owner Owner component. When destroyed, the owner will destroy this component as well.
59
+ * @param {*} [cfg] Configs
60
+ * @param {String} [cfg.id] Optional ID for this LightMap, unique among all components in the parent scene, generated automatically when omitted.
61
+ * @param {String:Object} [cfg.meta] Optional map of user-defined metadata to attach to this LightMap.
62
+ * @param {String[]} [cfg.src=null] Paths to six image files to load into this LightMap.
63
+ * @param {Boolean} [cfg.flipY=false] Flips this LightMap's source data along its vertical axis when true.
64
+ * @param {Number} [cfg.encoding=LinearEncoding] Encoding format. Supported values are {@link LinearEncoding} and {@link sRGBEncoding}.
65
+ */
66
+ constructor(owner, cfg = {}) {
67
+ super(owner, cfg);
68
+ this.scene._lightMapCreated(this);
69
+ }
70
+
71
+ destroy() {
72
+ super.destroy();
73
+ this.scene._lightMapDestroyed(this);
74
+ }
75
+ }
76
+
77
+ export {LightMap};
@@ -0,0 +1,395 @@
1
+ import {Light} from './Light.js';
2
+ import {RenderState} from '../webgl/RenderState.js';
3
+ import {RenderBuffer} from '../webgl/RenderBuffer.js';
4
+ import {math} from '../math/math.js';
5
+
6
+ /**
7
+ * A positional light source that originates from a single point and spreads outward in all directions, with optional attenuation over distance.
8
+ *
9
+ * * Has a position in {@link PointLight#pos}, but no direction.
10
+ * * Defined in either *World* or *View* coordinate space. When in World-space, {@link PointLight#pos} is relative to
11
+ * the World coordinate system, and will appear to move as the {@link Camera} moves. When in View-space,
12
+ * {@link PointLight#pos} is relative to the View coordinate system, and will behave as if fixed to the viewer's head.
13
+ * * Has {@link PointLight#constantAttenuation}, {@link PointLight#linearAttenuation} and {@link PointLight#quadraticAttenuation}
14
+ * factors, which indicate how intensity attenuates over distance.
15
+ * * {@link AmbientLight}s, {@link PointLight}s and {@link PointLight}s are registered by their {@link Component#id} on {@link Scene#lights}.
16
+ *
17
+ * ## Usage
18
+ *
19
+ * In the example below we'll replace the {@link Scene}'s default light sources with three World-space PointLights.
20
+ *
21
+ * [[Run this example](/examples/#lights_PointLight_world)]
22
+ *
23
+ * ````javascript
24
+ * import {Viewer, Mesh, buildSphereGeometry, buildPlaneGeometry,
25
+ * ReadableGeometry, PhongMaterial, Texture, PointLight} from "xeokit-sdk.es.js";
26
+ *
27
+ * // Create a Viewer and arrange the camera
28
+ *
29
+ * const viewer = new Viewer({
30
+ * canvasId: "myCanvas"
31
+ * });
32
+ *
33
+ * viewer.scene.camera.eye = [0, 0, 5];
34
+ * viewer.scene.camera.look = [0, 0, 0];
35
+ * viewer.scene.camera.up = [0, 1, 0];
36
+ *
37
+ * // Replace the Scene's default lights with three custom world-space PointLights
38
+ *
39
+ * viewer.scene.clearLights();
40
+ *
41
+ * new PointLight(viewer.scene,{
42
+ * id: "keyLight",
43
+ * pos: [-80, 60, 80],
44
+ * color: [1.0, 0.3, 0.3],
45
+ * intensity: 1.0,
46
+ * space: "world"
47
+ * });
48
+ *
49
+ * new PointLight(viewer.scene,{
50
+ * id: "fillLight",
51
+ * pos: [80, 40, 40],
52
+ * color: [0.3, 1.0, 0.3],
53
+ * intensity: 1.0,
54
+ * space: "world"
55
+ * });
56
+ *
57
+ * new PointLight(viewer.scene,{
58
+ * id: "rimLight",
59
+ * pos: [-20, 80, -80],
60
+ * color: [0.6, 0.6, 0.6],
61
+ * intensity: 1.0,
62
+ * space: "world"
63
+ * });
64
+ *
65
+ * // Create a sphere and ground plane
66
+ *
67
+ * new Mesh(viewer.scene, {
68
+ * geometry: new ReadableGeometry(viewer.scene, buildSphereGeometry({
69
+ * radius: 1.3
70
+ * }),
71
+ * material: new PhongMaterial(viewer.scene, {
72
+ * diffuse: [0.7, 0.7, 0.7],
73
+ * specular: [1.0, 1.0, 1.0],
74
+ * emissive: [0, 0, 0],
75
+ * alpha: 1.0,
76
+ * ambient: [1, 1, 0],
77
+ * diffuseMap: new Texture(viewer.scene, {
78
+ * src: "textures/diffuse/uvGrid2.jpg"
79
+ * })
80
+ * })
81
+ * });
82
+ *
83
+ * new Mesh(viewer.scene, {
84
+ * geometry: buildPlaneGeometry(ReadableGeometry, viewer.scene, {
85
+ * xSize: 30,
86
+ * zSize: 30
87
+ * }),
88
+ * material: new PhongMaterial(viewer.scene, {
89
+ * diffuseMap: new Texture(viewer.scene, {
90
+ * src: "textures/diffuse/uvGrid2.jpg"
91
+ * }),
92
+ * backfaces: true
93
+ * }),
94
+ * position: [0, -2.1, 0]
95
+ * });
96
+ * ````
97
+ */
98
+ class PointLight extends Light {
99
+
100
+ /**
101
+ @private
102
+ */
103
+ get type() {
104
+ return "PointLight";
105
+ }
106
+
107
+ /**
108
+ * @param {Component} owner Owner component. When destroyed, the owner will destroy this PointLight as well.
109
+ * @param {*} [cfg] The PointLight configuration
110
+ * @param {String} [cfg.id] Optional ID, unique among all components in the parent {@link Scene}, generated automatically when omitted.
111
+ * @param {Number[]} [cfg.pos=[ 1.0, 1.0, 1.0 ]] Position, in either World or View space, depending on the value of the **space** parameter.
112
+ * @param {Number[]} [cfg.color=[0.7, 0.7, 0.8 ]] Color of this PointLight.
113
+ * @param {Number} [cfg.intensity=1.0] Intensity of this PointLight, as a factor in range ````[0..1]````.
114
+ * @param {Number} [cfg.constantAttenuation=0] Constant attenuation factor.
115
+ * @param {Number} [cfg.linearAttenuation=0] Linear attenuation factor.
116
+ * @param {Number} [cfg.quadraticAttenuation=0]Quadratic attenuation factor.
117
+ * @param {String} [cfg.space="view"]The coordinate system this PointLight is defined in - "view" or "world".
118
+ * @param {Boolean} [cfg.castsShadow=false] Flag which indicates if this PointLight casts a castsShadow.
119
+ */
120
+ constructor(owner, cfg = {}) {
121
+
122
+ super(owner, cfg);
123
+
124
+ const self = this;
125
+
126
+ this._shadowRenderBuf = null;
127
+ this._shadowViewMatrix = null;
128
+ this._shadowProjMatrix = null;
129
+ this._shadowViewMatrixDirty = true;
130
+ this._shadowProjMatrixDirty = true;
131
+
132
+ const camera = this.scene.camera;
133
+ const canvas = this.scene.canvas;
134
+
135
+ this._onCameraViewMatrix = camera.on("viewMatrix", () => {
136
+ this._shadowViewMatrixDirty = true;
137
+ });
138
+
139
+ this._onCameraProjMatrix = camera.on("projMatrix", () => {
140
+ this._shadowProjMatrixDirty = true;
141
+ });
142
+
143
+ this._onCanvasBoundary = canvas.on("boundary", () => {
144
+ this._shadowProjMatrixDirty = true;
145
+ });
146
+
147
+ this._state = new RenderState({
148
+
149
+ type: "point",
150
+ pos: math.vec3([1.0, 1.0, 1.0]),
151
+ color: math.vec3([0.7, 0.7, 0.8]),
152
+ intensity: 1.0, attenuation: [0.0, 0.0, 0.0],
153
+ space: cfg.space || "view",
154
+ castsShadow: false,
155
+
156
+ getShadowViewMatrix: () => {
157
+ if (self._shadowViewMatrixDirty) {
158
+ if (!self._shadowViewMatrix) {
159
+ self._shadowViewMatrix = math.identityMat4();
160
+ }
161
+ const eye = self._state.pos;
162
+ const look = camera.look;
163
+ const up = camera.up;
164
+ math.lookAtMat4v(eye, look, up, self._shadowViewMatrix);
165
+ self._shadowViewMatrixDirty = false;
166
+ }
167
+ return self._shadowViewMatrix;
168
+ },
169
+
170
+ getShadowProjMatrix: () => {
171
+ if (self._shadowProjMatrixDirty) { // TODO: Set when canvas resizes
172
+ if (!self._shadowProjMatrix) {
173
+ self._shadowProjMatrix = math.identityMat4();
174
+ }
175
+ const canvas = self.scene.canvas.canvas;
176
+ math.perspectiveMat4(70 * (Math.PI / 180.0), canvas.clientWidth / canvas.clientHeight, 0.1, 500.0, self._shadowProjMatrix);
177
+ self._shadowProjMatrixDirty = false;
178
+ }
179
+ return self._shadowProjMatrix;
180
+ },
181
+
182
+ getShadowRenderBuf: () => {
183
+ if (!self._shadowRenderBuf) {
184
+ self._shadowRenderBuf = new RenderBuffer(self.scene.canvas.canvas, self.scene.canvas.gl, {size: [1024, 1024]}); // Super old mobile devices have a limit of 1024x1024 textures
185
+ }
186
+ return self._shadowRenderBuf;
187
+ }
188
+ });
189
+
190
+ this.pos = cfg.pos;
191
+ this.color = cfg.color;
192
+ this.intensity = cfg.intensity;
193
+ this.constantAttenuation = cfg.constantAttenuation;
194
+ this.linearAttenuation = cfg.linearAttenuation;
195
+ this.quadraticAttenuation = cfg.quadraticAttenuation;
196
+ this.castsShadow = cfg.castsShadow;
197
+
198
+ this.scene._lightCreated(this);
199
+ }
200
+
201
+ /**
202
+ * Sets the position of this PointLight.
203
+ *
204
+ * This will be either World- or View-space, depending on the value of {@link PointLight#space}.
205
+ *
206
+ * Default value is ````[1.0, 1.0, 1.0]````.
207
+ *
208
+ * @param {Number[]} pos The position.
209
+ */
210
+ set pos(pos) {
211
+ this._state.pos.set(pos || [1.0, 1.0, 1.0]);
212
+ this._shadowViewMatrixDirty = true;
213
+ this.glRedraw();
214
+ }
215
+
216
+ /**
217
+ * Gets the position of this PointLight.
218
+ *
219
+ * This will be either World- or View-space, depending on the value of {@link PointLight#space}.
220
+ *
221
+ * Default value is ````[1.0, 1.0, 1.0]````.
222
+ *
223
+ * @returns {Number[]} The position.
224
+ */
225
+ get pos() {
226
+ return this._state.pos;
227
+ }
228
+
229
+ /**
230
+ * Sets the RGB color of this PointLight.
231
+ *
232
+ * Default value is ````[0.7, 0.7, 0.8]````.
233
+ *
234
+ * @param {Number[]} color The PointLight's RGB color.
235
+ */
236
+ set color(color) {
237
+ this._state.color.set(color || [0.7, 0.7, 0.8]);
238
+ this.glRedraw();
239
+ }
240
+
241
+ /**
242
+ * Gets the RGB color of this PointLight.
243
+ *
244
+ * Default value is ````[0.7, 0.7, 0.8]````.
245
+ *
246
+ * @returns {Number[]} The PointLight's RGB color.
247
+ */
248
+ get color() {
249
+ return this._state.color;
250
+ }
251
+
252
+ /**
253
+ * Sets the intensity of this PointLight.
254
+ *
255
+ * Default intensity is ````1.0```` for maximum intensity.
256
+ *
257
+ * @param {Number} intensity The PointLight's intensity
258
+ */
259
+ set intensity(intensity) {
260
+ intensity = intensity !== undefined ? intensity : 1.0;
261
+ this._state.intensity = intensity;
262
+ this.glRedraw();
263
+ }
264
+
265
+ /**
266
+ * Gets the intensity of this PointLight.
267
+ *
268
+ * Default value is ````1.0```` for maximum intensity.
269
+ *
270
+ * @returns {Number} The PointLight's intensity.
271
+ */
272
+ get intensity() {
273
+ return this._state.intensity;
274
+ }
275
+
276
+ /**
277
+ * Sets the constant attenuation factor for this PointLight.
278
+ *
279
+ * Default value is ````0````.
280
+ *
281
+ * @param {Number} value The constant attenuation factor.
282
+ */
283
+ set constantAttenuation(value) {
284
+ this._state.attenuation[0] = value || 0.0;
285
+ this.glRedraw();
286
+ }
287
+
288
+ /**
289
+ * Gets the constant attenuation factor for this PointLight.
290
+ *
291
+ * Default value is ````0````.
292
+ *
293
+ * @returns {Number} The constant attenuation factor.
294
+ */
295
+ get constantAttenuation() {
296
+ return this._state.attenuation[0];
297
+ }
298
+
299
+ /**
300
+ * Sets the linear attenuation factor for this PointLight.
301
+ *
302
+ * Default value is ````0````.
303
+ *
304
+ * @param {Number} value The linear attenuation factor.
305
+ */
306
+ set linearAttenuation(value) {
307
+ this._state.attenuation[1] = value || 0.0;
308
+ this.glRedraw();
309
+ }
310
+
311
+ /**
312
+ * Gets the linear attenuation factor for this PointLight.
313
+ *
314
+ * Default value is ````0````.
315
+ *
316
+ * @returns {Number} The linear attenuation factor.
317
+ */
318
+ get linearAttenuation() {
319
+ return this._state.attenuation[1];
320
+ }
321
+
322
+ /**
323
+ * Sets the quadratic attenuation factor for this PointLight.
324
+ *
325
+ * Default value is ````0````.
326
+ *
327
+ * @param {Number} value The quadratic attenuation factor.
328
+ */
329
+ set quadraticAttenuation(value) {
330
+ this._state.attenuation[2] = value || 0.0;
331
+ this.glRedraw();
332
+ }
333
+
334
+ /**
335
+ * Gets the quadratic attenuation factor for this PointLight.
336
+ *
337
+ * Default value is ````0````.
338
+ *
339
+ * @returns {Number} The quadratic attenuation factor.
340
+ */
341
+ get quadraticAttenuation() {
342
+ return this._state.attenuation[2];
343
+ }
344
+
345
+ /**
346
+ * Sets if this PointLight casts a shadow.
347
+ *
348
+ * Default value is ````false````.
349
+ *
350
+ * @param {Boolean} castsShadow Set ````true```` to cast shadows.
351
+ */
352
+ set castsShadow(castsShadow) {
353
+ castsShadow = !!castsShadow;
354
+ if (this._state.castsShadow === castsShadow) {
355
+ return;
356
+ }
357
+ this._state.castsShadow = castsShadow;
358
+ this._shadowViewMatrixDirty = true;
359
+ this.glRedraw();
360
+ }
361
+
362
+ /**
363
+ * Gets if this PointLight casts a shadow.
364
+ *
365
+ * Default value is ````false````.
366
+ *
367
+ * @returns {Boolean} ````true```` if this PointLight casts shadows.
368
+ */
369
+ get castsShadow() {
370
+ return this._state.castsShadow;
371
+ }
372
+
373
+ /**
374
+ * Destroys this PointLight.
375
+ */
376
+ destroy() {
377
+
378
+ const camera = this.scene.camera;
379
+ const canvas = this.scene.canvas;
380
+ camera.off(this._onCameraViewMatrix);
381
+ camera.off(this._onCameraProjMatrix);
382
+ canvas.off(this._onCanvasBoundary);
383
+
384
+ super.destroy();
385
+
386
+ this._state.destroy();
387
+ if (this._shadowRenderBuf) {
388
+ this._shadowRenderBuf.destroy();
389
+ }
390
+ this.scene._lightDestroyed(this);
391
+ this.glRedraw();
392
+ }
393
+ }
394
+
395
+ export {PointLight};
@@ -0,0 +1,79 @@
1
+ import {CubeTexture} from './CubeTexture.js';
2
+
3
+ /**
4
+ * @desc A reflection cube map.
5
+ *
6
+ * ## Usage
7
+ *
8
+ * ````javascript
9
+ * import {Viewer, Mesh, buildSphereGeometry,
10
+ * ReadableGeometry, MetallicMaterial, ReflectionMap} from "xeokit-sdk.es.js";
11
+ *
12
+ * // Create a Viewer and arrange the camera
13
+ *
14
+ * const viewer = new Viewer({
15
+ * canvasId: "myCanvas"
16
+ * });
17
+ *
18
+ * viewer.scene.camera.eye = [0, 0, 5];
19
+ * viewer.scene.camera.look = [0, 0, 0];
20
+ * viewer.scene.camera.up = [0, 1, 0];
21
+ *
22
+ * new ReflectionMap(viewer.scene, {
23
+ * src: [
24
+ * "textures/reflect/Uffizi_Gallery/Uffizi_Gallery_Radiance_PX.png",
25
+ * "textures/reflect/Uffizi_Gallery/Uffizi_Gallery_Radiance_NX.png",
26
+ * "textures/reflect/Uffizi_Gallery/Uffizi_Gallery_Radiance_PY.png",
27
+ * "textures/reflect/Uffizi_Gallery/Uffizi_Gallery_Radiance_NY.png",
28
+ * "textures/reflect/Uffizi_Gallery/Uffizi_Gallery_Radiance_PZ.png",
29
+ * "textures/reflect/Uffizi_Gallery/Uffizi_Gallery_Radiance_NZ.png"
30
+ * ]
31
+ * });
32
+ *
33
+ * // Create a sphere and ground plane
34
+ *
35
+ * new Mesh(viewer.scene, {
36
+ * geometry: new ReadableGeometry(viewer.scene, buildSphereGeometry({
37
+ * radius: 2.0
38
+ * }),
39
+ * new MetallicMaterial(viewer.scene, {
40
+ * baseColor: [1, 1, 1],
41
+ * metallic: 1.0,
42
+ * roughness: 1.0
43
+ * })
44
+ * });
45
+ * ````
46
+ */
47
+ class ReflectionMap extends CubeTexture {
48
+
49
+ /**
50
+ @private
51
+ */
52
+ get type() {
53
+ return "ReflectionMap";
54
+ }
55
+
56
+ /**
57
+ * @param {Component} owner Owner component. When destroyed, the owner will destroy this component as well.
58
+ * @param {*} [cfg] Configs
59
+ * @param {String} [cfg.id] Optional ID for this ReflectionMap, unique among all components in the parent scene, generated automatically when omitted.
60
+ * @param {String[]} [cfg.src=null] Paths to six image files to load into this ReflectionMap.
61
+ * @param {Boolean} [cfg.flipY=false] Flips this ReflectionMap's source data along its vertical axis when true.
62
+ * @param {Number} [cfg.encoding=LinearEncoding] Encoding format. Supported values are {@link LinearEncoding} and {@link sRGBEncoding}.
63
+ */
64
+ constructor(owner, cfg = {}) {
65
+ super(owner, cfg);
66
+ this.scene._lightsState.addReflectionMap(this._state);
67
+ this.scene._reflectionMapCreated(this);
68
+ }
69
+
70
+ /**
71
+ * Destroys this ReflectionMap.
72
+ */
73
+ destroy() {
74
+ super.destroy();
75
+ this.scene._reflectionMapDestroyed(this);
76
+ }
77
+ }
78
+
79
+ export {ReflectionMap};
@@ -0,0 +1,138 @@
1
+ /**
2
+ A **Shadow** defines a shadow cast by a {@link DirLight} or a {@link SpotLight}.
3
+
4
+ Work in progress!
5
+
6
+ ## Overview
7
+
8
+ * Shadows are attached to {@link DirLight} and {@link SpotLight} components.
9
+
10
+ TODO
11
+
12
+ ## Examples
13
+
14
+ TODO
15
+
16
+ ## Usage
17
+
18
+ ```` javascript
19
+ var mesh = new xeokit.Mesh(scene, {
20
+
21
+ lights: new xeokit.Lights({
22
+ lights: [
23
+
24
+ new xeokit.SpotLight({
25
+ pos: [0, 100, 100],
26
+ dir: [0, -1, 0],
27
+ color: [0.5, 0.7, 0.5],
28
+ intensity: 1
29
+ constantAttenuation: 0,
30
+ linearAttenuation: 0,
31
+ quadraticAttenuation: 0,
32
+ space: "view",
33
+
34
+ shadow: new xeokit.Shadow({
35
+ resolution: [1000, 1000],
36
+ intensity: 0.7,
37
+ sampling: "stratified" // "stratified" | "poisson" | "basic"
38
+ });
39
+ })
40
+ ]
41
+ }),
42
+ ,
43
+ material: new xeokit.PhongMaterial({
44
+ diffuse: [0.5, 0.5, 0.0]
45
+ }),
46
+
47
+ geometry: new xeokit.BoxGeometry()
48
+ });
49
+ ````
50
+
51
+ @class Shadow
52
+ @module xeokit
53
+ @submodule lighting
54
+ @constructor
55
+ @extends Component
56
+ @param {Component} owner Owner component. When destroyed, the owner will destroy this component as well.
57
+ @param {*} [cfg] The Shadow configuration
58
+ @param {String} [cfg.id] Optional ID, unique among all components in the parent {@link Scene}, generated automatically when omitted.
59
+ @param {String:Object} [cfg.meta] Optional map of user-defined metadata to attach to this Shadow.
60
+ @param [cfg.resolution=[1000,1000]] {Uint16Array} Resolution of the texture map for this Shadow.
61
+ @param [cfg.intensity=1.0] {Number} Intensity of this Shadow.
62
+ */
63
+ import {Component} from '../Component.js';
64
+ import {math} from '../math/math.js';
65
+
66
+ class Shadow extends Component {
67
+
68
+ /**
69
+ @private
70
+ */
71
+ get type() {
72
+ return "Shadow";
73
+ }
74
+
75
+ constructor(owner, cfg={}) {
76
+
77
+ super(owner, cfg);
78
+
79
+ this._state = {
80
+ resolution: math.vec3([1000, 1000]),
81
+ intensity: 1.0
82
+ };
83
+
84
+ this.resolution = cfg.resolution;
85
+ this.intensity = cfg.intensity;
86
+ }
87
+
88
+ /**
89
+ The resolution of the texture map for this Shadow.
90
+
91
+ This will be either World- or View-space, depending on the value of {@link Shadow/space}.
92
+
93
+ Fires a {@link Shadow/resolution:event} event on change.
94
+
95
+ @property resolution
96
+ @default [1000, 1000]
97
+ @type Uint16Array
98
+ */
99
+ set resolution(value) {
100
+
101
+ this._state.resolution.set(value || [1000.0, 1000.0]);
102
+
103
+ this.glRedraw();
104
+ }
105
+
106
+ get resolution() {
107
+ return this._state.resolution;
108
+ }
109
+
110
+ /**
111
+ The intensity of this Shadow.
112
+
113
+ Fires a {@link Shadow/intensity:event} event on change.
114
+
115
+ @property intensity
116
+ @default 1.0
117
+ @type {Number}
118
+ */
119
+ set intensity(value) {
120
+
121
+ value = value !== undefined ? value : 1.0;
122
+
123
+ this._state.intensity = value;
124
+
125
+ this.glRedraw();
126
+ }
127
+
128
+ get intensity() {
129
+ return this._state.intensity;
130
+ }
131
+
132
+ destroy() {
133
+ super.destroy();
134
+ //this._state.destroy();
135
+ }
136
+ }
137
+
138
+ export {Shadow};
@@ -0,0 +1,5 @@
1
+ export * from "./AmbientLight.js";
2
+ export * from "./DirLight.js";
3
+ export * from "./PointLight.js";
4
+ export * from "./ReflectionMap.js";
5
+ export * from "./LightMap.js";