@p100-web/core-three 100.0.66 → 100.0.68

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.
Files changed (55) hide show
  1. package/dist/App.d.ts +2 -2
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/App.js +11 -10
  4. package/dist/App.js.map +1 -1
  5. package/dist/ThreeCanvas.d.ts +55 -0
  6. package/dist/ThreeCanvas.d.ts.map +1 -0
  7. package/dist/ThreeCanvas.js +431 -0
  8. package/dist/ThreeCanvas.js.map +1 -0
  9. package/dist/ThreeEngine.d.ts +5 -2
  10. package/dist/ThreeEngine.d.ts.map +1 -1
  11. package/dist/ThreeEngine.js +8 -3
  12. package/dist/ThreeEngine.js.map +1 -1
  13. package/dist/ThreeNodeRenderer.d.ts.map +1 -1
  14. package/dist/ThreeNodeRenderer.js +1 -1
  15. package/dist/ThreeNodeRenderer.js.map +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/media/EnvironmentLoader.js.map +1 -1
  21. package/dist/media/ImageLoader.d.ts +1 -1
  22. package/dist/media/ImageLoader.d.ts.map +1 -1
  23. package/dist/media/ModelLoader.js.map +1 -1
  24. package/dist/media/VideoLoader.d.ts +1 -1
  25. package/dist/media/VideoLoader.d.ts.map +1 -1
  26. package/dist/pcomponents/PBasicMaterial.d.ts +1 -0
  27. package/dist/pcomponents/PBasicMaterial.d.ts.map +1 -1
  28. package/dist/pcomponents/PBasicMaterial.js +3 -0
  29. package/dist/pcomponents/PBasicMaterial.js.map +1 -1
  30. package/dist/pcomponents/PCollider.js.map +1 -1
  31. package/dist/pcomponents/PEnvironment.d.ts +1 -1
  32. package/dist/pcomponents/PEnvironment.d.ts.map +1 -1
  33. package/dist/pcomponents/PEnvironment.js.map +1 -1
  34. package/dist/pcomponents/PModelGLTF.js.map +1 -1
  35. package/dist/pcomponents/PPhysicalMaterial.d.ts +1 -0
  36. package/dist/pcomponents/PPhysicalMaterial.d.ts.map +1 -1
  37. package/dist/pcomponents/PPhysicalMaterial.js +3 -0
  38. package/dist/pcomponents/PPhysicalMaterial.js.map +1 -1
  39. package/dist/pcomponents/PProjectRoot.js.map +1 -1
  40. package/dist/pcomponents/PSlider.js.map +1 -1
  41. package/dist/three/FreeCameraControls.d.ts +2 -2
  42. package/dist/three/FreeCameraControls.d.ts.map +1 -1
  43. package/dist/three/FreeCameraControls.js.map +1 -1
  44. package/dist/three/OrbitCameraControls.d.ts +2 -2
  45. package/dist/three/OrbitCameraControls.d.ts.map +1 -1
  46. package/dist/three/OrbitCameraControls.js +1 -0
  47. package/dist/three/OrbitCameraControls.js.map +1 -1
  48. package/dist/three/VrCameraControls.d.ts +2 -2
  49. package/dist/three/VrCameraControls.d.ts.map +1 -1
  50. package/dist/three/VrCameraControls.js.map +1 -1
  51. package/package.json +3 -9
  52. package/dist/PCanvas.d.ts +0 -171
  53. package/dist/PCanvas.d.ts.map +0 -1
  54. package/dist/PCanvas.js +0 -992
  55. package/dist/PCanvas.js.map +0 -1
package/dist/App.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { IGameContextOwner, PNode, GameContext } from "@p100-web/core";
2
- import PCanvas from "./PCanvas";
2
+ import ThreeCanvas from "./ThreeCanvas";
3
3
  type EventListener = (event: string, payload: string) => void;
4
4
  export type { EventListener };
