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

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 (418) hide show
  1. package/dist/xeokit-sdk.cjs.js +31 -10
  2. package/dist/xeokit-sdk.es.js +31 -10
  3. package/dist/xeokit-sdk.es5.js +68 -66
  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/viewer/metadata/MetaModel.js +16 -1
  9. package/src/viewer/metadata/MetaScene.js +15 -9
  10. package/src/plugins/XKTLoaderPlugin/parsers/ParserV11.js +0 -663
  11. package/src/src/extras/ContextMenu/ContextMenu.js +0 -907
  12. package/src/src/extras/ContextMenu/index.js +0 -1
  13. package/src/src/extras/MarqueePicker/MarqueePicker.js +0 -352
  14. package/src/src/extras/MarqueePicker/MarqueePickerMouseControl.js +0 -174
  15. package/src/src/extras/MarqueePicker/index.js +0 -2
  16. package/src/src/extras/PointerLens/PointerLens.js +0 -312
  17. package/src/src/extras/PointerLens/index.js +0 -1
  18. package/src/src/extras/collision/ObjectsKdTree3.js +0 -149
  19. package/src/src/extras/collision/index.js +0 -1
  20. package/src/src/extras/index.js +0 -4
  21. package/src/src/index.js +0 -3
  22. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +0 -731
  23. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +0 -84
  24. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsMouseControl.js +0 -435
  25. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +0 -406
  26. package/src/src/plugins/AngleMeasurementsPlugin/index.js +0 -3
  27. package/src/src/plugins/AnnotationsPlugin/Annotation.js +0 -368
  28. package/src/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +0 -583
  29. package/src/src/plugins/AnnotationsPlugin/index.js +0 -1
  30. package/src/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +0 -333
  31. package/src/src/plugins/AxisGizmoPlugin/index.js +0 -1
  32. package/src/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +0 -977
  33. package/src/src/plugins/BCFViewpointsPlugin/index.js +0 -1
  34. package/src/src/plugins/CityJSONLoaderPlugin/CityJSONDefaultDataSource.js +0 -29
  35. package/src/src/plugins/CityJSONLoaderPlugin/CityJSONLoaderPlugin.js +0 -751
  36. package/src/src/plugins/CityJSONLoaderPlugin/index.js +0 -1
  37. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +0 -963
  38. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +0 -84
  39. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsMouseControl.js +0 -399
  40. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +0 -505
  41. package/src/src/plugins/DistanceMeasurementsPlugin/index.js +0 -3
  42. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesControl.js +0 -639
  43. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesPlugin.js +0 -436
  44. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Overview.js +0 -247
  45. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Plane.js +0 -167
  46. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/index.js +0 -1
  47. package/src/src/plugins/FastNavPlugin/FastNavPlugin.js +0 -429
  48. package/src/src/plugins/FastNavPlugin/index.js +0 -1
  49. package/src/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +0 -140
  50. package/src/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +0 -421
  51. package/src/src/plugins/GLTFLoaderPlugin/GLTFSceneModelLoader.js +0 -669
  52. package/src/src/plugins/GLTFLoaderPlugin/index.js +0 -2
  53. package/src/src/plugins/LASLoaderPlugin/LASDefaultDataSource.js +0 -58
  54. package/src/src/plugins/LASLoaderPlugin/LASLoaderPlugin.js +0 -563
  55. package/src/src/plugins/LASLoaderPlugin/index.js +0 -1
  56. package/src/src/plugins/LASLoaderPlugin/loadLASHeader.js +0 -183
  57. package/src/src/plugins/NavCubePlugin/CubeTextureCanvas.js +0 -290
  58. package/src/src/plugins/NavCubePlugin/NavCubePlugin.js +0 -753
  59. package/src/src/plugins/NavCubePlugin/index.js +0 -1
  60. package/src/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +0 -145
  61. package/src/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +0 -777
  62. package/src/src/plugins/OBJLoaderPlugin/index.js +0 -1
  63. package/src/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +0 -33
  64. package/src/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +0 -274
  65. package/src/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +0 -313
  66. package/src/src/plugins/STLLoaderPlugin/index.js +0 -2
  67. package/src/src/plugins/SectionPlanesPlugin/Control.js +0 -1328
  68. package/src/src/plugins/SectionPlanesPlugin/Overview.js +0 -249
  69. package/src/src/plugins/SectionPlanesPlugin/Plane.js +0 -169
  70. package/src/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +0 -404
  71. package/src/src/plugins/SectionPlanesPlugin/index.js +0 -1
  72. package/src/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +0 -134
  73. package/src/src/plugins/SkyboxesPlugin/index.js +0 -1
  74. package/src/src/plugins/StoreyViewsPlugin/Storey.js +0 -84
  75. package/src/src/plugins/StoreyViewsPlugin/StoreyMap.js +0 -57
  76. package/src/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +0 -773
  77. package/src/src/plugins/StoreyViewsPlugin/index.js +0 -1
  78. package/src/src/plugins/TreeViewPlugin/RenderService.js +0 -169
  79. package/src/src/plugins/TreeViewPlugin/TreeViewNode.js +0 -101
  80. package/src/src/plugins/TreeViewPlugin/TreeViewPlugin.js +0 -1370
  81. package/src/src/plugins/TreeViewPlugin/index.js +0 -1
  82. package/src/src/plugins/ViewCullPlugin/ViewCullPlugin.js +0 -295
  83. package/src/src/plugins/ViewCullPlugin/index.js +0 -1
  84. package/src/src/plugins/WebIFCLoaderPlugin/WebIFCDefaultDataSource.js +0 -58
  85. package/src/src/plugins/WebIFCLoaderPlugin/WebIFCLoaderPlugin.js +0 -942
  86. package/src/src/plugins/WebIFCLoaderPlugin/index.js +0 -1
  87. package/src/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +0 -95
  88. package/src/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +0 -1194
  89. package/src/src/plugins/XKTLoaderPlugin/index.js +0 -2
  90. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +0 -169
  91. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV10.js +0 -660
  92. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV11.js +0 -663
  93. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +0 -230
  94. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +0 -223
  95. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +0 -283
  96. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +0 -246
  97. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +0 -301
  98. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +0 -439
  99. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +0 -563
  100. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV9.js +0 -518
  101. package/src/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +0 -2
  102. package/src/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +0 -238
  103. package/src/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +0 -1279
  104. package/src/src/plugins/XML3DLoaderPlugin/index.js +0 -1
  105. package/src/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +0 -11
  106. package/src/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +0 -2060
  107. package/src/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +0 -2155
  108. package/src/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +0 -1002
  109. package/src/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +0 -64
  110. package/src/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +0 -153
  111. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +0 -267
  112. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +0 -553
  113. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +0 -991
  114. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +0 -49
  115. package/src/src/plugins/index.js +0 -21
  116. package/src/src/plugins/lib/culling/ObjectCullStates.js +0 -208
  117. package/src/src/plugins/lib/earcut.js +0 -677
  118. package/src/src/plugins/lib/html/Dot.js +0 -179
  119. package/src/src/plugins/lib/html/Label.js +0 -174
  120. package/src/src/plugins/lib/html/Wire.js +0 -220
  121. package/src/src/viewer/Configs.js +0 -127
  122. package/src/src/viewer/Plugin.js +0 -233
  123. package/src/src/viewer/Viewer.js +0 -542
  124. package/src/src/viewer/index.js +0 -5
  125. package/src/src/viewer/localization/LocaleService.js +0 -475
  126. package/src/src/viewer/metadata/IFCObjectDefaultColors.js +0 -163
  127. package/src/src/viewer/metadata/IFCObjectDefaults.js +0 -17
  128. package/src/src/viewer/metadata/MetaModel.js +0 -414
  129. package/src/src/viewer/metadata/MetaObject.js +0 -223
  130. package/src/src/viewer/metadata/MetaScene.js +0 -336
  131. package/src/src/viewer/metadata/Property.js +0 -55
  132. package/src/src/viewer/metadata/PropertySet.js +0 -77
  133. package/src/src/viewer/scene/Bitmap/Bitmap.js +0 -473
  134. package/src/src/viewer/scene/Bitmap/index.js +0 -1
  135. package/src/src/viewer/scene/CameraControl/CameraControl.js +0 -1750
  136. package/src/src/viewer/scene/CameraControl/lib/CameraUpdater.js +0 -312
  137. package/src/src/viewer/scene/CameraControl/lib/controllers/PanController.js +0 -112
  138. package/src/src/viewer/scene/CameraControl/lib/controllers/PickController.js +0 -265
  139. package/src/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +0 -384
  140. package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +0 -122
  141. package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +0 -183
  142. package/src/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +0 -68
  143. package/src/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +0 -345
  144. package/src/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +0 -376
  145. package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +0 -288
  146. package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +0 -235
  147. package/src/src/viewer/scene/Component.js +0 -915
  148. package/src/src/viewer/scene/Entity.js +0 -502
  149. package/src/src/viewer/scene/ImagePlane/ImagePlane.js +0 -570
  150. package/src/src/viewer/scene/ImagePlane/index.js +0 -1
  151. package/src/src/viewer/scene/LineSet/LineSet.js +0 -163
  152. package/src/src/viewer/scene/LineSet/index.js +0 -1
  153. package/src/src/viewer/scene/camera/Camera.js +0 -912
  154. package/src/src/viewer/scene/camera/CameraFlightAnimation.js +0 -669
  155. package/src/src/viewer/scene/camera/CameraPath.js +0 -194
  156. package/src/src/viewer/scene/camera/CameraPathAnimation.js +0 -326
  157. package/src/src/viewer/scene/camera/CustomProjection.js +0 -149
  158. package/src/src/viewer/scene/camera/Frustum.js +0 -316
  159. package/src/src/viewer/scene/camera/Ortho.js +0 -286
  160. package/src/src/viewer/scene/camera/Perspective.js +0 -304
  161. package/src/src/viewer/scene/camera/index.js +0 -2
  162. package/src/src/viewer/scene/canvas/Canvas.js +0 -490
  163. package/src/src/viewer/scene/canvas/Spinner.js +0 -323
  164. package/src/src/viewer/scene/constants/constants.js +0 -371
  165. package/src/src/viewer/scene/core.js +0 -268
  166. package/src/src/viewer/scene/geometry/Geometry.js +0 -33
  167. package/src/src/viewer/scene/geometry/ReadableGeometry.js +0 -682
  168. package/src/src/viewer/scene/geometry/VBOGeometry.js +0 -319
  169. package/src/src/viewer/scene/geometry/builders/buildBoxGeometry.js +0 -238
  170. package/src/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +0 -106
  171. package/src/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +0 -271
  172. package/src/src/viewer/scene/geometry/builders/buildGridGeometry.js +0 -102
  173. package/src/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +0 -168
  174. package/src/src/viewer/scene/geometry/builders/buildSphereGeometry.js +0 -161
  175. package/src/src/viewer/scene/geometry/builders/buildTorusGeometry.js +0 -172
  176. package/src/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +0 -1721
  177. package/src/src/viewer/scene/geometry/builders/index.js +0 -8
  178. package/src/src/viewer/scene/geometry/index.js +0 -4
  179. package/src/src/viewer/scene/geometry/loaders/index.js +0 -2
  180. package/src/src/viewer/scene/geometry/loaders/load3DSGeometry.js +0 -103
  181. package/src/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +0 -130
  182. package/src/src/viewer/scene/index.js +0 -21
  183. package/src/src/viewer/scene/input/Input.js +0 -1333
  184. package/src/src/viewer/scene/libs/k3d.js +0 -1032
  185. package/src/src/viewer/scene/lights/AmbientLight.js +0 -175
  186. package/src/src/viewer/scene/lights/CubeTexture.js +0 -156
  187. package/src/src/viewer/scene/lights/DirLight.js +0 -314
  188. package/src/src/viewer/scene/lights/Light.js +0 -29
  189. package/src/src/viewer/scene/lights/LightMap.js +0 -77
  190. package/src/src/viewer/scene/lights/PointLight.js +0 -395
  191. package/src/src/viewer/scene/lights/ReflectionMap.js +0 -79
  192. package/src/src/viewer/scene/lights/Shadow.js +0 -138
  193. package/src/src/viewer/scene/lights/index.js +0 -5
  194. package/src/src/viewer/scene/marker/Marker.js +0 -383
  195. package/src/src/viewer/scene/marker/SpriteMarker.js +0 -356
  196. package/src/src/viewer/scene/marker/index.js +0 -2
  197. package/src/src/viewer/scene/materials/EdgeMaterial.js +0 -359
  198. package/src/src/viewer/scene/materials/EmphasisMaterial.js +0 -613
  199. package/src/src/viewer/scene/materials/Fresnel.js +0 -222
  200. package/src/src/viewer/scene/materials/LambertMaterial.js +0 -378
  201. package/src/src/viewer/scene/materials/LinesMaterial.js +0 -169
  202. package/src/src/viewer/scene/materials/Material.js +0 -39
  203. package/src/src/viewer/scene/materials/MetallicMaterial.js +0 -820
  204. package/src/src/viewer/scene/materials/PhongMaterial.js +0 -860
  205. package/src/src/viewer/scene/materials/PointsMaterial.js +0 -409
  206. package/src/src/viewer/scene/materials/SpecularMaterial.js +0 -807
  207. package/src/src/viewer/scene/materials/Texture.js +0 -513
  208. package/src/src/viewer/scene/materials/index.js +0 -8
  209. package/src/src/viewer/scene/math/Frustum.js +0 -118
  210. package/src/src/viewer/scene/math/buildEdgeIndices.js +0 -162
  211. package/src/src/viewer/scene/math/geometryCompressionUtils.js +0 -365
  212. package/src/src/viewer/scene/math/index.js +0 -3
  213. package/src/src/viewer/scene/math/math.js +0 -5386
  214. package/src/src/viewer/scene/math/rtcCoords.js +0 -139
  215. package/src/src/viewer/scene/mementos/CameraMemento.js +0 -200
  216. package/src/src/viewer/scene/mementos/ModelMemento.js +0 -263
  217. package/src/src/viewer/scene/mementos/ObjectsMemento.js +0 -259
  218. package/src/src/viewer/scene/mementos/index.js +0 -3
  219. package/src/src/viewer/scene/mesh/Mesh.js +0 -2202
  220. package/src/src/viewer/scene/mesh/draw/DrawRenderer.js +0 -996
  221. package/src/src/viewer/scene/mesh/draw/DrawShaderSource.js +0 -1570
  222. package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +0 -259
  223. package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +0 -159
  224. package/src/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +0 -286
  225. package/src/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +0 -262
  226. package/src/src/viewer/scene/mesh/index.js +0 -1
  227. package/src/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +0 -217
  228. package/src/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +0 -157
  229. package/src/src/viewer/scene/mesh/pick/PickMeshRenderer.js +0 -223
  230. package/src/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +0 -151
  231. package/src/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +0 -200
  232. package/src/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +0 -124
  233. package/src/src/viewer/scene/mesh/shadow/ShadowRenderer.js +0 -214
  234. package/src/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +0 -98
  235. package/src/src/viewer/scene/metriqs/Metriqs.js +0 -259
  236. package/src/src/viewer/scene/model/ENTITY_FLAGS.js +0 -21
  237. package/src/src/viewer/scene/model/PerformanceModel.js +0 -26
  238. package/src/src/viewer/scene/model/RENDER_PASSES.js +0 -34
  239. package/src/src/viewer/scene/model/SceneModel.js +0 -4018
  240. package/src/src/viewer/scene/model/SceneModelEntity.js +0 -715
  241. package/src/src/viewer/scene/model/SceneModelMesh.js +0 -341
  242. package/src/src/viewer/scene/model/SceneModelTexture.js +0 -38
  243. package/src/src/viewer/scene/model/SceneModelTextureSet.js +0 -59
  244. package/src/src/viewer/scene/model/SceneModelTransform.js +0 -404
  245. package/src/src/viewer/scene/model/VBOSceneModel.js +0 -26
  246. package/src/src/viewer/scene/model/calculateUniquePositions.js +0 -126
  247. package/src/src/viewer/scene/model/compression.js +0 -227
  248. package/src/src/viewer/scene/model/dtx/BindableDataTexture.js +0 -31
  249. package/src/src/viewer/scene/model/dtx/lines/DTXLinesBuffer.js +0 -27
  250. package/src/src/viewer/scene/model/dtx/lines/DTXLinesLayer.js +0 -891
  251. package/src/src/viewer/scene/model/dtx/lines/DTXLinesState.js +0 -46
  252. package/src/src/viewer/scene/model/dtx/lines/DTXLinesTextureFactory.js +0 -411
  253. package/src/src/viewer/scene/model/dtx/lines/dataTextureRamStats.js +0 -49
  254. package/src/src/viewer/scene/model/dtx/lines/rebucketPositions.js +0 -208
  255. package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesColorRenderer.js +0 -389
  256. package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesRenderers.js +0 -65
  257. package/src/src/viewer/scene/model/dtx/triangles/DTXTrianglesLayer.js +0 -1322
  258. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesBuffer.js +0 -46
  259. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesState.js +0 -250
  260. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesTextureFactory.js +0 -518
  261. package/src/src/viewer/scene/model/dtx/triangles/lib/dataTextureRamStats.js +0 -54
  262. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesColorRenderer.js +0 -619
  263. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesDepthRenderer.js +0 -464
  264. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesColorRenderer.js +0 -414
  265. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesRenderer.js +0 -422
  266. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesNormalsRenderer.js +0 -345
  267. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesOcclusionRenderer.js +0 -436
  268. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickDepthRenderer.js +0 -462
  269. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickMeshRenderer.js +0 -436
  270. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsFlatRenderer.js +0 -455
  271. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsRenderer.js +0 -440
  272. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesRenderers.js +0 -307
  273. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSilhouetteRenderer.js +0 -465
  274. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapInitRenderer.js +0 -466
  275. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapRenderer.js +0 -427
  276. package/src/src/viewer/scene/model/index.js +0 -5
  277. package/src/src/viewer/scene/model/rebucketPositions.js +0 -354
  278. package/src/src/viewer/scene/model/vbo/ScratchMemory.js +0 -63
  279. package/src/src/viewer/scene/model/vbo/VBORenderer.js +0 -646
  280. package/src/src/viewer/scene/model/vbo/batching/lines/VBOBatchingLinesLayer.js +0 -699
  281. package/src/src/viewer/scene/model/vbo/batching/lines/lib/VBOBatchingLinesBuffer.js +0 -19
  282. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLineSnapInitRenderer.js +0 -316
  283. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesColorRenderer.js +0 -114
  284. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesRenderers.js +0 -99
  285. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSilhouetteRenderer.js +0 -124
  286. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapInitRenderer.js +0 -311
  287. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapRenderer.js +0 -309
  288. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOSceneModelLineBatchingRenderer.js +0 -24
  289. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsBuffer.js +0 -20
  290. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsLayer.js +0 -718
  291. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsRenderer.js +0 -24
  292. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsColorRenderer.js +0 -168
  293. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsOcclusionRenderer.js +0 -136
  294. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickDepthRenderer.js +0 -156
  295. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickMeshRenderer.js +0 -148
  296. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsRenderers.js +0 -144
  297. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsShadowRenderer.js +0 -107
  298. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSilhouetteRenderer.js +0 -146
  299. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapInitRenderer.js +0 -309
  300. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapRenderer.js +0 -303
  301. package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesBuffer.js +0 -24
  302. package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +0 -1257
  303. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js +0 -131
  304. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js +0 -135
  305. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +0 -12
  306. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js +0 -375
  307. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js +0 -34
  308. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js +0 -238
  309. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js +0 -270
  310. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js +0 -126
  311. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js +0 -235
  312. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js +0 -139
  313. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js +0 -125
  314. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js +0 -561
  315. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js +0 -144
  316. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js +0 -130
  317. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +0 -121
  318. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js +0 -131
  319. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js +0 -107
  320. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js +0 -136
  321. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js +0 -311
  322. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js +0 -308
  323. package/src/src/viewer/scene/model/vbo/float16.js +0 -760
  324. package/src/src/viewer/scene/model/vbo/instancing/lines/VBOInstancingLinesLayer.js +0 -704
  325. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesColorRenderer.js +0 -148
  326. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderer.js +0 -26
  327. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderers.js +0 -139
  328. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSilhouetteRenderer.js +0 -127
  329. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapInitRenderer.js +0 -331
  330. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapRenderer.js +0 -316
  331. package/src/src/viewer/scene/model/vbo/instancing/points/VBOInstancingPointsLayer.js +0 -728
  332. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsColorRenderer.js +0 -174
  333. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsDepthRenderer.js +0 -156
  334. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsOcclusionRenderer.js +0 -149
  335. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickDepthRenderer.js +0 -170
  336. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickMeshRenderer.js +0 -152
  337. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderer.js +0 -26
  338. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderers.js +0 -174
  339. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsShadowRenderer.js +0 -119
  340. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSilhouetteRenderer.js +0 -154
  341. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapInitRenderer.js +0 -330
  342. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapRenderer.js +0 -311
  343. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingTrianglesRenderer.js +0 -150
  344. package/src/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +0 -1190
  345. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js +0 -136
  346. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js +0 -137
  347. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +0 -12
  348. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js +0 -376
  349. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js +0 -253
  350. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js +0 -278
  351. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js +0 -126
  352. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js +0 -244
  353. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js +0 -130
  354. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js +0 -29
  355. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js +0 -138
  356. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js +0 -128
  357. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js +0 -561
  358. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js +0 -149
  359. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js +0 -136
  360. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +0 -130
  361. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js +0 -145
  362. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js +0 -113
  363. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js +0 -139
  364. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js +0 -342
  365. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js +0 -325
  366. package/src/src/viewer/scene/nodes/Node.js +0 -1383
  367. package/src/src/viewer/scene/nodes/index.js +0 -1
  368. package/src/src/viewer/scene/paths/CubicBezierCurve.js +0 -194
  369. package/src/src/viewer/scene/paths/Curve.js +0 -183
  370. package/src/src/viewer/scene/paths/Path.js +0 -239
  371. package/src/src/viewer/scene/paths/QuadraticBezierCurve.js +0 -161
  372. package/src/src/viewer/scene/paths/SplineCurve.js +0 -133
  373. package/src/src/viewer/scene/paths/index.js +0 -5
  374. package/src/src/viewer/scene/postfx/SAO.js +0 -543
  375. package/src/src/viewer/scene/scene/Scene.js +0 -2802
  376. package/src/src/viewer/scene/sectionPlane/SectionPlane.js +0 -198
  377. package/src/src/viewer/scene/sectionPlane/SectionPlaneCache.js +0 -101
  378. package/src/src/viewer/scene/sectionPlane/index.js +0 -1
  379. package/src/src/viewer/scene/skybox/Skybox.js +0 -123
  380. package/src/src/viewer/scene/skybox/index.js +0 -1
  381. package/src/src/viewer/scene/stats.js +0 -44
  382. package/src/src/viewer/scene/utils/Cache.js +0 -29
  383. package/src/src/viewer/scene/utils/FileLoader.js +0 -161
  384. package/src/src/viewer/scene/utils/Loader.js +0 -55
  385. package/src/src/viewer/scene/utils/LoadingManager.js +0 -86
  386. package/src/src/viewer/scene/utils/Map.js +0 -45
  387. package/src/src/viewer/scene/utils/Queue.js +0 -56
  388. package/src/src/viewer/scene/utils/WorkerPool.js +0 -73
  389. package/src/src/viewer/scene/utils/index.js +0 -6
  390. package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/KTX2TextureTranscoder.js +0 -650
  391. package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/index.js +0 -1
  392. package/src/src/viewer/scene/utils/textureTranscoders/TextureTranscoder.js +0 -31
  393. package/src/src/viewer/scene/utils/textureTranscoders/index.js +0 -2
  394. package/src/src/viewer/scene/utils.js +0 -453
  395. package/src/src/viewer/scene/viewport/Viewport.js +0 -212
  396. package/src/src/viewer/scene/webgl/ArrayBuf.js +0 -121
  397. package/src/src/viewer/scene/webgl/Attribute.js +0 -23
  398. package/src/src/viewer/scene/webgl/Drawable.js +0 -270
  399. package/src/src/viewer/scene/webgl/FrameContext.js +0 -313
  400. package/src/src/viewer/scene/webgl/PickResult.js +0 -364
  401. package/src/src/viewer/scene/webgl/Pickable.js +0 -69
  402. package/src/src/viewer/scene/webgl/Program.js +0 -181
  403. package/src/src/viewer/scene/webgl/RenderBuffer.js +0 -378
  404. package/src/src/viewer/scene/webgl/RenderBufferManager.js +0 -34
  405. package/src/src/viewer/scene/webgl/RenderFlags.js +0 -203
  406. package/src/src/viewer/scene/webgl/RenderState.js +0 -40
  407. package/src/src/viewer/scene/webgl/Renderer.js +0 -1781
  408. package/src/src/viewer/scene/webgl/Sampler.js +0 -18
  409. package/src/src/viewer/scene/webgl/Shader.js +0 -49
  410. package/src/src/viewer/scene/webgl/Texture2D.js +0 -442
  411. package/src/src/viewer/scene/webgl/convertConstant.js +0 -244
  412. package/src/src/viewer/scene/webgl/getExtension.js +0 -32
  413. package/src/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +0 -214
  414. package/src/src/viewer/scene/webgl/occlusion/OcclusionTester.js +0 -426
  415. package/src/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +0 -324
  416. package/src/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +0 -376
  417. package/src/src/viewer/scene/webgl/webglEnums.js +0 -61
  418. package/src/src/viewer/scene/webglInfo.js +0 -47
