@xeokit/xeokit-sdk 2.6.92 → 2.6.93

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 (182) hide show
  1. package/dist/xeokit-sdk.cjs.js +13074 -44661
  2. package/dist/xeokit-sdk.es.js +13075 -44660
  3. package/dist/xeokit-sdk.es5.js +1403 -3501
  4. package/dist/xeokit-sdk.min.cjs.js +8 -8
  5. package/dist/xeokit-sdk.min.es.js +8 -8
  6. package/dist/xeokit-sdk.min.es5.js +7 -7
  7. package/package.json +1 -1
  8. package/src/viewer/Viewer.js +55 -103
  9. package/src/viewer/scene/canvas/Canvas.js +3 -43
  10. package/src/viewer/scene/geometry/ReadableGeometry.js +0 -25
  11. package/src/viewer/scene/lights/CubeTexture.js +0 -13
  12. package/src/viewer/scene/lights/DirLight.js +2 -1
  13. package/src/viewer/scene/lights/PointLight.js +2 -1
  14. package/src/viewer/scene/materials/Texture.js +0 -9
  15. package/src/viewer/scene/math/rtcCoords.js +1 -38
  16. package/src/viewer/scene/mesh/Mesh.js +454 -212
  17. package/src/viewer/scene/mesh/draw/DrawShaderSource.js +305 -1504
  18. package/src/viewer/scene/mesh/draw/LambertShaderSource.js +35 -0
  19. package/src/viewer/scene/mesh/emphasis/EmphasisShaderSource.js +34 -0
  20. package/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +9 -158
  21. package/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +21 -151
  22. package/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +12 -124
  23. package/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +22 -97
  24. package/src/viewer/scene/model/SceneModel.js +248 -852
  25. package/src/viewer/scene/model/SceneModelEntity.js +4 -4
  26. package/src/viewer/scene/model/SceneModelMesh.js +3 -3
  27. package/src/viewer/scene/model/layer/DTXLayer.js +940 -0
  28. package/src/viewer/scene/model/layer/Layer.js +788 -0
  29. package/src/viewer/scene/model/layer/VBOLayer.js +1019 -0
  30. package/src/viewer/scene/model/layer/programs/ColorProgram.js +35 -0
  31. package/src/viewer/scene/model/layer/programs/ColorTextureProgram.js +46 -0
  32. package/src/viewer/scene/model/layer/programs/DepthProgram.js +11 -0
  33. package/src/viewer/scene/model/layer/programs/EdgesProgram.js +12 -0
  34. package/src/viewer/scene/model/layer/programs/FlatColorProgram.js +24 -0
  35. package/src/viewer/scene/model/layer/programs/OcclusionProgram.js +12 -0
  36. package/src/viewer/scene/model/layer/programs/PBRProgram.js +180 -0
  37. package/src/viewer/scene/model/layer/programs/PickDepthProgram.js +30 -0
  38. package/src/viewer/scene/model/layer/programs/PickMeshProgram.js +12 -0
  39. package/src/viewer/scene/model/layer/programs/PickNormalsProgram.js +18 -0
  40. package/src/viewer/scene/model/layer/programs/ShadowProgram.js +23 -0
  41. package/src/viewer/scene/model/layer/programs/SilhouetteProgram.js +15 -0
  42. package/src/viewer/scene/model/layer/programs/SnapProgram.js +29 -0
  43. package/src/viewer/scene/scene/Scene.js +21 -38
  44. package/src/viewer/scene/webgl/ArrayBuf.js +5 -20
  45. package/src/viewer/scene/webgl/FrameContext.js +14 -86
  46. package/src/viewer/scene/webgl/RenderBuffer.js +62 -262
  47. package/src/viewer/scene/webgl/Renderer.js +880 -843
  48. package/src/viewer/scene/webgl/WebGLRenderer.js +612 -0
  49. package/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +60 -132
  50. package/src/viewer/scene/webgl/occlusion/OcclusionTester.js +167 -328
  51. package/src/viewer/scene/mesh/draw/DrawRenderer.js +0 -998
  52. package/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +0 -259
  53. package/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +0 -160
  54. package/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +0 -286
  55. package/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +0 -263
  56. package/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +0 -221
  57. package/src/viewer/scene/mesh/pick/PickMeshRenderer.js +0 -223
  58. package/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +0 -200
  59. package/src/viewer/scene/mesh/shadow/ShadowRenderer.js +0 -214
  60. package/src/viewer/scene/model/RENDER_PASSES.js +0 -34
  61. package/src/viewer/scene/model/dtx/BindableDataTexture.js +0 -31
  62. package/src/viewer/scene/model/dtx/lines/DTXLinesBuffer.js +0 -27
  63. package/src/viewer/scene/model/dtx/lines/DTXLinesLayer.js +0 -897
  64. package/src/viewer/scene/model/dtx/lines/DTXLinesState.js +0 -46
  65. package/src/viewer/scene/model/dtx/lines/DTXLinesTextureFactory.js +0 -411
  66. package/src/viewer/scene/model/dtx/lines/dataTextureRamStats.js +0 -49
  67. package/src/viewer/scene/model/dtx/lines/rebucketPositions.js +0 -208
  68. package/src/viewer/scene/model/dtx/lines/renderers/DTXLinesColorRenderer.js +0 -389
  69. package/src/viewer/scene/model/dtx/lines/renderers/DTXLinesRenderers.js +0 -65
  70. package/src/viewer/scene/model/dtx/triangles/DTXTrianglesLayer.js +0 -1399
  71. package/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesBuffer.js +0 -46
  72. package/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesState.js +0 -250
  73. package/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesTextureFactory.js +0 -518
  74. package/src/viewer/scene/model/dtx/triangles/lib/dataTextureRamStats.js +0 -54
  75. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesColorRenderer.js +0 -639
  76. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesDepthRenderer.js +0 -464
  77. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesColorRenderer.js +0 -423
  78. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesRenderer.js +0 -431
  79. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesNormalsRenderer.js +0 -345
  80. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesOcclusionRenderer.js +0 -436
  81. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickDepthRenderer.js +0 -466
  82. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickMeshRenderer.js +0 -437
  83. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsFlatRenderer.js +0 -460
  84. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsRenderer.js +0 -437
  85. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesRenderers.js +0 -307
  86. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSilhouetteRenderer.js +0 -472
  87. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapInitRenderer.js +0 -474
  88. package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapRenderer.js +0 -435
  89. package/src/viewer/scene/model/vbo/ScratchMemory.js +0 -63
  90. package/src/viewer/scene/model/vbo/VBORenderer.js +0 -664
  91. package/src/viewer/scene/model/vbo/batching/lines/VBOBatchingLinesLayer.js +0 -704
  92. package/src/viewer/scene/model/vbo/batching/lines/lib/VBOBatchingLinesBuffer.js +0 -19
  93. package/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLineSnapInitRenderer.js +0 -318
  94. package/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesColorRenderer.js +0 -114
  95. package/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesRenderers.js +0 -99
  96. package/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSilhouetteRenderer.js +0 -124
  97. package/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapInitRenderer.js +0 -313
  98. package/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapRenderer.js +0 -311
  99. package/src/viewer/scene/model/vbo/batching/lines/renderers/VBOSceneModelLineBatchingRenderer.js +0 -24
  100. package/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsLayer.js +0 -688
  101. package/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsRenderer.js +0 -24
  102. package/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsColorRenderer.js +0 -168
  103. package/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsOcclusionRenderer.js +0 -136
  104. package/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickDepthRenderer.js +0 -156
  105. package/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickMeshRenderer.js +0 -148
  106. package/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsRenderers.js +0 -144
  107. package/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsShadowRenderer.js +0 -107
  108. package/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSilhouetteRenderer.js +0 -146
  109. package/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapInitRenderer.js +0 -315
  110. package/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapRenderer.js +0 -305
  111. package/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesBuffer.js +0 -24
  112. package/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +0 -1346
  113. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js +0 -131
  114. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js +0 -135
  115. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +0 -12
  116. package/src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js +0 -403
  117. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js +0 -35
  118. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js +0 -252
  119. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js +0 -294
  120. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js +0 -115
  121. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js +0 -246
  122. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js +0 -139
  123. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js +0 -125
  124. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js +0 -561
  125. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js +0 -144
  126. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js +0 -130
  127. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +0 -121
  128. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js +0 -131
  129. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js +0 -107
  130. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js +0 -144
  131. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js +0 -313
  132. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js +0 -312
  133. package/src/viewer/scene/model/vbo/float16.js +0 -760
  134. package/src/viewer/scene/model/vbo/instancing/lines/VBOInstancingLinesLayer.js +0 -711
  135. package/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesColorRenderer.js +0 -148
  136. package/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderer.js +0 -26
  137. package/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderers.js +0 -139
  138. package/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSilhouetteRenderer.js +0 -127
  139. package/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapInitRenderer.js +0 -308
  140. package/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapRenderer.js +0 -299
  141. package/src/viewer/scene/model/vbo/instancing/points/VBOInstancingPointsLayer.js +0 -733
  142. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsColorRenderer.js +0 -174
  143. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsDepthRenderer.js +0 -156
  144. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsOcclusionRenderer.js +0 -149
  145. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickDepthRenderer.js +0 -170
  146. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickMeshRenderer.js +0 -152
  147. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderer.js +0 -26
  148. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderers.js +0 -174
  149. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsShadowRenderer.js +0 -119
  150. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSilhouetteRenderer.js +0 -154
  151. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapInitRenderer.js +0 -307
  152. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapRenderer.js +0 -293
  153. package/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingTrianglesRenderer.js +0 -150
  154. package/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +0 -1289
  155. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js +0 -135
  156. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js +0 -137
  157. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +0 -12
  158. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js +0 -403
  159. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js +0 -267
  160. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js +0 -299
  161. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js +0 -126
  162. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js +0 -255
  163. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js +0 -130
  164. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js +0 -32
  165. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js +0 -138
  166. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js +0 -128
  167. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js +0 -561
  168. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js +0 -149
  169. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js +0 -136
  170. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +0 -130
  171. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js +0 -145
  172. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js +0 -113
  173. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js +0 -148
  174. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js +0 -319
  175. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js +0 -310
  176. package/src/viewer/scene/webgl/Attribute.js +0 -23
  177. package/src/viewer/scene/webgl/Program.js +0 -181
  178. package/src/viewer/scene/webgl/RenderBufferManager.js +0 -34
  179. package/src/viewer/scene/webgl/Sampler.js +0 -18
  180. package/src/viewer/scene/webgl/Shader.js +0 -49
  181. package/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +0 -324
  182. package/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +0 -384
