Skip to content

Commit c38436f

Browse files
committed
🐞 fix: fixed layer bug
1 parent 0bfdb40 commit c38436f

File tree

2 files changed

+28
-12
lines changed

2 files changed

+28
-12
lines changed

packages/chili-three/src/cameraController.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
// Part of the Chili3d Project, under the AGPL-3.0 License.
22
// See LICENSE file in the project root for full license information.
33

4-
import { CameraType, ICameraController, Observable, Precision, VisualNode, XYZLike } from "chili-core";
4+
import {
5+
CameraType,
6+
ICameraController,
7+
Observable,
8+
Precision,
9+
ViewMode,
10+
VisualNode,
11+
XYZLike,
12+
} from "chili-core";
513
import {
614
Box3,
715
Camera,
@@ -12,6 +20,7 @@ import {
1220
Sphere,
1321
Vector3,
1422
} from "three";
23+
import { Constants } from "./constants";
1524
import { ThreeGeometry } from "./threeGeometry";
1625
import { ThreeHelper } from "./threeHelper";
1726
import { ThreeView } from "./threeView";
@@ -81,10 +90,11 @@ export class CameraController extends Observable implements ICameraController {
8190
}
8291

8392
private createCamera(near: number, far: number) {
93+
let camera: PerspectiveCamera | OrthographicCamera;
8494
if (this.cameraType === "perspective") {
85-
return new PerspectiveCamera(CAMERA_FOV, this._width / this._height, near, far);
95+
camera = new PerspectiveCamera(CAMERA_FOV, this._width / this._height, near, far);
8696
} else {
87-
return new OrthographicCamera(
97+
camera = new OrthographicCamera(
8898
-this._width / 2,
8999
this._width / 2,
90100
this._height / 2,
@@ -93,6 +103,20 @@ export class CameraController extends Observable implements ICameraController {
93103
far,
94104
);
95105
}
106+
this.setCameraLayer(camera, this.view.mode);
107+
return camera;
108+
}
109+
110+
setCameraLayer(camera: Camera, mode: ViewMode) {
111+
if (mode === ViewMode.wireframe) {
112+
camera.layers.enable(Constants.Layers.Wireframe);
113+
camera.layers.disable(Constants.Layers.Solid);
114+
} else if (mode === ViewMode.solid) {
115+
camera.layers.enable(Constants.Layers.Solid);
116+
camera.layers.disable(Constants.Layers.Wireframe);
117+
} else {
118+
camera.layers.enableAll();
119+
}
96120
}
97121

98122
pan(dx: number, dy: number): void {

packages/chili-three/src/threeView.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,7 @@ export class ThreeView extends Observable implements IView {
9393
}
9494
set mode(value: ViewMode) {
9595
this.setProperty("mode", value, () => {
96-
if (value === ViewMode.wireframe) {
97-
this.camera.layers.enable(Constants.Layers.Wireframe);
98-
this.camera.layers.disable(Constants.Layers.Solid);
99-
} else if (value === ViewMode.solid) {
100-
this.camera.layers.enable(Constants.Layers.Solid);
101-
this.camera.layers.disable(Constants.Layers.Wireframe);
102-
} else {
103-
this.camera.layers.enableAll();
104-
}
96+
this.cameraController.setCameraLayer(this.camera, this.mode);
10597
});
10698
}
10799

0 commit comments

Comments
 (0)