@xeokit/xeokit-sdk 2.4.2-beta-21 → 2.4.2-beta-22

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 (90) hide show
  1. package/dist/xeokit-sdk.cjs.js +709 -588
  2. package/dist/xeokit-sdk.es.js +709 -588
  3. package/dist/xeokit-sdk.es5.js +203 -194
  4. package/dist/xeokit-sdk.min.cjs.js +4 -4
  5. package/dist/xeokit-sdk.min.es.js +4 -4
  6. package/dist/xeokit-sdk.min.es5.js +3 -3
  7. package/package.json +1 -1
  8. package/src/viewer/Viewer.js +7 -1
  9. package/src/viewer/scene/mesh/draw/DrawRenderer.js +18 -8
  10. package/src/viewer/scene/mesh/draw/DrawShaderSource.js +8 -8
  11. package/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +19 -9
  12. package/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +3 -3
  13. package/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +19 -9
  14. package/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +3 -3
  15. package/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +18 -8
  16. package/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +3 -3
  17. package/src/viewer/scene/mesh/pick/PickMeshRenderer.js +18 -8
  18. package/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +3 -3
  19. package/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +18 -8
  20. package/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +3 -3
  21. package/src/viewer/scene/mesh/shadow/ShadowRenderer.js +1 -1
  22. package/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +3 -3
  23. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureColorRenderer.js +22 -17
  24. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureDepthRenderer.js +21 -20
  25. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureEdgesColorRenderer.js +6 -9
  26. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureEdgesRenderer.js +21 -18
  27. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureNormalsRenderer.js +22 -18
  28. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureOcclusionRenderer.js +22 -17
  29. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickDepthRenderer.js +22 -18
  30. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickMeshRenderer.js +58 -54
  31. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickNormalsFlatRenderer.js +21 -19
  32. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickNormalsRenderer.js +22 -18
  33. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSilhouetteRenderer.js +21 -18
  34. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthBufInitRenderer.js +21 -18
  35. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthRenderer.js +21 -18
  36. package/src/viewer/scene/model/vbo/VBOSceneModelRenderers.js +21 -16
  37. package/src/viewer/scene/model/vbo/linesBatching/renderers/LinesBatchingColorRenderer.js +4 -4
  38. package/src/viewer/scene/model/vbo/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js +4 -4
  39. package/src/viewer/scene/model/vbo/linesInstancing/renderers/LinesInstancingColorRenderer.js +4 -4
  40. package/src/viewer/scene/model/vbo/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js +4 -4
  41. package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingColorRenderer.js +4 -4
  42. package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js +4 -4
  43. package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js +4 -4
  44. package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js +4 -4
  45. package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingShadowRenderer.js +4 -4
  46. package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js +4 -4
  47. package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingColorRenderer.js +4 -4
  48. package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingDepthRenderer.js +4 -4
  49. package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingOcclusionRenderer.js +4 -4
  50. package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingPickDepthRenderer.js +4 -4
  51. package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingPickMeshRenderer.js +4 -4
  52. package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingShadowRenderer.js +4 -4
  53. package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingSilhouetteRenderer.js +4 -4
  54. package/src/viewer/scene/model/vbo/snapBatching/SnapBatchingDepthBufInitRenderer.js +4 -4
  55. package/src/viewer/scene/model/vbo/snapBatching/SnapBatchingDepthRenderer.js +4 -4
  56. package/src/viewer/scene/model/vbo/snapInstancing/SnapInstancingDepthBufInitRenderer.js +4 -4
  57. package/src/viewer/scene/model/vbo/snapInstancing/SnapInstancingDepthRenderer.js +4 -4
  58. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingColorRenderer.js +4 -4
  59. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingColorTextureRenderer.js +4 -4
  60. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingDepthRenderer.js +4 -4
  61. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingEdgesColorRenderer.js +4 -4
  62. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingEdgesRenderer.js +4 -4
  63. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingFlatColorRenderer.js +4 -4
  64. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingNormalsRenderer.js +4 -4
  65. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingOcclusionRenderer.js +4 -4
  66. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPBRRenderer.js +4 -4
  67. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickDepthRenderer.js +4 -4
  68. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickMeshRenderer.js +4 -4
  69. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickNormalsFlatRenderer.js +4 -4
  70. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickNormalsRenderer.js +4 -4
  71. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingShadowRenderer.js +4 -4
  72. package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingSilhouetteRenderer.js +4 -4
  73. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingColorRenderer.js +4 -4
  74. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingColorTextureRenderer.js +4 -4
  75. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingDepthRenderer.js +4 -4
  76. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingEdgesColorRenderer.js +4 -4
  77. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingEdgesRenderer.js +4 -4
  78. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingFlatColorRenderer.js +4 -4
  79. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingFlatNormalsRenderer.js +4 -4
  80. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingNormalsRenderer.js +4 -4
  81. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingOcclusionRenderer.js +4 -4
  82. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPBRRenderer.js +4 -4
  83. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickDepthRenderer.js +4 -4
  84. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickMeshRenderer.js +4 -4
  85. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickNormalsFlatRenderer.js +4 -4
  86. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickNormalsRenderer.js +4 -4
  87. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingShadowRenderer.js +4 -4
  88. package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingSilhouetteRenderer.js +4 -4
  89. package/src/viewer/scene/scene/Scene.js +24 -9
  90. package/src/viewer/scene/sectionPlane/SectionPlaneCache.js +101 -0
