@inweb/viewer-three 26.6.0 → 26.6.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/LightHelperComponent.js +9 -3
- package/dist/plugins/components/LightHelperComponent.js.map +1 -1
- package/dist/plugins/components/LightHelperComponent.min.js +1 -1
- package/dist/plugins/components/LightHelperComponent.module.js +5 -4
- package/dist/plugins/components/LightHelperComponent.module.js.map +1 -1
- package/dist/plugins/components/RoomEnvironmentComponent.js +178 -0
- package/dist/plugins/components/RoomEnvironmentComponent.js.map +1 -0
- package/dist/plugins/components/RoomEnvironmentComponent.min.js +1 -0
- package/dist/plugins/components/RoomEnvironmentComponent.module.js +21 -0
- package/dist/plugins/components/RoomEnvironmentComponent.module.js.map +1 -0
- package/dist/plugins/loaders/IFCXLoader.js +21 -27
- 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 +7 -18
- package/dist/plugins/loaders/IFCXLoader.module.js.map +1 -1
- package/dist/viewer-three.js +1162 -231
- package/dist/viewer-three.js.map +1 -1
- package/dist/viewer-three.min.js +2 -2
- package/dist/viewer-three.module.js +180 -39
- package/dist/viewer-three.module.js.map +1 -1
- package/lib/Viewer/Viewer.d.ts +1 -1
- package/lib/Viewer/components/HighlighterComponent.d.ts +18 -0
- package/lib/Viewer/components/HighlighterUtils.d.ts +6 -0
- package/lib/Viewer/components/LightComponent.d.ts +3 -1
- package/lib/Viewer/components/SelectionComponent.d.ts +5 -4
- package/package.json +5 -5
- package/plugins/components/LightHelperComponent.ts +10 -5
- package/{src/Viewer → plugins}/components/RoomEnvironmentComponent.ts +4 -4
- package/plugins/loaders/IFCX/render.js +26 -21
- package/src/Viewer/Viewer.ts +4 -4
- package/src/Viewer/components/HighlighterComponent.ts +159 -0
- package/src/Viewer/components/HighlighterUtils.ts +116 -0
- package/src/Viewer/components/LightComponent.ts +33 -4
- package/src/Viewer/components/SelectionComponent.ts +10 -22
- package/src/Viewer/components/index.ts +2 -2
- package/lib/Viewer/components/RoomEnvironmentComponent.d.ts +0 -7
|
@@ -21,41 +21,34 @@
|
|
|
21
21
|
// acknowledge and accept the above terms.
|
|
22
22
|
///////////////////////////////////////////////////////////////////////////////
|
|
23
23
|
|
|
24
|
-
import { Intersection,
|
|
24
|
+
import { Intersection, Object3D, Raycaster, Vector2 } from "three";
|
|
25
25
|
|
|
26
26
|
import { IComponent } from "@inweb/viewer-core";
|
|
27
|
-
import
|
|
27
|
+
import { Viewer } from "../Viewer";
|
|
28
|
+
import { HighlighterComponent } from "./HighlighterComponent";
|
|
28
29
|
|
|
29
30
|
export class SelectionComponent implements IComponent {
|
|
30
31
|
protected viewer: Viewer;
|
|
31
32
|
protected raycaster: Raycaster;
|
|
32
33
|
protected downPosition: Vector2;
|
|
33
|
-
protected
|
|
34
|
+
protected highlighter: HighlighterComponent;
|
|
34
35
|
|
|
35
36
|
constructor(viewer: Viewer) {
|
|
36
37
|
this.viewer = viewer;
|
|
37
38
|
this.raycaster = new Raycaster();
|
|
38
39
|
this.downPosition = new Vector2();
|
|
39
40
|
|
|
40
|
-
const { facesColor, facesTransparancy } = this.viewer.options;
|
|
41
|
-
this.facesMaterial = new MeshBasicMaterial();
|
|
42
|
-
this.facesMaterial.color.setRGB(facesColor.r / 255, facesColor.g / 255, facesColor.b / 255);
|
|
43
|
-
this.facesMaterial.opacity = (255 - facesTransparancy) / 255;
|
|
44
|
-
this.facesMaterial.transparent = true;
|
|
45
|
-
|
|
46
41
|
this.viewer.addEventListener("pointerdown", this.onPointerDown);
|
|
47
42
|
this.viewer.addEventListener("pointerup", this.onPointerUp);
|
|
48
43
|
this.viewer.addEventListener("dblclick", this.onDoubleClick);
|
|
49
|
-
this.viewer.addEventListener("
|
|
44
|
+
this.viewer.addEventListener("initialize", this.initHighlighter);
|
|
50
45
|
}
|
|
51
46
|
|
|
52
47
|
dispose() {
|
|
53
|
-
this.facesMaterial.dispose();
|
|
54
|
-
|
|
55
48
|
this.viewer.removeEventListener("pointerdown", this.onPointerDown);
|
|
56
49
|
this.viewer.removeEventListener("pointerup", this.onPointerUp);
|
|
57
50
|
this.viewer.removeEventListener("dblclick", this.onDoubleClick);
|
|
58
|
-
this.viewer.removeEventListener("
|
|
51
|
+
this.viewer.removeEventListener("initialize", this.initHighlighter);
|
|
59
52
|
}
|
|
60
53
|
|
|
61
54
|
onPointerDown = (event: PointerEvent) => {
|
|
@@ -116,8 +109,7 @@ export class SelectionComponent implements IComponent {
|
|
|
116
109
|
if (object.isSelected) return;
|
|
117
110
|
|
|
118
111
|
object.isSelected = true;
|
|
119
|
-
|
|
120
|
-
object.material = this.facesMaterial;
|
|
112
|
+
this.highlighter.highlight(object);
|
|
121
113
|
|
|
122
114
|
this.viewer.selected.push(object);
|
|
123
115
|
}
|
|
@@ -125,16 +117,12 @@ export class SelectionComponent implements IComponent {
|
|
|
125
117
|
clearSelection() {
|
|
126
118
|
this.viewer.selected.forEach((object: any) => {
|
|
127
119
|
object.isSelected = false;
|
|
128
|
-
|
|
120
|
+
this.highlighter.unhighlight(object);
|
|
129
121
|
});
|
|
130
122
|
this.viewer.selected.length = 0;
|
|
131
123
|
}
|
|
132
124
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
this.facesMaterial.color.setRGB(facesColor.r / 255, facesColor.g / 255, facesColor.b / 255);
|
|
136
|
-
this.facesMaterial.opacity = (255 - facesTransparancy) / 255;
|
|
137
|
-
|
|
138
|
-
this.viewer.update();
|
|
125
|
+
initHighlighter = () => {
|
|
126
|
+
this.highlighter = this.viewer.getComponent("HighlighterComponent") as any;
|
|
139
127
|
};
|
|
140
128
|
}
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
import { IComponentsRegistry, componentsRegistry } from "@inweb/viewer-core";
|
|
25
25
|
|
|
26
26
|
import { BackgroundComponent } from "./BackgroundComponent";
|
|
27
|
-
import { RoomEnvironmentComponent } from "./RoomEnvironmentComponent";
|
|
28
27
|
import { CameraComponent } from "./CameraComponent";
|
|
29
28
|
import { ExtentsComponent } from "./ExtentsComponent";
|
|
30
29
|
import { LightComponent } from "./LightComponent";
|
|
31
30
|
import { RenderLoopComponent } from "./RenderLoopComponent";
|
|
32
31
|
import { ResizeCanvasComponent } from "./ResizeCanvasComponent";
|
|
32
|
+
import { HighlighterComponent } from "./HighlighterComponent";
|
|
33
33
|
import { SelectionComponent } from "./SelectionComponent";
|
|
34
34
|
import { WCSHelperComponent } from "./WCSHelperComponent";
|
|
35
35
|
|
|
@@ -78,10 +78,10 @@ export const components: IComponentsRegistry = componentsRegistry("threejs");
|
|
|
78
78
|
components.registerComponent("ExtentsComponent", (viewer) => new ExtentsComponent(viewer));
|
|
79
79
|
components.registerComponent("CameraComponent", (viewer) => new CameraComponent(viewer));
|
|
80
80
|
components.registerComponent("BackgroundComponent", (viewer) => new BackgroundComponent(viewer));
|
|
81
|
-
components.registerComponent("RoomEnvironmentComponent", (viewer) => new RoomEnvironmentComponent(viewer));
|
|
82
81
|
components.registerComponent("LightComponent", (viewer) => new LightComponent(viewer));
|
|
83
82
|
components.registerComponent("ResizeCanvasComponent", (viewer) => new ResizeCanvasComponent(viewer));
|
|
84
83
|
components.registerComponent("RenderLoopComponent", (viewer) => new RenderLoopComponent(viewer));
|
|
84
|
+
components.registerComponent("HighlighterComponent", (viewer) => new HighlighterComponent(viewer));
|
|
85
85
|
components.registerComponent("SelectionComponent", (viewer) => new SelectionComponent(viewer));
|
|
86
86
|
|
|
87
87
|
components.registerComponent("WCSHelperComponent", (viewer) => new WCSHelperComponent(viewer));
|