@p100-web/core-three 100.0.66 → 100.0.67

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 (46) 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 +430 -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.js +1 -1
  14. package/dist/ThreeNodeRenderer.js.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/media/EnvironmentLoader.js.map +1 -1
  20. package/dist/media/ImageLoader.d.ts +1 -1
  21. package/dist/media/ImageLoader.d.ts.map +1 -1
  22. package/dist/media/ModelLoader.js.map +1 -1
  23. package/dist/media/VideoLoader.d.ts +1 -1
  24. package/dist/media/VideoLoader.d.ts.map +1 -1
  25. package/dist/pcomponents/PCollider.js.map +1 -1
  26. package/dist/pcomponents/PEnvironment.d.ts +1 -1
  27. package/dist/pcomponents/PEnvironment.d.ts.map +1 -1
  28. package/dist/pcomponents/PEnvironment.js.map +1 -1
  29. package/dist/pcomponents/PModelGLTF.js.map +1 -1
  30. package/dist/pcomponents/PProjectRoot.js.map +1 -1
  31. package/dist/pcomponents/PSlider.js.map +1 -1
  32. package/dist/three/FreeCameraControls.d.ts +2 -2
  33. package/dist/three/FreeCameraControls.d.ts.map +1 -1
  34. package/dist/three/FreeCameraControls.js.map +1 -1
  35. package/dist/three/OrbitCameraControls.d.ts +2 -2
  36. package/dist/three/OrbitCameraControls.d.ts.map +1 -1
  37. package/dist/three/OrbitCameraControls.js +1 -0
  38. package/dist/three/OrbitCameraControls.js.map +1 -1
  39. package/dist/three/VrCameraControls.d.ts +2 -2
  40. package/dist/three/VrCameraControls.d.ts.map +1 -1
  41. package/dist/three/VrCameraControls.js.map +1 -1
  42. package/package.json +2 -8
  43. package/dist/PCanvas.d.ts +0 -171
  44. package/dist/PCanvas.d.ts.map +0 -1
  45. package/dist/PCanvas.js +0 -992
  46. 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":"AAAA,OAAO,EACL,MAAM,EACN,QAAQ,EACR,gBAAgB,EAEhB,YAAY,EAEZ,KAAK,EACL,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,OAAO,aAAa,MAAM,eAAe,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAMlD,MAAM,CAAC,OAAO,OAAO,GAAG;IAYtB,YACE,MAAyB,EACzB,GAAW,EACX,UAAkB,EAClB,QAAgB;QAZlB,aAAQ,GAAW,CAAC,CAAC;QAMb,cAAS,GAAG,KAAK,CAAC;QAqI1B,EAAE;QACF,UAAU;QACV,EAAE;QAEM,gBAAW,GAAG,CAAC,CAAM,EAAE,EAAE;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACjC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC;QA+BF,EAAE;QACF,mBAAmB;QACnB,EAAE;QAEM,mBAAc,GAAG,GAAG,EAAE;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC;QAWF,UAAK,GAAG,CAAC,KAAU,EAAE,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,YAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAEnB,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;QAEF,gBAAW,GAAG,GAAG,EAAE;YACjB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;QAzMA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAC5B,IAAI,EACJ,QAAQ,CAAC,OAAO,EAChB,YAAY,EACZ,IAAI,aAAa,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAC1C,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjE,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;QAElC,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,GAAG,aAAa,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,QAAQ,EAAE,CAC7D,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEhE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAErE,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7B,aAAa;QACb,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE1D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5B,8BAA8B;QAC9B,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAElC,iBAAiB;QACjB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEvD,aAAa;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE7B,cAAc;QACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE5C,iBAAiB;QACjB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CACzB,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CACpD,CAAC;QACF,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE/D,cAAc;QACd,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CACjC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CACpD,CAAC;QACF,YAAY,CAAC,GAAG,CAAC,CAAC,WAAgB,EAAE,EAAE;YACpC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CACjC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,CAC5C,CAAC;YACF,IAAI,CAAC,OAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAEtB,sBAAsB;QACtB,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvD,iBAAiB;QACjB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE1D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAcD,mBAAmB,CAAC,QAAuB;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,gBAAgB,CAAC,QAAuB;QACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,OAAe;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,OAAO;aACjB;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACjE,OAAO,EAAE,CAAC;IACZ,CAAC;IAYD,EAAE;IACF,qBAAqB;IACrB,EAAE;IAEF,aAAa,CAAC,MAAe,IAAG,CAAC;IACjC,YAAY,CAAC,MAAe,IAAG,CAAC;IAEhC,YAAY,KAAI,CAAC;IAoBjB,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,KAAY,IAAS,CAAC;IAElC,aAAa,CAAC,KAAY,IAAS,CAAC;IAEpC,KAAK,CAAC,GAAW,EAAE,OAAa;QAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,KAAI,CAAC;CAClB"}
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;IAkGzB,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,430 @@
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
+ // Add nodes to scene
72
+ rootNode.add(cameraNode);
73
+ scene.add(rootNode);
74
+ this._cameraNode.near = settings.camera.near;
75
+ this._cameraNode.far = settings.camera.far;
76
+ const threeSettings = settings instanceof Settings_Threejs
77
+ ? settings
78
+ : null;
79
+ let rendererArgs;
80
+ if (threeSettings !== null) {
81
+ if (threeSettings.postProcessing?.enabled === PostProcessingSystems.THREEJS) {
82
+ rendererArgs = {
83
+ powerPreference: "high-performance",
84
+ antialias: false,
85
+ stencil: threeSettings.renderer.stencil,
86
+ depth: false,
87
+ };
88
+ }
89
+ else {
90
+ rendererArgs = {
91
+ powerPreference: "high-performance",
92
+ antialias: threeSettings.renderer.antialias,
93
+ stencil: threeSettings.renderer.stencil,
94
+ depth: threeSettings.renderer.depth,
95
+ };
96
+ }
97
+ }
98
+ else {
99
+ rendererArgs = {
100
+ powerPreference: "high-performance",
101
+ antialias: true,
102
+ stencil: false,
103
+ depth: true,
104
+ };
105
+ }
106
+ const renderer = new WebGLRenderer({
107
+ ...rendererArgs,
108
+ canvas: canvas,
109
+ });
110
+ renderer.outputColorSpace = SRGBColorSpace;
111
+ this._renderer = renderer;
112
+ if (threeSettings !== null) {
113
+ renderer.toneMapping = threeSettings.renderer.toneMapping;
114
+ renderer.toneMappingExposure = threeSettings.renderer.toneMappingExposure;
115
+ this.setupShadows(threeSettings.renderer.useShadows);
116
+ }
117
+ renderer.setSize(this._sizeX, this._sizeY, true);
118
+ renderer.setClearColor(_cameraColor);
119
+ renderer.clear();
120
+ if (threeSettings?.postProcessing?.enabled === PostProcessingSystems.THREEJS) {
121
+ this.setupPostProcessing(threeSettings.postProcessing);
122
+ }
123
+ if (!this._cameraNode)
124
+ throw new Error("Missing camera");
125
+ // Work quality
126
+ if (threeSettings?.quality) {
127
+ this.initQualitySettings(threeSettings.quality);
128
+ }
129
+ this._cameraNode.aspect = width / height;
130
+ this._cameraNode.updateProjectionMatrix();
131
+ }
132
+ render(settings, startLoop) {
133
+ // Set Near/Far
134
+ this.setNearFar(settings.camera.near, settings.camera.far);
135
+ // Set background color
136
+ this.setBackgroundColor(settings.camera.background);
137
+ // Set Fov, this will update project matrix
138
+ this.setFOV(settings.camera.fov);
139
+ if (startLoop) {
140
+ // Start render loop
141
+ this.startRenderLoop();
142
+ }
143
+ }
144
+ dispose() {
145
+ super.dispose();
146
+ // console.log("[ThreeCanvas] DISPOSE()");
147
+ this.stopRenderLoop();
148
+ const environment = this.getEnvironment();
149
+ if (environment) {
150
+ environment.unrender();
151
+ }
152
+ const renderer = this._renderer;
153
+ if (this._composer !== null) {
154
+ this._composer.dispose();
155
+ this._composer = null;
156
+ }
157
+ renderer.dispose();
158
+ renderer.forceContextLoss();
159
+ this._renderer = null;
160
+ }
161
+ getComposer() {
162
+ return this._composer;
163
+ }
164
+ //
165
+ // BACKGROUND / ENVIRONMENT
166
+ //
167
+ updateEnvironment() {
168
+ if (this._environment === null) {
169
+ }
170
+ else {
171
+ const scene = this._sceneNode;
172
+ if (this._environment.environment) {
173
+ scene.environment = this._environment.getTexture();
174
+ scene.environmentRotation.y = MathUtils.degToRad(180 + this._environment.rotation);
175
+ scene.environmentIntensity = this._environment.intensity;
176
+ }
177
+ else if (scene.environment === this._environment.getTexture()) {
178
+ scene.environment = null;
179
+ }
180
+ if (this._environment.background) {
181
+ scene.background = this._environment.getTexture();
182
+ scene.backgroundRotation.y = MathUtils.degToRad(180 + this._environment.rotation);
183
+ scene.backgroundIntensity = this._environment.intensity;
184
+ }
185
+ else if (scene.background === this._environment.getTexture()) {
186
+ scene.background = null;
187
+ scene.background = this._backgroundColor;
188
+ }
189
+ }
190
+ }
191
+ setBackgroundColor(bg) {
192
+ this._backgroundColor = new Color(bg);
193
+ const current = this._sceneNode.background;
194
+ if (current && current.isColor) {
195
+ this._sceneNode.background = this._backgroundColor;
196
+ }
197
+ }
198
+ clearEnvironment(environment) {
199
+ const scene = this._sceneNode;
200
+ if (this._environment !== environment) {
201
+ this._context.error("Clear environment called with invalid PEnvironment");
202
+ return;
203
+ }
204
+ if (this._environment === null) {
205
+ this._context.error("No environtment");
206
+ return;
207
+ }
208
+ if (this._environment.environment) {
209
+ scene.environment = null;
210
+ }
211
+ if (this._environment.background) {
212
+ scene.background = null;
213
+ scene.background = this._backgroundColor;
214
+ }
215
+ this._environment = null;
216
+ }
217
+ //
218
+ // RENDERER
219
+ //
220
+ setToneMapping(value) {
221
+ this._renderer.toneMapping = value;
222
+ }
223
+ setToneMappingExposure(value) {
224
+ this._renderer.toneMappingExposure = value;
225
+ }
226
+ setFOV(fov) {
227
+ this._cameraNode.fov = fov;
228
+ this._cameraNode.updateProjectionMatrix();
229
+ }
230
+ setNearFar(near = -1, far = -1) {
231
+ if (near > 0)
232
+ this._cameraNode.near = near;
233
+ if (far > 0)
234
+ this._cameraNode.far = far;
235
+ this._cameraNode.updateProjectionMatrix();
236
+ }
237
+ //
238
+ // SHADOWS
239
+ //
240
+ setupShadows(value) {
241
+ const renderer = this._renderer;
242
+ if (value > 0) {
243
+ // Enable
244
+ renderer.shadowMap.autoUpdate = false;
245
+ console.log("TODO: manual shadows");
246
+ renderer.shadowMap.enabled = true;
247
+ renderer.shadowMap.type = (value - 1);
248
+ renderer.shadowMap.needsUpdate = true;
249
+ }
250
+ else {
251
+ // Disable
252
+ renderer.shadowMap.enabled = false;
253
+ renderer.shadowMap.needsUpdate = true;
254
+ renderer.shadowMap.autoUpdate = false;
255
+ }
256
+ renderer.clear();
257
+ }
258
+ //
259
+ // CONTROLS
260
+ //
261
+ getCameraNode() {
262
+ return this._cameraNode;
263
+ }
264
+ //
265
+ // POST PROCESSING
266
+ //
267
+ setupPostProcessing(settings) {
268
+ this._composer = new ThreeJsPostProcessor(settings, this._sceneNode, this._renderer, this._cameraNode, new Vector2(this._sizeX, this._sizeY));
269
+ }
270
+ /**
271
+ * Base settings has changed for post processing
272
+ */
273
+ updatePostProcessingSettings(field, settings) {
274
+ if (this._composer === null)
275
+ return;
276
+ // Note: If we are updating all, then we will restart the context really soon
277
+ if (field === "postProcessing.samples") {
278
+ this._composer.updateAASamples(settings.samples);
279
+ }
280
+ else {
281
+ const needsResize = this._composer?.updatePostProcessing(settings, field);
282
+ if (needsResize) {
283
+ this._composer.resizeEffects();
284
+ }
285
+ }
286
+ }
287
+ //
288
+ // WINDOW
289
+ //
290
+ onWindowResize(width, height, resize) {
291
+ super.onWindowResize(width, height, resize);
292
+ this._renderer?.setSize(width, height, true);
293
+ if (this._composer !== null) {
294
+ if (resize)
295
+ this._composer.resize(width, height);
296
+ else
297
+ this._composer.setSize(width, height);
298
+ }
299
+ if (this._cameraNode !== null) {
300
+ this._cameraNode.aspect = width / height;
301
+ this._cameraNode.updateProjectionMatrix();
302
+ }
303
+ }
304
+ //
305
+ // THREE NODES
306
+ //
307
+ getThreeSceneNode() {
308
+ return this._sceneNode;
309
+ }
310
+ getThreeRenderer() {
311
+ return this._renderer;
312
+ }
313
+ getThreeRootNode() {
314
+ return this._rootNode;
315
+ }
316
+ getThreeCamera() {
317
+ return this._cameraNode;
318
+ }
319
+ //
320
+ // RENDER LOOP
321
+ //
322
+ startRenderLoop() {
323
+ if (!this._renderer)
324
+ throw new Error("No renderer");
325
+ // Start rendering
326
+ this._renderer.setAnimationLoop(this.update);
327
+ }
328
+ stopRenderLoop() {
329
+ if (!this._renderer)
330
+ throw new Error("No renderer");
331
+ // Stop rendering
332
+ this._renderer.setAnimationLoop(null);
333
+ }
334
+ //
335
+ // SETTINGS
336
+ //
337
+ updateRendererSettings(field, isettings) {
338
+ if (isettings instanceof Settings_Threejs) {
339
+ const settings = isettings.renderer;
340
+ if (field === "renderer" || field === "renderer.toneMapping") {
341
+ this.setToneMapping(settings.toneMapping);
342
+ }
343
+ if (field === "renderer" || field === "renderer.toneMappingExposure") {
344
+ this.setToneMappingExposure(settings.toneMappingExposure);
345
+ }
346
+ }
347
+ else {
348
+ console.log("[ThreeCanvas] updateRendererSettings() skipped, settings was not supported", isettings);
349
+ }
350
+ }
351
+ updateCameraSettings(field, settings) {
352
+ if (field === "camera" || field === "camera.fov") {
353
+ this.setFOV(settings.camera.fov);
354
+ }
355
+ if (field === "camera" ||
356
+ field === "camera.near" ||
357
+ field === "camera.far") {
358
+ this.setNearFar(settings.camera.near, settings.camera.far);
359
+ }
360
+ }
361
+ //
362
+ // QUALITY
363
+ //
364
+ /**
365
+ * Quality is always clamped to steps of 0.05
366
+ */
367
+ setQuality(quality) {
368
+ return this._composer?.setCurrentQuality(quality) || false;
369
+ }
370
+ updateRenderScale(value) {
371
+ if (this._composer) {
372
+ this._composer.setPixelRatio(value);
373
+ }
374
+ else {
375
+ this._renderer.setPixelRatio(value);
376
+ }
377
+ }
378
+ addCollider(object) {
379
+ this._colliders.push(object);
380
+ }
381
+ removeCollider(object) {
382
+ const index = this._colliders.indexOf(object);
383
+ if (index >= 0) {
384
+ this._colliders.splice(index, 1);
385
+ }
386
+ }
387
+ getRaycaster() {
388
+ return this._raycaster;
389
+ }
390
+ raycast() {
391
+ const raycaster = this._raycaster;
392
+ // Get pointer, null if outside canvas
393
+ if (this._hoverCanvas) {
394
+ _pointer.x = this._pointerX;
395
+ _pointer.y = this._pointerY;
396
+ raycaster.setFromCamera(_pointer, this._cameraNode);
397
+ const intersects = raycaster.intersectObjects(this._colliders, false);
398
+ this.onHover(intersects.length > 0 ? intersects : null);
399
+ }
400
+ else {
401
+ this.onHover(null);
402
+ }
403
+ }
404
+ /**
405
+ * User hovers collider
406
+ */
407
+ onHover(intersects) {
408
+ let object3D = null;
409
+ let distance = 999999;
410
+ let point = null;
411
+ if (intersects !== null) {
412
+ for (const intersect of intersects) {
413
+ // Check that we hover a valid target
414
+ if (intersect.object.visible && intersect.distance < distance) {
415
+ object3D = intersect.object;
416
+ distance = intersect.distance;
417
+ point = intersect.point;
418
+ }
419
+ }
420
+ }
421
+ if (object3D === null) {
422
+ this.setHovered(null, null);
423
+ return;
424
+ }
425
+ const collider = object3D.collider || object3D.userData.collider;
426
+ if (collider)
427
+ this.setHovered(collider.node, point);
428
+ }
429
+ }
430
+ //# 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"}