archgine 1.0.36 → 1.0.39

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 (57) hide show
  1. package/lib/applications/app-cvs.d.ts +16 -0
  2. package/lib/applications/app-offscreen.d.ts +27 -8
  3. package/lib/applications/application.d.ts +27 -10
  4. package/lib/controls/interactive-controls.d.ts +2 -2
  5. package/lib/controls/orbit-controller.d.ts +4 -3
  6. package/lib/controls/orbit-controls.d.ts +8 -8
  7. package/lib/core/camera2.d.ts +4 -16
  8. package/lib/core/monitor.d.ts +13 -13
  9. package/lib/core/object2.d.ts +5 -5
  10. package/lib/core/ope-view.d.ts +24 -0
  11. package/lib/core/view.d.ts +16 -9
  12. package/lib/environment.worker.js +4 -2
  13. package/lib/extras/adapter.d.ts +62 -0
  14. package/lib/extras/chef.d.ts +3 -9
  15. package/lib/extras/interfaces.d.ts +2 -0
  16. package/lib/extras/svg-app.d.ts +2 -17
  17. package/lib/extras/svg-chef.d.ts +4 -5
  18. package/lib/geometries/circle-geo2.d.ts +14 -0
  19. package/lib/geometries/geo2.d.ts +22 -8
  20. package/lib/geometries/polygon-geo2.d.ts +5 -0
  21. package/lib/geometries/polyline-geo2.d.ts +21 -0
  22. package/lib/helpers/axes-helper.d.ts +2 -3
  23. package/lib/helpers/axes-helper2.d.ts +19 -0
  24. package/lib/helpers/canvas-helper.d.ts +5 -5
  25. package/lib/helpers/geo-helper.d.ts +12 -0
  26. package/lib/helpers/mat-helper.d.ts +10 -0
  27. package/lib/helpers/merge-helper.d.ts +7 -0
  28. package/lib/index.d.ts +3 -1
  29. package/lib/index.mjs +7861 -6764
  30. package/lib/index.umd.js +31 -30
  31. package/lib/interfaces.d.ts +64 -120
  32. package/lib/materials/mat2.d.ts +2 -1
  33. package/lib/materials/text-mat2.d.ts +53 -0
  34. package/lib/math/box2.d.ts +1 -0
  35. package/lib/objects/shape2.d.ts +20 -7
  36. package/lib/renderer.worker.js +14066 -0
  37. package/lib/renderers/binding-states.d.ts +4 -4
  38. package/lib/renderers/buffer-renderer.d.ts +9 -3
  39. package/lib/renderers/cvs-renderer.d.ts +4 -2
  40. package/lib/renderers/render-lists.d.ts +4 -6
  41. package/lib/renderers/render-target.d.ts +2 -2
  42. package/lib/renderers/renderer.d.ts +1 -1
  43. package/lib/renders/render-target.d.ts +2 -2
  44. package/lib/scenes/loading-scene.d.ts +4 -5
  45. package/lib/{extras → scenes}/main-scene.d.ts +3 -3
  46. package/lib/scenes/scene.d.ts +0 -1
  47. package/lib/scenes/svg-scene.d.ts +3 -4
  48. package/lib/shapes2/arrow.d.ts +6 -0
  49. package/lib/shapes2/axes.d.ts +35 -0
  50. package/lib/shapes2/circle.d.ts +10 -0
  51. package/lib/shapes2/polygon.d.ts +9 -0
  52. package/lib/shapes2/text.d.ts +21 -0
  53. package/lib/textures/texture.d.ts +2 -2
  54. package/lib/utils/svg.d.ts +14 -0
  55. package/lib/workers/renderer.worker.d.ts +1 -0
  56. package/package.json +1 -1
  57. package/lib/geometries/path2.d.ts +0 -20
@@ -1,5 +1,4 @@
1
- import { ICamera2Config } from './core/camera2';
2
- import { OrbitController } from './controls/orbit-controller';
1
+ import { IShape2Config } from './objects/shape2';
3
2
  export type TTypedArray = Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | BigUint64Array | BigInt64Array | Float32Array | Float64Array;
4
3
  export type AnimationFunc = (frame?: IFrame) => boolean | void;
