@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.
- package/dist/xeokit-sdk.cjs.js +750 -598
- package/dist/xeokit-sdk.es.js +750 -598
- package/dist/xeokit-sdk.es5.js +227 -198
- package/dist/xeokit-sdk.min.cjs.js +4 -4
- package/dist/xeokit-sdk.min.es.js +4 -4
- package/dist/xeokit-sdk.min.es5.js +3 -3
- package/package.json +1 -1
- package/src/viewer/Viewer.js +7 -1
- package/src/viewer/scene/mesh/draw/DrawRenderer.js +18 -8
- package/src/viewer/scene/mesh/draw/DrawShaderSource.js +8 -8
- package/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +19 -9
- package/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +3 -3
- package/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +19 -9
- package/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +3 -3
- package/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +18 -8
- package/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +3 -3
- package/src/viewer/scene/mesh/pick/PickMeshRenderer.js +18 -8
- package/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +3 -3
- package/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +18 -8
- package/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +3 -3
- package/src/viewer/scene/mesh/shadow/ShadowRenderer.js +1 -1
- package/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +3 -3
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureColorRenderer.js +22 -17
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureDepthRenderer.js +22 -21
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureEdgesColorRenderer.js +7 -10
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureEdgesRenderer.js +22 -19
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureNormalsRenderer.js +22 -18
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureOcclusionRenderer.js +22 -17
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickDepthRenderer.js +22 -18
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickMeshRenderer.js +59 -55
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickNormalsFlatRenderer.js +22 -20
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickNormalsRenderer.js +22 -18
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSilhouetteRenderer.js +22 -19
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthBufInitRenderer.js +22 -19
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthRenderer.js +22 -19
- package/src/viewer/scene/model/vbo/VBOSceneModelRenderers.js +21 -16
- package/src/viewer/scene/model/vbo/linesBatching/renderers/LinesBatchingColorRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/linesInstancing/renderers/LinesInstancingColorRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingColorRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingShadowRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingColorRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingDepthRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingOcclusionRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingPickDepthRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingPickMeshRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingShadowRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingSilhouetteRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/snapBatching/SnapBatchingDepthBufInitRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/snapBatching/SnapBatchingDepthRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/snapInstancing/SnapInstancingDepthBufInitRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/snapInstancing/SnapInstancingDepthRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingColorRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingColorTextureRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingDepthRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingEdgesColorRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingEdgesRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingFlatColorRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingNormalsRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingOcclusionRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPBRRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickDepthRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickMeshRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickNormalsFlatRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickNormalsRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingShadowRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingSilhouetteRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingColorRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingColorTextureRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingDepthRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingEdgesColorRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingEdgesRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingFlatColorRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingFlatNormalsRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingNormalsRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingOcclusionRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPBRRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickDepthRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickMeshRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickNormalsFlatRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickNormalsRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingShadowRenderer.js +4 -4
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingSilhouetteRenderer.js +4 -4
- package/src/viewer/scene/scene/Scene.js +57 -11
- package/src/viewer/scene/sectionPlane/SectionPlaneCache.js +101 -0
package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthRenderer.js
CHANGED
|
@@ -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 (
|
|
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 <
|
|
131
|
+
for (let sectionPlaneIndex = 0; sectionPlaneIndex < numAllocatedSectionPlanes; sectionPlaneIndex++) {
|
|
131
132
|
const sectionPlaneUniforms = this._uSectionPlanes[sectionPlaneIndex];
|
|
132
133
|
if (sectionPlaneUniforms) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
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
|
|
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 =
|
|
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 <
|
|
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 (
|
|
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 <
|
|
120
|
+
for (let sectionPlaneIndex = 0; sectionPlaneIndex < numAllocatedSectionPlanes; sectionPlaneIndex++) {
|
|
120
121
|
const sectionPlaneUniforms = this._uSectionPlanes[sectionPlaneIndex];
|
|
121
122
|
if (sectionPlaneUniforms) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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
|
-
|
|
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.
|
|
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, {
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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("}");
|
package/src/viewer/scene/model/vbo/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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("}");
|
package/src/viewer/scene/model/vbo/linesInstancing/renderers/LinesInstancingColorRenderer.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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("}");
|
package/src/viewer/scene/model/vbo/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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("}");
|
package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js
CHANGED
|
@@ -10,7 +10,7 @@ class PointsBatchingOcclusionRenderer extends VBOSceneModelPointBatchingRenderer
|
|
|
10
10
|
|
|
11
11
|
_buildVertexShader() {
|
|
12
12
|
const scene = this._scene;
|
|
13
|
-
const clipping = scene._sectionPlanesState.
|
|
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.
|
|
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.
|
|
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.
|
|
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(" }");
|
package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js
CHANGED
|
@@ -10,7 +10,7 @@ class PointsBatchingPickDepthRenderer extends VBOSceneModelPointBatchingRenderer
|
|
|
10
10
|
|
|
11
11
|
_buildVertexShader() {
|
|
12
12
|
const scene = this._scene;
|
|
13
|
-
const clipping = scene._sectionPlanesState.
|
|
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.
|
|
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.
|
|
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.
|
|
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(" }");
|
package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js
CHANGED
|
@@ -11,7 +11,7 @@ class PointsBatchingPickMeshRenderer extends VBOSceneModelPointBatchingRenderer
|
|
|
11
11
|
_buildVertexShader() {
|
|
12
12
|
|
|
13
13
|
const scene = this._scene;
|
|
14
|
-
const clipping = scene._sectionPlanesState.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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(" }");
|
package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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("}");
|
package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingColorRenderer.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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("}");
|
package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingDepthRenderer.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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("}");
|