@xeokit/xeokit-sdk 2.6.29 → 2.6.31
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 +635 -468
- package/dist/xeokit-sdk.es.js +635 -468
- package/dist/xeokit-sdk.es5.js +318 -330
- package/dist/xeokit-sdk.min.cjs.js +4 -4
- package/dist/xeokit-sdk.min.es.js +5 -5
- package/dist/xeokit-sdk.min.es5.js +3 -3
- package/package.json +1 -1
- package/src/plugins/DotBIMLoaderPlugin/DotBIMLoaderPlugin.js +110 -33
- package/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +2 -110
- package/src/plugins/GLTFLoaderPlugin/GLTFSceneModelLoader.js +257 -222
- package/src/plugins/TreeViewPlugin/TreeViewPlugin.js +1 -1
- package/src/viewer/metadata/MetaScene.js +0 -2
- package/src/viewer/scene/model/SceneModel.js +9 -0
- package/src/viewer/scene/model/SceneModelTextureSet.js +5 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapInitRenderer.js +8 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapRenderer.js +8 -0
- package/src/viewer/scene/model/vbo/VBORenderer.js +10 -1
- package/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapRenderer.js +1 -1
- package/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +26 -6
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js +40 -12
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js +2 -3
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js +25 -7
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js +1 -1
- package/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapRenderer.js +1 -1
- package/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +17 -4
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js +74 -47
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js +29 -14
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js +5 -4
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js +1 -1
- package/src/viewer/scene/webgl/Renderer.js +6 -3
- package/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +1 -1
- package/src/viewer/scene/webgl/occlusion/OcclusionTester.js +1 -4
- package/types/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.d.ts +5 -3
- package/types/plugins/LASLoaderPlugin/LASLoaderPlugin.d.ts +2 -2
- package/types/plugins/OBJLoaderPlugin/OBJLoaderPlugin.d.ts +3 -3
package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js
CHANGED
|
@@ -4,8 +4,8 @@ import {VBORenderer} from "./../../../VBORenderer.js";
|
|
|
4
4
|
* @private
|
|
5
5
|
*/
|
|
6
6
|
export class TrianglesInstancingRenderer extends VBORenderer {
|
|
7
|
-
constructor(scene, withSAO, {edges = false} = {}) {
|
|
8
|
-
super(scene, withSAO, {instancing: true, edges});
|
|
7
|
+
constructor(scene, withSAO, {edges = false, useAlphaCutoff = false} = {}) {
|
|
8
|
+
super(scene, withSAO, {instancing: true, edges, useAlphaCutoff});
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
_draw(drawCfg) {
|
|
@@ -14,16 +14,17 @@ export class TrianglesInstancingRenderer extends VBORenderer {
|
|
|
14
14
|
const {
|
|
15
15
|
state,
|
|
16
16
|
frameCtx,
|
|
17
|
-
incrementDrawState
|
|
17
|
+
incrementDrawState
|
|
18
18
|
} = drawCfg;
|
|
19
19
|
|
|
20
20
|
if (this._edges) {
|
|
21
21
|
gl.drawElementsInstanced(gl.LINES, state.edgeIndicesBuf.numItems, state.edgeIndicesBuf.itemType, 0, state.numInstances);
|
|
22
22
|
} else {
|
|
23
23
|
gl.drawElementsInstanced(gl.TRIANGLES, state.indicesBuf.numItems, state.indicesBuf.itemType, 0, state.numInstances);
|
|
24
|
+
|
|
24
25
|
if (incrementDrawState) {
|
|
25
26
|
frameCtx.drawElements++;
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
}
|
|
30
|
+
}
|
|
@@ -230,7 +230,7 @@ export class TrianglesSnapRenderer extends VBORenderer {
|
|
|
230
230
|
// renderPass = PICK
|
|
231
231
|
src.push(`int pickFlag = int(flags) >> 12 & 0xF;`);
|
|
232
232
|
src.push(`if (pickFlag != renderPass) {`);
|
|
233
|
-
src.push(" gl_Position = vec4(
|
|
233
|
+
src.push(" gl_Position = vec4(2.0, 0.0, 0.0, 0.0);"); // Cull vertex
|
|
234
234
|
src.push("} else {");
|
|
235
235
|
src.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); ");
|
|
236
236
|
src.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);");
|
|
@@ -1539,13 +1539,16 @@ const Renderer = function (scene, options) {
|
|
|
1539
1539
|
}
|
|
1540
1540
|
|
|
1541
1541
|
const snappedEntity = (snappedPickable && snappedPickable.delegatePickedEntity) ? snappedPickable.delegatePickedEntity() : snappedPickable;
|
|
1542
|
+
if (!snappedEntity && pickable) {
|
|
1543
|
+
pickable = pickable.delegatePickedEntity ? pickable.delegatePickedEntity() : pickable;
|
|
1544
|
+
}
|
|
1542
1545
|
|
|
1543
1546
|
pickResult.reset();
|
|
1544
1547
|
pickResult.snappedToEdge = (snapType === "edge");
|
|
1545
1548
|
pickResult.snappedToVertex = (snapType === "vertex");
|
|
1546
|
-
pickResult.worldPos = snappedWorldPos;
|
|
1547
|
-
pickResult.worldNormal = snappedWorldNormal;
|
|
1548
|
-
pickResult.entity = snappedEntity;
|
|
1549
|
+
pickResult.worldPos = snappedWorldPos || worldPos;
|
|
1550
|
+
pickResult.worldNormal = snappedWorldNormal || worldNormal;
|
|
1551
|
+
pickResult.entity = snappedEntity || pickable;
|
|
1549
1552
|
pickResult.canvasPos = canvasPos || scene.camera.projectWorldPos(worldPos || snappedWorldPos);
|
|
1550
1553
|
pickResult.snappedCanvasPos = snappedCanvasPos || canvasPos;
|
|
1551
1554
|
|
|
@@ -99,7 +99,7 @@ class OcclusionLayer {
|
|
|
99
99
|
for (let i = 0; i < this.numMarkers; i++) {
|
|
100
100
|
if (this.markerList[i]) {
|
|
101
101
|
const marker = this.markerList[i];
|
|
102
|
-
const worldPos = marker.
|
|
102
|
+
const worldPos = marker.rtcPos;
|
|
103
103
|
this.positions[j++] = worldPos[0];
|
|
104
104
|
this.positions[j++] = worldPos[1];
|
|
105
105
|
this.positions[j++] = worldPos[2];
|
|
@@ -332,10 +332,7 @@ class OcclusionTester {
|
|
|
332
332
|
continue;
|
|
333
333
|
}
|
|
334
334
|
|
|
335
|
-
|
|
336
|
-
// because OcclusionLayer markers' transformation is being applied through the
|
|
337
|
-
// OcclusionLayer::positions array. See XEOK-33
|
|
338
|
-
const origin = [ 0, 0, 0 ];
|
|
335
|
+
const origin = occlusionLayer.origin;
|
|
339
336
|
|
|
340
337
|
gl.uniformMatrix4fv(this._uViewMatrix, false, createRTCViewMat(camera.viewMatrix, origin));
|
|
341
338
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Entity, IFCObjectDefaults, Plugin, SceneModel, Viewer } from "../../viewer";
|
|
2
2
|
|
|
3
3
|
export declare interface IGLTFDefaultDataSource {
|
|
4
4
|
/**
|
|
@@ -77,6 +77,8 @@ export declare type LoadGLTFModel = {
|
|
|
77
77
|
edgeThreshold?: number[]
|
|
78
78
|
/** Set ````false```` to load all the materials and textures provided by the glTF file, otherwise leave ````true```` to load the default high-performance representation optimized for low memory usage and efficient rendering. */
|
|
79
79
|
performance?: boolean;
|
|
80
|
+
/** When true, generate a single MetaObject that represents the entire glTF model, and a MetaObject for each entity within it. */
|
|
81
|
+
autoMetaModel?: boolean;
|
|
80
82
|
};
|
|
81
83
|
|
|
82
84
|
/**
|
|
@@ -134,7 +136,7 @@ export declare class GLTFLoaderPlugin extends Plugin {
|
|
|
134
136
|
* Loads a glTF model from a file into this GLTFLoaderPlugin's {@link Viewer}.
|
|
135
137
|
*
|
|
136
138
|
* @param {LoadGLTFModel} params Loading parameters.
|
|
137
|
-
* @returns {
|
|
139
|
+
* @returns {SceneModel} SceneModel representing the model, which will have {@link Entity.isModel} set ````true```` and will be registered by {@link Entity.id} in {@link Scene.models}.
|
|
138
140
|
*/
|
|
139
|
-
load(params: LoadGLTFModel):
|
|
141
|
+
load(params: LoadGLTFModel): SceneModel;
|
|
140
142
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Entity, Plugin, Viewer } from "../../viewer";
|
|
1
|
+
import { Entity, Plugin, SceneModel, Viewer } from "../../viewer";
|
|
2
2
|
import { ModelStats } from "../index";
|
|
3
3
|
|
|
4
4
|
export declare interface ILASDefaultDataSource {
|
|
@@ -142,5 +142,5 @@ export declare class LASLoaderPlugin extends Plugin {
|
|
|
142
142
|
* @param {LoadLASModel} params Loading parameters.
|
|
143
143
|
* @returns {SceneModel} SceneModel representing the model, which will have {@link Entity.isModel} set ````true```` and will be registered by {@link Entity.id} in {@link Scene.models}.
|
|
144
144
|
*/
|
|
145
|
-
load(params?: LoadLASModel):
|
|
145
|
+
load(params?: LoadLASModel): SceneModel;
|
|
146
146
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Plugin, Viewer
|
|
1
|
+
import { Entity, Node, Plugin, Viewer } from "../../viewer";
|
|
2
2
|
|
|
3
3
|
export declare type LoadOBJModel = {
|
|
4
4
|
/** ID to assign to the model's root {@link Entity}, unique among all components in the Viewer's {@link Scene}. */
|
|
@@ -38,7 +38,7 @@ export declare class OBJLoaderPlugin extends Plugin {
|
|
|
38
38
|
* Loads an OBJ model from a file into this OBJLoader's {@link Viewer}.
|
|
39
39
|
*
|
|
40
40
|
* @param {LoadOBJModel} params Loading parameters.
|
|
41
|
-
* @returns {
|
|
41
|
+
* @returns {Node} An {@link Entity} that is a scene graph node that can have child Nodes and {@link Mesh}es.
|
|
42
42
|
*/
|
|
43
|
-
load(params: LoadOBJModel):
|
|
43
|
+
load(params: LoadOBJModel): Node;
|
|
44
44
|
}
|