@benjos/create-boilerplate 1.4.0 → 1.4.1
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/package.json +1 -1
- package/template-react/package-lock.json +2 -2
- package/template-react/package.json +1 -1
- package/template-vanilla/package-lock.json +2 -2
- package/template-vanilla/package.json +1 -1
- package/template-vanilla/src/experiences/Experience.ts +1 -3
- package/template-vanilla/src/experiences/cameras/threes/DebugThreeCameraController.ts +3 -3
- package/template-vanilla/src/experiences/cameras/threes/LoaderThreeCameraController.ts +2 -2
- package/template-vanilla/src/experiences/cameras/threes/bases/ThreeCameraControllerBase.ts +2 -2
- package/template-vanilla/src/experiences/engines/threes/MainThree.ts +6 -91
- package/template-vanilla/src/experiences/engines/threes/{LoaderThree.ts → app/LoaderThreeApp.ts} +8 -8
- package/template-vanilla/src/experiences/engines/threes/app/MainThreeApp.ts +96 -0
- package/template-vanilla/src/experiences/engines/threes/{bases/ThreeBase.ts → app/bases/ThreeAppBase.ts} +6 -4
- package/template-vanilla/src/experiences/managers/DebugManager.ts +2 -2
- package/template-vanilla/src/experiences/managers/threes/ThreeRaycasterManager.ts +2 -2
- package/template-vanilla/src/experiences/types/global.d.ts +4 -3
- package/template-vanilla/src/experiences/views/threes/bases/ThreeViewBase.ts +9 -0
- package/template-vanilla/src/experiences/views/threes/worlds/components/Environment.ts +5 -5
- package/template-vanilla/src/experiences/views/threes/worlds/components/actors/bases/ActorBase.ts +8 -0
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "template-react",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "template-react",
|
|
9
|
-
"version": "1.4.
|
|
9
|
+
"version": "1.4.1",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@dimforge/rapier3d": "^0.19.3",
|
|
12
12
|
"gsap": "^3.14.2",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "template-vanilla",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "template-vanilla",
|
|
9
|
-
"version": "1.4.
|
|
9
|
+
"version": "1.4.1",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@benjos/cookware": "^1.0.4",
|
|
12
12
|
"@benjos/spices": "^1.0.1",
|
|
@@ -4,7 +4,6 @@ import InitCommand from './commands/InitCommand';
|
|
|
4
4
|
import MainHTML from './engines/htmls/MainHTML';
|
|
5
5
|
import MainThree from './engines/threes/MainThree';
|
|
6
6
|
import LoaderManager from './managers/LoaderManager';
|
|
7
|
-
import LoaderThree from './engines/threes/LoaderThree';
|
|
8
7
|
|
|
9
8
|
class Experience {
|
|
10
9
|
private _isInitialized: boolean = false;
|
|
@@ -15,9 +14,8 @@ class Experience {
|
|
|
15
14
|
|
|
16
15
|
InitCommand.init();
|
|
17
16
|
MainHTML.init();
|
|
18
|
-
LoaderThree.init();
|
|
19
17
|
MainThree.init();
|
|
20
|
-
|
|
18
|
+
LoaderManager.loadAllAssets();
|
|
21
19
|
}
|
|
22
20
|
}
|
|
23
21
|
|
|
@@ -3,7 +3,7 @@ import { KeyboardConstant } from '@benjos/spices';
|
|
|
3
3
|
import { Vector3 } from 'three';
|
|
4
4
|
import { OrbitControls } from 'three/examples/jsm/Addons.js';
|
|
5
5
|
import { CameraId } from '../../constants/experiences/CameraId';
|
|
6
|
-
import
|
|
6
|
+
import MainThreeApp from '../../engines/threes/app/MainThreeApp';
|
|
7
7
|
import ThreeRaycasterManager from '../../managers/threes/ThreeRaycasterManager';
|
|
8
8
|
import { ThreeCameraOptions, ThreeCameraType } from '../../types/cameraTypes';
|
|
9
9
|
import ThreeCameraControllerBase from './bases/ThreeCameraControllerBase';
|
|
@@ -38,14 +38,14 @@ export default class DebugThreeCameraController extends ThreeCameraControllerBas
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
private _setControls(): void {
|
|
41
|
-
this._controls = new OrbitControls(this._camera,
|
|
41
|
+
this._controls = new OrbitControls(this._camera, MainThreeApp.domElementContainer);
|
|
42
42
|
this._controls.enableDamping = true;
|
|
43
43
|
this._controls.dampingFactor = DebugThreeCameraController._CONTROLS_DAMPING_FACTOR;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
private readonly _onMouseDown = (): void => {
|
|
47
47
|
if (DomKeyboardManager.isKeyDown(DebugThreeCameraController._CONTROLS_CENTER_KEY)) {
|
|
48
|
-
const intersect = ThreeRaycasterManager.castFromCameraToPointer(
|
|
48
|
+
const intersect = ThreeRaycasterManager.castFromCameraToPointer(MainThreeApp.scene.children);
|
|
49
49
|
if (intersect.length > 0) {
|
|
50
50
|
this._controls.target.copy(intersect[0].point);
|
|
51
51
|
this._controls.update();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Vector3 } from 'three';
|
|
2
2
|
import { CameraId } from '../../constants/experiences/CameraId';
|
|
3
|
-
import
|
|
3
|
+
import LoaderThreeApp from '../../engines/threes/app/LoaderThreeApp';
|
|
4
4
|
import { ThreeCameraOptions, ThreeCameraType } from '../../types/cameraTypes';
|
|
5
5
|
import ThreeCameraControllerBase from './bases/ThreeCameraControllerBase';
|
|
6
6
|
|
|
@@ -15,7 +15,7 @@ export default class LoaderThreeCameraController extends ThreeCameraControllerBa
|
|
|
15
15
|
private static readonly _DEFAULT_CONTAINER_POSITION: Vector3 = new Vector3(0, 0, 0);
|
|
16
16
|
|
|
17
17
|
constructor() {
|
|
18
|
-
super(CameraId.THREE_LOADER, LoaderThreeCameraController._LOADER_CAMERA_OPTIONS,
|
|
18
|
+
super(CameraId.THREE_LOADER, LoaderThreeCameraController._LOADER_CAMERA_OPTIONS, LoaderThreeApp.scene);
|
|
19
19
|
this._container.position.copy(LoaderThreeCameraController._DEFAULT_CONTAINER_POSITION);
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DomResizeManager } from '@benjos/cookware';
|
|
2
2
|
import { Object3D, OrthographicCamera, PerspectiveCamera, Scene } from 'three';
|
|
3
3
|
import type { CameraId } from '../../../constants/experiences/CameraId';
|
|
4
|
-
import
|
|
4
|
+
import MainThreeApp from '../../../engines/threes/app/MainThreeApp';
|
|
5
5
|
import { ThreeCameraOptions, ThreeCameraType, ThreeControls } from '../../../types/cameraTypes';
|
|
6
6
|
|
|
7
7
|
export default abstract class ThreeCameraControllerBase<T extends ThreeControls = ThreeControls> extends Object3D {
|
|
@@ -21,7 +21,7 @@ export default abstract class ThreeCameraControllerBase<T extends ThreeControls
|
|
|
21
21
|
constructor(
|
|
22
22
|
cameraId: CameraId,
|
|
23
23
|
cameraOptions: ThreeCameraOptions = ThreeCameraControllerBase._DEFAULT_CAMERA_OPTIONS,
|
|
24
|
-
scene: Scene =
|
|
24
|
+
scene: Scene = MainThreeApp.scene
|
|
25
25
|
) {
|
|
26
26
|
super();
|
|
27
27
|
this._cameraId = cameraId;
|
|
@@ -1,96 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { MeshStandardMaterial, Scene } from 'three';
|
|
4
|
-
import DebugThreeCameraController from '../../cameras/threes/DebugThreeCameraController';
|
|
5
|
-
import MainThreeCameraController from '../../cameras/threes/MainThreeCameraController';
|
|
6
|
-
import { CameraId } from '../../constants/experiences/CameraId';
|
|
7
|
-
import DebugManager from '../../managers/DebugManager';
|
|
8
|
-
import ThreeCameraControllerManager from '../../managers/threes/ThreeCameraControllerManager';
|
|
9
|
-
import Renderer from '../../renderers/threes/Renderer';
|
|
10
|
-
import WorldThreeView from '../../views/threes/worlds/WorldThreeView';
|
|
11
|
-
import ThreeBase from './bases/ThreeBase';
|
|
1
|
+
import LoaderThreeApp from "./app/LoaderThreeApp";
|
|
2
|
+
import MainThreeApp from "./app/MainThreeApp";
|
|
12
3
|
|
|
13
|
-
class MainThree
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
KeyboardConstant.CODES.KEY_C,
|
|
18
|
-
];
|
|
19
|
-
private static readonly _TOGGLE_WIREFRAME_KEYS: string[] = [
|
|
20
|
-
KeyboardConstant.CODES.SHIFT_LEFT,
|
|
21
|
-
KeyboardConstant.CODES.KEY_W,
|
|
22
|
-
];
|
|
23
|
-
|
|
24
|
-
declare private _debugWireframeMaterial: MeshStandardMaterial;
|
|
25
|
-
|
|
26
|
-
constructor() {
|
|
27
|
-
super(DomUtils.GetApp());
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
public override init(): void {
|
|
31
|
-
super.init();
|
|
32
|
-
|
|
33
|
-
if (DebugManager.isActive) {
|
|
34
|
-
window.mainThree = this;
|
|
35
|
-
DomKeyboardManager.onKeyDown.add(this._onKeyDown);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
protected override _generateScenes(): void {
|
|
40
|
-
this._scene = new Scene();
|
|
41
|
-
|
|
42
|
-
if (DebugManager.isActive) {
|
|
43
|
-
this._debugWireframeMaterial = new MeshStandardMaterial({
|
|
44
|
-
wireframe: true,
|
|
45
|
-
color: MainThree._DEBUG_WIREFRAME_MATERIAL_COLOR,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
protected override _generateCameras(): void {
|
|
51
|
-
ThreeCameraControllerManager.add(new MainThreeCameraController(), true);
|
|
52
|
-
this._cameraController = ThreeCameraControllerManager.get(CameraId.THREE_MAIN);
|
|
53
|
-
|
|
54
|
-
if (DebugManager.isActive) {
|
|
55
|
-
ThreeCameraControllerManager.add(new DebugThreeCameraController());
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
ThreeCameraControllerManager.onActiveThreeCameraControllerChange.add(this._onActiveCameraControllerChange);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
protected override _generateRenderers(): void {
|
|
62
|
-
this._renderer = new Renderer(this._scene, this._cameraController.camera, { antialias: true });
|
|
63
|
-
this._domElementContainer.appendChild(this._renderer.domElement);
|
|
4
|
+
class MainThree {
|
|
5
|
+
public init(): void {
|
|
6
|
+
LoaderThreeApp.init();
|
|
7
|
+
MainThreeApp.init();
|
|
64
8
|
}
|
|
65
|
-
|
|
66
|
-
protected override _generateViews(): void {
|
|
67
|
-
const worldThreeView = new WorldThreeView();
|
|
68
|
-
this._views.push(worldThreeView);
|
|
69
|
-
this._setCurrentView(worldThreeView);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
private _onActiveCameraControllerChange = (): void => {
|
|
73
|
-
this._cameraController = ThreeCameraControllerManager.activeThreeCameraController;
|
|
74
|
-
this._renderer.setCamera(this._cameraController.camera);
|
|
75
|
-
this._onResize();
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
private readonly _onKeyDown = (_e: KeyboardEvent): void => {
|
|
79
|
-
if (DebugManager.isActive) {
|
|
80
|
-
if (DomKeyboardManager.areAllKeysDown(MainThree._TOGGLE_SWITCH_TO_DEBUG_CAMERA_KEYS)) {
|
|
81
|
-
ThreeCameraControllerManager.setActiveCamera(
|
|
82
|
-
this._cameraController.cameraId === CameraId.THREE_MAIN ? CameraId.THREE_DEBUG : CameraId.THREE_MAIN
|
|
83
|
-
);
|
|
84
|
-
} else if (DomKeyboardManager.areAllKeysDown(MainThree._TOGGLE_WIREFRAME_KEYS)) {
|
|
85
|
-
if (this._scene.overrideMaterial === null) {
|
|
86
|
-
this._scene.overrideMaterial = this._debugWireframeMaterial;
|
|
87
|
-
} else {
|
|
88
|
-
this._scene.overrideMaterial = null;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
9
|
}
|
|
94
10
|
|
|
95
|
-
export type { MainThree };
|
|
96
11
|
export default new MainThree();
|
package/template-vanilla/src/experiences/engines/threes/{LoaderThree.ts → app/LoaderThreeApp.ts}
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { DomUtils } from '@benjos/cookware';
|
|
2
2
|
import { Scene } from 'three';
|
|
3
|
-
import LoaderThreeCameraController from '
|
|
4
|
-
import { CameraId } from '
|
|
5
|
-
import ThreeCameraControllerManager from '
|
|
6
|
-
import LoaderRenderer from '
|
|
7
|
-
import LoaderThreeView from '
|
|
8
|
-
import
|
|
3
|
+
import LoaderThreeCameraController from '../../../cameras/threes/LoaderThreeCameraController';
|
|
4
|
+
import { CameraId } from '../../../constants/experiences/CameraId';
|
|
5
|
+
import ThreeCameraControllerManager from '../../../managers/threes/ThreeCameraControllerManager';
|
|
6
|
+
import LoaderRenderer from '../../../renderers/threes/LoaderRenderer';
|
|
7
|
+
import LoaderThreeView from '../../../views/threes/loaders/LoaderThreeView';
|
|
8
|
+
import ThreeAppBase from './bases/ThreeAppBase';
|
|
9
9
|
|
|
10
|
-
class
|
|
10
|
+
class LoaderThreeApp extends ThreeAppBase {
|
|
11
11
|
constructor() {
|
|
12
12
|
super(DomUtils.GetLoader());
|
|
13
13
|
}
|
|
@@ -36,4 +36,4 @@ class LoaderThree extends ThreeBase {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
export default new
|
|
39
|
+
export default new LoaderThreeApp();
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { DomKeyboardManager, DomUtils } from '@benjos/cookware';
|
|
2
|
+
import { KeyboardConstant } from '@benjos/spices';
|
|
3
|
+
import { MeshStandardMaterial, Scene } from 'three';
|
|
4
|
+
import DebugThreeCameraController from '../../../cameras/threes/DebugThreeCameraController';
|
|
5
|
+
import MainThreeCameraController from '../../../cameras/threes/MainThreeCameraController';
|
|
6
|
+
import { CameraId } from '../../../constants/experiences/CameraId';
|
|
7
|
+
import DebugManager from '../../../managers/DebugManager';
|
|
8
|
+
import ThreeCameraControllerManager from '../../../managers/threes/ThreeCameraControllerManager';
|
|
9
|
+
import Renderer from '../../../renderers/threes/Renderer';
|
|
10
|
+
import WorldThreeView from '../../../views/threes/worlds/WorldThreeView';
|
|
11
|
+
import ThreeAppBase from './bases/ThreeAppBase';
|
|
12
|
+
|
|
13
|
+
class MainThreeApp extends ThreeAppBase {
|
|
14
|
+
private static readonly _DEBUG_WIREFRAME_MATERIAL_COLOR: number = 0x3f79f3;
|
|
15
|
+
private static readonly _TOGGLE_SWITCH_TO_DEBUG_CAMERA_KEYS: string[] = [
|
|
16
|
+
KeyboardConstant.CODES.SHIFT_LEFT,
|
|
17
|
+
KeyboardConstant.CODES.KEY_C,
|
|
18
|
+
];
|
|
19
|
+
private static readonly _TOGGLE_WIREFRAME_KEYS: string[] = [
|
|
20
|
+
KeyboardConstant.CODES.SHIFT_LEFT,
|
|
21
|
+
KeyboardConstant.CODES.KEY_W,
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
declare private _debugWireframeMaterial: MeshStandardMaterial;
|
|
25
|
+
|
|
26
|
+
constructor() {
|
|
27
|
+
super(DomUtils.GetApp());
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public override init(): void {
|
|
31
|
+
super.init();
|
|
32
|
+
|
|
33
|
+
if (DebugManager.isActive) {
|
|
34
|
+
window.mainThreeApp = this;
|
|
35
|
+
DomKeyboardManager.onKeyDown.add(this._onKeyDown);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
protected override _generateScenes(): void {
|
|
40
|
+
this._scene = new Scene();
|
|
41
|
+
|
|
42
|
+
if (DebugManager.isActive) {
|
|
43
|
+
this._debugWireframeMaterial = new MeshStandardMaterial({
|
|
44
|
+
wireframe: true,
|
|
45
|
+
color: MainThreeApp._DEBUG_WIREFRAME_MATERIAL_COLOR,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
protected override _generateCameras(): void {
|
|
51
|
+
ThreeCameraControllerManager.add(new MainThreeCameraController(), true);
|
|
52
|
+
this._cameraController = ThreeCameraControllerManager.get(CameraId.THREE_MAIN);
|
|
53
|
+
|
|
54
|
+
if (DebugManager.isActive) {
|
|
55
|
+
ThreeCameraControllerManager.add(new DebugThreeCameraController());
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
ThreeCameraControllerManager.onActiveThreeCameraControllerChange.add(this._onActiveCameraControllerChange);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
protected override _generateRenderers(): void {
|
|
62
|
+
this._renderer = new Renderer(this._scene, this._cameraController.camera, { antialias: true });
|
|
63
|
+
this._domElementContainer.appendChild(this._renderer.domElement);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
protected override _generateViews(): void {
|
|
67
|
+
const worldThreeView = new WorldThreeView();
|
|
68
|
+
this._views.push(worldThreeView);
|
|
69
|
+
this._setCurrentView(worldThreeView);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
private _onActiveCameraControllerChange = (): void => {
|
|
73
|
+
this._cameraController = ThreeCameraControllerManager.activeThreeCameraController;
|
|
74
|
+
this._renderer.setCamera(this._cameraController.camera);
|
|
75
|
+
this._onResize();
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
private readonly _onKeyDown = (_e: KeyboardEvent): void => {
|
|
79
|
+
if (DebugManager.isActive) {
|
|
80
|
+
if (DomKeyboardManager.areAllKeysDown(MainThreeApp._TOGGLE_SWITCH_TO_DEBUG_CAMERA_KEYS)) {
|
|
81
|
+
ThreeCameraControllerManager.setActiveCamera(
|
|
82
|
+
this._cameraController.cameraId === CameraId.THREE_MAIN ? CameraId.THREE_DEBUG : CameraId.THREE_MAIN
|
|
83
|
+
);
|
|
84
|
+
} else if (DomKeyboardManager.areAllKeysDown(MainThreeApp._TOGGLE_WIREFRAME_KEYS)) {
|
|
85
|
+
if (this._scene.overrideMaterial === null) {
|
|
86
|
+
this._scene.overrideMaterial = this._debugWireframeMaterial;
|
|
87
|
+
} else {
|
|
88
|
+
this._scene.overrideMaterial = null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export type { MainThreeApp };
|
|
96
|
+
export default new MainThreeApp();
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { DomResizeManager, TickerManager } from '@benjos/cookware';
|
|
2
2
|
import { Scene } from 'three';
|
|
3
|
-
import ThreeCameraControllerBase from '
|
|
4
|
-
import WebGLRendererBase from '
|
|
5
|
-
import ThreeViewBase from '
|
|
3
|
+
import ThreeCameraControllerBase from '../../../../cameras/threes/bases/ThreeCameraControllerBase';
|
|
4
|
+
import WebGLRendererBase from '../../../../renderers/threes/bases/WebGLRendererBase';
|
|
5
|
+
import ThreeViewBase from '../../../../views/threes/bases/ThreeViewBase';
|
|
6
6
|
|
|
7
|
-
export default abstract class
|
|
7
|
+
export default abstract class ThreeAppBase {
|
|
8
8
|
declare protected _domElementContainer: HTMLElement;
|
|
9
9
|
declare protected _scene: Scene;
|
|
10
10
|
declare protected _cameraController: ThreeCameraControllerBase;
|
|
@@ -49,12 +49,14 @@ export default abstract class ThreeBase {
|
|
|
49
49
|
if (this._currentView === view) return;
|
|
50
50
|
if (this._currentView) this._removeOldView(this._currentView);
|
|
51
51
|
this._currentView = view;
|
|
52
|
+
view.init();
|
|
52
53
|
this.scene.add(this._currentView);
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
private _removeOldView(view: ThreeViewBase): void {
|
|
56
57
|
this.scene.remove(view);
|
|
57
58
|
view.dispose();
|
|
59
|
+
view.reset();
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
protected _onResize = (): void => {
|
|
@@ -2,7 +2,7 @@ import { DomKeyboardManager } from '@benjos/cookware';
|
|
|
2
2
|
import { KeyboardConstant } from '@benjos/spices';
|
|
3
3
|
import GUI from 'lil-gui';
|
|
4
4
|
import { ThreePerf } from 'three-perf';
|
|
5
|
-
import
|
|
5
|
+
import MainThreeApp from '../engines/threes/app/MainThreeApp';
|
|
6
6
|
|
|
7
7
|
class DebugManager {
|
|
8
8
|
private static readonly _IS_ACTIVE_STRING: string = '#debug';
|
|
@@ -40,7 +40,7 @@ class DebugManager {
|
|
|
40
40
|
anchorX: DebugManager._THREE_PERF_ANCHOR_X,
|
|
41
41
|
anchorY: DebugManager._THREE_PERF_ANCHOR_Y,
|
|
42
42
|
domElement: document.body,
|
|
43
|
-
renderer:
|
|
43
|
+
renderer: MainThreeApp.renderer,
|
|
44
44
|
showGraph: false,
|
|
45
45
|
});
|
|
46
46
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DomPointerManager } from '@benjos/cookware';
|
|
2
2
|
import { Object3D, Raycaster, Vector2, type Intersection, type Object3DEventMap } from 'three';
|
|
3
|
-
import
|
|
3
|
+
import MainThreeApp from '../../engines/threes/app/MainThreeApp';
|
|
4
4
|
|
|
5
5
|
class ThreeRaycasterManager {
|
|
6
6
|
private readonly _raycaster = new Raycaster();
|
|
@@ -12,7 +12,7 @@ class ThreeRaycasterManager {
|
|
|
12
12
|
|
|
13
13
|
public castFromCameraToPointer(objects: Object3D[], recursive = true): Intersection<Object3D<Object3DEventMap>>[] {
|
|
14
14
|
this._pointerPosition.set(DomPointerManager.ndcX, DomPointerManager.ndcY);
|
|
15
|
-
this._raycaster.setFromCamera(this._pointerPosition,
|
|
15
|
+
this._raycaster.setFromCamera(this._pointerPosition, MainThreeApp.cameraController.camera);
|
|
16
16
|
const intersects = this._raycaster.intersectObjects(objects, recursive);
|
|
17
17
|
return intersects;
|
|
18
18
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MainThreeApp } from '../engines/threes/app/MainThreeApp';
|
|
2
2
|
|
|
3
3
|
declare global {
|
|
4
4
|
interface Window {
|
|
5
|
-
|
|
5
|
+
mainThreeApp: MainThreeApp;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export {};
|
|
9
|
+
export { };
|
|
10
|
+
|
|
@@ -10,6 +10,15 @@ export default abstract class ThreeViewBase extends Object3D {
|
|
|
10
10
|
this._actors = [];
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
public init(): void {
|
|
14
|
+
this.reset();
|
|
15
|
+
for (const actor of this._actors) actor.init();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public reset(): void {
|
|
19
|
+
for (const actor of this._actors) actor.reset();
|
|
20
|
+
}
|
|
21
|
+
|
|
13
22
|
protected _generateActors(): void {
|
|
14
23
|
//
|
|
15
24
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DataTexture, DirectionalLight, Object3D, Vector3 } from 'three';
|
|
2
2
|
import { AssetId } from '../../../../constants/experiences/AssetId';
|
|
3
|
-
import
|
|
3
|
+
import MainThreeApp from '../../../../engines/threes/app/MainThreeApp';
|
|
4
4
|
import DebugManager from '../../../../managers/DebugManager';
|
|
5
5
|
import ThreeAssetsManager from '../../../../managers/threes/ThreeAssetsManager';
|
|
6
6
|
|
|
@@ -34,13 +34,13 @@ export default class Environment extends Object3D {
|
|
|
34
34
|
this._environmentMap.texture = ThreeAssetsManager.getHDR(AssetId.THREE_HDR_TEMPLATE);
|
|
35
35
|
this._environmentMap.texture.needsUpdate = true;
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
MainThreeApp.scene.environment = this._environmentMap.texture;
|
|
38
|
+
MainThreeApp.scene.environmentIntensity = this._environmentMap.intensity!;
|
|
39
39
|
|
|
40
40
|
if (DebugManager.isActive) {
|
|
41
41
|
const environmentFolder = DebugManager.gui.addFolder('Environment');
|
|
42
42
|
environmentFolder.add(this._environmentMap, 'intensity', 0, 10, 0.01).onChange(() => {
|
|
43
|
-
|
|
43
|
+
MainThreeApp.scene.environmentIntensity = this._environmentMap.intensity!;
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
46
|
};
|
|
@@ -69,5 +69,5 @@ export default class Environment extends Object3D {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
public update(_dt: number): void {}
|
|
72
|
+
public update(_dt: number): void { }
|
|
73
73
|
}
|