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

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 +30 -9
  2. package/dist/xeokit-sdk.es.js +30 -9
  3. package/dist/xeokit-sdk.es5.js +67 -65
  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 +15 -0
  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,646 +0,0 @@
1
- import {createRTCViewMat, getPlaneRTCPos} from "../../math/rtcCoords.js";
2
- import {math} from "../../math/math.js";
3
- import {Program} from "../../webgl/Program.js";
4
- import {stats} from "../../stats.js"
5
- import {WEBGL_INFO} from "../../webglInfo.js";
6
- import {RENDER_PASSES} from "./../RENDER_PASSES.js";
7
-
8
- const defaultColor = new Float32Array([1, 1, 1, 1]);
9
- const edgesDefaultColor = new Float32Array([0, 0, 0, 1]);
10
-
11
- const tempVec4 = math.vec4();
12
- const tempVec3a = math.vec3();
13
- const tempVec3c = math.vec3();
14
- const tempMat4a = math.mat4();
15
-
16
- /**
17
- * @private
18
- */
19
- export class VBORenderer {
20
- constructor(scene, withSAO = false, {instancing = false, edges = false} = {}) {
21
- this._scene = scene;
22
- this._withSAO = withSAO;
23
- this._instancing = instancing;
24
- this._edges = edges;
25
- this._hash = this._getHash();
26
-
27
- /**
28
- * Matrices Uniform Block Buffer
29
- *
30
- * In shaders, matrices in the Matrices Uniform Block MUST be set in this order:
31
- * - worldMatrix
32
- * - viewMatrix
33
- * - projMatrix
34
- * - positionsDecodeMatrix
35
- * - worldNormalMatrix
36
- * - viewNormalMatrix
37
- */
38
- this._matricesUniformBlockBufferBindingPoint = 0;
39
-
40
- this._matricesUniformBlockBuffer = this._scene.canvas.gl.createBuffer();
41
- this._matricesUniformBlockBufferData = new Float32Array(4 * 4 * 6); // there is 6 mat4
42
-
43
- /**
44
- * A Vertex Array Object by Layer
45
- */
46
- this._vaoCache = new WeakMap();
47
-
48
- this._allocate();
49
- }
50
-
51
- /**
52
- * Should be overrided by subclasses if it does not only "depend" on section planes state.
53
- * @returns { string }
54
- */
55
- _getHash() {
56
- return this._scene._sectionPlanesState.getHash();
57
- }
58
-
59
- _buildShader() {
60
- return {
61
- vertex: this._buildVertexShader(),
62
- fragment: this._buildFragmentShader()
63
- };
64
- }
65
-
66
- _buildVertexShader() {
67
- return [""];
68
- }
69
-
70
- _buildFragmentShader() {
71
- return [""];
72
- }
73
-
74
- _addMatricesUniformBlockLines(src, normals = false) {
75
- src.push("uniform Matrices {");
76
- src.push(" mat4 worldMatrix;");
77
- src.push(" mat4 viewMatrix;");
78
- src.push(" mat4 projMatrix;");
79
- src.push(" mat4 positionsDecodeMatrix;");
80
- if (normals) {
81
- src.push(" mat4 worldNormalMatrix;");
82
- src.push(" mat4 viewNormalMatrix;");
83
- }
84
- src.push("};");
85
- return src;
86
- }
87
-
88
- _addRemapClipPosLines(src, viewportSize = 1) {
89
- src.push("uniform vec2 drawingBufferSize;");
90
- src.push("uniform vec2 pickClipPos;");
91
-
92
- src.push("vec4 remapClipPos(vec4 clipPos) {");
93
- src.push(" clipPos.xy /= clipPos.w;");
94
- if (viewportSize === 1) {
95
- src.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;");
96
- } else {
97
- src.push(` clipPos.xy = (clipPos.xy - pickClipPos) * (drawingBufferSize / float(${viewportSize}));`);
98
- }
99
- src.push(" clipPos.xy *= clipPos.w;")
100
- src.push(" return clipPos;")
101
- src.push("}");
102
- return src;
103
- }
104
-
105
- getValid() {
106
- return this._hash === this._getHash();
107
- }
108
-
109
- setSectionPlanesStateUniforms(layer) {
110
- const scene = this._scene;
111
- const {gl} = scene.canvas;
112
- const {model, layerIndex} = layer;
113
-
114
- const numAllocatedSectionPlanes = scene._sectionPlanesState.getNumAllocatedSectionPlanes();
115
- const numSectionPlanes = scene._sectionPlanesState.sectionPlanes.length;
116
- if (numAllocatedSectionPlanes > 0) {
117
- const sectionPlanes = scene._sectionPlanesState.sectionPlanes;
118
- const baseIndex = layerIndex * numSectionPlanes;
119
- const renderFlags = model.renderFlags;
120
- for (let sectionPlaneIndex = 0; sectionPlaneIndex < numAllocatedSectionPlanes; sectionPlaneIndex++) {
121
- const sectionPlaneUniforms = this._uSectionPlanes[sectionPlaneIndex];
122
- if (sectionPlaneUniforms) {
123
- if (sectionPlaneIndex < numSectionPlanes) {
124
- const active = renderFlags.sectionPlanesActivePerLayer[baseIndex + sectionPlaneIndex];
125
- gl.uniform1i(sectionPlaneUniforms.active, active ? 1 : 0);
126
- if (active) {
127
- const sectionPlane = sectionPlanes[sectionPlaneIndex];
128
- const origin = layer._state.origin;
129
- if (origin) {
130
- const rtcSectionPlanePos = getPlaneRTCPos(sectionPlane.dist, sectionPlane.dir, origin, tempVec3a);
131
- gl.uniform3fv(sectionPlaneUniforms.pos, rtcSectionPlanePos);
132
- } else {
133
- gl.uniform3fv(sectionPlaneUniforms.pos, sectionPlane.pos);
134
- }
135
- gl.uniform3fv(sectionPlaneUniforms.dir, sectionPlane.dir);
136
- }
137
- } else {
138
- gl.uniform1i(sectionPlaneUniforms.active, 0);
139
- }
140
- }
141
- }
142
- }
143
- }
144
-
145
-
146
- _allocate() {
147
- const scene = this._scene;
148
- const gl = scene.canvas.gl;
149
- const lightsState = scene._lightsState;
150
-
151
- this._program = new Program(gl, this._buildShader());
152
-
153
- if (this._program.errors) {
154
- this.errors = this._program.errors;
155
- return;
156
- }
157
-
158
- const program = this._program;
159
-
160
- this._uRenderPass = program.getLocation("renderPass");
161
-
162
- this._uColor = program.getLocation("color");
163
- if (!this._uColor) {
164
- // some shader may have color as attribute, in this case the uniform must be renamed silhouetteColor
165
- this._uColor = program.getLocation("silhouetteColor");
166
- }
167
- this._uUVDecodeMatrix = program.getLocation("uvDecodeMatrix");
168
- this._uPickInvisible = program.getLocation("pickInvisible");
169
- this._uGammaFactor = program.getLocation("gammaFactor");
170
-
171
- gl.uniformBlockBinding(
172
- program.handle,
173
- gl.getUniformBlockIndex(program.handle, "Matrices"),
174
- this._matricesUniformBlockBufferBindingPoint
175
- );
176
-
177
- this._uShadowViewMatrix = program.getLocation("shadowViewMatrix");
178
- this._uShadowProjMatrix = program.getLocation("shadowProjMatrix");
179
- if (scene.logarithmicDepthBufferEnabled) {
180
- this._uZFar = program.getLocation("zFar");
181
- }
182
-
183
- this._uLightAmbient = program.getLocation("lightAmbient");
184
- this._uLightColor = [];
185
- this._uLightDir = [];
186
- this._uLightPos = [];
187
- this._uLightAttenuation = [];
188
-
189
- // TODO add a gard to prevent light params if not affected by light ?
190
- const lights = lightsState.lights;
191
- let light;
192
-
193
- for (let i = 0, len = lights.length; i < len; i++) {
194
- light = lights[i];
195
- switch (light.type) {
196
- case "dir":
197
- this._uLightColor[i] = program.getLocation("lightColor" + i);
198
- this._uLightPos[i] = null;
199
- this._uLightDir[i] = program.getLocation("lightDir" + i);
200
- break;
201
- case "point":
202
- this._uLightColor[i] = program.getLocation("lightColor" + i);
203
- this._uLightPos[i] = program.getLocation("lightPos" + i);
204
- this._uLightDir[i] = null;
205
- this._uLightAttenuation[i] = program.getLocation("lightAttenuation" + i);
206
- break;
207
- case "spot":
208
- this._uLightColor[i] = program.getLocation("lightColor" + i);
209
- this._uLightPos[i] = program.getLocation("lightPos" + i);
210
- this._uLightDir[i] = program.getLocation("lightDir" + i);
211
- this._uLightAttenuation[i] = program.getLocation("lightAttenuation" + i);
212
- break;
213
- }
214
- }
215
-
216
- if (lightsState.reflectionMaps.length > 0) {
217
- this._uReflectionMap = "reflectionMap";
218
- }
219
-
220
- if (lightsState.lightMaps.length > 0) {
221
- this._uLightMap = "lightMap";
222
- }
223
-
224
- this._uSectionPlanes = [];
225
-
226
- for (let i = 0, len = scene._sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
227
- this._uSectionPlanes.push({
228
- active: program.getLocation("sectionPlaneActive" + i),
229
- pos: program.getLocation("sectionPlanePos" + i),
230
- dir: program.getLocation("sectionPlaneDir" + i)
231
- });
232
- }
233
-
234
- this._aPosition = program.getAttribute("position");
235
- this._aOffset = program.getAttribute("offset");
236
- this._aNormal = program.getAttribute("normal");
237
- this._aUV = program.getAttribute("uv");
238
- this._aColor = program.getAttribute("color");
239
- this._aMetallicRoughness = program.getAttribute("metallicRoughness");
240
- this._aFlags = program.getAttribute("flags");
241
- this._aPickColor = program.getAttribute("pickColor");
242
- this._uPickZNear = program.getLocation("pickZNear");
243
- this._uPickZFar = program.getLocation("pickZFar");
244
- this._uPickClipPos = program.getLocation("pickClipPos");
245
- this._uDrawingBufferSize = program.getLocation("drawingBufferSize");
246
-
247
- this._uColorMap = "uColorMap";
248
- this._uMetallicRoughMap = "uMetallicRoughMap";
249
- this._uEmissiveMap = "uEmissiveMap";
250
- this._uNormalMap = "uNormalMap";
251
- this._uAOMap = "uAOMap";
252
-
253
- if (this._instancing) {
254
-
255
- this._aModelMatrix = program.getAttribute("modelMatrix");
256
-
257
- this._aModelMatrixCol0 = program.getAttribute("modelMatrixCol0");
258
- this._aModelMatrixCol1 = program.getAttribute("modelMatrixCol1");
259
- this._aModelMatrixCol2 = program.getAttribute("modelMatrixCol2");
260
-
261
- this._aModelNormalMatrixCol0 = program.getAttribute("modelNormalMatrixCol0");
262
- this._aModelNormalMatrixCol1 = program.getAttribute("modelNormalMatrixCol1");
263
- this._aModelNormalMatrixCol2 = program.getAttribute("modelNormalMatrixCol2");
264
- }
265
-
266
- if (this._withSAO) {
267
- this._uOcclusionTexture = "uOcclusionTexture";
268
- this._uSAOParams = program.getLocation("uSAOParams");
269
- }
270
-
271
- if (scene.logarithmicDepthBufferEnabled) {
272
- this._uLogDepthBufFC = program.getLocation("logDepthBufFC");
273
- }
274
-
275
- if (scene.pointsMaterial._state.filterIntensity) {
276
- this._uIntensityRange = program.getLocation("intensityRange");
277
- }
278
-
279
- this._uPointSize = program.getLocation("pointSize");
280
- this._uNearPlaneHeight = program.getLocation("nearPlaneHeight");
281
- }
282
-
283
- _bindProgram(frameCtx) {
284
- const scene = this._scene;
285
- const gl = scene.canvas.gl;
286
- const program = this._program;
287
- const lightsState = scene._lightsState;
288
- const lights = lightsState.lights;
289
-
290
- program.bind();
291
-
292
- frameCtx.textureUnit = 0;
293
-
294
- if (this._uLightAmbient) {
295
- gl.uniform4fv(this._uLightAmbient, lightsState.getAmbientColorAndIntensity());
296
- }
297
-
298
- if (this._uGammaFactor) {
299
- gl.uniform1f(this._uGammaFactor, scene.gammaFactor);
300
- }
301
-
302
- for (let i = 0, len = lights.length; i < len; i++) {
303
-
304
- const light = lights[i];
305
-
306
- if (this._uLightColor[i]) {
307
- gl.uniform4f(this._uLightColor[i], light.color[0], light.color[1], light.color[2], light.intensity);
308
- }
309
- if (this._uLightPos[i]) {
310
- gl.uniform3fv(this._uLightPos[i], light.pos);
311
- if (this._uLightAttenuation[i]) {
312
- gl.uniform1f(this._uLightAttenuation[i], light.attenuation);
313
- }
314
- }
315
- if (this._uLightDir[i]) {
316
- gl.uniform3fv(this._uLightDir[i], light.dir);
317
- }
318
- }
319
- }
320
-
321
- _makeVAO(state) {
322
- const gl = this._scene.canvas.gl;
323
- const vao = gl.createVertexArray();
324
- gl.bindVertexArray(vao);
325
-
326
- if (this._instancing) {
327
- this._aModelMatrixCol0.bindArrayBuffer(state.modelMatrixCol0Buf);
328
- this._aModelMatrixCol1.bindArrayBuffer(state.modelMatrixCol1Buf);
329
- this._aModelMatrixCol2.bindArrayBuffer(state.modelMatrixCol2Buf);
330
-
331
- gl.vertexAttribDivisor(this._aModelMatrixCol0.location, 1);
332
- gl.vertexAttribDivisor(this._aModelMatrixCol1.location, 1);
333
- gl.vertexAttribDivisor(this._aModelMatrixCol2.location, 1);
334
-
335
- if (this._aModelNormalMatrixCol0) {
336
- this._aModelNormalMatrixCol0.bindArrayBuffer(state.modelNormalMatrixCol0Buf);
337
- gl.vertexAttribDivisor(this._aModelNormalMatrixCol0.location, 1);
338
- }
339
- if (this._aModelNormalMatrixCol1) {
340
- this._aModelNormalMatrixCol1.bindArrayBuffer(state.modelNormalMatrixCol1Buf);
341
- gl.vertexAttribDivisor(this._aModelNormalMatrixCol1.location, 1);
342
- }
343
- if (this._aModelNormalMatrixCol2) {
344
- this._aModelNormalMatrixCol2.bindArrayBuffer(state.modelNormalMatrixCol2Buf);
345
- gl.vertexAttribDivisor(this._aModelNormalMatrixCol2.location, 1);
346
- }
347
-
348
- }
349
-
350
- this._aPosition.bindArrayBuffer(state.positionsBuf);
351
-
352
- if (this._aUV) {
353
- this._aUV.bindArrayBuffer(state.uvBuf);
354
- }
355
-
356
- if (this._aNormal) {
357
- this._aNormal.bindArrayBuffer(state.normalsBuf);
358
- }
359
-
360
- if (this._aMetallicRoughness) {
361
- this._aMetallicRoughness.bindArrayBuffer(state.metallicRoughnessBuf);
362
- if (this._instancing) {
363
- gl.vertexAttribDivisor(this._aMetallicRoughness.location, 1);
364
- }
365
- }
366
-
367
- if (this._aColor) {
368
- this._aColor.bindArrayBuffer(state.colorsBuf);
369
- if (this._instancing && state.colorsBuf) {
370
- gl.vertexAttribDivisor(this._aColor.location, 1);
371
- }
372
- }
373
-
374
- if (this._aFlags) {
375
- this._aFlags.bindArrayBuffer(state.flagsBuf);
376
- if (this._instancing) {
377
- gl.vertexAttribDivisor(this._aFlags.location, 1);
378
- }
379
- }
380
-
381
- if (this._aOffset) {
382
- this._aOffset.bindArrayBuffer(state.offsetsBuf);
383
- if (this._instancing) {
384
- gl.vertexAttribDivisor(this._aOffset.location, 1);
385
- }
386
- }
387
-
388
- if (this._aPickColor) {
389
- this._aPickColor.bindArrayBuffer(state.pickColorsBuf);
390
- if (this._instancing) {
391
- gl.vertexAttribDivisor(this._aPickColor.location, 1);
392
- }
393
- }
394
-
395
- if (this._instancing) {
396
- if (this._edges) {
397
- state.edgeIndicesBuf.bind();
398
- } else {
399
- if (state.indicesBuf) {
400
- state.indicesBuf.bind();
401
- }
402
- }
403
- } else {
404
- if (this._edges) {
405
- state.edgeIndicesBuf.bind();
406
- } else {
407
- if (state.indicesBuf) {
408
- state.indicesBuf.bind();
409
- }
410
- }
411
- }
412
-
413
- return vao;
414
- }
415
-
416
- drawLayer(frameCtx, layer, renderPass, {colorUniform = false, incrementDrawState = false} = {}) {
417
- const maxTextureUnits = WEBGL_INFO.MAX_TEXTURE_IMAGE_UNITS;
418
-
419
- const scene = this._scene;
420
- const gl = scene.canvas.gl;
421
- const {_state: state, model} = layer;
422
- const {textureSet, origin, positionsDecodeMatrix} = state;
423
- const lightsState = scene._lightsState;
424
- const pointsMaterial = scene.pointsMaterial;
425
- const {camera} = model.scene;
426
- const {viewNormalMatrix, project} = camera;
427
- const viewMatrix = frameCtx.pickViewMatrix || camera.viewMatrix
428
- const {position, rotationMatrix, rotationMatrixConjugate, worldNormalMatrix} = model;
429
-
430
- if (!this._program) {
431
- this._allocate();
432
- if (this.errors) {
433
- return;
434
- }
435
- }
436
-
437
- if (frameCtx.lastProgramId !== this._program.id) {
438
- frameCtx.lastProgramId = this._program.id;
439
- this._bindProgram(frameCtx);
440
- }
441
-
442
- if (this._vaoCache.has(layer)) {
443
- gl.bindVertexArray(this._vaoCache.get(layer));
444
- } else {
445
- this._vaoCache.set(layer, this._makeVAO(state))
446
- }
447
-
448
- let offset = 0;
449
- const mat4Size = 4 * 4;
450
-
451
- this._matricesUniformBlockBufferData.set(rotationMatrixConjugate, 0);
452
-
453
- const gotOrigin = (origin[0] !== 0 || origin[1] !== 0 || origin[2] !== 0);
454
- const gotPosition = (position[0] !== 0 || position[1] !== 0 || position[2] !== 0);
455
- if (gotOrigin || gotPosition) {
456
- const rtcOrigin = tempVec3a;
457
- if (gotOrigin) {
458
- const rotatedOrigin = math.transformPoint3(rotationMatrix, origin, tempVec3c);
459
- rtcOrigin[0] = rotatedOrigin[0];
460
- rtcOrigin[1] = rotatedOrigin[1];
461
- rtcOrigin[2] = rotatedOrigin[2];
462
- } else {
463
- rtcOrigin[0] = 0;
464
- rtcOrigin[1] = 0;
465
- rtcOrigin[2] = 0;
466
- }
467
- rtcOrigin[0] += position[0];
468
- rtcOrigin[1] += position[1];
469
- rtcOrigin[2] += position[2];
470
- this._matricesUniformBlockBufferData.set(createRTCViewMat(viewMatrix, rtcOrigin, tempMat4a), offset += mat4Size);
471
- } else {
472
- this._matricesUniformBlockBufferData.set(viewMatrix, offset += mat4Size);
473
- }
474
-
475
- this._matricesUniformBlockBufferData.set(frameCtx.pickProjMatrix || project.matrix, offset += mat4Size);
476
- this._matricesUniformBlockBufferData.set(positionsDecodeMatrix, offset += mat4Size);
477
- this._matricesUniformBlockBufferData.set(worldNormalMatrix, offset += mat4Size);
478
- this._matricesUniformBlockBufferData.set(viewNormalMatrix, offset += mat4Size);
479
-
480
- gl.bindBuffer(gl.UNIFORM_BUFFER, this._matricesUniformBlockBuffer);
481
- gl.bufferData(gl.UNIFORM_BUFFER, this._matricesUniformBlockBufferData, gl.DYNAMIC_DRAW);
482
-
483
- gl.bindBufferBase(
484
- gl.UNIFORM_BUFFER,
485
- this._matricesUniformBlockBufferBindingPoint,
486
- this._matricesUniformBlockBuffer);
487
-
488
-
489
- gl.uniform1i(this._uRenderPass, renderPass);
490
-
491
- this.setSectionPlanesStateUniforms(layer);
492
-
493
- if (scene.logarithmicDepthBufferEnabled) {
494
- if (this._uLogDepthBufFC) {
495
- const logDepthBufFC = 2.0 / (Math.log(frameCtx.pickZFar + 1.0) / Math.LN2); // TODO: Far from pick project matrix?
496
- gl.uniform1f(this._uLogDepthBufFC, logDepthBufFC);
497
- }
498
- if (this._uZFar) {
499
- gl.uniform1f(this._uZFar, scene.camera.project.far)
500
- }
501
- }
502
-
503
- if (this._uPickInvisible) {
504
- gl.uniform1i(this._uPickInvisible, frameCtx.pickInvisible);
505
- }
506
-
507
- if (this._uPickZNear) {
508
- gl.uniform1f(this._uPickZNear, frameCtx.pickZNear);
509
- }
510
-
511
- if (this._uPickZFar) {
512
- gl.uniform1f(this._uPickZFar, frameCtx.pickZFar);
513
- }
514
-
515
- if (this._uPickClipPos) {
516
- gl.uniform2fv(this._uPickClipPos, frameCtx.pickClipPos);
517
- }
518
-
519
- if (this._uDrawingBufferSize) {
520
- gl.uniform2f(this._uDrawingBufferSize, gl.drawingBufferWidth, gl.drawingBufferHeight);
521
- }
522
-
523
- if (this._uUVDecodeMatrix) {
524
- gl.uniformMatrix3fv(this._uUVDecodeMatrix, false, state.uvDecodeMatrix);
525
- }
526
-
527
- if (this._uIntensityRange && pointsMaterial.filterIntensity) {
528
- gl.uniform2f(this._uIntensityRange, pointsMaterial.minIntensity, pointsMaterial.maxIntensity);
529
- }
530
-
531
- if (this._uPointSize) {
532
- gl.uniform1f(this._uPointSize, pointsMaterial.pointSize);
533
- }
534
-
535
- if (this._uNearPlaneHeight) {
536
- const nearPlaneHeight = (scene.camera.projection === "ortho") ?
537
- 1.0
538
- : (gl.drawingBufferHeight / (2 * Math.tan(0.5 * scene.camera.perspective.fov * Math.PI / 180.0)));
539
- gl.uniform1f(this._uNearPlaneHeight, nearPlaneHeight);
540
- }
541
-
542
- if (textureSet) {
543
- const {
544
- colorTexture,
545
- metallicRoughnessTexture,
546
- emissiveTexture,
547
- normalsTexture,
548
- occlusionTexture,
549
- } = textureSet;
550
-
551
- if (this._uColorMap && colorTexture) {
552
- this._program.bindTexture(this._uColorMap, colorTexture.texture, frameCtx.textureUnit);
553
- frameCtx.textureUnit = (frameCtx.textureUnit + 1) % maxTextureUnits;
554
- }
555
- if (this._uMetallicRoughMap && metallicRoughnessTexture) {
556
- this._program.bindTexture(this._uMetallicRoughMap, metallicRoughnessTexture.texture, frameCtx.textureUnit);
557
- frameCtx.textureUnit = (frameCtx.textureUnit + 1) % maxTextureUnits;
558
- }
559
- if (this._uEmissiveMap && emissiveTexture) {
560
- this._program.bindTexture(this._uEmissiveMap, emissiveTexture.texture, frameCtx.textureUnit);
561
- frameCtx.textureUnit = (frameCtx.textureUnit + 1) % maxTextureUnits;
562
- }
563
- if (this._uNormalMap && normalsTexture) {
564
- this._program.bindTexture(this._uNormalMap, normalsTexture.texture, frameCtx.textureUnit);
565
- frameCtx.textureUnit = (frameCtx.textureUnit + 1) % maxTextureUnits;
566
- }
567
- if (this._uAOMap && occlusionTexture) {
568
- this._program.bindTexture(this._uAOMap, occlusionTexture.texture, frameCtx.textureUnit);
569
- frameCtx.textureUnit = (frameCtx.textureUnit + 1) % maxTextureUnits;
570
- }
571
-
572
- }
573
-
574
- if (lightsState.reflectionMaps.length > 0 && lightsState.reflectionMaps[0].texture && this._uReflectionMap) {
575
- this._program.bindTexture(this._uReflectionMap, lightsState.reflectionMaps[0].texture, frameCtx.textureUnit);
576
- frameCtx.textureUnit = (frameCtx.textureUnit + 1) % maxTextureUnits;
577
- frameCtx.bindTexture++;
578
- }
579
-
580
- if (lightsState.lightMaps.length > 0 && lightsState.lightMaps[0].texture && this._uLightMap) {
581
- this._program.bindTexture(this._uLightMap, lightsState.lightMaps[0].texture, frameCtx.textureUnit);
582
- frameCtx.textureUnit = (frameCtx.textureUnit + 1) % maxTextureUnits;
583
- frameCtx.bindTexture++;
584
- }
585
-
586
- if (this._withSAO) {
587
- const sao = scene.sao;
588
- const saoEnabled = sao.possible;
589
- if (saoEnabled) {
590
- const viewportWidth = gl.drawingBufferWidth;
591
- const viewportHeight = gl.drawingBufferHeight;
592
- tempVec4[0] = viewportWidth;
593
- tempVec4[1] = viewportHeight;
594
- tempVec4[2] = sao.blendCutoff;
595
- tempVec4[3] = sao.blendFactor;
596
- gl.uniform4fv(this._uSAOParams, tempVec4);
597
- this._program.bindTexture(this._uOcclusionTexture, frameCtx.occlusionTexture, frameCtx.textureUnit);
598
- frameCtx.textureUnit = (frameCtx.textureUnit + 1) % maxTextureUnits;
599
- frameCtx.bindTexture++;
600
- }
601
- }
602
-
603
- if (colorUniform) {
604
- const colorKey = this._edges ? "edgeColor" : "fillColor";
605
- const alphaKey = this._edges ? "edgeAlpha" : "fillAlpha";
606
-
607
- if (renderPass === RENDER_PASSES[`${this._edges ? "EDGES" : "SILHOUETTE"}_XRAYED`]) {
608
- const material = scene.xrayMaterial._state;
609
- const color = material[colorKey];
610
- const alpha = material[alphaKey];
611
- gl.uniform4f(this._uColor, color[0], color[1], color[2], alpha);
612
-
613
- } else if (renderPass === RENDER_PASSES[`${this._edges ? "EDGES" : "SILHOUETTE"}_HIGHLIGHTED`]) {
614
- const material = scene.highlightMaterial._state;
615
- const color = material[colorKey];
616
- const alpha = material[alphaKey];
617
- gl.uniform4f(this._uColor, color[0], color[1], color[2], alpha);
618
-
619
- } else if (renderPass === RENDER_PASSES[`${this._edges ? "EDGES" : "SILHOUETTE"}_SELECTED`]) {
620
- const material = scene.selectedMaterial._state;
621
- const color = material[colorKey];
622
- const alpha = material[alphaKey];
623
- gl.uniform4f(this._uColor, color[0], color[1], color[2], alpha);
624
-
625
- } else {
626
- gl.uniform4fv(this._uColor, this._edges ? edgesDefaultColor : defaultColor);
627
- }
628
- }
629
-
630
- this._draw({state, frameCtx, incrementDrawState});
631
-
632
- gl.bindVertexArray(null);
633
- }
634
-
635
- webglContextRestored() {
636
- this._program = null;
637
- }
638
-
639
- destroy() {
640
- if (this._program) {
641
- this._program.destroy();
642
- }
643
- this._program = null;
644
- stats.memory.programs--;
645
- }
646
- }