@inweb/viewer-three 26.8.0 → 26.8.2
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/plugins/components/RoomEnvironmentComponent.js +75 -40
- package/dist/plugins/components/RoomEnvironmentComponent.js.map +1 -1
- package/dist/plugins/components/RoomEnvironmentComponent.min.js +1 -1
- package/dist/plugins/components/StatsPanelComponent.js +1 -1
- package/dist/plugins/components/StatsPanelComponent.js.map +1 -1
- package/dist/plugins/components/StatsPanelComponent.min.js +1 -1
- package/dist/plugins/components/StatsPanelComponent.module.js +1 -1
- package/dist/plugins/components/StatsPanelComponent.module.js.map +1 -1
- package/dist/plugins/loaders/GLTFCloudLoader.js +225 -94
- package/dist/plugins/loaders/GLTFCloudLoader.js.map +1 -1
- package/dist/plugins/loaders/GLTFCloudLoader.min.js +1 -1
- package/dist/plugins/loaders/IFCXLoader.js +1977 -881
- package/dist/plugins/loaders/IFCXLoader.js.map +1 -1
- package/dist/plugins/loaders/IFCXLoader.min.js +1 -1
- package/dist/plugins/loaders/IFCXLoader.module.js +477 -154
- package/dist/plugins/loaders/IFCXLoader.module.js.map +1 -1
- package/dist/viewer-three.js +31149 -5503
- package/dist/viewer-three.js.map +1 -1
- package/dist/viewer-three.min.js +3 -3
- package/dist/viewer-three.module.js +406 -298
- package/dist/viewer-three.module.js.map +1 -1
- package/lib/Viewer/Viewer.d.ts +17 -3
- package/lib/Viewer/commands/SetDefaultViewPosition.d.ts +6 -6
- package/lib/Viewer/components/HighlighterComponent.d.ts +5 -4
- package/lib/Viewer/components/SelectionComponent.d.ts +1 -1
- package/lib/Viewer/loaders/DynamicGltfLoader/DynamicModelImpl.d.ts +3 -1
- package/lib/Viewer/models/IModelImpl.d.ts +27 -0
- package/lib/Viewer/models/ModelImpl.d.ts +27 -0
- package/lib/Viewer/scenes/Helpers.d.ts +7 -0
- package/lib/index.d.ts +2 -1
- package/package.json +9 -9
- package/plugins/components/StatsPanelComponent.ts +1 -1
- package/plugins/loaders/IFCX/IFCXLoader.ts +4 -7
- package/plugins/loaders/IFCX/render.js +686 -181
- package/plugins/loaders/IFCXCloudLoader.ts +1 -1
- package/src/Viewer/Viewer.ts +124 -48
- package/src/Viewer/commands/SetDefaultViewPosition.ts +8 -8
- package/src/Viewer/components/CameraComponent.ts +20 -16
- package/src/Viewer/components/ExtentsComponent.ts +1 -0
- package/src/Viewer/components/HighlighterComponent.ts +78 -80
- package/src/Viewer/components/LightComponent.ts +10 -4
- package/src/Viewer/components/ResizeCanvasComponent.ts +1 -0
- package/src/Viewer/components/SelectionComponent.ts +1 -1
- package/src/Viewer/helpers/WCSHelper.ts +8 -5
- package/src/Viewer/loaders/DynamicGltfLoader/DynamicGltfLoader.js +33 -16
- package/src/Viewer/loaders/DynamicGltfLoader/DynamicModelImpl.ts +12 -5
- package/src/Viewer/loaders/DynamicGltfLoader/GltfStructure.js +100 -20
- package/src/Viewer/loaders/GLTFCloudDynamicLoader.ts +4 -2
- package/src/Viewer/loaders/GLTFFileLoader.ts +1 -1
- package/src/Viewer/models/IModelImpl.ts +67 -0
- package/src/Viewer/models/ModelImpl.ts +214 -0
- package/src/Viewer/postprocessing/SSAARenderPass.js +245 -0
- package/src/Viewer/scenes/Helpers.ts +42 -0
- package/src/index.ts +2 -1
package/lib/Viewer/Viewer.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { Box3, Object3D, OrthographicCamera, PerspectiveCamera, Scene, Vector3, WebGLRenderer } from "three";
|
|
2
|
+
import { EffectComposer } from "three/examples/jsm/postprocessing/EffectComposer.js";
|
|
3
|
+
import { RenderPass } from "three/examples/jsm/postprocessing/RenderPass.js";
|
|
4
|
+
import { FXAAPass } from "three/examples/jsm/postprocessing/FXAAPass.js";
|
|
5
|
+
import { SMAAPass } from "three/examples/jsm/postprocessing/SMAAPass.js";
|
|
6
|
+
import { SSAARenderPass } from "./postprocessing/SSAARenderPass.js";
|
|
7
|
+
import { OutputPass } from "three/examples/jsm/postprocessing/OutputPass.js";
|
|
2
8
|
import { EventEmitter2 } from "@inweb/eventemitter2";
|
|
3
9
|
import { Assembly, Client, Model, File } from "@inweb/client";
|
|
4
10
|
import { CanvasEventMap, FileSource, IComponent, IDragger, ILoader, IOptions, IViewer, IViewpoint, Options, OptionsEventMap, ViewerEventMap } from "@inweb/viewer-core";
|
|
5
11
|
import { IMarkup, IWorldTransform } from "@inweb/markup";
|
|
6
|
-
import { IModelImpl } from "./
|
|
12
|
+
import { IModelImpl } from "./models/IModelImpl";
|
|
13
|
+
import { Helpers } from "./scenes/Helpers";
|
|
7
14
|
/**
|
|
8
15
|
* 3D viewer powered by {@link https://threejs.org/ | Three.js}.
|
|
9
16
|
*/
|
|
@@ -14,9 +21,16 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
|
|
|
14
21
|
canvas: HTMLCanvasElement | undefined;
|
|
15
22
|
canvasEvents: string[];
|
|
16
23
|
scene: Scene | undefined;
|
|
17
|
-
helpers:
|
|
24
|
+
helpers: Helpers | undefined;
|
|
18
25
|
camera: PerspectiveCamera | OrthographicCamera | undefined;
|
|
19
26
|
renderer: WebGLRenderer | undefined;
|
|
27
|
+
renderPass: RenderPass | undefined;
|
|
28
|
+
helpersPass: RenderPass | undefined;
|
|
29
|
+
fxaaPass: FXAAPass | undefined;
|
|
30
|
+
smaaPass: SMAAPass | undefined;
|
|
31
|
+
ssaaRenderPass: SSAARenderPass | undefined;
|
|
32
|
+
outputPass: OutputPass | undefined;
|
|
33
|
+
composer: EffectComposer | undefined;
|
|
20
34
|
loaders: ILoader[];
|
|
21
35
|
models: IModelImpl[];
|
|
22
36
|
selected: Object3D[];
|
|
@@ -46,7 +60,7 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
|
|
|
46
60
|
dispose(): this;
|
|
47
61
|
isInitialized(): boolean;
|
|
48
62
|
update(force?: boolean): void;
|
|
49
|
-
render(time
|
|
63
|
+
render(time?: DOMHighResTimeStamp, force?: boolean): void;
|
|
50
64
|
loadReferences(model: Model | File | Assembly): Promise<this>;
|
|
51
65
|
/**
|
|
52
66
|
* Loads a file into the viewer.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Vector3 } from "three";
|
|
2
2
|
import type { Viewer } from "../Viewer";
|
|
3
3
|
export declare const defaultViewPositions: {
|
|
4
|
-
top: Vector3;
|
|
5
|
-
bottom: Vector3;
|
|
6
|
-
left: Vector3;
|
|
7
|
-
right: Vector3;
|
|
8
4
|
front: Vector3;
|
|
9
5
|
back: Vector3;
|
|
6
|
+
left: Vector3;
|
|
7
|
+
right: Vector3;
|
|
8
|
+
bottom: Vector3;
|
|
9
|
+
top: Vector3;
|
|
10
|
+
ns: Vector3;
|
|
10
11
|
sw: Vector3;
|
|
11
|
-
se: Vector3;
|
|
12
|
-
ne: Vector3;
|
|
13
12
|
nw: Vector3;
|
|
13
|
+
se: Vector3;
|
|
14
14
|
};
|
|
15
15
|
export declare function setDefaultViewPosition(viewer: Viewer, position: string): void;
|
|
@@ -5,15 +5,16 @@ import { Viewer } from "../Viewer";
|
|
|
5
5
|
export declare class HighlighterComponent implements IComponent {
|
|
6
6
|
protected viewer: Viewer;
|
|
7
7
|
renderTarget: WebGLRenderTarget;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
facesMaterial: MeshPhongMaterial;
|
|
9
|
+
edgesMaterial: LineMaterial;
|
|
10
|
+
lineMaterial: LineBasicMaterial;
|
|
11
|
+
lineGlowMaterial: LineMaterial;
|
|
12
12
|
constructor(viewer: Viewer);
|
|
13
13
|
dispose(): void;
|
|
14
14
|
highlight(objects: Object3D | Object3D[]): void;
|
|
15
15
|
unhighlight(objects: Object3D | Object3D[]): void;
|
|
16
16
|
geometryEnd: () => void;
|
|
17
17
|
optionsChange: () => void;
|
|
18
|
+
syncHighlightColors(): void;
|
|
18
19
|
viewerResize(event: ResizeEvent): void;
|
|
19
20
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Intersection, Object3D, Raycaster, Vector2 } from "three";
|
|
2
2
|
import type { IComponent } from "@inweb/viewer-core";
|
|
3
3
|
import type { Viewer } from "../Viewer";
|
|
4
|
-
import type { IModelImpl } from "../
|
|
4
|
+
import type { IModelImpl } from "../models/IModelImpl";
|
|
5
5
|
import type { HighlighterComponent } from "./HighlighterComponent";
|
|
6
6
|
export declare class SelectionComponent implements IComponent {
|
|
7
7
|
protected viewer: Viewer;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { Box3, Object3D } from "three";
|
|
2
|
-
import { ModelImpl } from "../../
|
|
2
|
+
import { ModelImpl } from "../../models/ModelImpl";
|
|
3
3
|
import { DynamicGltfLoader } from "./DynamicGltfLoader.js";
|
|
4
4
|
export declare class DynamicModelImpl extends ModelImpl {
|
|
5
5
|
gltfLoader: DynamicGltfLoader;
|
|
6
|
+
modelId: number;
|
|
6
7
|
getExtents(target: Box3): Box3;
|
|
7
8
|
getObjects(): Object3D[];
|
|
8
9
|
getVisibleObjects(): Object3D[];
|
|
9
10
|
hasObject(object: any): boolean;
|
|
10
11
|
getObjectsByHandles(handles: string | string[]): Object3D[];
|
|
12
|
+
getHandlesByObjects(objects: Object3D | Object3D[]): string[];
|
|
11
13
|
hideObjects(objects: Object3D | Object3D[]): this;
|
|
12
14
|
isolateObjects(objects: Object3D | Object3D[]): this;
|
|
13
15
|
showObjects(objects: Object3D | Object3D[]): this;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Box3, Object3D } from "three";
|
|
2
|
+
import { ILoader, IViewer } from "@inweb/viewer-core";
|
|
3
|
+
/**
|
|
4
|
+
* Model interface.
|
|
5
|
+
*/
|
|
6
|
+
export interface IModelImpl {
|
|
7
|
+
handle: string;
|
|
8
|
+
scene: Object3D;
|
|
9
|
+
loader: ILoader;
|
|
10
|
+
viewer: IViewer;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
getExtents(target: Box3): Box3;
|
|
13
|
+
getObjects(): Object3D[];
|
|
14
|
+
getVisibleObjects(): Object3D[];
|
|
15
|
+
hasObject(objects: Object3D): boolean;
|
|
16
|
+
getOwnObjects(objects: Object3D | Object3D[]): Object3D[];
|
|
17
|
+
getObjectsByHandles(handles: string | string[]): Object3D[];
|
|
18
|
+
getHandlesByObjects(objects: Object3D | Object3D[]): string[];
|
|
19
|
+
hideObjects(objects: Object3D | Object3D[]): this;
|
|
20
|
+
hideAllObjects(): this;
|
|
21
|
+
isolateObjects(objects: Object3D | Object3D[]): this;
|
|
22
|
+
showObjects(objects: Object3D | Object3D[]): this;
|
|
23
|
+
showAllObjects(): this;
|
|
24
|
+
showOriginalObjects(objects: Object3D | Object3D[]): this;
|
|
25
|
+
hideOriginalObjects(objects: Object3D | Object3D[]): this;
|
|
26
|
+
explode(scale: number, coeff?: number): this;
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Box3, Object3D } from "three";
|
|
2
|
+
import { ILoader } from "@inweb/viewer-core";
|
|
3
|
+
import { IModelImpl } from "./IModelImpl";
|
|
4
|
+
import { Viewer } from "../Viewer";
|
|
5
|
+
export declare class ModelImpl implements IModelImpl {
|
|
6
|
+
handle: string;
|
|
7
|
+
scene: Object3D;
|
|
8
|
+
loader: ILoader;
|
|
9
|
+
viewer: Viewer;
|
|
10
|
+
constructor(scene: Object3D);
|
|
11
|
+
dispose(): void;
|
|
12
|
+
getExtents(target: Box3): Box3;
|
|
13
|
+
getObjects(): Object3D[];
|
|
14
|
+
getVisibleObjects(): Object3D[];
|
|
15
|
+
hasObject(object: Object3D): boolean;
|
|
16
|
+
getOwnObjects(objects: Object3D | Object3D[]): Object3D[];
|
|
17
|
+
getObjectsByHandles(handles: string | string[]): Object3D[];
|
|
18
|
+
getHandlesByObjects(objects: Object3D | Object3D[]): string[];
|
|
19
|
+
hideObjects(objects: Object3D | Object3D[]): this;
|
|
20
|
+
hideAllObjects(): this;
|
|
21
|
+
isolateObjects(objects: Object3D | Object3D[]): this;
|
|
22
|
+
showObjects(objects: Object3D | Object3D[]): this;
|
|
23
|
+
showAllObjects(): this;
|
|
24
|
+
showOriginalObjects(objects: Object3D | Object3D[]): this;
|
|
25
|
+
hideOriginalObjects(objects: Object3D | Object3D[]): this;
|
|
26
|
+
explode(scale?: number, coeff?: number): this;
|
|
27
|
+
}
|
package/lib/index.d.ts
CHANGED
|
@@ -3,7 +3,8 @@ export * from "./Viewer/commands";
|
|
|
3
3
|
export * from "./Viewer/components";
|
|
4
4
|
export * from "./Viewer/loaders";
|
|
5
5
|
export * from "./Viewer/loaders/GLTFLoadingManager";
|
|
6
|
-
export * from "./Viewer/
|
|
6
|
+
export * from "./Viewer/models/IModelImpl";
|
|
7
|
+
export * from "./Viewer/models/ModelImpl";
|
|
7
8
|
export * from "./Viewer/Viewer";
|
|
8
9
|
export * from "@inweb/viewer-core";
|
|
9
10
|
export * from "@inweb/markup";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inweb/viewer-three",
|
|
3
|
-
"version": "26.8.
|
|
3
|
+
"version": "26.8.2",
|
|
4
4
|
"description": "JavaScript library for rendering CAD and BIM files in a browser using Three.js",
|
|
5
5
|
"homepage": "https://cloud.opendesign.com/docs/index.html",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -35,17 +35,17 @@
|
|
|
35
35
|
"docs": "typedoc"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@inweb/client": "~26.8.
|
|
39
|
-
"@inweb/eventemitter2": "~26.8.
|
|
40
|
-
"@inweb/markup": "~26.8.
|
|
41
|
-
"@inweb/viewer-core": "~26.8.
|
|
38
|
+
"@inweb/client": "~26.8.2",
|
|
39
|
+
"@inweb/eventemitter2": "~26.8.2",
|
|
40
|
+
"@inweb/markup": "~26.8.2",
|
|
41
|
+
"@inweb/viewer-core": "~26.8.2"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@types/three": "^0.
|
|
45
|
-
"three": "^0.
|
|
44
|
+
"@types/three": "^0.179.0",
|
|
45
|
+
"three": "^0.179.1"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@types/three": "^0.
|
|
49
|
-
"three": "^0.
|
|
48
|
+
"@types/three": "^0.179.0",
|
|
49
|
+
"three": "^0.179.1"
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -58,13 +58,10 @@ class IFCXLoader extends Loader<Scene> {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
parse(json: any, onLoad: (scene: Scene) => void, onError: (err: unknown) => void) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
} finally {
|
|
66
|
-
clear();
|
|
67
|
-
}
|
|
61
|
+
parse(json)
|
|
62
|
+
.then((scene: Scene) => onLoad(scene))
|
|
63
|
+
.catch((err: unknown) => onError(err))
|
|
64
|
+
.finally(() => clear());
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
67
|
|