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

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 +750 -598
  2. package/dist/xeokit-sdk.es.js +750 -598
  3. package/dist/xeokit-sdk.es5.js +227 -198
  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 +22 -21
  25. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureEdgesColorRenderer.js +7 -10
  26. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureEdgesRenderer.js +22 -19
  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 +59 -55
  31. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickNormalsFlatRenderer.js +22 -20
  32. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickNormalsRenderer.js +22 -18
  33. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSilhouetteRenderer.js +22 -19
  34. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthBufInitRenderer.js +22 -19
  35. package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthRenderer.js +22 -19
  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 +57 -11
  90. package/src/viewer/scene/sectionPlane/SectionPlaneCache.js +101 -0
@@ -122,25 +122,30 @@ export class TrianglesDataTextureSnapDepthRenderer {
122
122
  const logDepthBufFC = 2.0 / (Math.log(frameCtx.pickZFar + 1.0) / Math.LN2);
123
123
  gl.uniform1f(this._uLogDepthBufFC, logDepthBufFC);
124
124
  }
125
+ const numAllocatedSectionPlanes = scene._sectionPlanesState.getNumAllocatedSectionPlanes();
125
126
  const numSectionPlanes = scene._sectionPlanesState.sectionPlanes.length;
126
- if (numSectionPlanes > 0) {
127
+ if (numAllocatedSectionPlanes > 0) {
127
128
  const sectionPlanes = scene._sectionPlanesState.sectionPlanes;
128
129
  const baseIndex = dataTextureLayer.layerIndex * numSectionPlanes;
129
130
  const renderFlags = model.renderFlags;
130
- for (let sectionPlaneIndex = 0; sectionPlaneIndex < numSectionPlanes; sectionPlaneIndex++) {
131
+ for (let sectionPlaneIndex = 0; sectionPlaneIndex < numAllocatedSectionPlanes; sectionPlaneIndex++) {
131
132
  const sectionPlaneUniforms = this._uSectionPlanes[sectionPlaneIndex];
132
133
  if (sectionPlaneUniforms) {
133
- const active = renderFlags.sectionPlanesActivePerLayer[baseIndex + sectionPlaneIndex];
134
- gl.uniform1i(sectionPlaneUniforms.active, active ? 1 : 0);
135
- if (active) {
136
- const sectionPlane = sectionPlanes[sectionPlaneIndex];
137
- if (origin) {
138
- const rtcSectionPlanePos = getPlaneRTCPos(sectionPlane.dist, sectionPlane.dir, origin, tempVec3e);
139
- gl.uniform3fv(sectionPlaneUniforms.pos, rtcSectionPlanePos);
140
- } else {
141
- gl.uniform3fv(sectionPlaneUniforms.pos, sectionPlane.pos);
134
+ if (sectionPlaneIndex < numSectionPlanes) {
135
+ const active = renderFlags.sectionPlanesActivePerLayer[baseIndex + sectionPlaneIndex];
136
+ gl.uniform1i(sectionPlaneUniforms.active, active ? 1 : 0);
137
+ if (active) {
138
+ const sectionPlane = sectionPlanes[sectionPlaneIndex];
139
+ if (origin) {
140
+ const rtcSectionPlanePos = getPlaneRTCPos(sectionPlane.dist, sectionPlane.dir, origin, tempVec3a);
141
+ gl.uniform3fv(sectionPlaneUniforms.pos, rtcSectionPlanePos);
142
+ } else {
143
+ gl.uniform3fv(sectionPlaneUniforms.pos, sectionPlane.pos);
144
+ }
145
+ gl.uniform3fv(sectionPlaneUniforms.dir, sectionPlane.dir);
142
146
  }
143
- gl.uniform3fv(sectionPlaneUniforms.dir, sectionPlane.dir);
147
+ } else {
148
+ gl.uniform1i(sectionPlaneUniforms.active, 0);
144
149
  }
145
150
  }
146
151
  }
@@ -191,7 +196,7 @@ export class TrianglesDataTextureSnapDepthRenderer {
191
196
  this._uViewMatrix = program.getLocation("viewMatrix");
192
197
  this._uProjMatrix = program.getLocation("projMatrix");
193
198
  this._uSectionPlanes = [];
194
- for (let i = 0, len = scene._sectionPlanesState.sectionPlanes.length; i < len; i++) {
199
+ for (let i = 0, len = scene.getMaxSectionPlanes(); i < len; i++) {
195
200
  this._uSectionPlanes.push({
196
201
  active: program.getLocation("sectionPlaneActive" + i),
197
202
  pos: program.getLocation("sectionPlanePos" + i),
@@ -228,8 +233,7 @@ export class TrianglesDataTextureSnapDepthRenderer {
228
233
 
229
234
  _buildVertexShader() {
230
235
  const scene = this._scene;
231
- const sectionPlanesState = scene._sectionPlanesState;
232
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
236
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
233
237
  const src = [];
234
238
  src.push("#version 300 es");
235
239
  src.push("// Batched geometry edges drawing vertex shader");
@@ -360,8 +364,7 @@ export class TrianglesDataTextureSnapDepthRenderer {
360
364
  _buildFragmentShader() {
361
365
 
362
366
  const scene = this._scene;
363
- const sectionPlanesState = scene._sectionPlanesState;
364
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
367
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
365
368
  const src = [];
366
369
  src.push('#version 300 es');
367
370
  src.push("// Triangles dataTexture pick depth fragment shader");
@@ -382,7 +385,7 @@ export class TrianglesDataTextureSnapDepthRenderer {
382
385
  if (clipping) {
383
386
  src.push("in vec4 vWorldPosition;");
384
387
  src.push("flat in uint vFlags2;");
385
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
388
+ for (let i = 0, len = scene._sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
386
389
  src.push("uniform bool sectionPlaneActive" + i + ";");
387
390
  src.push("uniform vec3 sectionPlanePos" + i + ";");
388
391
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -395,7 +398,7 @@ export class TrianglesDataTextureSnapDepthRenderer {
395
398
  src.push(" bool clippable = vFlags2 > 0u;");
396
399
  src.push(" if (clippable) {");
397
400
  src.push(" float dist = 0.0;");
398
- for (var i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
401
+ for (var i = 0; i < scene._sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
399
402
  src.push(" if (sectionPlaneActive" + i + ") {");
400
403
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
401
404
  src.push(" }");
@@ -111,32 +111,38 @@ class VBOSceneModelRenderer {
111
111
  const {gl} = scene.canvas;
112
112
  const {model, layerIndex} = layer;
113
113
 
114
+ const numAllocatedSectionPlanes = scene._sectionPlanesState.getNumAllocatedSectionPlanes();
114
115
  const numSectionPlanes = scene._sectionPlanesState.sectionPlanes.length;
115
- if (numSectionPlanes > 0) {
116
+ if (numAllocatedSectionPlanes > 0) {
116
117
  const sectionPlanes = scene._sectionPlanesState.sectionPlanes;
117
118
  const baseIndex = layerIndex * numSectionPlanes;
118
119
  const renderFlags = model.renderFlags;
119
- for (let sectionPlaneIndex = 0; sectionPlaneIndex < numSectionPlanes; sectionPlaneIndex++) {
120
+ for (let sectionPlaneIndex = 0; sectionPlaneIndex < numAllocatedSectionPlanes; sectionPlaneIndex++) {
120
121
  const sectionPlaneUniforms = this._uSectionPlanes[sectionPlaneIndex];
121
122
  if (sectionPlaneUniforms) {
122
- const active = renderFlags.sectionPlanesActivePerLayer[baseIndex + sectionPlaneIndex];
123
- gl.uniform1i(sectionPlaneUniforms.active, active ? 1 : 0);
124
- if (active) {
125
- const sectionPlane = sectionPlanes[sectionPlaneIndex];
126
- const origin = layer._state.origin;
127
- if (origin) {
128
- const rtcSectionPlanePos = getPlaneRTCPos(sectionPlane.dist, sectionPlane.dir, origin, tempVec3a);
129
- gl.uniform3fv(sectionPlaneUniforms.pos, rtcSectionPlanePos);
130
- } else {
131
- gl.uniform3fv(sectionPlaneUniforms.pos, sectionPlane.pos);
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);
132
136
  }
133
- gl.uniform3fv(sectionPlaneUniforms.dir, sectionPlane.dir);
137
+ } else {
138
+ gl.uniform1i(sectionPlaneUniforms.active, 0);
134
139
  }
135
140
  }
136
141
  }
137
142
  }
138
143
  }
139
144
 
145
+
140
146
  _allocate() {
141
147
  const scene = this._scene;
142
148
  const gl = scene.canvas.gl;
@@ -217,7 +223,7 @@ class VBOSceneModelRenderer {
217
223
 
218
224
  this._uSectionPlanes = [];
219
225
 
220
- for (let i = 0, len = scene._sectionPlanesState.sectionPlanes.length; i < len; i++) {
226
+ for (let i = 0, len = scene._sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
221
227
  this._uSectionPlanes.push({
222
228
  active: program.getLocation("sectionPlaneActive" + i),
223
229
  pos: program.getLocation("sectionPlanePos" + i),
@@ -683,12 +689,11 @@ class VBOSceneModelTriangleBatchingEdgesRenderer extends VBOSceneModelTriangleBa
683
689
  }
684
690
 
685
691
 
686
-
687
692
  /**
688
693
  * @private
689
694
  */
690
695
  class VBOSceneModelTriangleInstancingRenderer extends VBOSceneModelRenderer {
691
- constructor(scene, withSAO, { edges = false} = {}) {
696
+ constructor(scene, withSAO, {edges = false} = {}) {
692
697
  super(scene, withSAO, {instancing: true, edges});
693
698
  }
694
699
 
@@ -12,7 +12,7 @@ class LinesBatchingColorRenderer extends VBOSceneModelLineBatchingRenderer {
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("// Lines batching color vertex shader");
@@ -65,7 +65,7 @@ class LinesBatchingColorRenderer extends VBOSceneModelLineBatchingRenderer {
65
65
  _buildFragmentShader() {
66
66
  const scene = this._scene;
67
67
  const sectionPlanesState = scene._sectionPlanesState;
68
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
68
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
69
69
  const src = [];
70
70
  src.push('#version 300 es');
71
71
  src.push("// Lines batching color fragment shader");
@@ -83,7 +83,7 @@ class LinesBatchingColorRenderer extends VBOSceneModelLineBatchingRenderer {
83
83
  if (clipping) {
84
84
  src.push("in vec4 vWorldPosition;");
85
85
  src.push("in float vFlags;");
86
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
86
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
87
87
  src.push("uniform bool sectionPlaneActive" + i + ";");
88
88
  src.push("uniform vec3 sectionPlanePos" + i + ";");
89
89
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -96,7 +96,7 @@ class LinesBatchingColorRenderer extends VBOSceneModelLineBatchingRenderer {
96
96
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
97
97
  src.push(" if (clippable) {");
98
98
  src.push(" float dist = 0.0;");
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("if (sectionPlaneActive" + i + ") {");
101
101
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
102
102
  src.push("}");
@@ -13,7 +13,7 @@ class LinesBatchingSilhouetteRenderer extends VBOSceneModelLineBatchingRenderer
13
13
 
14
14
  const scene = this._scene;
15
15
  const sectionPlanesState = scene._sectionPlanesState;
16
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
16
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
17
17
 
18
18
  const src = [];
19
19
  src.push('#version 300 es');
@@ -74,7 +74,7 @@ class LinesBatchingSilhouetteRenderer extends VBOSceneModelLineBatchingRenderer
74
74
 
75
75
  const scene = this._scene;
76
76
  const sectionPlanesState = scene._sectionPlanesState;
77
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
77
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
78
78
  const src = [];
79
79
  src.push('#version 300 es');
80
80
  src.push("// Lines batching silhouette fragment shader");
@@ -93,7 +93,7 @@ class LinesBatchingSilhouetteRenderer extends VBOSceneModelLineBatchingRenderer
93
93
  if (clipping) {
94
94
  src.push("in vec4 vWorldPosition;");
95
95
  src.push("in float vFlags;");
96
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
96
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
97
97
  src.push("uniform bool sectionPlaneActive" + i + ";");
98
98
  src.push("uniform vec3 sectionPlanePos" + i + ";");
99
99
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -106,7 +106,7 @@ class LinesBatchingSilhouetteRenderer extends VBOSceneModelLineBatchingRenderer
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 (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
109
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; 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("}");
@@ -12,7 +12,7 @@ class LinesInstancingColorRenderer extends VBOSceneModelLineInstancingRenderer {
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("// Lines instancing color vertex shader");
@@ -85,7 +85,7 @@ class LinesInstancingColorRenderer extends VBOSceneModelLineInstancingRenderer {
85
85
  const sectionPlanesState = scene._sectionPlanesState;
86
86
  let i;
87
87
  let len;
88
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
88
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
89
89
  const src = [];
90
90
  src.push('#version 300 es');
91
91
  src.push("// Lines instancing color fragment shader");
@@ -103,7 +103,7 @@ class LinesInstancingColorRenderer extends VBOSceneModelLineInstancingRenderer {
103
103
  if (clipping) {
104
104
  src.push("in vec4 vWorldPosition;");
105
105
  src.push("in float vFlags;");
106
- for (i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
106
+ for (i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
107
107
  src.push("uniform bool sectionPlaneActive" + i + ";");
108
108
  src.push("uniform vec3 sectionPlanePos" + i + ";");
109
109
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -116,7 +116,7 @@ class LinesInstancingColorRenderer extends VBOSceneModelLineInstancingRenderer {
116
116
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
117
117
  src.push(" if (clippable) {");
118
118
  src.push(" float dist = 0.0;");
119
- for (i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
119
+ for (i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
120
120
  src.push("if (sectionPlaneActive" + i + ") {");
121
121
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
122
122
  src.push("}");
@@ -12,7 +12,7 @@ class LinesInstancingSilhouetteRenderer extends VBOSceneModelLineInstancingRende
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("// Lines instancing silhouette vertex shader");
@@ -77,7 +77,7 @@ class LinesInstancingSilhouetteRenderer extends VBOSceneModelLineInstancingRende
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("// Lines instancing silhouette fragment shader");
@@ -95,7 +95,7 @@ class LinesInstancingSilhouetteRenderer extends VBOSceneModelLineInstancingRende
95
95
  if (clipping) {
96
96
  src.push("in vec4 vWorldPosition;");
97
97
  src.push("in float vFlags;");
98
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
98
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; 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 + ";");
@@ -108,7 +108,7 @@ class LinesInstancingSilhouetteRenderer extends VBOSceneModelLineInstancingRende
108
108
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
109
109
  src.push(" if (clippable) {");
110
110
  src.push(" float dist = 0.0;");
111
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
111
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
112
112
  src.push("if (sectionPlaneActive" + i + ") {");
113
113
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
114
114
  src.push("}");
@@ -16,7 +16,7 @@ class PointsBatchingColorRenderer extends VBOSceneModelPointBatchingRenderer {
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;
21
21
  const src = [];
22
22
  src.push('#version 300 es');
@@ -109,7 +109,7 @@ class PointsBatchingColorRenderer extends VBOSceneModelPointBatchingRenderer {
109
109
 
110
110
  const scene = this._scene;
111
111
  const sectionPlanesState = scene._sectionPlanesState;
112
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
112
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
113
113
  const src = [];
114
114
  src.push('#version 300 es');
115
115
  src.push("// Points batching color fragment shader");
@@ -128,7 +128,7 @@ class PointsBatchingColorRenderer extends VBOSceneModelPointBatchingRenderer {
128
128
  if (clipping) {
129
129
  src.push("in vec4 vWorldPosition;");
130
130
  src.push("in float vFlags;");
131
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
131
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
132
132
  src.push("uniform bool sectionPlaneActive" + i + ";");
133
133
  src.push("uniform vec3 sectionPlanePos" + i + ";");
134
134
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -148,7 +148,7 @@ class PointsBatchingColorRenderer extends VBOSceneModelPointBatchingRenderer {
148
148
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
149
149
  src.push(" if (clippable) {");
150
150
  src.push(" float dist = 0.0;");
151
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
151
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
152
152
  src.push("if (sectionPlaneActive" + i + ") {");
153
153
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
154
154
  src.push("}");
@@ -10,7 +10,7 @@ class PointsBatchingOcclusionRenderer extends VBOSceneModelPointBatchingRenderer
10
10
 
11
11
  _buildVertexShader() {
12
12
  const scene = this._scene;
13
- const clipping = scene._sectionPlanesState.sectionPlanes.length > 0;
13
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
14
14
  const pointsMaterial = scene.pointsMaterial._state;
15
15
  const src = [];
16
16
  src.push ('#version 300 es');
@@ -78,7 +78,7 @@ class PointsBatchingOcclusionRenderer extends VBOSceneModelPointBatchingRenderer
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("// Points batching occlusion fragment shader");
@@ -96,7 +96,7 @@ class PointsBatchingOcclusionRenderer extends VBOSceneModelPointBatchingRenderer
96
96
  if (clipping) {
97
97
  src.push("in vec4 vWorldPosition;");
98
98
  src.push("in float vFlags;");
99
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
99
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); 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 + ";");
@@ -115,7 +115,7 @@ class PointsBatchingOcclusionRenderer extends VBOSceneModelPointBatchingRenderer
115
115
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
116
116
  src.push(" if (clippable) {");
117
117
  src.push(" float dist = 0.0;");
118
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
118
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
119
119
  src.push(" if (sectionPlaneActive" + i + ") {");
120
120
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
121
121
  src.push(" }");
@@ -10,7 +10,7 @@ class PointsBatchingPickDepthRenderer extends VBOSceneModelPointBatchingRenderer
10
10
 
11
11
  _buildVertexShader() {
12
12
  const scene = this._scene;
13
- const clipping = scene._sectionPlanesState.sectionPlanes.length > 0;
13
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
14
14
  const pointsMaterial = scene.pointsMaterial._state;
15
15
  const src = [];
16
16
  src.push ('#version 300 es');
@@ -84,7 +84,7 @@ class PointsBatchingPickDepthRenderer extends VBOSceneModelPointBatchingRenderer
84
84
  _buildFragmentShader() {
85
85
  const scene = this._scene;
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("// Points batched pick depth fragment shader");
@@ -108,7 +108,7 @@ class PointsBatchingPickDepthRenderer extends VBOSceneModelPointBatchingRenderer
108
108
  if (clipping) {
109
109
  src.push("in vec4 vWorldPosition;");
110
110
  src.push("in float vFlags;");
111
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
111
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
112
112
  src.push("uniform bool sectionPlaneActive" + i + ";");
113
113
  src.push("uniform vec3 sectionPlanePos" + i + ";");
114
114
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -135,7 +135,7 @@ class PointsBatchingPickDepthRenderer extends VBOSceneModelPointBatchingRenderer
135
135
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
136
136
  src.push(" if (clippable) {");
137
137
  src.push(" float dist = 0.0;");
138
- for (var i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
138
+ for (var i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
139
139
  src.push(" if (sectionPlaneActive" + i + ") {");
140
140
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
141
141
  src.push(" }");
@@ -11,7 +11,7 @@ class PointsBatchingPickMeshRenderer extends VBOSceneModelPointBatchingRenderer
11
11
  _buildVertexShader() {
12
12
 
13
13
  const scene = this._scene;
14
- const clipping = scene._sectionPlanesState.sectionPlanes.length > 0;
14
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
15
15
  const pointsMaterial = scene.pointsMaterial._state;
16
16
  const src = [];
17
17
  src.push ('#version 300 es');
@@ -90,7 +90,7 @@ class PointsBatchingPickMeshRenderer extends VBOSceneModelPointBatchingRenderer
90
90
  _buildFragmentShader() {
91
91
  const scene = this._scene;
92
92
  const sectionPlanesState = scene._sectionPlanesState;
93
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
93
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
94
94
  const src = [];
95
95
  src.push ('#version 300 es');
96
96
  src.push("// Points batching pick mesh vertex shader");
@@ -108,7 +108,7 @@ class PointsBatchingPickMeshRenderer extends VBOSceneModelPointBatchingRenderer
108
108
  if (clipping) {
109
109
  src.push("in vec4 vWorldPosition;");
110
110
  src.push("in float vFlags;");
111
- for (var i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
111
+ for (var i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
112
112
  src.push("uniform bool sectionPlaneActive" + i + ";");
113
113
  src.push("uniform vec3 sectionPlanePos" + i + ";");
114
114
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -128,7 +128,7 @@ class PointsBatchingPickMeshRenderer extends VBOSceneModelPointBatchingRenderer
128
128
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
129
129
  src.push(" if (clippable) {");
130
130
  src.push(" float dist = 0.0;");
131
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
131
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
132
132
  src.push(" if (sectionPlaneActive" + i + ") {");
133
133
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
134
134
  src.push(" }");
@@ -9,7 +9,7 @@ class PointsBatchingShadowRenderer extends VBOSceneModelPointBatchingRenderer {
9
9
 
10
10
  _buildVertexShader() {
11
11
  const scene = this._scene;
12
- const clipping = scene._sectionPlanesState.sectionPlanes.length > 0;
12
+ const clipping = scene._sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
13
13
  const src = [];
14
14
  src.push ('#version 300 es');
15
15
  src.push("// Batched geometry shadow vertex shader");
@@ -56,7 +56,7 @@ class PointsBatchingShadowRenderer extends VBOSceneModelPointBatchingRenderer {
56
56
  _buildFragmentShader() {
57
57
  const scene = this._scene;
58
58
  const sectionPlanesState = scene._sectionPlanesState;
59
- const clipping = (sectionPlanesState.sectionPlanes.length > 0);
59
+ const clipping = (sectionPlanesState.getNumAllocatedSectionPlanes() > 0);
60
60
  const src = [];
61
61
  src.push ('#version 300 es');
62
62
  src.push("// Batched geometry shadow fragment shader");
@@ -70,7 +70,7 @@ class PointsBatchingShadowRenderer extends VBOSceneModelPointBatchingRenderer {
70
70
  if (clipping) {
71
71
  src.push("in vec4 vWorldPosition;");
72
72
  src.push("in float vFlags;");
73
- for (let i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
73
+ for (let i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
74
74
  src.push("uniform bool sectionPlaneActive" + i + ";");
75
75
  src.push("uniform vec3 sectionPlanePos" + i + ";");
76
76
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -91,7 +91,7 @@ class PointsBatchingShadowRenderer extends VBOSceneModelPointBatchingRenderer {
91
91
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
92
92
  src.push(" if (clippable) {");
93
93
  src.push(" float dist = 0.0;");
94
- for (var i = 0; i < sectionPlanesState.sectionPlanes.length; i++) {
94
+ for (var i = 0; i < sectionPlanesState.getNumAllocatedSectionPlanes(); i++) {
95
95
  src.push(" if (sectionPlaneActive" + i + ") {");
96
96
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
97
97
  src.push(" }");
@@ -16,7 +16,7 @@ class PointsBatchingSilhouetteRenderer extends VBOSceneModelPointBatchingRendere
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');
@@ -89,7 +89,7 @@ class PointsBatchingSilhouetteRenderer extends VBOSceneModelPointBatchingRendere
89
89
  const sectionPlanesState = scene._sectionPlanesState;
90
90
  let i;
91
91
  let len;
92
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
92
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
93
93
  const src = [];
94
94
  src.push ('#version 300 es');
95
95
  src.push("// Points batching silhouette vertex shader");
@@ -107,7 +107,7 @@ class PointsBatchingSilhouetteRenderer extends VBOSceneModelPointBatchingRendere
107
107
  if (clipping) {
108
108
  src.push("in vec4 vWorldPosition;");
109
109
  src.push("in float vFlags;");
110
- for (i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
110
+ for (i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
111
111
  src.push("uniform bool sectionPlaneActive" + i + ";");
112
112
  src.push("uniform vec3 sectionPlanePos" + i + ";");
113
113
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -127,7 +127,7 @@ class PointsBatchingSilhouetteRenderer extends VBOSceneModelPointBatchingRendere
127
127
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
128
128
  src.push(" if (clippable) {");
129
129
  src.push(" float dist = 0.0;");
130
- for (i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
130
+ for (i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
131
131
  src.push("if (sectionPlaneActive" + i + ") {");
132
132
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
133
133
  src.push("}");
@@ -15,7 +15,7 @@ class PointsInstancingColorRenderer extends VBOSceneModelPointInstancingRenderer
15
15
  _buildVertexShader() {
16
16
  const scene = this._scene;
17
17
  const sectionPlanesState = scene._sectionPlanesState;
18
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
18
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
19
19
  const pointsMaterial = scene.pointsMaterial._state;
20
20
  const src = [];
21
21
  src.push('#version 300 es');
@@ -115,7 +115,7 @@ class PointsInstancingColorRenderer extends VBOSceneModelPointInstancingRenderer
115
115
  _buildFragmentShader() {
116
116
  const scene = this._scene;
117
117
  const sectionPlanesState = scene._sectionPlanesState;
118
- const clipping = sectionPlanesState.sectionPlanes.length > 0;
118
+ const clipping = sectionPlanesState.getNumAllocatedSectionPlanes() > 0;
119
119
  const src = [];
120
120
  src.push('#version 300 es');
121
121
  src.push("// Points instancing color fragment shader");
@@ -134,7 +134,7 @@ class PointsInstancingColorRenderer extends VBOSceneModelPointInstancingRenderer
134
134
  if (clipping) {
135
135
  src.push("in vec4 vWorldPosition;");
136
136
  src.push("in float vFlags;");
137
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
137
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
138
138
  src.push("uniform bool sectionPlaneActive" + i + ";");
139
139
  src.push("uniform vec3 sectionPlanePos" + i + ";");
140
140
  src.push("uniform vec3 sectionPlaneDir" + i + ";");
@@ -154,7 +154,7 @@ class PointsInstancingColorRenderer extends VBOSceneModelPointInstancingRenderer
154
154
  src.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;");
155
155
  src.push(" if (clippable) {");
156
156
  src.push(" float dist = 0.0;");
157
- for (let i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
157
+ for (let i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; i++) {
158
158
  src.push("if (sectionPlaneActive" + i + ") {");
159
159
  src.push(" dist += clamp(dot(-sectionPlaneDir" + i + ".xyz, vWorldPosition.xyz - sectionPlanePos" + i + ".xyz), 0.0, 1000.0);");
160
160
  src.push("}");
@@ -11,7 +11,7 @@ class PointsInstancingDepthRenderer extends VBOSceneModelPointInstancingRenderer
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');
@@ -84,7 +84,7 @@ class PointsInstancingDepthRenderer extends VBOSceneModelPointInstancingRenderer
84
84
  const sectionPlanesState = scene._sectionPlanesState;
85
85
  let i;
86
86
  let len;
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("// Points instancing depth vertex shader");
@@ -102,7 +102,7 @@ class PointsInstancingDepthRenderer extends VBOSceneModelPointInstancingRenderer
102
102
  if (clipping) {
103
103
  src.push("in vec4 vWorldPosition;");
104
104
  src.push("in float vFlags;");
105
- for (i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
105
+ for (i = 0, len = sectionPlanesState.getNumAllocatedSectionPlanes(); i < len; 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 + ";");
@@ -136,7 +136,7 @@ class PointsInstancingDepthRenderer extends VBOSceneModelPointInstancingRenderer
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 (i = 0, len = sectionPlanesState.sectionPlanes.length; i < len; i++) {
139
+ for (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("}");