@@ -1,915 +0,0 @@
1
- import {core} from "./core.js";
2
- import {utils} from './utils.js';
3
- import {Map} from "./utils/Map.js";
4
-
5
- /**
6
- * @desc Base class for all xeokit components.
7
- *
8
- * ## Component IDs
9
- *
10
- * Every Component has an ID that's unique within the parent {@link Scene}. xeokit generates
11
- * the IDs automatically by default, however you can also specify them yourself. In the example below, we're creating a
12
- * scene comprised of {@link Scene}, {@link Material}, {@link ReadableGeometry} and
13
- * {@link Mesh} components, while letting xeokit generate its own ID for
14
- * the {@link ReadableGeometry}:
15
- *
16
- *````JavaScript
17
- * import {Viewer, Mesh, buildTorusGeometry, ReadableGeometry, PhongMaterial, Texture, Fresnel} from "xeokit-sdk.es.js";
18
- *
19
- * const viewer = new Viewer({
20
- * canvasId: "myCanvas"
21
- * });
22
- *
23
- * viewer.scene.camera.eye = [0, 0, 5];
24
- * viewer.scene.camera.look = [0, 0, 0];
25
- * viewer.scene.camera.up = [0, 1, 0];
26
- *
27
- * new Mesh(viewer.scene, {
28
- * geometry: new ReadableGeometry(viewer.scene, buildTorusGeometry({
29
- * center: [0, 0, 0],
30
- * radius: 1.5,
31
- * tube: 0.5,
32
- * radialSegments: 32,
33
- * tubeSegments: 24,
34
- * arc: Math.PI * 2.0
35
- * }),
36
- * material: new PhongMaterial(viewer.scene, {
37
- * id: "myMaterial",
38
- * ambient: [0.9, 0.3, 0.9],
39
- * shininess: 30,
40
- * diffuseMap: new Texture(viewer.scene, {
41
- * src: "textures/diffuse/uvGrid2.jpg"
42
- * }),
43
- * specularFresnel: new Fresnel(viewer.scene, {
44
- * leftColor: [1.0, 1.0, 1.0],
45
- * rightColor: [0.0, 0.0, 0.0],
46
- * power: 4
47
- * })
48
- * })
49
- * });
50
- *````
51
- *
52
- * We can then find those components like this:
53
- *
54
- * ````javascript
55
- * // Find the Material
56
- * var material = viewer.scene.components["myMaterial"];
57
- *
58
- * // Find all PhongMaterials in the Scene
59
- * var phongMaterials = viewer.scene.types["PhongMaterial"];
60
- *
61
- * // Find our Material within the PhongMaterials
62
- * var materialAgain = phongMaterials["myMaterial"];
63
- * ````
64
- *
65
- * ## Restriction on IDs
66
- *
67
- * Auto-generated IDs are of the form ````"__0"````, ````"__1"````, ````"__2"```` ... and so on.
68
- *
69
- * Scene maintains a map of these IDs, along with a counter that it increments each time it generates a new ID.
70
- *
71
- * If Scene has created the IDs listed above, and we then destroy the ````Component```` with ID ````"__1"````,
72
- * Scene will mark that ID as available, and will reuse it for the next default ID.
73
- *
74
- * Therefore, two restrictions your on IDs:
75
- *
76
- * * don't use IDs that begin with two underscores, and
77
- * * don't reuse auto-generated IDs of destroyed Components.
78
- *
79
- * ## Logging
80
- *
81
- * Components have methods to log ID-prefixed messages to the JavaScript console:
82
- *
83
- * ````javascript
84
- * material.log("Everything is fine, situation normal.");
85
- * material.warn("Wait, whats that red light?");
86
- * material.error("Aw, snap!");
87
- * ````
88
- *
89
- * The logged messages will look like this in the console:
90
- *
91
- * ````text
92
- * [LOG] myMaterial: Everything is fine, situation normal.
93
- * [WARN] myMaterial: Wait, whats that red light..
94
- * [ERROR] myMaterial: Aw, snap!
95
- * ````
96
- *
97
- * ## Destruction
98
- *
99
- * Get notification of destruction of Components:
100
- *
101
- * ````javascript
102
- * material.once("destroyed", function() {
103
- * this.log("Component was destroyed: " + this.id);
104
- * });
105
- * ````
106
- *
107
- * Or get notification of destruction of any Component within its {@link Scene}:
108
- *
109
- * ````javascript
110
- * scene.on("componentDestroyed", function(component) {
111
- * this.log("Component was destroyed: " + component.id);
112
- * });
113
- * ````
114
- *
115
- * Then destroy a component like this:
116
- *
117
- * ````javascript
118
- * material.destroy();
119
- * ````
120
- */
121
- class Component {
122
-
123
- /**
124
- @private
125
- */
126
- get type() {
127
- return "Component";
128
- }
129
-
130
- /**
131
- * @private
132
- */
133
- get isComponent() {
134
- return true;
135
- }
136
-
137
- constructor(owner = null, cfg = {}) {
138
-
139
- /**
140
- * The parent {@link Scene} that contains this Component.
141
- *
142
- * @property scene
143
- * @type {Scene}
144
- * @final
145
- */
146
- this.scene = null;
147
-
148
- if (this.type === "Scene") {
149
- this.scene = this;
150
- /**
151
- * The viewer that contains this Scene.
152
- * @property viewer
153
- * @type {Viewer}
154
- */
155
- this.viewer = cfg.viewer;
156
- } else {
157
- if (owner.type === "Scene") {
158
- this.scene = owner;
159
- } else if (owner instanceof Component) {
160
- this.scene = owner.scene;
161
- } else {
162
- throw "Invalid param: owner must be a Component"
163
- }
164
- this._owner = owner;
165
- }
166
-
167
- this._dontClear = !!cfg.dontClear; // Prevent Scene#clear from destroying this component
168
-
169
- this._renderer = this.scene._renderer;
170
-
171
- /**
172
- Arbitrary, user-defined metadata on this component.
173
-
174
- @property metadata
175
- @type Object
176
- */
177
- this.meta = cfg.meta || {};
178
-
179
-
180
- /**
181
- * ID of this Component, unique within the {@link Scene}.
182
- *
183
- * Components are mapped by this ID in {@link Scene#components}.
184
- *
185
- * @property id
186
- * @type {String|Number}
187
- */
188
- this.id = cfg.id; // Auto-generated by Scene by default
189
-
190
- /**
191
- True as soon as this Component has been destroyed
192
-
193
- @property destroyed
194
- @type {Boolean}
195
- */
196
- this.destroyed = false;
197
-
198
- this._attached = {}; // Attached components with names.
199
- this._attachments = null; // Attached components keyed to IDs - lazy-instantiated
200
- this._subIdMap = null; // Subscription subId pool
201
- this._subIdEvents = null; // Subscription subIds mapped to event names
202
- this._eventSubs = null; // Event names mapped to subscribers
203
- this._eventSubsNum = null;
204
- this._events = null; // Maps names to events
205
- this._eventCallDepth = 0; // Helps us catch stack overflows from recursive events
206
- this._ownedComponents = null; // // Components created with #create - lazy-instantiated
207
-
208
- if (this !== this.scene) { // Don't add scene to itself
209
- this.scene._addComponent(this); // Assigns this component an automatic ID if not yet assigned
210
- }
211
-
212
- this._updateScheduled = false; // True when #_update will be called on next tick
213
-
214
- if (owner) {
215
- owner._own(this);
216
- }
217
- }
218
-
219
- // /**
220
- // * Unique ID for this Component within its {@link Scene}.
221
- // *
222
- // * @property
223
- // * @type {String}
224
- // */
225
- // get id() {
226
- // return this._id;
227
- // }
228
-
229
- /**
230
- Indicates that we need to redraw the scene.
231
-
232
- This is called by certain subclasses after they have made some sort of state update that requires the
233
- renderer to perform a redraw.
234
-
235
- For example: a {@link Mesh} calls this on itself whenever you update its
236
- {@link Mesh#layer} property, which manually controls its render order in
237
- relation to other Meshes.
238
-
239
- If this component has a ````castsShadow```` property that's set ````true````, then this will also indicate
240
- that the renderer needs to redraw shadow map associated with this component. Components like
241
- {@link DirLight} have that property set when they produce light that creates shadows, while
242
- components like {@link Mesh"}}layer{{/crossLink}} have that property set when they cast shadows.
243
-
244
- @protected
245
- */
246
- glRedraw() {
247
- if (!this._renderer) { // Called from a constructor
248
- return;
249
- }
250
- this._renderer.imageDirty();
251
- if (this.castsShadow) { // Light source or object
252
- this._renderer.shadowsDirty();
253
- }
254
- }
255
-
256
- /**
257
- Indicates that we need to re-sort the renderer's state-ordered drawables list.
258
-
259
- For efficiency, the renderer keeps its list of drawables ordered so that runs of the same state updates can be
260
- combined. This method is called by certain subclasses after they have made some sort of state update that would
261
- require re-ordering of the drawables list.
262
-
263
- For example: a {@link DirLight} calls this on itself whenever you update {@link DirLight#dir}.
264
-
265
- @protected
266
- */
267
- glResort() {
268
- if (!this._renderer) { // Called from a constructor
269
- return;
270
- }
271
- this._renderer.needStateSort();
272
- }
273
-
274
- /**
275
- * The {@link Component} that owns the lifecycle of this Component, if any.
276
- *
277
- * When that component is destroyed, this component will be automatically destroyed also.
278
- *
279
- * Will be null if this Component has no owner.
280
- *
281
- * @property owner
282
- * @type {Component}
283
- */
284
- get owner() {
285
- return this._owner;
286
- }
287
-
288
- /**
289
- * Tests if this component is of the given type, or is a subclass of the given type.
290
- * @type {Boolean}
291
- */
292
- isType(type) {
293
- return this.type === type;
294
- }
295
-
296
- /**
297
- * Fires an event on this component.
298
- *
299
- * Notifies existing subscribers to the event, optionally retains the event to give to
300
- * any subsequent notifications on the event as they are made.
301
- *
302
- * @param {String} event The event type name
303
- * @param {Object} value The event parameters
304
- * @param {Boolean} [forget=false] When true, does not retain for subsequent subscribers
305
- */
306
- fire(event, value, forget) {
307
- if (!this._events) {
308
- this._events = {};
309
- }
310
- if (!this._eventSubs) {
311
- this._eventSubs = {};
312
- this._eventSubsNum = {};
313
- }
314
- if (forget !== true) {
315
- this._events[event] = value || true; // Save notification
316
- }
317
- const subs = this._eventSubs[event];
318
- let sub;
319
- if (subs) { // Notify subscriptions
320
- for (const subId in subs) {
321
- if (subs.hasOwnProperty(subId)) {
322
- sub = subs[subId];
323
- this._eventCallDepth++;
324
- if (this._eventCallDepth < 300) {
325
- sub.callback.call(sub.scope, value);
326
- } else {
327
- this.error("fire: potential stack overflow from recursive event '" + event + "' - dropping this event");
328
- }
329
- this._eventCallDepth--;
330
- }
331
- }
332
- }
333
- }
334
-
335
- /**
336
- * Subscribes to an event on this component.
337
- *
338
- * The callback is be called with this component as scope.
339
- *
340
- * @param {String} event The event
341
- * @param {Function} callback Called fired on the event
342
- * @param {Object} [scope=this] Scope for the callback
343
- * @return {String} Handle to the subscription, which may be used to unsubscribe with {@link #off}.
344
- */
345
- on(event, callback, scope) {
346
- if (!this._events) {
347
- this._events = {};
348
- }
349
- if (!this._subIdMap) {
350
- this._subIdMap = new Map(); // Subscription subId pool
351
- }
352
- if (!this._subIdEvents) {
353
- this._subIdEvents = {};
354
- }
355
- if (!this._eventSubs) {
356
- this._eventSubs = {};
357
- }
358
- if (!this._eventSubsNum) {
359
- this._eventSubsNum = {};
360
- }
361
- let subs = this._eventSubs[event];
362
- if (!subs) {
363
- subs = {};
364
- this._eventSubs[event] = subs;
365
- this._eventSubsNum[event] = 1;
366
- } else {
367
- this._eventSubsNum[event]++;
368
- }
369
- const subId = this._subIdMap.addItem(); // Create unique subId
370
- subs[subId] = {
371
- callback: callback,
372
- scope: scope || this
373
- };
374
- this._subIdEvents[subId] = event;
375
- const value = this._events[event];
376
- if (value !== undefined) { // A publication exists, notify callback immediately
377
- callback.call(scope || this, value);
378
- }
379
- return subId;
380
- }
381
-
382
- /**
383
- * Cancels an event subscription that was previously made with {@link Component#on} or {@link Component#once}.
384
- *
385
- * @param {String} subId Subscription ID
386
- */
387
- off(subId) {
388
- if (subId === undefined || subId === null) {
389
- return;
390
- }
391
- if (!this._subIdEvents) {
392
- return;
393
- }
394
- const event = this._subIdEvents[subId];
395
- if (event) {
396
- delete this._subIdEvents[subId];
397
- const subs = this._eventSubs[event];
398
- if (subs) {
399
- delete subs[subId];
400
- this._eventSubsNum[event]--;
401
- }
402
- this._subIdMap.removeItem(subId); // Release subId
403
- }
404
- }
405
-
406
- /**
407
- * Subscribes to the next occurrence of the given event, then un-subscribes as soon as the event is subIdd.
408
- *
409
- * This is equivalent to calling {@link Component#on}, and then calling {@link Component#off} inside the callback function.
410
- *
411
- * @param {String} event Data event to listen to
412
- * @param {Function} callback Called when fresh data is available at the event
413
- * @param {Object} [scope=this] Scope for the callback
414
- */
415
- once(event, callback, scope) {
416
- const self = this;
417
- const subId = this.on(event,
418
- function (value) {
419
- self.off(subId);
420
- callback.call(scope || this, value);
421
- },
422
- scope);
423
- }
424
-
425
- /**
426
- * Returns true if there are any subscribers to the given event on this component.
427
- *
428
- * @param {String} event The event
429
- * @return {Boolean} True if there are any subscribers to the given event on this component.
430
- */
431
- hasSubs(event) {
432
- return (this._eventSubsNum && (this._eventSubsNum[event] > 0));
433
- }
434
-
435
- /**
436
- * Logs a console debugging message for this component.
437
- *
438
- * The console message will have this format: *````[LOG] [<component type> <component id>: <message>````*
439
- *
440
- * Also fires the message as a "log" event on the parent {@link Scene}.
441
- *
442
- * @param {String} message The message to log
443
- */
444
- log(message) {
445
- message = "[LOG]" + this._message(message);
446
- window.console.log(message);
447
- this.scene.fire("log", message);
448
- }
449
-
450
- _message(message) {
451
- return " [" + this.type + " " + utils.inQuotes(this.id) + "]: " + message;
452
- }
453
-
454
- /**
455
- * Logs a warning for this component to the JavaScript console.
456
- *
457
- * The console message will have this format: *````[WARN] [<component type> =<component id>: <message>````*
458
- *
459
- * Also fires the message as a "warn" event on the parent {@link Scene}.
460
- *
461
- * @param {String} message The message to log
462
- */
463
- warn(message) {
464
- message = "[WARN]" + this._message(message);
465
- window.console.warn(message);
466
- this.scene.fire("warn", message);
467
- }
468
-
469
- /**
470
- * Logs an error for this component to the JavaScript console.
471
- *
472
- * The console message will have this format: *````[ERROR] [<component type> =<component id>: <message>````*
473
- *
474
- * Also fires the message as an "error" event on the parent {@link Scene}.
475
- *
476
- * @param {String} message The message to log
477
- */
478
- error(message) {
479
- message = "[ERROR]" + this._message(message);
480
- window.console.error(message);
481
- this.scene.fire("error", message);
482
- }
483
-
484
- /**
485
- * Adds a child component to this.
486
- *
487
- * When component not given, attaches the scene's default instance for the given name (if any).
488
- * Publishes the new child component on this component, keyed to the given name.
489
- *
490
- * @param {*} params
491
- * @param {String} params.name component name
492
- * @param {Component} [params.component] The component
493
- * @param {String} [params.type] Optional expected type of base type of the child; when supplied, will
494
- * cause an exception if the given child is not the same type or a subtype of this.
495
- * @param {Boolean} [params.sceneDefault=false]
496
- * @param {Boolean} [params.sceneSingleton=false]
497
- * @param {Function} [params.onAttached] Optional callback called when component attached
498
- * @param {Function} [params.onAttached.callback] Callback function
499
- * @param {Function} [params.onAttached.scope] Optional scope for callback
500
- * @param {Function} [params.onDetached] Optional callback called when component is detached
501
- * @param {Function} [params.onDetached.callback] Callback function
502
- * @param {Function} [params.onDetached.scope] Optional scope for callback
503
- * @param {{String:Function}} [params.on] Callbacks to subscribe to properties on component
504
- * @param {Boolean} [params.recompiles=true] When true, fires "dirty" events on this component
505
- * @private
506
- */
507
- _attach(params) {
508
-
509
- const name = params.name;
510
-
511
- if (!name) {
512
- this.error("Component 'name' expected");
513
- return;
514
- }
515
-
516
- let component = params.component;
517
- const sceneDefault = params.sceneDefault;
518
- const sceneSingleton = params.sceneSingleton;
519
- const type = params.type;
520
- const on = params.on;
521
- const recompiles = params.recompiles !== false;
522
-
523
- // True when child given as config object, where parent manages its instantiation and destruction
524
- let managingLifecycle = false;
525
-
526
- if (component) {
527
-
528
- if (utils.isNumeric(component) || utils.isString(component)) {
529
-
530
- // Component ID given
531
- // Both numeric and string IDs are supported
532
-
533
- const id = component;
534
-
535
- component = this.scene.components[id];
536
-
537
- if (!component) {
538
-
539
- // Quote string IDs in errors
540
-
541
- this.error("Component not found: " + utils.inQuotes(id));
542
- return;
543
- }
544
- }
545
- }
546
-
547
- if (!component) {
548
-
549
- if (sceneSingleton === true) {
550
-
551
- // Using the first instance of the component type we find
552
-
553
- const instances = this.scene.types[type];
554
- for (const id2 in instances) {
555
- if (instances.hasOwnProperty) {
556
- component = instances[id2];
557
- break;
558
- }
559
- }
560
-
561
- if (!component) {
562
- this.error("Scene has no default component for '" + name + "'");
563
- return null;
564
- }
565
-
566
- } else if (sceneDefault === true) {
567
-
568
- // Using a default scene component
569
-
570
- component = this.scene[name];
571
-
572
- if (!component) {
573
- this.error("Scene has no default component for '" + name + "'");
574
- return null;
575
- }
576
- }
577
- }
578
-
579
- if (component) {
580
-
581
- if (component.scene.id !== this.scene.id) {
582
- this.error("Not in same scene: " + component.type + " " + utils.inQuotes(component.id));
583
- return;
584
- }
585
-
586
- if (type) {
587
-
588
- if (!component.isType(type)) {
589
- this.error("Expected a " + type + " type or subtype: " + component.type + " " + utils.inQuotes(component.id));
590
- return;
591
- }
592
- }
593
- }
594
-
595
- if (!this._attachments) {
596
- this._attachments = {};
597
- }
598
-
599
- const oldComponent = this._attached[name];
600
- let subs;
601
- let i;
602
- let len;
603
-
604
- if (oldComponent) {
605
-
606
- if (component && oldComponent.id === component.id) {
607
-
608
- // Reject attempt to reattach same component
609
- return;
610
- }
611
-
612
- const oldAttachment = this._attachments[oldComponent.id];
613
-
614
- // Unsubscribe from events on old component
615
-
616
- subs = oldAttachment.subs;
617
-
618
- for (i = 0, len = subs.length; i < len; i++) {
619
- oldComponent.off(subs[i]);
620
- }
621
-
622
- delete this._attached[name];
623
- delete this._attachments[oldComponent.id];
624
-
625
- const onDetached = oldAttachment.params.onDetached;
626
- if (onDetached) {
627
- if (utils.isFunction(onDetached)) {
628
- onDetached(oldComponent);
629
- } else {
630
- onDetached.scope ? onDetached.callback.call(onDetached.scope, oldComponent) : onDetached.callback(oldComponent);
631
- }
632
- }
633
-
634
- if (oldAttachment.managingLifecycle) {
635
-
636
- // Note that we just unsubscribed from all events fired by the child
637
- // component, so destroying it won't fire events back at us now.
638
-
639
- oldComponent.destroy();
640
- }
641
- }
642
-
643
- if (component) {
644
-
645
- // Set and publish the new component on this component
646
-
647
- const attachment = {
648
- params: params,
649
- component: component,
650
- subs: [],
651
- managingLifecycle: managingLifecycle
652
- };
653
-
654
- attachment.subs.push(
655
- component.once("destroyed",
656
- function () {
657
- attachment.params.component = null;
658
- this._attach(attachment.params);
659
- },
660
- this));
661
-
662
- if (recompiles) {
663
- attachment.subs.push(
664
- component.on("dirty",
665
- function () {
666
- this.fire("dirty", this);
667
- },
668
- this));
669
- }
670
-
671
- this._attached[name] = component;
672
- this._attachments[component.id] = attachment;
673
-
674
- // Bind destruct listener to new component to remove it
675
- // from this component when destroyed
676
-
677
- const onAttached = params.onAttached;
678
- if (onAttached) {
679
- if (utils.isFunction(onAttached)) {
680
- onAttached(component);
681
- } else {
682
- onAttached.scope ? onAttached.callback.call(onAttached.scope, component) : onAttached.callback(component);
683
- }
684
- }
685
-
686
- if (on) {
687
-
688
- let event;
689
- let subIdr;
690
- let callback;
691
- let scope;
692
-
693
- for (event in on) {
694
- if (on.hasOwnProperty(event)) {
695
-
696
- subIdr = on[event];
697
-
698
- if (utils.isFunction(subIdr)) {
699
- callback = subIdr;
700
- scope = null;
701
- } else {
702
- callback = subIdr.callback;
703
- scope = subIdr.scope;
704
- }
705
-
706
- if (!callback) {
707
- continue;
708
- }
709
-
710
- attachment.subs.push(component.on(event, callback, scope));
711
- }
712
- }
713
- }
714
- }
715
-
716
- if (recompiles) {
717
- this.fire("dirty", this); // FIXME: May trigger spurous mesh recompilations unless able to limit with param?
718
- }
719
-
720
- this.fire(name, component); // Component can be null
721
-
722
- return component;
723
- }
724
-
725
- _checkComponent(expectedType, component) {
726
- if (!component.isComponent) {
727
- if (utils.isID(component)) {
728
- const id = component;
729
- component = this.scene.components[id];
730
- if (!component) {
731
- this.error("Component not found: " + id);
732
- return;
733
- }
734
- } else {
735
- this.error("Expected a Component or ID");
736
- return;
737
- }
738
- }
739
- if (expectedType !== component.type) {
740
- this.error("Expected a " + expectedType + " Component");
741
- return;
742
- }
743
- if (component.scene.id !== this.scene.id) {
744
- this.error("Not in same scene: " + component.type);
745
- return;
746
- }
747
- return component;
748
- }
749
-
750
- _checkComponent2(expectedTypes, component) {
751
- if (!component.isComponent) {
752
- if (utils.isID(component)) {
753
- const id = component;
754
- component = this.scene.components[id];
755
- if (!component) {
756
- this.error("Component not found: " + id);
757
- return;
758
- }
759
- } else {
760
- this.error("Expected a Component or ID");
761
- return;
762
- }
763
- }
764
- if (component.scene.id !== this.scene.id) {
765
- this.error("Not in same scene: " + component.type);
766
- return;
767
- }
768
- for (var i = 0, len = expectedTypes.length; i < len; i++) {
769
- if (expectedTypes[i] === component.type) {
770
- return component;
771
- }
772
- }
773
- this.error("Expected component types: " + expectedTypes);
774
- return null;
775
- }
776
-
777
- _own(component) {
778
- if (!this._ownedComponents) {
779
- this._ownedComponents = {};
780
- }
781
- if (!this._ownedComponents[component.id]) {
782
- this._ownedComponents[component.id] = component;
783
- }
784
- component.once("destroyed", () => {
785
- delete this._ownedComponents[component.id];
786
- }, this);
787
- }
788
-
789
- /**
790
- * Protected method, called by sub-classes to queue a call to _update().
791
- * @protected
792
- * @param {Number} [priority=1]
793
- */
794
- _needUpdate(priority) {
795
- if (!this._updateScheduled) {
796
- this._updateScheduled = true;
797
- if (priority === 0) {
798
- this._doUpdate();
799
- } else {
800
- core.scheduleTask(this._doUpdate, this);
801
- }
802
- }
803
- }
804
-
805
- /**
806
- * @private
807
- */
808
- _doUpdate() {
809
- if (this._updateScheduled) {
810
- this._updateScheduled = false;
811
- if (this._update) {
812
- this._update();
813
- }
814
- }
815
- }
816
-
817
- /**
818
- * Schedule a task to perform on the next browser interval
819
- * @param task
820
- */
821
- scheduleTask(task) {
822
- core.scheduleTask(task, null);
823
- }
824
-
825
- /**
826
- * Protected virtual template method, optionally implemented
827
- * by sub-classes to perform a scheduled task.
828
- *
829
- * @protected
830
- */
831
- _update() {
832
- }
833
-
834
- /**
835
- * Destroys all {@link Component}s that are owned by this. These are Components that were instantiated with
836
- * this Component as their first constructor argument.
837
- */
838
- clear() {
839
- if (this._ownedComponents) {
840
- for (var id in this._ownedComponents) {
841
- if (this._ownedComponents.hasOwnProperty(id)) {
842
- const component = this._ownedComponents[id];
843
- component.destroy();
844
- delete this._ownedComponents[id];
845
- }
846
- }
847
- }
848
- }
849
-
850
- /**
851
- * Destroys this component.
852
- */
853
- destroy() {
854
-
855
- if (this.destroyed) {
856
- return;
857
- }
858
-
859
- /**
860
- * Fired when this Component is destroyed.
861
- * @event destroyed
862
- */
863
- this.fire("destroyed", this.destroyed = true); // Must fire before we blow away subscription maps, below
864
-
865
- // Unsubscribe from child components and destroy then
866
-
867
- let id;
868
- let attachment;
869
- let component;
870
- let subs;
871
- let i;
872
- let len;
873
-
874
- if (this._attachments) {
875
- for (id in this._attachments) {
876
- if (this._attachments.hasOwnProperty(id)) {
877
- attachment = this._attachments[id];
878
- component = attachment.component;
879
- subs = attachment.subs;
880
- for (i = 0, len = subs.length; i < len; i++) {
881
- component.off(subs[i]);
882
- }
883
- if (attachment.managingLifecycle) {
884
- component.destroy();
885
- }
886
- }
887
- }
888
- }
889
-
890
- if (this._ownedComponents) {
891
- for (id in this._ownedComponents) {
892
- if (this._ownedComponents.hasOwnProperty(id)) {
893
- component = this._ownedComponents[id];
894
- component.destroy();
895
- delete this._ownedComponents[id];
896
- }
897
- }
898
- }
899
-
900
- this.scene._removeComponent(this);
901
-
902
- // Memory leak avoidance
903
- this._attached = {};
904
- this._attachments = null;
905
- this._subIdMap = null;
906
- this._subIdEvents = null;
907
- this._eventSubs = null;
908
- this._events = null;
909
- this._eventCallDepth = 0;
910
- this._ownedComponents = null;
911
- this._updateScheduled = false;
912
- }
913
- }
914
-
915
- export {Component};