@@ -1,214 +0,0 @@
1
- import {ShadowShaderSource} from "./ShadowShaderSource.js";
2
- import {Program} from "../../webgl/Program.js";
3
- import {stats} from "../../stats.js";
4
-
5
- /**
6
- * @private
7
- */
8
- const ShadowRenderer = function (hash, mesh) {
9
- this._hash = hash;
10
- this._shaderSource = new ShadowShaderSource(mesh);
11
- this._scene = mesh.scene;
12
- this._useCount = 0;
13
- this._allocate(mesh);
14
- };
15
-
16
- const renderers = {};
17
-
18
- ShadowRenderer.get = function (mesh) {
19
- const scene = mesh.scene;
20
- const hash = [scene.canvas.canvas.id, scene._sectionPlanesState.getHash(), mesh._geometry._state.hash, mesh._state.hash].join(";");
21
- let renderer = renderers[hash];
22
- if (!renderer) {
23
- renderer = new ShadowRenderer(hash, mesh);
24
- if (renderer.errors) {
25
- console.log(renderer.errors.join("\n"));
26
- return null;
27
- }
28
- renderers[hash] = renderer;
29
- stats.memory.programs++;
30
- }
31
- renderer._useCount++;
32
- return renderer;
33
- };
34
-
35
- ShadowRenderer.prototype.put = function () {
36
- if (--this._useCount === 0) {
37
- if (this._program) {
38
- this._program.destroy();
39
- }
40
- delete renderers[this._hash];
41
- stats.memory.programs--;
42
- }
43
- };
44
-
45
- ShadowRenderer.prototype.webglContextRestored = function () {
46
- this._program = null;
47
- };
48
-
49
- ShadowRenderer.prototype.drawMesh = function (frame, mesh) {
50
- if (!this._program) {
51
- this._allocate(mesh);
52
- }
53
- const scene = this._scene;
54
- const gl = scene.canvas.gl;
55
- const materialState = mesh._material._state;
56
- const geometryState = mesh._geometry._state;
57
- if (frame.lastProgramId !== this._program.id) {
58
- frame.lastProgramId = this._program.id;
59
- this._bindProgram(frame);
60
- }
61
- if (materialState.id !== this._lastMaterialId) {
62
- const backfaces = materialState.backfaces;
63
- if (frame.backfaces !== backfaces) {
64
- if (backfaces) {
65
- gl.disable(gl.CULL_FACE);
66
- } else {
67
- gl.enable(gl.CULL_FACE);
68
- }
69
- frame.backfaces = backfaces;
70
- }
71
- const frontface = materialState.frontface;
72
- if (frame.frontface !== frontface) {
73
- if (frontface) {
74
- gl.frontFace(gl.CCW);
75
- } else {
76
- gl.frontFace(gl.CW);
77
- }
78
- frame.frontface = frontface;
79
- }
80
- if (frame.lineWidth !== materialState.lineWidth) {
81
- gl.lineWidth(materialState.lineWidth);
82
- frame.lineWidth = materialState.lineWidth;
83
- }
84
- if (this._uPointSize) {
85
- gl.uniform1i(this._uPointSize, materialState.pointSize);
86
- }
87
- this._lastMaterialId = materialState.id;
88
- }
89
- gl.uniformMatrix4fv(this._uModelMatrix, gl.FALSE, mesh.worldMatrix);
90
- if (geometryState.combineGeometry) {
91
- const vertexBufs = mesh.vertexBufs;
92
- if (vertexBufs.id !== this._lastVertexBufsId) {
93
- if (vertexBufs.positionsBuf && this._aPosition) {
94
- this._aPosition.bindArrayBuffer(vertexBufs.positionsBuf, vertexBufs.compressGeometry ? gl.UNSIGNED_SHORT : gl.FLOAT);
95
- frame.bindArray++;
96
- }
97
- this._lastVertexBufsId = vertexBufs.id;
98
- }
99
- }
100
- if (this._uClippable) {
101
- gl.uniform1i(this._uClippable, mesh._state.clippable);
102
- }
103
- gl.uniform3fv(this._uOffset, mesh._state.offset);
104
- if (geometryState.id !== this._lastGeometryId) {
105
- if (this._uPositionsDecodeMatrix) {
106
- gl.uniformMatrix4fv(this._uPositionsDecodeMatrix, false, geometryState.positionsDecodeMatrix);
107
- }
108
- if (geometryState.combineGeometry) { // VBOs were bound by the preceding VertexBufs chunk
109
- if (geometryState.indicesBufCombined) {
110
- geometryState.indicesBufCombined.bind();
111
- frame.bindArray++;
112
- }
113
- } else {
114
- if (this._aPosition) {
115
- this._aPosition.bindArrayBuffer(geometryState.positionsBuf, geometryState.compressGeometry ? gl.UNSIGNED_SHORT : gl.FLOAT);
116
- frame.bindArray++;
117
- }
118
- if (geometryState.indicesBuf) {
119
- geometryState.indicesBuf.bind();
120
- frame.bindArray++;
121
- }
122
- }
123
- this._lastGeometryId = geometryState.id;
124
- }
125
- if (geometryState.combineGeometry) {
126
- if (geometryState.indicesBufCombined) {
127
- gl.drawElements(geometryState.primitive, geometryState.indicesBufCombined.numItems, geometryState.indicesBufCombined.itemType, 0);
128
- frame.drawElements++;
129
- } else {
130
- // TODO: drawArrays() with VertexBufs positions
131
- }
132
- } else {
133
- if (geometryState.indicesBuf) {
134
- gl.drawElements(geometryState.primitive, geometryState.indicesBuf.numItems, geometryState.indicesBuf.itemType, 0);
135
- frame.drawElements++;
136
- } else if (geometryState.positions) {
137
- gl.drawArrays(gl.TRIANGLES, 0, geometryState.positions.numItems);
138
- frame.drawArrays++;
139
- }
140
- }
141
- };
142
-
143
- ShadowRenderer.prototype._allocate = function (mesh) {
144
- const scene = mesh.scene;
145
- const gl = scene.canvas.gl;
146
- this._program = new Program(gl, this._shaderSource);
147
- this._scene = scene;
148
- this._useCount = 0;
149
- if (this._program.errors) {
150
- this.errors = this._program.errors;
151
- return;
152
- }
153
- const program = this._program;
154
- this._uPositionsDecodeMatrix = program.getLocation("positionsDecodeMatrix");
155
- this._uModelMatrix = program.getLocation("modelMatrix");
156
- this._uShadowViewMatrix = program.getLocation("shadowViewMatrix");
157
- this._uShadowProjMatrix = program.getLocation("shadowProjMatrix");
158
- this._uSectionPlanes = {};
159
- const clips = scene._sectionPlanesState.sectionPlanes;
160
- for (let i = 0, len = clips.length; i < len; i++) {
161
- this._uSectionPlanes.push({
162
- active: program.getLocation("sectionPlaneActive" + i),
163
- pos: program.getLocation("sectionPlanePos" + i),
164
- dir: program.getLocation("sectionPlaneDir" + i)
165
- });
166
- }
167
- this._aPosition = program.getAttribute("position");
168
- this._uClippable = program.getLocation("clippable");
169
- this._uOffset = program.getLocation("offset");
170
- this._lastMaterialId = null;
171
- this._lastVertexBufsId = null;
172
- this._lastGeometryId = null;
173
- };
174
-
175
- ShadowRenderer.prototype._bindProgram = function (frame) {
176
- if (!this._program) {
177
- this._allocate(mesh);
178
- }
179
- const scene = this._scene;
180
- const gl = scene.canvas.gl;
181
- const sectionPlanesState = scene._sectionPlanesState;
182
- this._program.bind();
183
- frame.useProgram++;
184
- gl.uniformMatrix4fv(this._uShadowViewMatrix, false, frame.shadowViewMatrix);
185
- gl.uniformMatrix4fv(this._uShadowProjMatrix, false, frame.shadowProjMatrix);
186
- this._lastMaterialId = null;
187
- this._lastVertexBufsId = null;
188
- this._lastGeometryId = null;
189
- if (sectionPlanesState.getNumAllocatedSectionPlanes() > 0) {
190
- let sectionPlaneUniforms;
191
- let uSectionPlaneActive;
192
- let sectionPlane;
193
- let uSectionPlanePos;
194
- let uSectionPlaneDir;
195
- for (let i = 0, len = this._uSectionPlanes.length; i < len; i++) {
196
- sectionPlaneUniforms = this._uSectionPlanes[i];
197
- uSectionPlaneActive = sectionPlaneUniforms.active;
198
- sectionPlane = sectionPlanesState.sectionPlanes[i];
199
- if (uSectionPlaneActive) {
200
- gl.uniform1i(uSectionPlaneActive, sectionPlane.active);
201
- }
202
- uSectionPlanePos = sectionPlaneUniforms.pos;
203
- if (uSectionPlanePos) {
204
- gl.uniform3fv(sectionPlaneUniforms.pos, sectionPlane.pos);
205
- }
206
- uSectionPlaneDir = sectionPlaneUniforms.dir;
207
- if (uSectionPlaneDir) {
208
- gl.uniform3fv(sectionPlaneUniforms.dir, sectionPlane.dir);
209
- }
210
- }
211
- }
212
- };
213
-
214
- export {ShadowRenderer};
@@ -1,34 +0,0 @@
1
- /**
2
- * @private
3
- */
4
- const RENDER_PASSES = {
5
-
6
- // Skipped - suppress rendering
7
-
8
- NOT_RENDERED: 0,
9
-
10
- // Normal rendering - mutually exclusive modes
11
-
12
- COLOR_OPAQUE: 1,
13
- COLOR_TRANSPARENT: 2,
14
-
15
- // Emphasis silhouette rendering - mutually exclusive modes
16
-
17
- SILHOUETTE_HIGHLIGHTED: 3,
18
- SILHOUETTE_SELECTED: 4,
19
- SILHOUETTE_XRAYED: 5,
20
-
21
- // Edges rendering - mutually exclusive modes
22
-
23
- EDGES_COLOR_OPAQUE: 6,
24
- EDGES_COLOR_TRANSPARENT: 7,
25
- EDGES_HIGHLIGHTED: 8,
26
- EDGES_SELECTED: 9,
27
- EDGES_XRAYED: 10,
28
-
29
- // Picking
30
-
31
- PICK: 11
32
- };
33
-
34
- export {RENDER_PASSES};
@@ -1,31 +0,0 @@
1
- /**
2
- * @private
3
- */
4
- export class BindableDataTexture {
5
-
6
- constructor(gl, texture, textureWidth, textureHeight, textureData = null) {
7
- this._gl = gl;
8
- this._texture = texture;
9
- this._textureWidth = textureWidth;
10
- this._textureHeight = textureHeight;
11
- this._textureData = textureData;
12
- }
13
-
14
- bindTexture(glProgram, shaderName, glTextureUnit) {
15
- return glProgram.bindTexture(shaderName, this, glTextureUnit);
16
- }
17
-
18
- bind(unit) {
19
- this._gl.activeTexture(this._gl["TEXTURE" + unit]);
20
- this._gl.bindTexture(this._gl.TEXTURE_2D, this._texture);
21
- return true;
22
- }
23
-
24
- unbind(unit) {
25
- // This `unbind` method is ignored at the moment to allow avoiding
26
- // to rebind same texture already bound to a texture unit.
27
-
28
- // this._gl.activeTexture(this.state.gl["TEXTURE" + unit]);
29
- // this._gl.bindTexture(this.state.gl.TEXTURE_2D, null);
30
- }
31
- }
@@ -1,27 +0,0 @@
1
- /**
2
- * @private
3
- */
4
- export class DTXLinesBuffer {
5
-
6
- constructor() {
7
- this.positionsCompressed = [];
8
- this.lenPositionsCompressed = 0;
9
- this.indices8Bits = [];
10
- this.lenIndices8Bits = 0;
11
- this.indices16Bits = [];
12
- this.lenIndices16Bits = 0;
13
- this.indices32Bits = [];
14
- this.lenIndices32Bits = 0;
15
- this.perObjectColors = [];
16
- this.perObjectPickColors = [];
17
- this.perObjectSolid = [];
18
- this.perObjectOffsets = [];
19
- this.perObjectPositionsDecodeMatrices = [];
20
- this.perObjectInstancePositioningMatrices = [];
21
- this.perObjectVertexBases = [];
22
- this.perObjectIndexBaseOffsets = [];
23
- this.perLineNumberPortionId8Bits = [];
24
- this.perLineNumberPortionId16Bits = [];
25
- this.perLineNumberPortionId32Bits = [];
26
- }
27
- }