5
5
  export default class App implements IGameContextOwner {
@@ -8,7 +8,7 @@ export default class App implements IGameContextOwner {
8
8
  project_id: string;
9
9
  language: number;
10
10
  context: GameContext | null;
11
- pcanvas: PCanvas;
11
+ pcanvas: ThreeCanvas | null;
12
12
  private _listeners;
13
13
  private _disposed;
14
14
  constructor(canvas: HTMLCanvasElement, url: string, project_id: string, language: number);
package/dist/App.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAEjB,KAAK,EAEL,WAAW,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,OAAO,MAAM,WAAW,CAAC;AAKhC,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE9D,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,GAAI,YAAW,iBAAiB;IACnD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAK;IACrB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,SAAS,CAAS;gBAGxB,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM;IAkBZ,IAAI;IA+EV;;;OAGG;IACH,OAAO;IA8BP,OAAO,CAAC,WAAW,CAMjB;IAEF,mBAAmB,CAAC,QAAQ,EAAE,aAAa;IAI3C,gBAAgB,CAAC,QAAQ,EAAE,aAAa;IAIxC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAgB5C,eAAe;IASf,OAAO,CAAC,cAAc,CAIpB;IAMF,aAAa,CAAC,MAAM,EAAE,OAAO;IAC7B,YAAY,CAAC,MAAM,EAAE,OAAO;IAE5B,YAAY;IAEZ,KAAK,GAAI,OAAO,GAAG,UAEjB;IAEF,OAAO,aAAY;IAEnB,YAAY,aAIV;IAEF,WAAW,aAIT;IAEF,eAAe;IAIf,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAE/B,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAEjC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;IAIhC,YAAY;CACb"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAEjB,KAAK,EAEL,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,WAAW,MAAM,eAAe,CAAC;AAKxC,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE9D,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,GAAI,YAAW,iBAAiB;IACnD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAK;IACrB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEnC,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,SAAS,CAAS;gBAGxB,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM;IAWZ,IAAI;IAyFV;;;OAGG;IACH,OAAO;IA8BP,OAAO,CAAC,WAAW,CAMjB;IAEF,mBAAmB,CAAC,QAAQ,EAAE,aAAa;IAI3C,gBAAgB,CAAC,QAAQ,EAAE,aAAa;IAIxC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAgB5C,eAAe;IASf,OAAO,CAAC,cAAc,CAIpB;IAMF,aAAa,CAAC,MAAM,EAAE,OAAO;IAC7B,YAAY,CAAC,MAAM,EAAE,OAAO;IAE5B,YAAY;IAEZ,KAAK,GAAI,OAAO,GAAG,UAEjB;IAEF,OAAO,aAAY;IAEnB,YAAY,aAIV;IAEF,WAAW,aAIT;IAEF,eAAe;IAIf,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAE/B,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAEjC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;IAIhC,YAAY;CACb"}
package/dist/App.js CHANGED
@@ -1,10 +1,10 @@
1
- import { DBNode, Platform, Settings_Threejs, MediaManager, PFile, GameContext, } from "@p100-web/core";
2
- import PCanvas from "./PCanvas";
3
- import ThreeRenderer from "./ThreeEngine";
1
+ import { DBNode, Platform, MediaManager, PFile, GameContext, Settings_Threejs, } from "@p100-web/core";
2
+ import ThreeEngine from "./ThreeEngine";
4
3
  import ComponentFactory from "./ComponentFactory";
5
4
  export default class App {
6
5
  constructor(canvas, url, project_id, language) {
7
6
  this.language = 0;
7
+ this.pcanvas = null;
8
8
  this._disposed = false;
9
9
  //
10
10
  // EVENTS
@@ -22,7 +22,7 @@ export default class App {
22
22
  this.onWindowResize = () => {
23
23
  const width = window.innerWidth;
24
24
  const height = window.innerHeight;
25
- this.pcanvas.onWindowResize(width, height, true);
25
+ this.pcanvas?.onWindowResize(width, height, true);
26
26
  };
27
27
  this.catch = (error) => {
28
28
  console.error(error);
@@ -43,10 +43,8 @@ export default class App {
43
43
  this.project_id = project_id;
44
44
  this._listeners = [];
45
45
  this.language = language || 1;
46
- this.context = new GameContext(this, Platform.Threejs, MediaManager, new ThreeRenderer(new ComponentFactory()));
46
+ this.context = new GameContext(this, Platform.Threejs, MediaManager);
47
47
  this.context.setLanguage(language);
48
- this.pcanvas = new PCanvas(this.context);
49
- console.log("ok");
50
48
  }
51
49
  async init() {
52
50
  if (this._disposed)
@@ -69,10 +67,13 @@ export default class App {
69
67
  throw new Error("Missing settings for platform");
70
68
  const settings = new Settings_Threejs();
71
69
  settings.init(json.settings);
70
+ // Init engine
71
+ const engine = new ThreeEngine(new ComponentFactory());
72
+ this.context.setEngine(engine);
72
73
  // Init nodes
74
+ this.pcanvas = engine.setupCanvas(this.canvas, this.context, width, height, settings);
73
75
  this.context.setPCanvas(this.pcanvas);
74
- this.pcanvas.render(this.canvas, width, height, settings);
75
- this.pcanvas.init(settings);
76
+ this.pcanvas.render(settings, true);
76
77
  // Need to init sound on click
77
78
  this.context.setupAudioListener();
78
79
  // Prepare window
@@ -124,7 +125,7 @@ export default class App {
124
125
  this.context.stop();
125
126
  }
126
127
  this.context.disable();
127
- this.context.dispose(true);
128
+ this.context.dispose();
128
129
  this.context = null;
129
130
  }
130
131
  }
package/dist/App.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { Intersection, Object3D, Object3DEventMap, PerspectiveCamera, Raycaster, Scene, WebGLRenderer, Group } from "three";
2
+ import { type IThreePostProcessingSettings, type IPostProcessor, PCanvas, GameContext, type ICameraNode, Settings_Base, PEnvironment } from "@p100-web/core";
3
+ export default class ThreeCanvas extends PCanvas {
4
+ private _sceneNode;
5
+ private _rootNode;
6
+ private _cameraNode;
7
+ private _raycaster;
8
+ private _renderer;
9
+ private _composer;
10
+ private _clock;
11
+ private _backgroundColor;
12
+ constructor(canvas: HTMLCanvasElement, context: GameContext, width: number, height: number, settings: Settings_Base);
13
+ render(settings: Settings_Base, startLoop: boolean): void;
14
+ dispose(): void;
15
+ getComposer(): IPostProcessor | null;
16
+ updateEnvironment(): void;
17
+ setBackgroundColor(bg: string): void;
18
+ clearEnvironment(environment: PEnvironment): void;
19
+ setToneMapping(value: number): void;
20
+ setToneMappingExposure(value: number): void;
21
+ setFOV(fov: number): void;
22
+ setNearFar(near?: number, far?: number): void;
23
+ private setupShadows;
24
+ getCameraNode(): ICameraNode;
25
+ private setupPostProcessing;
26
+ /**
27
+ * Base settings has changed for post processing
28
+ */
29
+ updatePostProcessingSettings(field: string, settings: IThreePostProcessingSettings): void;
30
+ onWindowResize(width: number, height: number, resize: boolean): void;
31
+ getThreeSceneNode(): Scene;
32
+ getThreeRenderer(): WebGLRenderer | null;
33
+ getThreeRootNode(): Group<Object3DEventMap>;
34
+ getThreeCamera(): PerspectiveCamera;
35
+ startRenderLoop(): void;
36
+ stopRenderLoop(): void;
37
+ updateRendererSettings(field: string, isettings: Settings_Base): void;
38
+ updateCameraSettings(field: string, settings: Settings_Base): void;
39
+ /**
40
+ * Quality is always clamped to steps of 0.05
41
+ */
42
+ protected setQuality(quality: number): boolean;
43
+ protected updateRenderScale(value: number): void;
44
+ update: () => void;
45
+ private _colliders;
46
+ addCollider(object: Object3D): void;
47
+ removeCollider(object: Object3D): void;
48
+ getRaycaster(): Raycaster;
49
+ private raycast;
50
+ /**
51
+ * User hovers collider
52
+ */
53
+ onHover(intersects: Intersection<Object3D<Object3DEventMap>>[] | null): void;
54
+ }
55
+ //# sourceMappingURL=ThreeCanvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreeCanvas.d.ts","sourceRoot":"","sources":["../src/ThreeCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,aAAa,EACb,KAAK,EAON,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,KAAK,4BAA4B,EAGjC,KAAK,cAAc,EACnB,OAAO,EACP,WAAW,EAEX,KAAK,WAAW,EAChB,aAAa,EACb,YAAY,EACb,MAAM,gBAAgB,CAAC;AAMxB,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAC9C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,WAAW,CAAoB;IAEvC,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,SAAS,CAA8B;IAG/C,OAAO,CAAC,SAAS,CAA+B;IAEhD,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO,CAAC,gBAAgB,CAA8B;gBAGpD,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa;IAmGzB,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO;IAgBlD,OAAO;IAyBP,WAAW;IAQX,iBAAiB,IAAI,IAAI;IA4BzB,kBAAkB,CAAC,EAAE,EAAE,MAAM;IAQ7B,gBAAgB,CAAC,WAAW,EAAE,YAAY;IA2B1C,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,sBAAsB,CAAC,KAAK,EAAE,MAAM;IAIpC,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,UAAU,CAAC,IAAI,GAAE,MAAW,EAAE,GAAG,GAAE,MAAW;IAU9C,OAAO,CAAC,YAAY;IAsBpB,aAAa,IAAI,WAAW;IAQ5B,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,4BAA4B,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,4BAA4B;IAkBxC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAoB7D,iBAAiB;IAIjB,gBAAgB;IAIhB,gBAAgB;IAIhB,cAAc;IAQd,eAAe,IAAI,IAAI;IAMvB,cAAc,IAAI,IAAI;IAUtB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa;IAiB9D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa;IAiB3D;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI9C,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAYhD,MAAM,aA0CJ;IAMF,OAAO,CAAC,UAAU,CAAkB;IAEpC,WAAW,CAAC,MAAM,EAAE,QAAQ;IAI5B,cAAc,CAAC,MAAM,EAAE,QAAQ;IAO/B,YAAY;IAIZ,OAAO,CAAC,OAAO;IAgBf;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,IAAI;CAwBtE"}
@@ -0,0 +1,431 @@
1
+ import { Clock, Color, PerspectiveCamera, Raycaster, Scene, WebGLRenderer, Group, MathUtils, SRGBColorSpace, Vector2, } from "three";
2
+ import ThreeJsPostProcessor from "./postprocessing/ThreeJsPostProcessor";
3
+ import { PostProcessingSystems, Settings_Threejs, PCanvas, Workers, } from "@p100-web/core";
4
+ const _cameraColor = new Color(0x000000);
5
+ const _pointer = new Vector2();
6
+ export default class ThreeCanvas extends PCanvas {
7
+ constructor(canvas, context, width, height, settings) {
8
+ super(canvas, context, width, height);
9
+ this._renderer = null;
10
+ // PP
11
+ this._composer = null;
12
+ this._clock = new Clock();
13
+ this._backgroundColor = new Color(0x000000);
14
+ //
15
+ // UPDATE
16
+ //
17
+ this.update = () => {
18
+ if (this._disposed) {
19
+ console.log("<<<<<<<<< DISPOSED >>>>>>>>>>>");
20
+ return;
21
+ }
22
+ if (this._hasTweens) {
23
+ this._tweens.update();
24
+ if (this._tweens.allStopped()) {
25
+ this._tweens.removeAll();
26
+ this._hasTweens = false;
27
+ this._context.clearWorkFlag(Workers.Animating);
28
+ }
29
+ }
30
+ if (this._cameraUpdate)
31
+ this._cameraUpdate();
32
+ const delta = this._clock.getDelta();
33
+ if (this._hasUpdators) {
34
+ for (const update of this._updates) {
35
+ update(delta);
36
+ }
37
+ }
38
+ if (this._isRaycasting) {
39
+ this.raycast();
40
+ }
41
+ this._stats?.update(delta);
42
+ if (this._renderCounter >= this._renderInterval) {
43
+ if (this._composer)
44
+ this._composer.render();
45
+ else
46
+ this._renderer.render(this._sceneNode, this._cameraNode);
47
+ this._renderCounter = 0;
48
+ }
49
+ if (!this._isSleeping) {
50
+ this._performanceCounter?.update(delta);
51
+ }
52
+ this._renderCounter++;
53
+ };
54
+ //
55
+ // RAYCASTER
56
+ //
57
+ this._colliders = [];
58
+ // Create a Scene
59
+ const scene = new Scene();
60
+ this._sceneNode = scene;
61
+ this._sceneNode.background = _cameraColor;
62
+ // Create a Camera
63
+ const cameraNode = new PerspectiveCamera(70, 1280 / 720, 0.1, 6);
64
+ this._cameraNode = cameraNode;
65
+ this._cameraNode.layers.mask = 1;
66
+ this._raycaster = new Raycaster();
67
+ this._raycaster.layers.mask = 2;
68
+ // Add root node
69
+ const rootNode = new Group();
70
+ this._rootNode = rootNode;
71
+ this._rootNode.name = "RootNode";
72
+ // Add nodes to scene
73
+ rootNode.add(cameraNode);
74
+ scene.add(rootNode);
75
+ this._cameraNode.near = settings.camera.near;
76
+ this._cameraNode.far = settings.camera.far;
77
+ const threeSettings = settings instanceof Settings_Threejs
78
+ ? settings
79
+ : null;
80
+ let rendererArgs;
81
+ if (threeSettings !== null) {
82
+ if (threeSettings.postProcessing?.enabled === PostProcessingSystems.THREEJS) {
83
+ rendererArgs = {
84
+ powerPreference: "high-performance",
85
+ antialias: false,
86
+ stencil: threeSettings.renderer.stencil,
87
+ depth: false,
88
+ };
89
+ }
90
+ else {
91
+ rendererArgs = {
92
+ powerPreference: "high-performance",
93
+ antialias: threeSettings.renderer.antialias,
94
+ stencil: threeSettings.renderer.stencil,
95
+ depth: threeSettings.renderer.depth,
96
+ };
97
+ }
98
+ }
99
+ else {
100
+ rendererArgs = {
101
+ powerPreference: "high-performance",
102
+ antialias: true,
103
+ stencil: false,
104
+ depth: true,
105
+ };
106
+ }
107
+ const renderer = new WebGLRenderer({
108
+ ...rendererArgs,
109
+ canvas: canvas,
110
+ });
111
+ renderer.outputColorSpace = SRGBColorSpace;
112
+ this._renderer = renderer;
113
+ if (threeSettings !== null) {
114
+ renderer.toneMapping = threeSettings.renderer.toneMapping;
115
+ renderer.toneMappingExposure = threeSettings.renderer.toneMappingExposure;
116
+ this.setupShadows(threeSettings.renderer.useShadows);
117
+ }
118
+ renderer.setSize(this._sizeX, this._sizeY, true);
119
+ renderer.setClearColor(_cameraColor);
120
+ renderer.clear();
121
+ if (threeSettings?.postProcessing?.enabled === PostProcessingSystems.THREEJS) {
122
+ this.setupPostProcessing(threeSettings.postProcessing);
123
+ }
124
+ if (!this._cameraNode)
125
+ throw new Error("Missing camera");
126
+ // Work quality
127
+ if (threeSettings?.quality) {
128
+ this.initQualitySettings(threeSettings.quality);
129
+ }
130
+ this._cameraNode.aspect = width / height;
131
+ this._cameraNode.updateProjectionMatrix();
132
+ }
133
+ render(settings, startLoop) {
134
+ // Set Near/Far
135
+ this.setNearFar(settings.camera.near, settings.camera.far);
136
+ // Set background color
137
+ this.setBackgroundColor(settings.camera.background);
138
+ // Set Fov, this will update project matrix
139
+ this.setFOV(settings.camera.fov);
140
+ if (startLoop) {
141
+ // Start render loop
142
+ this.startRenderLoop();
143
+ }
144
+ }
145
+ dispose() {
146
+ super.dispose();
147
+ // console.log("[ThreeCanvas] DISPOSE()");
148
+ this.stopRenderLoop();
149
+ const environment = this.getEnvironment();
150
+ if (environment) {
151
+ environment.unrender();
152
+ }
153
+ const renderer = this._renderer;
154
+ if (this._composer !== null) {
155
+ this._composer.dispose();
156
+ this._composer = null;
157
+ }
158
+ renderer.dispose();
159
+ renderer.forceContextLoss();
160
+ this._renderer = null;
161
+ }
162
+ getComposer() {
163
+ return this._composer;
164
+ }
165
+ //
166
+ // BACKGROUND / ENVIRONMENT
167
+ //
168
+ updateEnvironment() {
169
+ if (this._environment === null) {
170
+ }
171
+ else {
172
+ const scene = this._sceneNode;
173
+ if (this._environment.environment) {
174
+ scene.environment = this._environment.getTexture();
175
+ scene.environmentRotation.y = MathUtils.degToRad(180 + this._environment.rotation);
176
+ scene.environmentIntensity = this._environment.intensity;
177
+ }
178
+ else if (scene.environment === this._environment.getTexture()) {
179
+ scene.environment = null;
180
+ }
181
+ if (this._environment.background) {
182
+ scene.background = this._environment.getTexture();
183
+ scene.backgroundRotation.y = MathUtils.degToRad(180 + this._environment.rotation);
184
+ scene.backgroundIntensity = this._environment.intensity;
185
+ }
186
+ else if (scene.background === this._environment.getTexture()) {
187
+ scene.background = null;
188
+ scene.background = this._backgroundColor;
189
+ }
190
+ }
191
+ }
192
+ setBackgroundColor(bg) {
193
+ this._backgroundColor = new Color(bg);
194
+ const current = this._sceneNode.background;
195
+ if (current && current.isColor) {
196
+ this._sceneNode.background = this._backgroundColor;
197
+ }
198
+ }
199
+ clearEnvironment(environment) {
200
+ const scene = this._sceneNode;
201
+ if (this._environment !== environment) {
202
+ this._context.error("Clear environment called with invalid PEnvironment");
203
+ return;
204
+ }
205
+ if (this._environment === null) {
206
+ this._context.error("No environtment");
207
+ return;
208
+ }
209
+ if (this._environment.environment) {
210
+ scene.environment = null;
211
+ }
212
+ if (this._environment.background) {
213
+ scene.background = null;
214
+ scene.background = this._backgroundColor;
215
+ }
216
+ this._environment = null;
217
+ }
218
+ //
219
+ // RENDERER
220
+ //
221
+ setToneMapping(value) {
222
+ this._renderer.toneMapping = value;
223
+ }
224
+ setToneMappingExposure(value) {
225
+ this._renderer.toneMappingExposure = value;
226
+ }
227
+ setFOV(fov) {
228
+ this._cameraNode.fov = fov;
229
+ this._cameraNode.updateProjectionMatrix();
230
+ }
231
+ setNearFar(near = -1, far = -1) {
232
+ if (near > 0)
233
+ this._cameraNode.near = near;
234
+ if (far > 0)
235
+ this._cameraNode.far = far;
236
+ this._cameraNode.updateProjectionMatrix();
237
+ }
238
+ //
239
+ // SHADOWS
240
+ //
241
+ setupShadows(value) {
242
+ const renderer = this._renderer;
243
+ if (value > 0) {
244
+ // Enable
245
+ renderer.shadowMap.autoUpdate = false;
246
+ console.log("TODO: manual shadows");
247
+ renderer.shadowMap.enabled = true;
248
+ renderer.shadowMap.type = (value - 1);
249
+ renderer.shadowMap.needsUpdate = true;
250
+ }
251
+ else {
252
+ // Disable
253
+ renderer.shadowMap.enabled = false;
254
+ renderer.shadowMap.needsUpdate = true;
255
+ renderer.shadowMap.autoUpdate = false;
256
+ }
257
+ renderer.clear();
258
+ }
259
+ //
260
+ // CONTROLS
261
+ //
262
+ getCameraNode() {
263
+ return this._cameraNode;
264
+ }
265
+ //
266
+ // POST PROCESSING
267
+ //
268
+ setupPostProcessing(settings) {
269
+ this._composer = new ThreeJsPostProcessor(settings, this._sceneNode, this._renderer, this._cameraNode, new Vector2(this._sizeX, this._sizeY));
270
+ }
271
+ /**
272
+ * Base settings has changed for post processing
273
+ */
274
+ updatePostProcessingSettings(field, settings) {
275
+ if (this._composer === null)
276
+ return;
277
+ // Note: If we are updating all, then we will restart the context really soon
278
+ if (field === "postProcessing.samples") {
279
+ this._composer.updateAASamples(settings.samples);
280
+ }
281
+ else {
282
+ const needsResize = this._composer?.updatePostProcessing(settings, field);
283
+ if (needsResize) {
284
+ this._composer.resizeEffects();
285
+ }
286
+ }
287
+ }
288
+ //
289
+ // WINDOW
290
+ //
291
+ onWindowResize(width, height, resize) {
292
+ super.onWindowResize(width, height, resize);
293
+ this._renderer?.setSize(width, height, true);
294
+ if (this._composer !== null) {
295
+ if (resize)
296
+ this._composer.resize(width, height);
297
+ else
298
+ this._composer.setSize(width, height);
299
+ }
300
+ if (this._cameraNode !== null) {
301
+ this._cameraNode.aspect = width / height;
302
+ this._cameraNode.updateProjectionMatrix();
303
+ }
304
+ }
305
+ //
306
+ // THREE NODES
307
+ //
308
+ getThreeSceneNode() {
309
+ return this._sceneNode;
310
+ }
311
+ getThreeRenderer() {
312
+ return this._renderer;
313
+ }
314
+ getThreeRootNode() {
315
+ return this._rootNode;
316
+ }
317
+ getThreeCamera() {
318
+ return this._cameraNode;
319
+ }
320
+ //
321
+ // RENDER LOOP
322
+ //
323
+ startRenderLoop() {
324
+ if (!this._renderer)
325
+ throw new Error("No renderer");
326
+ // Start rendering
327
+ this._renderer.setAnimationLoop(this.update);
328
+ }
329
+ stopRenderLoop() {
330
+ if (!this._renderer)
331
+ throw new Error("No renderer");
332
+ // Stop rendering
333
+ this._renderer.setAnimationLoop(null);
334
+ }
335
+ //
336
+ // SETTINGS
337
+ //
338
+ updateRendererSettings(field, isettings) {
339
+ if (isettings instanceof Settings_Threejs) {
340
+ const settings = isettings.renderer;
341
+ if (field === "renderer" || field === "renderer.toneMapping") {
342
+ this.setToneMapping(settings.toneMapping);
343
+ }
344
+ if (field === "renderer" || field === "renderer.toneMappingExposure") {
345
+ this.setToneMappingExposure(settings.toneMappingExposure);
346
+ }
347
+ }
348
+ else {
349
+ console.log("[ThreeCanvas] updateRendererSettings() skipped, settings was not supported", isettings);
350
+ }
351
+ }
352
+ updateCameraSettings(field, settings) {
353
+ if (field === "camera" || field === "camera.fov") {
354
+ this.setFOV(settings.camera.fov);
355
+ }
356
+ if (field === "camera" ||
357
+ field === "camera.near" ||
358
+ field === "camera.far") {
359
+ this.setNearFar(settings.camera.near, settings.camera.far);
360
+ }
361
+ }
362
+ //
363
+ // QUALITY
364
+ //
365
+ /**
366
+ * Quality is always clamped to steps of 0.05
367
+ */
368
+ setQuality(quality) {
369
+ return this._composer?.setCurrentQuality(quality) || false;
370
+ }
371
+ updateRenderScale(value) {
372
+ if (this._composer) {
373
+ this._composer.setPixelRatio(value);
374
+ }
375
+ else {
376
+ this._renderer.setPixelRatio(value);
377
+ }
378
+ }
379
+ addCollider(object) {
380
+ this._colliders.push(object);
381
+ }
382
+ removeCollider(object) {
383
+ const index = this._colliders.indexOf(object);
384
+ if (index >= 0) {
385
+ this._colliders.splice(index, 1);
386
+ }
387
+ }
388
+ getRaycaster() {
389
+ return this._raycaster;
390
+ }
391
+ raycast() {
392
+ const raycaster = this._raycaster;
393
+ // Get pointer, null if outside canvas
394
+ if (this._hoverCanvas) {
395
+ _pointer.x = this._pointerX;
396
+ _pointer.y = this._pointerY;
397
+ raycaster.setFromCamera(_pointer, this._cameraNode);
398
+ const intersects = raycaster.intersectObjects(this._colliders, false);
399
+ this.onHover(intersects.length > 0 ? intersects : null);
400
+ }
401
+ else {
402
+ this.onHover(null);
403
+ }
404
+ }
405
+ /**
406
+ * User hovers collider
407
+ */
408
+ onHover(intersects) {
409
+ let object3D = null;
410
+ let distance = 999999;
411
+ let point = null;
412
+ if (intersects !== null) {
413
+ for (const intersect of intersects) {
414
+ // Check that we hover a valid target
415
+ if (intersect.object.visible && intersect.distance < distance) {
416
+ object3D = intersect.object;
417
+ distance = intersect.distance;
418
+ point = intersect.point;
419
+ }
420
+ }
421
+ }
422
+ if (object3D === null) {
423
+ this.setHovered(null, null);
424
+ return;
425
+ }
426
+ const collider = object3D.collider || object3D.userData.collider;
427
+ if (collider)
428
+ this.setHovered(collider.node, point);
429
+ }
430
+ }
431
+ //# sourceMappingURL=ThreeCanvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreeCanvas.js","sourceRoot":"","sources":["../src/ThreeCanvas.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { GameContext, ICameraControls, ICameraSettings, IComponentFactory, IPCanvas, IPNodeRenderer, IStats, IVector3, type IEngine } from "@p100-web/core";
1
+ import { GameContext, type ICameraControls, type ICameraSettings, type IComponentFactory, type IPNodeRenderer, type IStats, type IVector3, type IEngine, Settings_Base } from "@p100-web/core";
2
+ import ThreeCanvas from "./ThreeCanvas";
2
3
  import { type IAudioListener } from "@p100-web/core";
3
4
  import EnvironmentLoader from "./media/EnvironmentLoader";
4
5
  import ImageLoader from "./media/ImageLoader";
@@ -8,10 +9,12 @@ import AudioLoader from "./media/AudioLoader";
8
9
  import ComponentFactory from "./ComponentFactory";
9
10
  export default class ThreeEngine implements IEngine {
10
11
  private _componentFactory;
12
+ private _pcanvas;
11
13
  constructor(componentFactory: IComponentFactory);
12
14
  getComponentFactory(): ComponentFactory;
13
15
  getCameraForwardVector(context: GameContext): IVector3;
14
- setupPCanvas(context: GameContext): IPCanvas;
16
+ setupCanvas(canvas: HTMLCanvasElement, context: GameContext, width: number, height: number, settings: Settings_Base): ThreeCanvas;
17
+ getCanvas(): ThreeCanvas | null;
15
18
  setupNodeRenderer(): IPNodeRenderer;
16
19
  setupCameraControls(context: GameContext, cameraSettings: ICameraSettings | null): ICameraControls | null;
17
20
  setupAudioListener(): IAudioListener;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeEngine.d.ts","sourceRoot":"","sources":["../src/ThreeEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,MAAM,EACN,QAAQ,EACR,KAAK,OAAO,EACb,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAC1D,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,WAAY,YAAW,OAAO;IACjD,OAAO,CAAC,iBAAiB,CAAoB;gBAEjC,gBAAgB,EAAE,iBAAiB;IAQ/C,mBAAmB,IAAI,gBAAgB;IAQvC,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ;IAatD,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ;IAQ5C,iBAAiB,IAAI,cAAc;IAQnC,mBAAmB,CACjB,OAAO,EAAE,WAAW,EACpB,cAAc,EAAE,eAAe,GAAG,IAAI,GACrC,eAAe,GAAG,IAAI;IAoCzB,kBAAkB,IAAI,cAAc;IAQpC,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAInD,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAInD,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAInD,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAInD,sBAAsB,CAAC,OAAO,EAAE,WAAW;IAQ3C,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;CAUvC"}
1
+ {"version":3,"file":"ThreeEngine.d.ts","sourceRoot":"","sources":["../src/ThreeEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,aAAa,EACd,MAAM,gBAAgB,CAAC;AAKxB,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAC1D,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,WAAY,YAAW,OAAO;IACjD,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAA4B;gBAEhC,gBAAgB,EAAE,iBAAiB;IAQ/C,mBAAmB,IAAI,gBAAgB;IAQvC,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ;IAatD,WAAW,CACT,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,GACtB,WAAW;IAKd,SAAS,IAAI,WAAW,GAAG,IAAI;IAQ/B,iBAAiB,IAAI,cAAc;IAQnC,mBAAmB,CACjB,OAAO,EAAE,WAAW,EACpB,cAAc,EAAE,eAAe,GAAG,IAAI,GACrC,eAAe,GAAG,IAAI;IAoCzB,kBAAkB,IAAI,cAAc;IAQpC,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAInD,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAInD,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAInD,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAInD,sBAAsB,CAAC,OAAO,EAAE,WAAW;IAQ3C,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;CAUvC"}