archgine 1.0.36 → 1.0.38

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 (50) hide show
  1. package/lib/applications/app-cvs.d.ts +11 -0
  2. package/lib/applications/app-offscreen.d.ts +11 -6
  3. package/lib/applications/application.d.ts +13 -10
  4. package/lib/controls/interactive-controls.d.ts +2 -2
  5. package/lib/controls/orbit-controller.d.ts +2 -2
  6. package/lib/controls/orbit-controls.d.ts +8 -8
  7. package/lib/core/camera2.d.ts +3 -16
  8. package/lib/core/ope-view.d.ts +40 -0
  9. package/lib/core/view.d.ts +4 -6
  10. package/lib/environment.worker.js +2 -2
  11. package/lib/extras/adapter.d.ts +23 -0
  12. package/lib/extras/chef.d.ts +3 -9
  13. package/lib/extras/interfaces.d.ts +2 -0
  14. package/lib/extras/svg-app.d.ts +2 -3
  15. package/lib/extras/svg-chef.d.ts +4 -5
  16. package/lib/geometries/circle-geo2.d.ts +14 -0
  17. package/lib/geometries/geo2.d.ts +21 -7
  18. package/lib/geometries/polygon-geo2.d.ts +6 -0
  19. package/lib/geometries/polyline-geo2.d.ts +22 -0
  20. package/lib/helpers/axes-helper.d.ts +2 -3
  21. package/lib/helpers/axes-helper2.d.ts +19 -0
  22. package/lib/helpers/canvas-helper.d.ts +5 -5
  23. package/lib/index.d.ts +2 -1
  24. package/lib/index.mjs +7321 -6714
  25. package/lib/index.umd.js +31 -30
  26. package/lib/interfaces.d.ts +45 -119
  27. package/lib/materials/mat2.d.ts +1 -0
  28. package/lib/materials/text-mat2.d.ts +53 -0
  29. package/lib/objects/shape2.d.ts +15 -7
  30. package/lib/renderer.worker.js +12842 -0
  31. package/lib/renderers/binding-states.d.ts +4 -4
  32. package/lib/renderers/buffer-renderer.d.ts +5 -3
  33. package/lib/renderers/cvs-renderer.d.ts +1 -1
  34. package/lib/renderers/render-target.d.ts +2 -2
  35. package/lib/renderers/renderer.d.ts +1 -1
  36. package/lib/renders/render-target.d.ts +2 -2
  37. package/lib/scenes/loading-scene.d.ts +4 -4
  38. package/lib/{extras → scenes}/main-scene.d.ts +6 -3
  39. package/lib/scenes/scene.d.ts +0 -1
  40. package/lib/scenes/svg-scene.d.ts +3 -4
  41. package/lib/shapes2/arrow.d.ts +6 -0
  42. package/lib/shapes2/axes.d.ts +35 -0
  43. package/lib/shapes2/circle.d.ts +10 -0
  44. package/lib/shapes2/polygon.d.ts +9 -0
  45. package/lib/shapes2/text.d.ts +21 -0
  46. package/lib/textures/texture.d.ts +2 -2
  47. package/lib/utils/svg.d.ts +7 -0
  48. package/lib/workers/renderer.worker.d.ts +1 -0
  49. package/package.json +1 -1
  50. package/lib/geometries/path2.d.ts +0 -20
@@ -0,0 +1,11 @@
1
+ import { Application } from './application';
2
+ import { IAppOffscreenConfig } from './app-offscreen';
3
+ import { MainScene } from '../scenes/main-scene';
4
+ export declare class AppCvs<Config extends IAppOffscreenConfig> extends Application<Config> {
5
+ params: Config;
6
+ mainScene: MainScene<Config>;
7
+ constructor(config?: Config);
8
+ destroy(): void;
9
+ load(url?: string, layers?: string[]): Promise<void>;
10
+ trans2MainScene(): void;
11
+ }
@@ -1,14 +1,19 @@
1
- import { default as EventDispatcher } from '../core/event-dispatcher';
2
1
  import { IApplicationConfig } from './application';