5
4
  export interface IAnimationObjectGroup {
@@ -102,6 +101,7 @@ export interface IBox2 {
102
101
  max: IVector2;
103
102
  setFromPoints(points: IPoint2[]): this;
104
103
  setFromMinMaxString(str: string, sp?: string): this;
104
+ expandByPoint(point: IPoint2): this;
105
105
  expandByVector(vector: IPoint2): this;
106
106
  expandByXY(x: number, y: number): this;
107
107
  intersectsBox(box?: IBox2): boolean;
@@ -127,114 +127,26 @@ export interface IBox2 {
127
127
  clone(): IBox2;
128
128
  copy(box: IBox2): this;
129
129
  }
130
- export interface IBufferCanvas {
131
- width: number;
132
- height: number;
133
- getContext(contextType: string, contextAttributes?: any): OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D | null;
134
- }
135
- export interface IBone extends IObject2 {
136
- }
137
- export interface ICanvas {
138
- style: CSSStyleDeclaration;
139
- width: number;
140
- height: number;
141
- clientWidth: number;
142
- clientHeight: number;
143
- getContext(contextType: string, contextAttributes?: any): IContext2D | null;
144
- getBoundingClientRect(): DOMRect;
145
- addEventListener(type: string, listener: (this: HTMLElement, ev: MouseEvent) => any, options?: boolean | AddEventListenerOptions | undefined): void;
146
- setPointerCapture(pointerId: number): void;
147
- releasePointerCapture(pointerId: number): void;
148
- removeEventListener(type: string, listener: (this: HTMLElement, ev: PointerEvent) => any, options?: boolean | EventListenerOptions | undefined): void;
149
- }
150
- export interface ICanvasPath {
151
- arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
152
- arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
153
- bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
154
- closePath(): void;
155
- ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
156
- lineTo(x: number, y: number): void;
157
- moveTo(x: number, y: number): void;
158
- quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
159
- rect(x: number, y: number, w: number, h: number): void;
160
- roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;
161
- }
162
- export interface IContext2D {
163
- canvas: HTMLCanvasElement | OffscreenCanvas;
164
- imageSmoothingEnabled: boolean;
165
- imageSmoothingQuality: string;
166
- globalCompositeOperation: GlobalCompositeOperation;
167
- globalAlpha: number;
168
- shadowColor: string;
169
- miterLimit: number;
170
- lineWidth: number;
171
- lineCap: CanvasLineCap;
172
- lineJoin: CanvasLineJoin;
173
- lineDashOffset: number;
174
- shadowOffsetX: number;
175
- shadowOffsetY: number;
176
- shadowBlur: number;
177
- fillStyle: string | CanvasGradient | CanvasPattern;
178
- strokeStyle: string | CanvasGradient | CanvasPattern;
179
- font: string;
180
- textBaseline: CanvasTextBaseline;
181
- textAlign: CanvasTextAlign;
182
- drawImage(image: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, dx: number, dy: number): void;
183
- drawImage(image: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, dx: number, dy: number, dw: number, dh: number): void;
184
- drawImage(image: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
185
- putImageData(imagedata: ImageData, dx: number, dy: number): void;
186
- putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;
187
- getImageData(sx: number, sy: number, sw: number, sh: number): ImageData;
188
- createImageData(sw: number, sh: number): ImageData;
189
- createImageData(imagedata: ImageData): ImageData;
190
- save(): void;
191
- restore(): void;
192
- rotate(angle: number): void;
193
- translate(x: number, y: number): void;
194
- transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
195
- getTransform(): DOMMatrix;
196
- resetTransform(): void;
197
- setTransform(transform?: DOMMatrix): void;
198
- isPointInPath(path: IPath2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;
199
- isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
200
- isPointInStroke(path: IPath2D, x: number, y: number): boolean;
201
- isPointInStroke(x: number, y: number): boolean;
202
- scale(x: number, y: number): void;
203
- clip(fillRule?: CanvasFillRule): void;
204
- clip(path: IPath2D, fillRule?: CanvasFillRule): void;
205
- fill(fillRule?: CanvasFillRule): void;
206
- fill(path?: IPath2D): void;
207
- fill(path?: IPath2D, fillRule?: CanvasFillRule): void;
208
- stroke(): void;
209
- stroke(path?: IPath2D): void;
210
- fillText(text: string, x: number, y: number, maxWidth?: number): void;
211
- strokeText(text: string, x: number, y: number, maxWidth?: number): void;
212
- fillRect(x: number, y: number, w: number, h: number): void;
213
- strokeRect(x: number, y: number, w: number, h: number): void;
214
- clearRect(x: number, y: number, w: number, h: number): void;
215
- rect(x: number, y: number, w: number, h: number): void;
216
- roundRect(x: number, y: number, w: number, h: number, radii?: number | number[]): void;
217
- measureText(text: string): TextMetrics;
218
- moveTo(x: number, y: number): void;
219
- lineTo(x: number, y: number): void;
220
- bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
221
- quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
222
- beginPath(): void;
223
- closePath(): void;
224
- arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
225
- arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
226
- ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
227
- setLineDash(segments: number[]): void;
228
- getLineDash(): number[];
229
- createPattern(image: HTMLCanvasElement | ImageBitmap, repetition: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | '' | null): CanvasPattern | null;
230
- createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
231
- createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
232
- }
130
+ export type ICanvas = HTMLCanvasElement | OffscreenCanvas;
131
+ export type IContext2D = CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
233
132
  export interface IColor {
234
133
  set(value?: IColor | number | string): this;
235
134
  getHexString(): string;
236
135
  offsetHSL(h: number, s: number, l: number): this;
237
136
  }
137
+ export interface ICamera2Config {
138
+ width?: number;
139
+ height?: number;
140
+ aspect?: number;
141
+ left?: number;
142
+ right?: number;
143
+ top?: number;
144
+ bottom?: number;
145
+ eye?: number[];
146
+ up?: number[];
147
+ helperEnable?: boolean;
148
+ flipY?: boolean;
149
+ }
238
150
  export interface ICamera2 extends IObject2 {
239
151
  featureKey: string;
240
152
  left: number;
@@ -258,6 +170,8 @@ export interface ICamera2 extends IObject2 {
258
170
  resize(): void;
259
171
  set(l: number, r: number, t: number, b: number): void;
260
172
  setByBox(box: IBox2): void;
173
+ setTRS(t?: IPoint2, r?: number, s?: number): void;
174
+ fromJSON(o: any): void;
261
175
  update(): void;
262
176
  getCameraPosition(): ICamera2Position;
263
177
  }
@@ -367,9 +281,8 @@ export interface IGeometry2 extends IEventDispatcher {
367
281
  clone(): IGeometry2;
368
282
  copy(source: IGeometry2): IGeometry2;
369
283
  }
370
- export interface IGe2 {
371
- }
372
284
  export interface IMat2 {
285
+ name: string;
373
286
  version: number;
374
287
  fill?: string;
375
288
  stroke?: string;
@@ -378,15 +291,19 @@ export interface IMat2 {
378
291
  lineDashOffset?: number;
379
292
  lineCap?: CanvasLineCap;
380
293
  }
381
- export interface IPath2 {
294
+ export interface IGeo2 {
295
+ name: string;
296
+ params: any;
382
297
  version: number;
383
298
  commands: IPath2Command[];
384
299
  boundingBox: IBox2;
300
+ setFromPoints(ps?: IPoint2[]): IGeo2;
385
301
  computeBoundingBox(): IBox2;
386
- applyMatrix(m: IMatrix3): IPath2;
387
- copy(source: IPath2): IPath2;
388
- clone(): IPath2;
302
+ applyMatrix(m: IMatrix3): IGeo2;
303
+ copy(source: IGeo2): IGeo2;
304
+ clone(): IGeo2;
389
305
  render(ctx: IContext2D): void;
306
+ getRenderCommands(m?: IMatrix3): IPath2Command[];
390
307
  }
391
308
  export interface IPath2Command {
392
309
  type: number;
@@ -407,9 +324,15 @@ export interface IPath2Command {
407
324
  phi1?: number;
408
325
  phi2?: number;
409
326
  }
410
- export interface IShape2 {
327
+ export interface IShape2 extends IObject2 {
328
+ params?: IShape2Config;
329
+ geo: IGeo2;
330
+ mat: IMat2;
411
331
  version: number;
412
- render(ctx: IContext2D): void;
332
+ render(ctx: IContext2D, commands?: IPath2Command[]): void;
333
+ }
334
+ export interface IText2 extends IShape2 {
335
+ textContent?: string;
413
336
  }
414
337
  export interface IGroup2 extends IObject2 {
415
338
  isGroup: boolean;
@@ -541,9 +464,11 @@ export interface IMatrix3 {
541
464
  premultiply(m: IMatrix3): this;
542
465
  decompose(position: IVector2, rotation: IVector2, scaled: IVector2): void;
543
466
  getRotation(rotation: IVector2): void;
467
+ getScale(scaled: IVector2): void;
544
468
  getComponents(array: [number, number, number, number, number, number]): [number, number, number, number, number, number];
545
469
  invert(): this;
546
470
  toArray(array?: number[] | TTypedArray, offset?: number): number[] | TTypedArray;
471
+ fromArray(array: number[], offset?: number): this;
547
472
  copy(m: IMatrix3): this;
548
473
  }
549
474
  export interface IObject2 extends IEventDispatcher {
@@ -597,7 +522,7 @@ export interface IObject2 extends IEventDispatcher {
597
522
  onAfterRender(renderer: any, scene: IObject2, camera?: ICamera2): void;
598
523
  remove(object: IObject2): IObject2;
599
524
  raycast(raycaster: IRaycaster, out?: IObject2[]): IObject2[];
600
- render(ctx: IContext2D): void;
525
+ render(ctx: IContext2D, commands?: IPath2Command[]): void;
601
526
  scale(x: number, y?: number): void;
602
527
  translate(x: number, y: number): void;
603
528
  traverse(callback: Function): void;
@@ -611,16 +536,21 @@ export interface IObject2 extends IEventDispatcher {
611
536
  applyMatrix3(matrix: IMatrix3): void;
612
537
  setSelectable(v: boolean): void;
613
538
  }
614
- export interface IScene {
539
+ export interface IScene extends IObject2 {
540
+ isStatic?: boolean;
615
541
  getIntersectObjects(raycaster: IRaycaster, assetType?: string, out?: any[]): any[];
616
542
  }
617
543
  export interface IView {
618
544
  cvs?: ICanvas | undefined;
619
545
  camera: ICamera2 | undefined;
620
- container: HTMLElement;
621
- controller?: OrbitController;
546
+ controller?: IOrbitController;
622
547
  scene?: IScene;
548
+ bindScene(scene: IScene): void;
623
549
  resetCameraByBoundingBox(box: IBox2, animate?: boolean): void;
550
+ update(time?: DOMHighResTimeStamp): void;
551
+ }
552
+ export interface IOrbitController {
553
+ update(): void;
624
554
  }
625
555
  export interface IRaycaster {
626
556
  worldCoords: IVector2;
@@ -634,7 +564,9 @@ export interface IRenderObject extends IObject2 {
634
564
  usedCache: boolean;
635
565
  }
636
566
  export interface IRenderer2 {
567
+ viewAreaLimit?: number;
637
568
  autoClear: boolean;
569
+ destroy(): void;
638
570
  getSize(target: IVector2): IVector2;
639
571
  setSize(w: number, h: number): void;
640
572
  resize(): void;
@@ -657,6 +589,7 @@ export interface IRenderer2Config {
657
589
  background?: string;
658
590
  viewAreaLimit?: number;
659
591
  autoClear?: boolean;
592
+ mergeRendering?: boolean;
660
593
  usedCache?: boolean;
661
594
  wireframe?: boolean;
662
595
  showPoints?: boolean;
@@ -672,7 +605,7 @@ export interface IRenderTarget extends IEventDispatcher {
672
605
  height: number;
673
606
  dpr: number | undefined;
674
607
  texture: ITexture;
675
- cvs: OffscreenCanvas | HTMLCanvasElement;
608
+ cvs: ICanvas;
676
609
  ctx: IContext2D;
677
610
  destroy(): void;
678
611
  clean(): void;
@@ -718,7 +651,7 @@ export interface ITexture {
718
651
  uuid: string;
719
652
  isTexture: boolean;
720
653
  isRenderTargetTexture: boolean;
721
- image?: OffscreenCanvas | HTMLCanvasElement;
654
+ image?: ICanvas;
722
655
  originSize: IVector2;
723
656
  originCenter: IVector2;
724
657
  size: IVector2;
@@ -849,6 +782,17 @@ export interface ISystemManager {
849
782
  }
850
783
  export interface ITree {
851
784
  label: string;
852
- value: string;
785
+ value: any;
853
786
  children?: ITree[];
854
787
  }
788
+ export declare enum APP_ENUM {
789
+ INIT = "init",
790
+ LOAD = "load",
791
+ LOADED = "loaded",
792
+ GET_LAYERS = "getLayers",
793
+ TERMINATE = "terminate",
794
+ CAMERA_SYNC = "cameraSync",
795
+ CAMERA_CHANGED = "cameraChanged",
796
+ SCENES_CHANGED = "scenesChanged",
797
+ UPDATE_LAYERS_VISIBILITY = "updateLayersVisibility"
798
+ }
@@ -8,9 +8,10 @@ export interface IMat2Config {
8
8
  lineCap?: CanvasLineCap;
9
9
  }
10
10
  export declare class Mat2<Config extends IMat2Config> implements IMat2 {
11
- readonly name: string;
11
+ name: string;
12
12
  version: number;
13
13
  constructor(config?: Config);
14
+ set needsUpdate(v: boolean);
14
15
  private _fill?;
15
16
  get fill(): string | undefined;
16
17
  set fill(v: string);
@@ -0,0 +1,53 @@
1
+ import { IMat2Config, Mat2 } from './mat2';
2
+ export interface ITextMat2Config extends IMat2Config {
3
+ text?: string;
4
+ fontFamily?: string;
5
+ fontSize?: number;
6
+ fontStyle?: string;
7
+ fontWeight?: string;
8
+ textFill?: string;
9
+ textAlign?: CanvasTextAlign;
10
+ textBaseline?: CanvasTextBaseline;
11
+ }
12
+ export declare class TextMat2<Config extends ITextMat2Config> extends Mat2<Config> {
13
+ readonly isTextMat: boolean;
14
+ name: string;
15
+ verticalAlign: string;
16
+ letterSpacing: number;
17
+ wrap: string;
18
+ ellipsis: boolean;
19
+ constructor(config?: Config);
20
+ private _text;
21
+ get text(): string | undefined;
22
+ set text(v: string);
23
+ private _textFill;
24
+ get textFill(): string;
25
+ set textFill(v: string);
26
+ private _fontFamily;
27
+ get fontFamily(): string;
28
+ set fontFamily(v: string);
29
+ private _fontSize;
30
+ get fontSize(): number;
31
+ set fontSize(v: number);
32
+ private _fontStyle;
33
+ get fontStyle(): string;
34
+ set fontStyle(v: string);
35
+ private _fontWeight;
36
+ get fontWeight(): string;
37
+ set fontWeight(v: string);
38
+ private _fontVariant;
39
+ get fontVariant(): string;
40
+ set fontVariant(v: string);
41
+ private _textDecoration?;
42
+ get textDecoration(): string | undefined;
43
+ set textDecoration(v: string);
44
+ private _textAlign;
45
+ get textAlign(): CanvasTextAlign;
46
+ set textAlign(v: CanvasTextAlign);
47
+ private _lineHeight;
48
+ get lineHeight(): number;
49
+ set lineHeight(v: number);
50
+ private _textBaseline;
51
+ get textBaseline(): CanvasTextBaseline;
52
+ set textBaseline(v: CanvasTextBaseline);
53
+ }
@@ -48,6 +48,7 @@ export default class Box2 implements IBox2 {
48
48
  setFromMinMaxString(str: string, sp?: string): this;
49
49
  translate(offset: IPoint2): this;
50
50
  toString(): string;
51
+ fromString(str: string): this;
51
52
  union(box: IBox2): this;
52
53
  validate(): boolean;
53
54
  unproject(camera: ICamera2): this;
@@ -1,14 +1,27 @@
1
- import { Object2 } from '../core/object2';
2
- import { IBox2, IContext2D, IMat2, IPath2, IShape2 } from '../interfaces';
1
+ import { IObject2Config, Object2 } from '../core/object2';
2
+ import { IGeo2Config } from '../geometries/geo2';
3
+ import { IMat2Config } from '../materials/mat2';
4
+ import { IBox2, IContext2D, IGeo2, IMat2, IPath2Command, IShape2 } from '../interfaces';
5
+ export interface IShape2Config extends IObject2Config, IGeo2Config, IMat2Config {
6
+ renderOrder?: number;
7
+ usedCache?: boolean;
8
+ dynamically?: boolean;
9
+ castShadow?: boolean;
10
+ wireframe?: boolean;
11
+ }
3
12
  export declare class Shape2 extends Object2 implements IShape2 {
4
- readonly name: string;
13
+ name: string;
5
14
  readonly isShape: boolean;
6
- pat: IPath2;
15
+ params?: IShape2Config;
16
+ wireframe: boolean;
17
+ geo: IGeo2;
7
18
  mat: IMat2;
8
- constructor(path2?: IPath2, mat2?: IMat2);
9
- get version(): number;
19
+ constructor(geo2?: IGeo2, mat2?: IMat2, config?: IShape2Config);
10
20
  computeBoundingBox(): IBox2;
11
- render(ctx: IContext2D): void;
21
+ render(ctx: IContext2D, commands?: IPath2Command[]): void;
12
22
  renderFill(ctx: IContext2D): void;
13
23
  renderStroke(ctx: IContext2D): void;
24
+ /** @override */
25
+ clone(recursive?: boolean): IShape2;
26
+ copy(source: IShape2, recursive?: boolean): IShape2;
14
27
  }