@@ -11,7 +11,7 @@ class PointsInstancingPickDepthRenderer extends VBOSceneModelPointInstancingRend
11
11
  _buildVertexShader() {
12
12
  const scene = this._scene;
13
13
  const sectionPlanesState = scene._sectionPlanesState;
14
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
14
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
15
15
  const pointsMaterial = scene.pointsMaterial._state;
16
16
  const src = [];
17
17
 
@@ -96,7 +96,7 @@ class PointsInstancingPickDepthRenderer extends VBOSceneModelPointInstancingRend
96
96
  _buildFragmentShader() {
97
97
  const scene = this._scene;
98
98
  const sectionPlanesState = scene._sectionPlanesState;
99
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
99
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
100
100
  const src = [];
101
101
  src.push ('#version 300 es');
102
102
  src.push("// Points instancing pick depth fragment shader");
@@ -120,7 +120,7 @@ class PointsInstancingPickDepthRenderer extends VBOSceneModelPointInstancingRend
120
120
  if (clipping) {
121
121
  src.push("in vec4 vWorldPosition;");
122
122
  src.push("in float vFlags;");
123
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
123
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
124
124
  src.push("uniform bool sectionPlaneActive" + i + ";");
125
125
  src.push("uniform vec3 sectionPlanePos" + i + ";");
126
126
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -149,7 +149,7 @@ class PointsInstancingPickDepthRenderer extends VBOSceneModelPointInstancingRend
149
149
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
150
150
  src.push(" if (clippable) {");
151
151
  src.push(" float dist = 0.0;");
152
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
152
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
153
153
  src.push("if (sectionPlaneActive" + i + ") {");
154
154
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
155
155
  src.push("}");
@@ -11,7 +11,7 @@ class PointsInstancingPickMeshRenderer extends VBOSceneModelPointInstancingRende
11
11
  _buildVertexShader() {
12
12
  const scene = this._scene;
13
13
  const sectionPlanesState = scene._sectionPlanesState;
14
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
14
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
15
15
  const pointsMaterial = scene.pointsMaterial._state;
16
16
  const src = [];
17
17
  src.push ('#version 300 es');
@@ -94,7 +94,7 @@ class PointsInstancingPickMeshRenderer extends VBOSceneModelPointInstancingRende
94
94
  _buildFragmentShader() {
95
95
  const scene = this._scene;
96
96
  const sectionPlanesState = scene._sectionPlanesState;
97
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
97
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
98
98
  const src = [];
99
99
  src.push ('#version 300 es');
100
100
  src.push("// Points instancing pick mesh fragment shader");
@@ -112,7 +112,7 @@ class PointsInstancingPickMeshRenderer extends VBOSceneModelPointInstancingRende
112
112
  if (clipping) {
113
113
  src.push("in vec4 vWorldPosition;");
114
114
  src.push("in float vFlags;");
115
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
115
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
116
116
  src.push("uniform bool sectionPlaneActive" + i + ";");
117
117
  src.push("uniform vec3 sectionPlanePos" + i + ";");
118
118
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -134,7 +134,7 @@ class PointsInstancingPickMeshRenderer extends VBOSceneModelPointInstancingRende
134
134
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
135
135
  src.push(" if (clippable) {");
136
136
  src.push(" float dist = 0.0;");
137
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
137
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
138
138
  src.push("if (sectionPlaneActive" + i + ") {");
139
139
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
140
140
  src.push("}");
@@ -10,7 +10,7 @@ class PointsInstancingShadowRenderer extends VBOSceneModelPointInstancingRendere
10
10
  _buildVertexShader() {
11
11
  const scene = this._scene;
12
12
  const sectionPlanesState = scene._sectionPlanesState;
13
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
13
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
14
14
  const src = [];
15
15
  src.push ('#version 300 es');
16
16
  src.push("// Instancing geometry shadow drawing vertex shader");
@@ -61,7 +61,7 @@ class PointsInstancingShadowRenderer extends VBOSceneModelPointInstancingRendere
61
61
  _buildFragmentShader() {
62
62
  const scene = this._scene;
63
63
  const sectionPlanesState = scene._sectionPlanesState;
64
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
64
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
65
65
  const src = [];
66
66
  src.push ('#version 300 es');
67
67
  src.push("// Instancing geometry depth drawing fragment shader");
@@ -80,7 +80,7 @@ class PointsInstancingShadowRenderer extends VBOSceneModelPointInstancingRendere
80
80
  if (clipping) {
81
81
  src.push("in vec4 vWorldPosition;");
82
82
  src.push("in float vFlags;");
83
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
83
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
84
84
  src.push("uniform bool sectionPlaneActive" + i + ";");
85
85
  src.push("uniform vec3 sectionPlanePos" + i + ";");
86
86
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -101,7 +101,7 @@ class PointsInstancingShadowRenderer extends VBOSceneModelPointInstancingRendere
101
101
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
102
102
  src.push(" if (clippable) {");
103
103
  src.push(" float dist = 0.0;");
104
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
104
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
105
105
  src.push("if (sectionPlaneActive" + i + ") {");
106
106
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
107
107
  src.push("}");
@@ -16,7 +16,7 @@ class PointsInstancingSilhouetteRenderer extends VBOSceneModelPointInstancingRen
16
16
 
17
17
  const scene = this._scene;
18
18
  const sectionPlanesState = scene._sectionPlanesState;
19
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
19
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
20
20
  const pointsMaterial = scene.pointsMaterial._state;
21
21
  const src = [];
22
22
  src.push ('#version 300 es');
@@ -98,7 +98,7 @@ class PointsInstancingSilhouetteRenderer extends VBOSceneModelPointInstancingRen
98
98
  _buildFragmentShader() {
99
99
  const scene = this._scene;
100
100
  const sectionPlanesState = scene._sectionPlanesState;
101
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
101
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
102
102
  const src = [];
103
103
  src.push ('#version 300 es');
104
104
  src.push("// Points instancing silhouette fragment shader");
@@ -116,7 +116,7 @@ class PointsInstancingSilhouetteRenderer extends VBOSceneModelPointInstancingRen
116
116
  if (clipping) {
117
117
  src.push("in vec4 vWorldPosition;");
118
118
  src.push("in float vFlags;");
119
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
119
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
120
120
  src.push("uniform bool sectionPlaneActive" + i + ";");
121
121
  src.push("uniform vec3 sectionPlanePos" + i + ";");
122
122
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -136,7 +136,7 @@ class PointsInstancingSilhouetteRenderer extends VBOSceneModelPointInstancingRen
136
136
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
137
137
  src.push(" if (clippable) {");
138
138
  src.push(" float dist = 0.0;");
139
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
139
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
140
140
  src.push("if (sectionPlaneActive" + i + ") {");
141
141
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
142
142
  src.push("}");
@@ -148,7 +148,7 @@ export class SnapBatchingDepthBufInitRenderer extends VBOSceneModelRenderer {
148
148
 
149
149
  _buildVertexShader() {
150
150
  const scene = this._scene;
151
- const clipping = scene._sectionPlanesState.sectionPlanes.length > 0;
151
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
152
152
  const src = [];
153
153
  src.push ('#version 300 es');
154
154
  src.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader");
@@ -235,7 +235,7 @@ export class SnapBatchingDepthBufInitRenderer extends VBOSceneModelRenderer {
235
235
  _buildFragmentShader() {
236
236
  const scene = this._scene;
237
237
  const sectionPlanesState = scene._sectionPlanesState;
238
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
238
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
239
239
  const src = [];
240
240
  src.push ('#version 300 es');
241
241
  src.push("// VBO SnapBatchingDepthBufInitRenderer fragment shader");
@@ -257,7 +257,7 @@ export class SnapBatchingDepthBufInitRenderer extends VBOSceneModelRenderer {
257
257
  src.push("flat in vec4 vPickColor;");
258
258
  if (clipping) {
259
259
  src.push("in float vFlags;");
260
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
260
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
261
261
  src.push("uniform bool sectionPlaneActive" + i + ";");
262
262
  src.push("uniform vec3 sectionPlanePos" + i + ";");
263
263
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -272,7 +272,7 @@ export class SnapBatchingDepthBufInitRenderer extends VBOSceneModelRenderer {
272
272
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
273
273
  src.push(" if (clippable) {");
274
274
  src.push(" float dist = 0.0;");
275
- for (var i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
275
+ for (var i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
276
276
  src.push(" if (sectionPlaneActive" + i + ") {");
277
277
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
278
278
  src.push(" }");
@@ -158,7 +158,7 @@ export class SnapBatchingDepthRenderer extends VBOSceneModelRenderer{
158
158
 
159
159
  _buildVertexShader() {
160
160
  const scene = this._scene;
161
- const clipping = scene._sectionPlanesState.sectionPlanes.length > 0;
161
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
162
162
  const pointsMaterial = scene.pointsMaterial._state;
163
163
  const src = [];
164
164
  src.push ('#version 300 es');
@@ -245,7 +245,7 @@ export class SnapBatchingDepthRenderer extends VBOSceneModelRenderer{
245
245
  _buildFragmentShader() {
246
246
  const scene = this._scene;
247
247
  const sectionPlanesState = scene._sectionPlanesState;
248
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
248
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
249
249
  const src = [];
250
250
  src.push ('#version 300 es');
251
251
  src.push("// SnapBatchingDepthRenderer fragment shader");
@@ -266,7 +266,7 @@ export class SnapBatchingDepthRenderer extends VBOSceneModelRenderer{
266
266
  if (clipping) {
267
267
  src.push("in vec4 vWorldPosition;");
268
268
  src.push("in float vFlags;");
269
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
269
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
270
270
  src.push("uniform bool sectionPlaneActive" + i + ";");
271
271
  src.push("uniform vec3 sectionPlanePos" + i + ";");
272
272
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -279,7 +279,7 @@ export class SnapBatchingDepthRenderer extends VBOSceneModelRenderer{
279
279
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
280
280
  src.push(" if (clippable) {");
281
281
  src.push(" float dist = 0.0;");
282
- for (var i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
282
+ for (var i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
283
283
  src.push(" if (sectionPlaneActive" + i + ") {");
284
284
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
285
285
  src.push(" }");
@@ -176,7 +176,7 @@ class SnapInstancingDepthBufInitRenderer extends VBOSceneModelRenderer {
176
176
  _buildVertexShader() {
177
177
  const scene = this._scene;
178
178
  const sectionPlanesState = scene._sectionPlanesState;
179
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
179
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
180
180
  const src = [];
181
181
  src.push ('#version 300 es');
182
182
  src.push("// SnapInstancingDepthBufInitRenderer vertex shader");
@@ -266,7 +266,7 @@ class SnapInstancingDepthBufInitRenderer extends VBOSceneModelRenderer {
266
266
  _buildFragmentShader() {
267
267
  const scene = this._scene;
268
268
  const sectionPlanesState = scene._sectionPlanesState;
269
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
269
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
270
270
  const src = [];
271
271
  src.push ('#version 300 es');
272
272
  src.push("// Points instancing pick depth fragment shader");
@@ -288,7 +288,7 @@ class SnapInstancingDepthBufInitRenderer extends VBOSceneModelRenderer {
288
288
  src.push("flat in vec4 vPickColor;");
289
289
  if (clipping) {
290
290
  src.push("in float vFlags;");
291
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
291
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
292
292
  src.push("uniform bool sectionPlaneActive" + i + ";");
293
293
  src.push("uniform vec3 sectionPlanePos" + i + ";");
294
294
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -303,7 +303,7 @@ class SnapInstancingDepthBufInitRenderer extends VBOSceneModelRenderer {
303
303
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
304
304
  src.push(" if (clippable) {");
305
305
  src.push(" float dist = 0.0;");
306
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
306
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
307
307
  src.push("if (sectionPlaneActive" + i + ") {");
308
308
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
309
309
  src.push("}");
@@ -174,7 +174,7 @@ class SnapInstancingDepthRenderer extends VBOSceneModelRenderer {
174
174
  _buildVertexShader() {
175
175
  const scene = this._scene;
176
176
  const sectionPlanesState = scene._sectionPlanesState;
177
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
177
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
178
178
  const src = [];
179
179
  src.push ('#version 300 es');
180
180
  src.push("// SnapInstancingDepthRenderer vertex shader");
@@ -262,7 +262,7 @@ class SnapInstancingDepthRenderer extends VBOSceneModelRenderer {
262
262
  _buildFragmentShader() {
263
263
  const scene = this._scene;
264
264
  const sectionPlanesState = scene._sectionPlanesState;
265
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
265
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
266
266
  const src = [];
267
267
  src.push ('#version 300 es');
268
268
  src.push("// SnapInstancingDepthRenderer fragment shader");
@@ -283,7 +283,7 @@ class SnapInstancingDepthRenderer extends VBOSceneModelRenderer {
283
283
  if (clipping) {
284
284
  src.push("in vec4 vWorldPosition;");
285
285
  src.push("in float vFlags;");
286
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
286
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
287
287
  src.push("uniform bool sectionPlaneActive" + i + ";");
288
288
  src.push("uniform vec3 sectionPlanePos" + i + ";");
289
289
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -296,7 +296,7 @@ class SnapInstancingDepthRenderer extends VBOSceneModelRenderer {
296
296
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
297
297
  src.push(" if (clippable) {");
298
298
  src.push(" float dist = 0.0;");
299
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
299
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
300
300
  src.push("if (sectionPlaneActive" + i + ") {");
301
301
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
302
302
  src.push("}");
@@ -17,7 +17,7 @@ class TrianglesBatchingColorRenderer extends VBOSceneModelTriangleBatchingRender
17
17
  const scene = this._scene;
18
18
  const sectionPlanesState = scene._sectionPlanesState;
19
19
  const lightsState = scene._lightsState;
20
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
20
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
21
21
  let light;
22
22
  const src = [];
23
23
  src.push("#version 300 es");
@@ -156,7 +156,7 @@ class TrianglesBatchingColorRenderer extends VBOSceneModelTriangleBatchingRender
156
156
  _buildFragmentShader() {
157
157
  const scene = this._scene;
158
158
  const sectionPlanesState = scene._sectionPlanesState;
159
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
159
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
160
160
  const src = [];
161
161
  src.push("#version 300 es");
162
162
  src.push("// Triangles batching draw fragment shader");
@@ -189,7 +189,7 @@ class TrianglesBatchingColorRenderer extends VBOSceneModelTriangleBatchingRender
189
189
  if (clipping) {
190
190
  src.push("in vec4 vWorldPosition;");
191
191
  src.push("in float vFlags;");
192
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
192
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
193
193
  src.push("uniform bool sectionPlaneActive" + i + ";");
194
194
  src.push("uniform vec3 sectionPlanePos" + i + ";");
195
195
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -203,7 +203,7 @@ class TrianglesBatchingColorRenderer extends VBOSceneModelTriangleBatchingRender
203
203
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
204
204
  src.push(" if (clippable) {");
205
205
  src.push(" float dist = 0.0;");
206
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
206
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
207
207
  src.push("if (sectionPlaneActive" + i + ") {");
208
208
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
209
209
  src.push("}");
@@ -17,7 +17,7 @@ class TrianglesBatchingColorTextureRenderer extends VBOSceneModelTriangleBatchin
17
17
 
18
18
  const scene = this._scene;
19
19
  const sectionPlanesState = scene._sectionPlanesState;
20
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
20
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
21
21
  const src = [];
22
22
  src.push("#version 300 es");
23
23
  src.push("// Triangles batching color texture vertex shader");
@@ -94,7 +94,7 @@ class TrianglesBatchingColorTextureRenderer extends VBOSceneModelTriangleBatchin
94
94
  const gammaOutput = scene.gammaOutput; // If set, then it expects that all textures and colors need to be outputted in premultiplied gamma. Default is false.
95
95
  const lightsState = scene._lightsState;
96
96
  const sectionPlanesState = scene._sectionPlanesState;
97
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
97
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
98
98
  const src = [];
99
99
  src.push("#version 300 es");
100
100
  src.push("// Triangles batching color texture fragment shader");
@@ -144,7 +144,7 @@ class TrianglesBatchingColorTextureRenderer extends VBOSceneModelTriangleBatchin
144
144
  if (clipping) {
145
145
  src.push("in vec4 vWorldPosition;");
146
146
  src.push("in float vFlags;");
147
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
147
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
148
148
  src.push("uniform bool sectionPlaneActive" + i + ";");
149
149
  src.push("uniform vec3 sectionPlanePos" + i + ";");
150
150
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -181,7 +181,7 @@ class TrianglesBatchingColorTextureRenderer extends VBOSceneModelTriangleBatchin
181
181
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
182
182
  src.push(" if (clippable) {");
183
183
  src.push(" float dist = 0.0;");
184
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
184
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
185
185
  src.push("if (sectionPlaneActive" + i + ") {");
186
186
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
187
187
  src.push("}");
@@ -7,7 +7,7 @@ class TrianglesBatchingDepthRenderer extends VBOSceneModelTriangleBatchingRender
7
7
 
8
8
  _buildVertexShader() {
9
9
  const scene = this._scene;
10
- const clipping = scene._sectionPlanesState.sectionPlanes.length > 0;
10
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
11
11
  const src = [];
12
12
  src.push("#version 300 es");
13
13
  src.push("// Triangles batching depth vertex shader");
@@ -67,7 +67,7 @@ class TrianglesBatchingDepthRenderer extends VBOSceneModelTriangleBatchingRender
67
67
  _buildFragmentShader() {
68
68
  const scene = this._scene;
69
69
  const sectionPlanesState = scene._sectionPlanesState;
70
- const clipping = (sectionPlanesState.sectionPlanes.length > 0);
70
+ const clipping = (sectionPlanesState.getNumAllocatedSectionPlanes() > 0);
71
71
  const src = [];
72
72
  src.push("#version 300 es");
73
73
  src.push("// Triangles batching depth fragment shader");
@@ -82,7 +82,7 @@ class TrianglesBatchingDepthRenderer extends VBOSceneModelTriangleBatchingRender
82
82
  if (clipping) {
83
83
  src.push("in vec4 vWorldPosition;");
84
84
  src.push("in float vFlags;");
85
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
85
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
86
86
  src.push("uniform bool sectionPlaneActive" + i + ";");
87
87
  src.push("uniform vec3 sectionPlanePos" + i + ";");
88
88
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -106,7 +106,7 @@ class TrianglesBatchingDepthRenderer extends VBOSceneModelTriangleBatchingRender
106
106
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
107
107
  src.push(" if (clippable) {");
108
108
  src.push(" float dist = 0.0;");
109
- for (var i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
109
+ for (var i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
110
110
  src.push(" if (sectionPlaneActive" + i + ") {");
111
111
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
112
112
  src.push(" }");
@@ -8,7 +8,7 @@ class TrianglesBatchingEdgesColorRenderer extends VBOSceneModelTriangleBatchingE
8
8
  _buildVertexShader() {
9
9
  const scene = this._scene;
10
10
  const sectionPlanesState = scene._sectionPlanesState;
11
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
11
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
12
12
  const src = [];
13
13
  src.push("#version 300 es");
14
14
  src.push("// Batched geometry edges drawing vertex shader");
@@ -77,7 +77,7 @@ class TrianglesBatchingEdgesColorRenderer extends VBOSceneModelTriangleBatchingE
77
77
  _buildFragmentShader() {
78
78
  const scene = this._scene;
79
79
  const sectionPlanesState = scene._sectionPlanesState;
80
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
80
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
81
81
  const src = [];
82
82
  src.push("#version 300 es");
83
83
  src.push("// Batched geometry edges drawing fragment shader");
@@ -96,7 +96,7 @@ class TrianglesBatchingEdgesColorRenderer extends VBOSceneModelTriangleBatchingE
96
96
  if (clipping) {
97
97
  src.push("in vec4 vWorldPosition;");
98
98
  src.push("in float vFlags;");
99
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
99
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
100
100
  src.push("uniform bool sectionPlaneActive" + i + ";");
101
101
  src.push("uniform vec3 sectionPlanePos" + i + ";");
102
102
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -109,7 +109,7 @@ class TrianglesBatchingEdgesColorRenderer extends VBOSceneModelTriangleBatchingE
109
109
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
110
110
  src.push(" if (clippable) {");
111
111
  src.push(" float dist = 0.0;");
112
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
112
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
113
113
  src.push("if (sectionPlaneActive" + i + ") {");
114
114
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
115
115
  src.push("}");
@@ -12,7 +12,7 @@ class TrianglesBatchingEdgesRenderer extends VBOSceneModelTriangleBatchingEdgesR
12
12
  _buildVertexShader() {
13
13
  const scene = this._scene;
14
14
  const sectionPlanesState = scene._sectionPlanesState;
15
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
15
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
16
16
  const src = [];
17
17
 
18
18
  src.push("#version 300 es");
@@ -81,7 +81,7 @@ class TrianglesBatchingEdgesRenderer extends VBOSceneModelTriangleBatchingEdgesR
81
81
  _buildFragmentShader() {
82
82
  const scene = this._scene;
83
83
  const sectionPlanesState = scene._sectionPlanesState;
84
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
84
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
85
85
  const src = [];
86
86
  src.push("#version 300 es");
87
87
  src.push("// Batched geometry edges drawing fragment shader");
@@ -101,7 +101,7 @@ class TrianglesBatchingEdgesRenderer extends VBOSceneModelTriangleBatchingEdgesR
101
101
  if (clipping) {
102
102
  src.push("in vec4 vWorldPosition;");
103
103
  src.push("in float vFlags;");
104
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
104
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
105
105
  src.push("uniform bool sectionPlaneActive" + i + ";");
106
106
  src.push("uniform vec3 sectionPlanePos" + i + ";");
107
107
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -114,7 +114,7 @@ class TrianglesBatchingEdgesRenderer extends VBOSceneModelTriangleBatchingEdgesR
114
114
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
115
115
  src.push(" if (clippable) {");
116
116
  src.push(" float dist = 0.0;");
117
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
117
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
118
118
  src.push("if (sectionPlaneActive" + i + ") {");
119
119
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
120
120
  src.push("}");
@@ -12,7 +12,7 @@ class TrianglesBatchingFlatColorRenderer extends VBOSceneModelTriangleBatchingRe
12
12
  _buildVertexShader() {
13
13
  const scene = this._scene;
14
14
  const sectionPlanesState = scene._sectionPlanesState;
15
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
15
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
16
16
  const src = [];
17
17
  src.push("#version 300 es");
18
18
  src.push("// Triangles batching flat-shading draw vertex shader");
@@ -84,7 +84,7 @@ class TrianglesBatchingFlatColorRenderer extends VBOSceneModelTriangleBatchingRe
84
84
  const scene = this._scene;
85
85
  const lightsState = scene._lightsState;
86
86
  const sectionPlanesState = scene._sectionPlanesState;
87
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
87
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
88
88
  const src = [];
89
89
  src.push("#version 300 es");
90
90
  src.push("// Triangles batching flat-shading draw fragment shader");
@@ -120,7 +120,7 @@ class TrianglesBatchingFlatColorRenderer extends VBOSceneModelTriangleBatchingRe
120
120
  if (clipping) {
121
121
  src.push("in vec4 vWorldPosition;");
122
122
  src.push("in float vFlags;");
123
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
123
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
124
124
  src.push("uniform bool sectionPlaneActive" + i + ";");
125
125
  src.push("uniform vec3 sectionPlanePos" + i + ";");
126
126
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -158,7 +158,7 @@ class TrianglesBatchingFlatColorRenderer extends VBOSceneModelTriangleBatchingRe
158
158
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
159
159
  src.push(" if (clippable) {");
160
160
  src.push(" float dist = 0.0;");
161
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
161
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
162
162
  src.push("if (sectionPlaneActive" + i + ") {");
163
163
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
164
164
  src.push("}");
@@ -7,7 +7,7 @@ class TrianglesBatchingNormalsRenderer extends VBOSceneModelTriangleBatchingRend
7
7
 
8
8
  _buildVertexShader() {
9
9
  const scene = this._scene;
10
- const clipping = scene._sectionPlanesState.sectionPlanes.length > 0;
10
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
11
11
  const src = [];
12
12
  src.push("#version 300 es");
13
13
  src.push("// Batched geometry normals vertex shader");
@@ -78,7 +78,7 @@ class TrianglesBatchingNormalsRenderer extends VBOSceneModelTriangleBatchingRend
78
78
  _buildFragmentShader() {
79
79
  const scene = this._scene;
80
80
  const sectionPlanesState = scene._sectionPlanesState;
81
- const clipping = (sectionPlanesState.sectionPlanes.length > 0);
81
+ const clipping = (sectionPlanesState.getNumAllocatedSectionPlanes() > 0);
82
82
  const src = [];
83
83
  src.push("#version 300 es");
84
84
  src.push("// Batched geometry normals fragment shader");
@@ -102,7 +102,7 @@ class TrianglesBatchingNormalsRenderer extends VBOSceneModelTriangleBatchingRend
102
102
  if (clipping) {
103
103
  src.push("in vec4 vWorldPosition;");
104
104
  src.push("in float vFlags;");
105
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
105
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
106
106
  src.push("uniform bool sectionPlaneActive" + i + ";");
107
107
  src.push("uniform vec3 sectionPlanePos" + i + ";");
108
108
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -119,7 +119,7 @@ class TrianglesBatchingNormalsRenderer extends VBOSceneModelTriangleBatchingRend
119
119
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
120
120
  src.push(" if (clippable) {");
121
121
  src.push(" float dist = 0.0;");
122
- for (var i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
122
+ for (var i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
123
123
  src.push(" if (sectionPlaneActive" + i + ") {");
124
124
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
125
125
  src.push(" }");
@@ -13,7 +13,7 @@ class TrianglesBatchingOcclusionRenderer extends VBOSceneModelTriangleBatchingRe
13
13
 
14
14
  _buildVertexShader() {
15
15
  const scene = this._scene;
16
- const clipping = scene._sectionPlanesState.sectionPlanes.length > 0;
16
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
17
17
  const src = [];
18
18
  src.push("#version 300 es");
19
19
  src.push("// Triangles batching occlusion vertex shader");
@@ -75,7 +75,7 @@ class TrianglesBatchingOcclusionRenderer extends VBOSceneModelTriangleBatchingRe
75
75
  _buildFragmentShader() {
76
76
  const scene = this._scene;
77
77
  const sectionPlanesState = scene._sectionPlanesState;
78
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
78
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
79
79
  const src = [];
80
80
  src.push("#version 300 es");
81
81
  src.push("// Triangles batching occlusion fragment shader");
@@ -95,7 +95,7 @@ class TrianglesBatchingOcclusionRenderer extends VBOSceneModelTriangleBatchingRe
95
95
  if (clipping) {
96
96
  src.push("in vec4 vWorldPosition;");
97
97
  src.push("in float vFlags;");
98
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
98
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
99
99
  src.push("uniform bool sectionPlaneActive" + i + ";");
100
100
  src.push("uniform vec3 sectionPlanePos" + i + ";");
101
101
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -107,7 +107,7 @@ class TrianglesBatchingOcclusionRenderer extends VBOSceneModelTriangleBatchingRe
107
107
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
108
108
  src.push(" if (clippable) {");
109
109
  src.push(" float dist = 0.0;");
110
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
110
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
111
111
  src.push(" if (sectionPlaneActive" + i + ") {");
112
112
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
113
113
  src.push(" }");
@@ -22,7 +22,7 @@ class TrianglesBatchingPBRRenderer extends VBOSceneModelTriangleBatchingRenderer
22
22
  const scene = this._scene;
23
23
  const sectionPlanesState = scene._sectionPlanesState;
24
24
  const lightsState = scene._lightsState;
25
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
25
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
26
26
  const clippingCaps = sectionPlanesState.clippingCaps;
27
27
 
28
28
  const src = [];
@@ -152,7 +152,7 @@ class TrianglesBatchingPBRRenderer extends VBOSceneModelTriangleBatchingRenderer
152
152
  const gammaOutput = scene.gammaOutput; // If set, then it expects that all textures and colors need to be outputted in premultiplied gamma. Default is false.
153
153
  const sectionPlanesState = scene._sectionPlanesState;
154
154
  const lightsState = scene._lightsState;
155
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
155
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
156
156
  const clippingCaps = sectionPlanesState.clippingCaps;
157
157
  const src = [];
158
158
 
@@ -256,7 +256,7 @@ class TrianglesBatchingPBRRenderer extends VBOSceneModelTriangleBatchingRenderer
256
256
  if (clippingCaps) {
257
257
  src.push("in vec4 vClipPosition;");
258
258
  }
259
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
259
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
260
260
  src.push("uniform bool sectionPlaneActive" + i + ";");
261
261
  src.push("uniform vec3 sectionPlanePos" + i + ";");
262
262
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -429,7 +429,7 @@ class TrianglesBatchingPBRRenderer extends VBOSceneModelTriangleBatchingRenderer
429
429
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
430
430
  src.push(" if (clippable) {");
431
431
  src.push(" float dist = 0.0;");
432
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
432
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
433
433
  src.push("if (sectionPlaneActive" + i + ") {");
434
434
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
435
435
  src.push("}");