2
+ import { OpeView } from '../core/ope-view';
3
3
  export interface IAppOffscreenConfig extends IApplicationConfig {
4
4
  }
5
- export declare class AppOffscreen<Config extends IAppOffscreenConfig> extends EventDispatcher {
6
- readonly name: string;
5
+ export declare class AppOffscreen<Config extends IAppOffscreenConfig> {
7
6
  params: Config;
8
- private readonly runningHandler;
7
+ cvs: OffscreenCanvas;
8
+ worker: Worker;
9
+ view: OpeView<Config>;
10
+ readonly workerMessageHandler: (e: MessageEvent) => void;
9
11
  constructor(config?: Config);
10
12
  destroy(): void;
13
+ bindEvents(): void;
14
+ unbindEvents(): void;
15
+ handleWorkerMessage(e: MessageEvent): void;
16
+ resize(): void;
17
+ load(url: string, layers?: string[], lv?: number): Promise<void>;
11
18
  start(): void;
12
- /** @description application's lifeCycle */
13
- running(): void;
14
19
  }
@@ -1,9 +1,9 @@
1
+ import { IRenderer2, IRenderer2Config } from '../interfaces';
1
2
  import { default as EventDispatcher } from '../core/event-dispatcher';
2
- import { IRenderer2Config } from '../interfaces';
3
- import { default as Scene } from '../scenes/scene';
4
3
  import { default as Box2 } from '../math/box2';
5
- import { default as Renderer2 } from '../renders/renderer2';
6
4
  import { View } from '../core/view';
5
+ import { EffectComposer } from '../effects/effect-composer';
6
+ import { default as Scene } from '../scenes/scene';
7
7
  export interface IApplicationConfig extends IRenderer2Config {
8
8
  frameInterval?: number;
9
9
  syncDelay?: number;
@@ -11,7 +11,7 @@ export interface IApplicationConfig extends IRenderer2Config {
11
11
  }
12
12
  /**
13
13
  * @author Dio Zhu
14
- * @since 2024.8.22
14
+ * @since 2024.11.13
15
15
  */
16
16
  export declare abstract class Application<Config extends IApplicationConfig> extends EventDispatcher {
17
17
  name: string;
@@ -19,13 +19,15 @@ export declare abstract class Application<Config extends IApplicationConfig> ext
19
19
  scenes: Scene[];
20
20
  nextScenes: Scene[];
21
21
  nextBoundingBox: Box2;
22
- renderer: Renderer2<Config>;
23
- view: View<Config>;
24
- runningHandler: () => void;
22
+ loadingScene: Scene;
23
+ composer: EffectComposer;
24
+ renderer: IRenderer2;
25
+ view: View<any>;
26
+ readonly runningHandler: (time: DOMHighResTimeStamp) => void;
25
27
  protected constructor(config?: Config);
26
28
  destroy(): void;
27
- setViewAreaLimit(v: number): void;
28
- updateScenes(): void;
29
+ get isLoadingScene(): boolean;
30
+ trans2LoadingScene(): void;
29
31
  hasScene(scene: Scene): boolean;
30
32
  pushScene(scene: Scene): void;
31
33
  clearScenes(): void;
@@ -35,5 +37,6 @@ export declare abstract class Application<Config extends IApplicationConfig> ext
35
37
  trans2Scenes(...scenes: Scene[]): void;
36
38
  start(): void;
37
39
  /** @description application's lifeCycle */
38
- running(): void;
40
+ running(time: DOMHighResTimeStamp): void;
41
+ stop(): void;
39
42
  }
@@ -1,10 +1,10 @@
1
1
  import { OrbitControls } from './orbit-controls';
2
- import { ICamera2, ICanvas } from '../interfaces';
2
+ import { ICamera2 } from '../interfaces';
3
3
  export declare class InteractiveControls extends OrbitControls {
4
4
  name: string;
5
5
  mouseButtons: any;
6
6
  private readonly clickHandler;
7
- constructor(camera: ICamera2, domElement: ICanvas);
7
+ constructor(camera: ICamera2, domElement: HTMLElement);
8
8
  destroy(): void;
9
9
  bindMapEvents(): void;
10
10
  unbindMapEvents(): void;
@@ -1,6 +1,6 @@
1
- import { ICamera2, IVector2 } from '../interfaces';
1
+ import { ICamera2, IOrbitController, IVector2 } from '../interfaces';
2
2
  import { default as EventDispatcher } from '../core/event-dispatcher';
3
- export declare class OrbitController extends EventDispatcher {
3
+ export declare class OrbitController extends EventDispatcher implements IOrbitController {
4
4
  name: string;
5
5
  isSvg: boolean;
6
6
  dom: HTMLElement;
@@ -1,6 +1,6 @@
1
1
  import { default as Vector2 } from '../math/vector2';
2
2
  import { default as EventDispatcher } from '../core/event-dispatcher';
3
- import { ICamera2, ICanvas, IMatrix3, IVector2 } from '../interfaces';
3
+ import { ICamera2, IMatrix3, IVector2 } from '../interfaces';
4
4
  interface IScene {
5
5
  }
6
6
  export interface IOrbitControlsConfig {
@@ -22,7 +22,7 @@ export interface IOrbitControlsConfig {
22
22
  export declare class OrbitControls extends EventDispatcher {
23
23
  name: string;
24
24
  camera: ICamera2;
25
- domElement: ICanvas;
25
+ domElement: HTMLElement;
26
26
  domOffset: Vector2;
27
27
  enableNegateControl: boolean;
28
28
  focus: Vector2;
@@ -44,20 +44,22 @@ export declare class OrbitControls extends EventDispatcher {
44
44
  ONE: TouchEnum;
45
45
  TWO: TouchEnum;
46
46
  };
47
- private _lastPosition;
48
47
  target0: IVector2;
49
48
  position0: IVector2;
50
49
  scene: IScene | null;
51
50
  enabled: boolean;
52
51
  state: number;
53
52
  EPS: number;
53
+ scaled: number;
54
+ rotateTheta: number;
55
+ enableDamping: boolean;
56
+ dampingFactor: number;
57
+ private _lastPosition;
54
58
  private pointers;
55
59
  private pointerPositions;
56
- scaled: number;
57
60
  private rotateStart;
58
61
  private rotateEnd;
59
62
  private rotateDelta;
60
- rotateTheta: number;
61
63
  private panStart;
62
64
  private panEnd;
63
65
  private panDelta;
@@ -66,15 +68,13 @@ export declare class OrbitControls extends EventDispatcher {
66
68
  private dollyEnd;
67
69
  private dollyDelta;
68
70
  private dollyOffset;
69
- enableDamping: boolean;
70
- dampingFactor: number;
71
71
  private readonly contextMenuHandler;
72
72
  private readonly pointerDownHandler;
73
73
  private readonly pointerUpHandler;
74
74
  private readonly pointerCancelHandler;
75
75
  private readonly pointerMoveHandler;
76
76
  private readonly wheelHandler;
77
- constructor(camera: ICamera2, domElement: ICanvas);
77
+ constructor(camera: ICamera2, domElement: HTMLElement);
78
78
  destroy(): void;
79
79
  update(): void;
80
80
  pan(deltaX: number, deltaY: number): void;
@@ -1,28 +1,15 @@
1
1
  import { default as Vector2 } from '../math/vector2';
2
- import { ICamera2, ICamera2Position, IObject2, IVector2 } from '../interfaces';
2
+ import { ICamera2, ICamera2Config, ICamera2Position, IObject2, IVector2 } from '../interfaces';
3
3
  import { default as Matrix3 } from '../math/matrix3';
4
4
  import { Object2 } from './object2';
5
5
  import { default as Box2 } from '../math/box2';
6
- export interface ICamera2Config {
7
- width?: number;
8
- height?: number;
9
- aspect?: number;
10
- left?: number;
11
- right?: number;
12
- top?: number;
13
- bottom?: number;
14
- eye?: number[];
15
- up?: number[];
16
- helperEnable?: boolean;
17
- flipY?: boolean;
18
- }
19
6
  interface IView {
20
7
  enabled: boolean;
21
8
  width: number;
22
9
  height: number;
23
10
  offset: IVector2;
24
11
  }
25
- export default class Camera2<Config extends ICamera2Config = ICamera2Config> extends Object2 implements ICamera2 {
12
+ export default class Camera2<Config extends ICamera2Config> extends Object2 implements ICamera2 {
26
13
  readonly isCamera: boolean;
27
14
  type: string;
28
15
  name: string;
@@ -61,7 +48,7 @@ export default class Camera2<Config extends ICamera2Config = ICamera2Config> ext
61
48
  toJSON(): any;
62
49
  fromJSON(o: any): void;
63
50
  clone(): any;
64
- copy(source: Camera2, recursive?: boolean): IObject2;
51
+ copy(source: Camera2<Config>, recursive?: boolean): IObject2;
65
52
  }
66
53
  export declare enum CAMERA_ENUM {
67
54
  UPDATE = "update"
@@ -0,0 +1,40 @@
1
+ import { IBox2, ICamera2, ICamera2Config, ICanvas, IRenderer2Config, IView } from '../interfaces';
2
+ import { IOrbitControlsConfig } from '../controls/orbit-controls';
3
+ import { default as Scene } from '../scenes/scene';
4
+ import { OrbitController } from '../controls/orbit-controller';
5
+ import { default as Box2 } from '../math/box2';
6
+ import { IAxesHelperConfig } from '../helpers/axes-helper';
7
+ export interface IViewConfig extends IRenderer2Config {
8
+ name?: string;
9
+ cvs?: ICanvas;
10
+ camera?: ICamera2Config;
11
+ controls?: IOrbitControlsConfig;
12
+ axesHelper?: IAxesHelperConfig;
13
+ alignStageCenter?: boolean;
14
+ }
15
+ /**
16
+ * @author Dio Zhu 2024.8.22
17
+ */
18
+ export declare class OpeView<Config extends IViewConfig> implements IView {
19
+ name: string;
20
+ params: Config;
21
+ visible: boolean;
22
+ cvs: ICanvas | undefined;
23
+ scene: Scene | undefined;
24
+ scenes: Scene[];
25
+ camera: ICamera2 | undefined;
26
+ controller?: OrbitController;
27
+ constructor(config?: Config);
28
+ destroy(): void;
29
+ initController(camera?: ICamera2, dom?: HTMLElement): void;
30
+ handleCameraChanged(e: any): void;
31
+ reset(): void;
32
+ bindScene(scene: Scene): void;
33
+ resetCameraByBoundingBox(box: IBox2, animate?: boolean): void;
34
+ computeScenesBoundingBox(scenes: Scene[], target?: Box2): Box2;
35
+ expandScenesBoundingBox(scenes: Scene[], box?: Box2): void;
36
+ /**
37
+ * @see Application.running
38
+ */
39
+ update(time?: DOMHighResTimeStamp): void;
40
+ }
@@ -1,6 +1,5 @@
1
- import { IBox2, ICamera2, ICanvas, IRenderer2Config, IView } from '../interfaces';
1
+ import { IBox2, ICamera2, ICamera2Config, ICanvas, IRenderer2Config, IView } from '../interfaces';
2
2
  import { IOrbitControlsConfig } from '../controls/orbit-controls';
3
- import { ICamera2Config } from './camera2';
4
3
  import { default as Scene } from '../scenes/scene';
5
4
  import { OrbitController } from '../controls/orbit-controller';
6
5
  import { default as Box2 } from '../math/box2';
@@ -20,7 +19,6 @@ export declare class View<Config extends IViewConfig> implements IView {
20
19
  name: string;
21
20
  params: Config;
22
21
  visible: boolean;
23
- container: HTMLElement;
24
22
  cvs: ICanvas | undefined;
25
23
  scene: Scene | undefined;
26
24
  scenes: Scene[];
@@ -28,15 +26,15 @@ export declare class View<Config extends IViewConfig> implements IView {
28
26
  controller?: OrbitController;
29
27
  constructor(config?: Config);
30
28
  destroy(): void;
31
- initController(camera?: ICamera2, dom?: HTMLElement): void;
29
+ bindScene(scene: Scene): void;
30
+ fullscreen(padding?: number, animate?: boolean): void;
32
31
  handleCameraChanged(e: any): void;
33
32
  reset(): void;
34
- bindScene(scene: Scene): void;
35
33
  resetCameraByBoundingBox(box: IBox2, animate?: boolean): void;
36
34
  computeScenesBoundingBox(scenes: Scene[], target?: Box2): Box2;
37
35
  expandScenesBoundingBox(scenes: Scene[], box?: Box2): void;
38
36
  /**
39
37
  * @see Application.running
40
38
  */
41
- update(): void;
39
+ update(time?: DOMHighResTimeStamp): void;
42
40
  }
@@ -3995,7 +3995,7 @@ Fu.__DOMHandler = Eu;
3995
3995
  Fu.normalizeLineEndings = Le;
3996
3996
  Fu.DOMParser = Ie;
3997
3997
  var gr = Fu.DOMParser;
3998
- const Er = "1.0.36";
3998
+ const Er = "1.0.38";
3999
3999
  function vr() {
4000
4000
  return typeof window < "u" && ({}.toString.call(window) === "[object Window]" || {}.toString.call(window) === "[object global]");
4001
4001
  }
@@ -4432,7 +4432,7 @@ function Tr(u) {
4432
4432
  `, postMessage({ cmd: "echo", data: { msg: e } });
4433
4433
  }
4434
4434
  function Nr() {
4435
- console.log("- DOMParser: ", !!P.window.DOMParser);
4435
+ console.log("- DOMParser: ", !!DOMParser, !!P.window.DOMParser);
4436
4436
  const u = new P.window.DOMParser().parseFromString(
4437
4437
  `<xml xmlns="a" xmlns:c="./lite">
4438
4438
  <child>test</child>
@@ -0,0 +1,23 @@
1
+ import { default as EventDispatcher } from '../core/event-dispatcher';
2
+ import { default as Box2 } from '../math/box2';
3
+ import { IShape2 } from '../interfaces';
4
+ export declare class Adapter extends EventDispatcher {
5
+ name: string;
6
+ boundingBox: Box2;
7
+ resources: Record<string, IShape2[]>;
8
+ private _svg?;
9
+ private _svgRoot?;
10
+ private _viewBox;
11
+ private _elementsMap;
12
+ constructor();
13
+ destroy(): void;
14
+ load(url: string, layers?: string[], lv?: number): Promise<void>;
15
+ init(str?: string): void;
16
+ initResources(): void;
17
+ initResource(id: string): void;
18
+ getElementById(id: string): Element | undefined;
19
+ }
20
+ export declare enum AdapterEnum {
21
+ INITIALIZATION_START = "INITIALIZATION_START",
22
+ INITIALIZATION_COMPLETE = "INITIALIZATION_COMPLETE"
23
+ }
@@ -1,5 +1,5 @@
1
1
  import { IElement, ISvgElement } from '../svg/interfaces';
2
- import { IGroup2, IShape } from '../interfaces';
2
+ import { IGroup2, IShape, ITree } from '../interfaces';
3
3
  import { default as Box2 } from '../math/box2';
4
4
  export declare class Chef {
5
5
  svg?: HTMLElement;
@@ -15,15 +15,9 @@ export declare class Chef {
15
15
  bind(data: ISvgElement): this;
16
16
  splitDefs(): this;
17
17
  splitLayers(ids?: string[], out?: (IGroup2 | IShape)[]): this;
18
- getLayers(lv?: number): TLayer[];
19
- _getLayer(el: IElement, lv?: number, lvi?: number, out?: TLayer[]): TLayer[];
18
+ getLayers(lv?: number): ITree[];
19
+ _getLayer(el: IElement, lv?: number, lvi?: number, out?: ITree[]): ITree[];
20
20
  getById(id: string): IGroup2 | IShape | undefined;
21
21
  getByIds(ids: string[]): (IGroup2 | IShape)[];
22
22
  trans2RenderObject(el: IElement): IGroup2 | IShape | undefined;
23
23
  }
24
- export type TLayer = {
25
- id: string;
26
- label: string;
27
- selected?: boolean;
28
- children?: TLayer[];
29
- };
@@ -52,6 +52,8 @@ export interface IApp {
52
52
  highlightDummies(ids: string | string[]): void;
53
53
  resetHighlightDummies(): void;
54
54
  }
55
+ export interface IResource {
56
+ }
55
57
  export declare enum AE_TYPES {
56
58
  DEFAULT = "default",
57
59
  INFO = "info",
@@ -1,6 +1,5 @@
1
1
  import { default as EventDispatcher } from '../core/event-dispatcher';
2
2
  import { IApplicationConfig } from '../applications/application';
3
- import { TLayer } from './chef';
4
3
  import { default as SvgRenderer } from '../renders/svg-renderer';
5
4
  import { IApp, IDummyVo } from './interfaces';
6
5
  import { default as Scene } from '../scenes/scene';
@@ -59,9 +58,9 @@ export declare class SvgApp<Config extends ISvgAppConfig> extends EventDispatche
59
58
  start(): void;
60
59
  /** @description application's lifeCycle */
61
60
  running(time: DOMHighResTimeStamp): void;
62
- load(url: string, layers?: string[], lv?: number, skeletons?: string[]): Promise<TLayer[]>;
61
+ load(url: string, layers?: string[], lv?: number, skeletons?: string[]): Promise<ITree[]>;
63
62
  setSkeletons(skeletons: string[]): void;
64
- getLayers(lv?: number): TLayer[] | undefined;
63
+ getLayers(lv?: number): ITree[] | undefined;
65
64
  updateLayersVisibility(ids: string[], visible?: boolean): void;
66
65
  selectByIds(ids: string | string[]): void;
67
66
  getSelectedIds(): string[] | undefined;
@@ -1,13 +1,12 @@
1
1
  import { ISvgElement } from '../svg/interfaces';
2
2
  import { default as Box2 } from '../math/box2';
3
3
  import { default as Vector2 } from '../math/vector2';
4
- import { TLayer } from './chef';
5
4
  import { ITree, IVector2 } from '../interfaces';
6
5
  export declare class SvgChef {
7
6
  svg?: HTMLElement;
8
7
  offset: Vector2;
9
8
  svgRoot?: Element;
10
- layers: TLayer[];
9
+ layers: ITree[];
11
10
  elementsMap: Record<string, Element>;
12
11
  boundingBoxMap: Record<string, Box2>;
13
12
  boundingBox: Box2;
@@ -17,8 +16,8 @@ export declare class SvgChef {
17
16
  private readonly _exceptIds;
18
17
  private _lvi;
19
18
  bindSvg(data: HTMLElement): this;
20
- getLayers(lv?: number): TLayer[];
21
- _getSvgLayer(el: HTMLElement, lv?: number, lvi?: number, out?: TLayer[]): TLayer[];
19
+ getLayers(lv?: number): ITree[];
20
+ _getSvgLayer(el: HTMLElement, lv?: number, lvi?: number, out?: ITree[]): ITree[];
22
21
  getElementsMap(el: Element, out?: Record<string, Element>): Record<string, Element>;
23
22
  computeBoundingBoxMap(): Record<string, Box2>;
24
23
  updateLayersVisibility(ids: string[], visible?: boolean): void;
@@ -31,7 +30,7 @@ export declare class SvgChef {
31
30
  findSkeletonByPath(out?: Element[]): Element[];
32
31
  setTextInChildren2(o: Element, v: string): void;
33
32
  traverseSvg(o: Element, cb: Function): void;
34
- traverseSvgTLayers(o: TLayer | TLayer[], cb: Function): void;
33
+ traverseSvgTLayers(o: ITree | ITree[], cb: Function): void;
35
34
  getLabelElementsByType(assetType: string, out?: Record<string, Element>): Record<string, Element>;
36
35
  getLabelElementById(id: string, assetType?: string): Element | undefined;
37
36
  setLabelsById(id: string, labels?: string[], assetType?: string): void;
@@ -0,0 +1,14 @@
1
+ import { Geo2, IGeo2Config } from './geo2';
2
+ export interface ICircleGeo2 extends IGeo2Config {
3
+ radius?: number;
4
+ start?: number;
5
+ end?: number;
6
+ }
7
+ export declare class CircleGeo2<Config extends ICircleGeo2> extends Geo2<Config> {
8
+ readonly name: string;
9
+ radius: number;
10
+ start: number;
11
+ end: number;
12
+ constructor(config?: Config);
13
+ recomputePath(): this;
14
+ }
@@ -1,14 +1,28 @@
1
- import { IBox2, IPoint3 } from '../interfaces';
2
- import { default as Matrix3 } from '../math/matrix3';
3
1
  import { SVGPathData } from 'svg-pathdata';
2
+ import { default as Matrix3 } from '../math/matrix3';
3
+ import { IBox2, IContext2D, IGeo2, IMatrix3, IPath2Command, IPoint2 } from '../interfaces';
4
4
  export interface IGeo2Config {
5
- points?: IPoint3[];
5
+ points?: IPoint2[];
6
+ commands?: string | IPath2Command[];
6
7
  }
7
- export declare class Geo2<Config extends IGeo2Config> {
8
+ export declare class Geo2<Config extends IGeo2Config> extends SVGPathData implements IGeo2 {
8
9
  readonly name: string;
9
- path2?: SVGPathData[];
10
- points: IPoint3[];
11
- matrix: Matrix3;
10
+ _version: number;
11
+ params: Config;
12
+ viewMatrix: Matrix3;
12
13
  boundingBox: IBox2;
13
14
  constructor(config?: Config);
15
+ set needsUpdate(v: boolean);
16
+ get version(): number;
17
+ set version(v: number);
18
+ static getInstanceByPath(o: Element): Geo2<any> | undefined;
19
+ static render(ctx: IContext2D, commands: IPath2Command[]): void;
20
+ setFromPoints(ps?: IPoint2[]): IGeo2;
21
+ recomputePath(): void;
22
+ computeBoundingBox(): IBox2;
23
+ render(ctx: IContext2D): void;
24
+ applyMatrix(m: IMatrix3): IGeo2;
25
+ getRenderCommands(m?: IMatrix3): IPath2Command[];
26
+ copy(source: IGeo2): IGeo2;
27
+ clone(): IGeo2;
14
28
  }
@@ -0,0 +1,6 @@
1
+ import { Geo2, IGeo2Config } from './geo2';
2
+ export declare class PolygonGeo2<Config extends IGeo2Config> extends Geo2<Config> {
3
+ readonly name: string;
4
+ constructor(config?: Config);
5
+ recomputePath(): this;
6
+ }
@@ -0,0 +1,22 @@
1
+ import { Geo2, IGeo2Config } from './geo2';
2
+ export interface IPolylineGeo2Options extends IGeo2Config {
3
+ stArrow?: boolean;
4
+ edArrow?: boolean;
5
+ arrowLength?: number;
6
+ arrowDeg?: number;
7
+ }
8
+ export declare class PolylineGeo2<Config extends IPolylineGeo2Options> extends Geo2<Config> {
9
+ readonly name: string;
10
+ arrowLength: number;
11
+ arrowDeg: number;
12
+ stArrow: boolean;
13
+ edArrow: boolean;
14
+ constructor(config?: Config);
15
+ recomputePath(): this;
16
+ /**
17
+ * v3 \
18
+ * vo ---- v2-v1
19
+ * v4 /
20
+ */
21
+ addArrow(len?: number): this;
22
+ }
@@ -1,6 +1,5 @@
1
1
  import { Axes, IAxesConfig } from '../shapes/axes';
2
2
  import { default as Vector2 } from '../math/vector2';
3
- import { default as Camera2 } from '../core/camera2';
4
3
  import { default as Box2 } from '../math/box2';
5
4
  import { ICamera2 } from '../interfaces';
6
5
  export interface IAxesHelperConfig extends IAxesConfig {
@@ -10,8 +9,8 @@ export declare class AxesHelper<Config extends IAxesHelperConfig = IAxesHelperCo
10
9
  usedCache: boolean;
11
10
  castShadow: boolean;
12
11
  padding: Vector2;
13
- camera: Camera2 | undefined;
14
- constructor(config?: Config, camera?: Camera2);
12
+ camera: ICamera2 | undefined;
13
+ constructor(config?: Config, camera?: ICamera2);
15
14
  computeBoundingBox(): Box2;
16
15
  /** @override */
17
16
  updateModelViewMatrix(camera?: ICamera2): void;
@@ -0,0 +1,19 @@
1
+ import { Axes, IAxesConfig } from '../shapes2/axes';
2
+ import { default as Vector2 } from '../math/vector2';
3
+ import { default as Box2 } from '../math/box2';
4
+ import { ICamera2 } from '../interfaces';
5
+ export interface IAxesHelper2Config extends IAxesConfig {
6
+ gridEnabled?: boolean;
7
+ }
8
+ export declare class AxesHelper2<Config extends IAxesHelper2Config> extends Axes<Config> {
9
+ name: string;
10
+ usedCache: boolean;
11
+ castShadow: boolean;
12
+ padding: Vector2;
13
+ camera: ICamera2 | undefined;
14
+ constructor(config?: Config, camera?: ICamera2);
15
+ computeBoundingBox(): Box2;
16
+ /** @override */
17
+ updateModelViewMatrix(camera?: ICamera2): void;
18
+ computeAxes(camera?: ICamera2): void;
19
+ }
@@ -1,4 +1,4 @@
1
- import { IShape } from '../interfaces';
1
+ import { ICanvas, IContext2D, IShape2 } from '../interfaces';
2
2
  import { default as Vector2 } from '../math/vector2';
3
3
  interface ICanvasConfig {
4
4
  containerId?: string;
@@ -17,14 +17,14 @@ export default class CanvasHelper {
17
17
  /**
18
18
  * @todo: cvs.getContext('bitmaprenderer') => ImageBitmapRenderingContext.transferFromImageBitmap()
19
19
  */
20
- static getContext2D(cvs: OffscreenCanvas | HTMLCanvasElement, params?: any): OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D;
21
- static resizeCanvas(cvs: OffscreenCanvas | HTMLCanvasElement, w: number, h: number, r?: number): void;
22
- static getImageBitmapByCanvasAsync(cvs?: OffscreenCanvas | HTMLCanvasElement): Promise<ImageBitmap | undefined>;
20
+ static getContext2D(cvs: ICanvas, params?: any): IContext2D;
21
+ static resizeCanvas(cvs: ICanvas, w: number, h: number, r?: number): void;
22
+ static getImageBitmapByCanvasAsync(cvs?: ICanvas): Promise<ImageBitmap | undefined>;
23
23
  static get(k: string, w: number, h: number, dpr?: number): OffscreenCanvas;
24
24
  static set(k: string, v: OffscreenCanvas): Map<string, OffscreenCanvas>;
25
25
  static remove(k: string): void;
26
26
  static create(w: number, h: number, dpr?: number): OffscreenCanvas;
27
27
  static createHtmlCanvas(w: number, h: number, dpr?: number): HTMLCanvasElement;
28
- static measureText(text: string, obj: IShape, out?: Vector2): Vector2;
28
+ static measureText(text: string, obj: IShape2, out?: Vector2): Vector2;
29
29
  }
30
30
  export {};
package/lib/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { default as EnvironmentWorker } from './workers/environment.worker?worker';
2
+ import { default as RendererWorker } from './workers/renderer.worker?worker';
2
3
  import { default as defaultConfig } from './env/default-config.js';
3
4
  export { GLOB } from './core/global.js';
4
5
  export { Color, ColorsEnum } from './math/color.js';
@@ -9,4 +10,4 @@ export { AssetTypeEnum, LayerTypeEnum } from './env/enums';
9
10
  export type { ITree } from './interfaces';
10
11
  export type { IApp, IDummyVo, IDummy } from './extras/interfaces';
11
12
  export { AppEnum, SvgApp } from './extras/svg-app';
12
- export { defaultConfig, EnvironmentWorker, };
13
+ export { defaultConfig, EnvironmentWorker, RendererWorker, };