@idetik/core 0.40.0 → 0.40.2

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 (71) hide show
  1. package/dist/assets/worker_kernel-CBlE4MBI.js.map +1 -1
  2. package/dist/index.d.ts +1717 -381
  3. package/dist/index.js +981 -193
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.umd.cjs +32 -32
  6. package/dist/index.umd.cjs.map +1 -1
  7. package/dist/types/src/core/channel.d.ts +7 -1
  8. package/dist/types/src/core/channel.d.ts.map +1 -1
  9. package/dist/types/src/core/image_source_policy.d.ts +4 -4
  10. package/dist/types/src/core/image_source_policy.d.ts.map +1 -1
  11. package/dist/types/src/core/layer.d.ts +136 -21
  12. package/dist/types/src/core/layer.d.ts.map +1 -1
  13. package/dist/types/src/core/renderable_object.d.ts +108 -3
  14. package/dist/types/src/core/renderable_object.d.ts.map +1 -1
  15. package/dist/types/src/core/viewport.d.ts +82 -2
  16. package/dist/types/src/core/viewport.d.ts.map +1 -1
  17. package/dist/types/src/data/chunk.d.ts +37 -2
  18. package/dist/types/src/data/chunk.d.ts.map +1 -1
  19. package/dist/types/src/data/chunk_manager.d.ts +5 -0
  20. package/dist/types/src/data/chunk_manager.d.ts.map +1 -1
  21. package/dist/types/src/data/ome_zarr/image_source.d.ts +56 -13
  22. package/dist/types/src/data/ome_zarr/image_source.d.ts.map +1 -1
  23. package/dist/types/src/data/ome_zarr/metadata_loaders.d.ts +4 -4
  24. package/dist/types/src/data/ome_zarr/metadata_loaders.d.ts.map +1 -1
  25. package/dist/types/src/idetik.d.ts +129 -59
  26. package/dist/types/src/idetik.d.ts.map +1 -1
  27. package/dist/types/src/index.d.ts +29 -8
  28. package/dist/types/src/index.d.ts.map +1 -1
  29. package/dist/types/src/layers/axes_layer.d.ts +30 -5
  30. package/dist/types/src/layers/axes_layer.d.ts.map +1 -1
  31. package/dist/types/src/layers/image_layer.d.ts +106 -12
  32. package/dist/types/src/layers/image_layer.d.ts.map +1 -1
  33. package/dist/types/src/layers/label_layer.d.ts +106 -5
  34. package/dist/types/src/layers/label_layer.d.ts.map +1 -1
  35. package/dist/types/src/layers/point_picking.d.ts +7 -2
  36. package/dist/types/src/layers/point_picking.d.ts.map +1 -1
  37. package/dist/types/src/layers/volume_layer.d.ts +87 -5
  38. package/dist/types/src/layers/volume_layer.d.ts.map +1 -1
  39. package/dist/types/src/math/axes.d.ts +3 -0
  40. package/dist/types/src/math/axes.d.ts.map +1 -1
  41. package/dist/types/src/math/box2.d.ts +34 -4
  42. package/dist/types/src/math/box2.d.ts.map +1 -1
  43. package/dist/types/src/math/box3.d.ts +38 -4
  44. package/dist/types/src/math/box3.d.ts.map +1 -1
  45. package/dist/types/src/math/color.d.ts +49 -2
  46. package/dist/types/src/math/color.d.ts.map +1 -1
  47. package/dist/types/src/math/frustum.d.ts +28 -0
  48. package/dist/types/src/math/frustum.d.ts.map +1 -1
  49. package/dist/types/src/math/transforms.d.ts +57 -0
  50. package/dist/types/src/math/transforms.d.ts.map +1 -1
  51. package/dist/types/src/objects/cameras/camera.d.ts +55 -0
  52. package/dist/types/src/objects/cameras/camera.d.ts.map +1 -1
  53. package/dist/types/src/objects/cameras/controls.d.ts +88 -1
  54. package/dist/types/src/objects/cameras/controls.d.ts.map +1 -1
  55. package/dist/types/src/objects/cameras/orbit_controls.d.ts +56 -1
  56. package/dist/types/src/objects/cameras/orbit_controls.d.ts.map +1 -1
  57. package/dist/types/src/objects/cameras/orthographic_camera.d.ts +90 -13
  58. package/dist/types/src/objects/cameras/orthographic_camera.d.ts.map +1 -1
  59. package/dist/types/src/objects/cameras/perspective_camera.d.ts +65 -3
  60. package/dist/types/src/objects/cameras/perspective_camera.d.ts.map +1 -1
  61. package/dist/types/src/objects/renderable/image_renderable.d.ts +48 -3
  62. package/dist/types/src/objects/renderable/image_renderable.d.ts.map +1 -1
  63. package/dist/types/src/objects/renderable/label_image_renderable.d.ts +66 -4
  64. package/dist/types/src/objects/renderable/label_image_renderable.d.ts.map +1 -1
  65. package/dist/types/src/objects/renderable/points_renderable.d.ts +47 -2
  66. package/dist/types/src/objects/renderable/points_renderable.d.ts.map +1 -1
  67. package/dist/types/src/objects/renderable/projected_line_renderable.d.ts +27 -3
  68. package/dist/types/src/objects/renderable/projected_line_renderable.d.ts.map +1 -1
  69. package/dist/types/src/objects/renderable/volume_renderable.d.ts +63 -3
  70. package/dist/types/src/objects/renderable/volume_renderable.d.ts.map +1 -1
  71. package/package.json +1 -1
@@ -1,18 +1,52 @@
1
1
  import { mat4, vec3 } from "gl-matrix";
2
+ /**
3
+ * Axis-aligned bounding box defined by minimum and maximum corners.
4
+ *
5
+ * Box3 represents a 3D region bounded by two corners: `min` and `max`. It
6
+ * is used for spatial queries, culling tests, intersection checks, and
7
+ * computing bounding volumes. A default-constructed box is empty and
8
+ * intersection treats boxes as half-open intervals.
9
+ *
10
+ * @group Math
11
+ */
2
12
  export declare class Box3 {
13
+ /** Minimum corner of the box. */
3
14
  min: vec3;
15
+ /** Maximum corner of the box. */
4
16
  max: vec3;
5
17
  /**
6
- * Initializes as an empty box if no values are provided using the
7
- * "empty-by-sentinel" pattern: min = +Infinity, max = -Infinity.
8
- * This allows expansion functions to work without special-casing
9
- * the first element, and avoids biasing toward (0,0,0).
18
+ * Creates a box from optional corner points. The corners are cloned.
19
+ * When a corner is omitted the box starts empty.
20
+ *
21
+ * @param min - The minimum corner.
22
+ * @param max - The maximum corner.
10
23
  */
11
24
  constructor(min?: vec3, max?: vec3);
25
+ /** Returns a deep copy of the box. */
12
26
  clone(): Box3;
27
+ /** Returns `true` when the box encloses no volume. */
13
28
  isEmpty(): boolean;
29
+ /**
30
+ * Tests whether two boxes overlap. Boxes are treated as half-open
31
+ * intervals so touching faces do not count as overlap.
32
+ *
33
+ * @param a - The first box.
34
+ * @param b - The second box.
35
+ */
14
36
  static intersects(a: Box3, b: Box3): boolean;
37
+ /**
38
+ * Grows the box in place to contain the given point.
39
+ *
40
+ * @param p - The point to include.
41
+ */
15
42
  expandWithPoint(p: vec3): void;
43
+ /**
44
+ * Transforms the box in place by the given matrix. The result is the
45
+ * axis-aligned box of the eight transformed corners so the box can grow
46
+ * under rotation.
47
+ *
48
+ * @param matrix - The transform to apply.
49
+ */
16
50
  applyTransform(matrix: mat4): void;
17
51
  }
18
52
  //# sourceMappingURL=box3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"box3.d.ts","sourceRoot":"","sources":["../../../../src/math/box3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC,qBAAa,IAAI;IACR,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,IAAI,CAAC;IAEjB;;;;;OAKG;gBACS,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI;IAS3B,KAAK;IAIL,OAAO,IAAI,OAAO;WASX,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO;IAO5C,eAAe,CAAC,CAAC,EAAE,IAAI;IASvB,cAAc,CAAC,MAAM,EAAE,IAAI;CAuBnC"}
1
+ {"version":3,"file":"box3.d.ts","sourceRoot":"","sources":["../../../../src/math/box3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC;;;;;;;;;GASG;AACH,qBAAa,IAAI;IACf,iCAAiC;IAC1B,GAAG,EAAE,IAAI,CAAC;IACjB,iCAAiC;IAC1B,GAAG,EAAE,IAAI,CAAC;IAEjB;;;;;;OAMG;gBACS,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI;IASlC,sCAAsC;IAC/B,KAAK;IAIZ,sDAAsD;IAC/C,OAAO,IAAI,OAAO;IAQzB;;;;;;OAMG;WACW,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO;IAOnD;;;;OAIG;IACI,eAAe,CAAC,CAAC,EAAE,IAAI;IAS9B;;;;;;OAMG;IACI,cAAc,CAAC,MAAM,EAAE,IAAI;CAuBnC"}
@@ -1,28 +1,75 @@
1
1
  import { vec3, vec4 } from "gl-matrix";
2
- /** @group Layer Configuration */
2
+ /**
3
+ * A value convertible to {@link Color}.
4
+ */
3
5
  export type ColorLike = Color | vec3 | vec4 | string;
4
- /** @group Layer Configuration */
6
+ /**
7
+ * Immutable RGBA color with components in `[0, 1]`.
8
+ *
9
+ * Color represents an RGBA value with four components. It is used for channel
10
+ * tints, label color maps, and wireframe overlays. Components are validated
11
+ * at construction and never change. Every API that takes a color accepts a
12
+ * {@link ColorLike} so hex strings and component arrays coerce automatically
13
+ * through {@link from}. Common colors are available as static presets.
14
+ *
15
+ * @group Math
16
+ */
5
17
  export declare class Color {
18
+ /** Opaque red `#ff0000`. */
6
19
  static readonly RED: Color;
20
+ /** Opaque green `#00ff00`. */
7
21
  static readonly GREEN: Color;
22
+ /** Opaque blue `#0000ff`. */
8
23
  static readonly BLUE: Color;
24
+ /** Opaque yellow `#ffff00`. */
9
25
  static readonly YELLOW: Color;
26
+ /** Opaque magenta `#ff00ff`. */
10
27
  static readonly MAGENTA: Color;
28
+ /** Opaque cyan `#00ffff`. */
11
29
  static readonly CYAN: Color;
30
+ /** Opaque black `#000000`. */
12
31
  static readonly BLACK: Color;
32
+ /** Opaque white `#ffffff`. */
13
33
  static readonly WHITE: Color;
34
+ /** Fully transparent black. */
14
35
  static readonly TRANSPARENT: Color;
15
36
  private readonly rgba_;
37
+ /**
38
+ * Creates a color from RGBA components in `[0, 1]`.
39
+ *
40
+ * @param r - The red component.
41
+ * @param g - The green component.
42
+ * @param b - The blue component.
43
+ * @param a - The alpha component. Defaults to `1`.
44
+ */
16
45
  constructor(r: number, g: number, b: number, a?: number);
46
+ /** The RGB components as a three-element array. */
17
47
  get rgb(): [number, number, number];
48
+ /** The RGBA components as a four-element array. */
18
49
  get rgba(): readonly [number, number, number, number];
50
+ /** The red component. */
19
51
  get r(): number;
52
+ /** The green component. */
20
53
  get g(): number;
54
+ /** The blue component. */
21
55
  get b(): number;
56
+ /** The alpha component. */
22
57
  get a(): number;
58
+ /** The color as a `#rrggbb` hex string. Alpha is dropped. */
23
59
  get rgbHex(): string;
60
+ /** The color packed into a 32-bit integer as RGBA bytes. */
24
61
  get packed(): number;
62
+ /**
63
+ * Converts a {@link ColorLike} value to a `Color`.
64
+ *
65
+ * @param colorLike - The value to convert.
66
+ */
25
67
  static from(colorLike: ColorLike): Color;
68
+ /**
69
+ * Parses a `#rrggbb` hex string into an opaque color.
70
+ *
71
+ * @param hex - The hex string with or without the leading `#`.
72
+ */
26
73
  static fromRgbHex(hex: string): Color;
27
74
  private toHexComponent;
28
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../src/math/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC,iCAAiC;AACjC,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAErD,iCAAiC;AACjC,qBAAa,KAAK;IAChB,gBAAuB,GAAG,EAAE,KAAK,CAA4B;IAC7D,gBAAuB,KAAK,EAAE,KAAK,CAA4B;IAC/D,gBAAuB,IAAI,EAAE,KAAK,CAA4B;IAC9D,gBAAuB,MAAM,EAAE,KAAK,CAA4B;IAChE,gBAAuB,OAAO,EAAE,KAAK,CAA4B;IACjE,gBAAuB,IAAI,EAAE,KAAK,CAA4B;IAC9D,gBAAuB,KAAK,EAAE,KAAK,CAA4B;IAC/D,gBAAuB,KAAK,EAAE,KAAK,CAA4B;IAC/D,gBAAuB,WAAW,EAAE,KAAK,CAAiC;IAG1E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4C;gBAEtD,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM;IAUvD,IAAW,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEzC;IAED,IAAW,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAE3D;IAED,IAAW,CAAC,IAAI,MAAM,CAErB;IAED,IAAW,CAAC,IAAI,MAAM,CAErB;IAED,IAAW,CAAC,IAAI,MAAM,CAErB;IAED,IAAW,CAAC,IAAI,MAAM,CAErB;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,IAAI,MAAM,CAO1B;WAEa,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK;WAgBjC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAa5C,OAAO,CAAC,cAAc;CAMvB"}
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../src/math/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAErD;;;;;;;;;;GAUG;AACH,qBAAa,KAAK;IAChB,4BAA4B;IAC5B,gBAAuB,GAAG,EAAE,KAAK,CAA4B;IAC7D,8BAA8B;IAC9B,gBAAuB,KAAK,EAAE,KAAK,CAA4B;IAC/D,6BAA6B;IAC7B,gBAAuB,IAAI,EAAE,KAAK,CAA4B;IAC9D,+BAA+B;IAC/B,gBAAuB,MAAM,EAAE,KAAK,CAA4B;IAChE,gCAAgC;IAChC,gBAAuB,OAAO,EAAE,KAAK,CAA4B;IACjE,6BAA6B;IAC7B,gBAAuB,IAAI,EAAE,KAAK,CAA4B;IAC9D,8BAA8B;IAC9B,gBAAuB,KAAK,EAAE,KAAK,CAA4B;IAC/D,8BAA8B;IAC9B,gBAAuB,KAAK,EAAE,KAAK,CAA4B;IAC/D,+BAA+B;IAC/B,gBAAuB,WAAW,EAAE,KAAK,CAAiC;IAG1E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4C;IAElE;;;;;;;OAOG;gBACS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM;IAUvD,mDAAmD;IACnD,IAAW,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEzC;IAED,mDAAmD;IACnD,IAAW,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAE3D;IAED,yBAAyB;IACzB,IAAW,CAAC,IAAI,MAAM,CAErB;IAED,2BAA2B;IAC3B,IAAW,CAAC,IAAI,MAAM,CAErB;IAED,0BAA0B;IAC1B,IAAW,CAAC,IAAI,MAAM,CAErB;IAED,2BAA2B;IAC3B,IAAW,CAAC,IAAI,MAAM,CAErB;IAED,6DAA6D;IAC7D,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,4DAA4D;IAC5D,IAAW,MAAM,IAAI,MAAM,CAO1B;IAED;;;;OAIG;WACW,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK;IAgB/C;;;;OAIG;WACW,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAa5C,OAAO,CAAC,cAAc;CAMvB"}
@@ -1,9 +1,37 @@
1
1
  import { Box3 } from "./box3";
2
2
  import { mat4 } from "gl-matrix";
3
+ /**
4
+ * Camera view frustum defined by six world-space planes.
5
+ *
6
+ * Frustum represents the visible region of a camera as six bounding
7
+ * planes. It is used for culling tests and visibility checks against
8
+ * bounding boxes. The planes are extracted from a view-projection matrix
9
+ * and normalized so distances are in world units.
10
+ *
11
+ * @group Math
12
+ */
3
13
  export declare class Frustum {
4
14
  private readonly planes_;
15
+ /**
16
+ * Creates a frustum from a view-projection matrix.
17
+ *
18
+ * @param m - The combined view-projection matrix.
19
+ */
5
20
  constructor(m: mat4);
21
+ /**
22
+ * Re-extracts the six planes from a view-projection matrix.
23
+ *
24
+ * @param m - The combined view-projection matrix.
25
+ */
6
26
  setWithViewProjection(m: mat4): void;
27
+ /**
28
+ * Tests whether a box is at least partly inside the frustum. The test
29
+ * is conservative. A box outside the frustum but near a corner can be
30
+ * reported as intersecting, which only costs a draw of an offscreen
31
+ * object.
32
+ *
33
+ * @param box - The world-space box to test.
34
+ */
7
35
  intersectsWithBox3(box: Box3): boolean;
8
36
  }
9
37
  //# sourceMappingURL=frustum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frustum.d.ts","sourceRoot":"","sources":["../../../../src/math/frustum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAQ,MAAM,WAAW,CAAC;AAEvC,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;gBAEzD,CAAC,EAAE,IAAI;IAcZ,qBAAqB,CAAC,CAAC,EAAE,IAAI;IA0C7B,kBAAkB,CAAC,GAAG,EAAE,IAAI;CAWpC"}
1
+ {"version":3,"file":"frustum.d.ts","sourceRoot":"","sources":["../../../../src/math/frustum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAQ,MAAM,WAAW,CAAC;AAEvC;;;;;;;;;GASG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IAErE;;;;OAIG;gBACS,CAAC,EAAE,IAAI;IAcnB;;;;OAIG;IACI,qBAAqB,CAAC,CAAC,EAAE,IAAI;IA0CpC;;;;;;;OAOG;IACI,kBAAkB,CAAC,GAAG,EAAE,IAAI;CAWpC"}
@@ -1,21 +1,78 @@
1
1
  import { mat4, vec3, quat } from "gl-matrix";
2
+ /**
3
+ * Transform defined by translation, rotation, and scale components.
4
+ *
5
+ * TRS transform represents a placement in world space composed as
6
+ * translation times rotation times scale. It is used to position cameras
7
+ * and renderable objects through their `transform` property. The matrix
8
+ * is computed lazily and cached.
9
+ *
10
+ * ```ts
11
+ * const transform = camera.transform;
12
+ * transform.setTranslation([0, 0, radius]);
13
+ * transform.targetTo([0, 0, 0]);
14
+ * ```
15
+ *
16
+ * @group Math
17
+ */
2
18
  export declare class TrsTransform {
3
19
  private dirty_;
4
20
  private matrix_;
5
21
  private rotation_;
6
22
  private translation_;
7
23
  private scale_;
24
+ /**
25
+ * Composes the given rotation onto the current rotation.
26
+ *
27
+ * @param q - The rotation to apply.
28
+ */
8
29
  addRotation(q: quat): void;
30
+ /**
31
+ * Replaces the rotation with the given quaternion.
32
+ *
33
+ * @param q - The new rotation.
34
+ */
9
35
  setRotation(q: quat): void;
36
+ /** A copy of the rotation quaternion. */
10
37
  get rotation(): import("gl-matrix").vec4;
38
+ /**
39
+ * Adds the given offset to the translation.
40
+ *
41
+ * @param vec - The offset to add.
42
+ */
11
43
  addTranslation(vec: vec3): void;
44
+ /**
45
+ * Replaces the translation with the given vector.
46
+ *
47
+ * @param vec - The new translation.
48
+ */
12
49
  setTranslation(vec: vec3): void;
50
+ /** A copy of the translation vector. */
13
51
  get translation(): vec3;
52
+ /**
53
+ * Multiplies the scale componentwise by the given vector.
54
+ *
55
+ * @param vec - The scale factors to apply.
56
+ */
14
57
  addScale(vec: vec3): void;
58
+ /**
59
+ * Replaces the scale with the given vector.
60
+ *
61
+ * @param vec - The new scale.
62
+ */
15
63
  setScale(vec: vec3): void;
64
+ /**
65
+ * Rotates the transform to face the given target point. Uses `+Y` as
66
+ * world up.
67
+ *
68
+ * @param target - The world-space point to face.
69
+ */
16
70
  targetTo(target: vec3): void;
71
+ /** A copy of the scale vector. */
17
72
  get scale(): vec3;
73
+ /** The composed transform matrix. Recomputed when stale. */
18
74
  get matrix(): mat4;
75
+ /** The inverse of the composed transform matrix. */
19
76
  get inverse(): mat4;
20
77
  private computeMatrix;
21
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../../../../src/math/transforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,IAAI,EAAE,IAAI,EAAY,MAAM,WAAW,CAAC;AAK7D,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,MAAM,CAA4B;IAEnC,WAAW,CAAC,CAAC,EAAE,IAAI;IAKnB,WAAW,CAAC,CAAC,EAAE,IAAI;IAK1B,IAAW,QAAQ,6BAElB;IAEM,cAAc,CAAC,GAAG,EAAE,IAAI;IAKxB,cAAc,CAAC,GAAG,EAAE,IAAI;IAK/B,IAAW,WAAW,SAErB;IAEM,QAAQ,CAAC,GAAG,EAAE,IAAI;IAKlB,QAAQ,CAAC,GAAG,EAAE,IAAI;IAKlB,QAAQ,CAAC,MAAM,EAAE,IAAI;IAgB5B,IAAW,KAAK,SAEf;IAED,IAAW,MAAM,SAMhB;IAED,IAAW,OAAO,SAEjB;IAED,OAAO,CAAC,aAAa;CAQtB"}
1
+ {"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../../../../src/math/transforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,IAAI,EAAE,IAAI,EAAY,MAAM,WAAW,CAAC;AAK7D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,MAAM,CAA4B;IAE1C;;;;OAIG;IACI,WAAW,CAAC,CAAC,EAAE,IAAI;IAK1B;;;;OAIG;IACI,WAAW,CAAC,CAAC,EAAE,IAAI;IAK1B,yCAAyC;IACzC,IAAW,QAAQ,6BAElB;IAED;;;;OAIG;IACI,cAAc,CAAC,GAAG,EAAE,IAAI;IAK/B;;;;OAIG;IACI,cAAc,CAAC,GAAG,EAAE,IAAI;IAK/B,wCAAwC;IACxC,IAAW,WAAW,SAErB;IAED;;;;OAIG;IACI,QAAQ,CAAC,GAAG,EAAE,IAAI;IAKzB;;;;OAIG;IACI,QAAQ,CAAC,GAAG,EAAE,IAAI;IAKzB;;;;;OAKG;IACI,QAAQ,CAAC,MAAM,EAAE,IAAI;IAgB5B,kCAAkC;IAClC,IAAW,KAAK,SAEf;IAED,4DAA4D;IAC5D,IAAW,MAAM,SAMhB;IAED,oDAAoD;IACpD,IAAW,OAAO,SAEjB;IAED,OAAO,CAAC,aAAa;CAQtB"}
@@ -2,26 +2,81 @@ import { Node } from "../../core/node";
2
2
  import { Frustum } from "../../math/frustum";
3
3
  import { TrsTransform } from "../../math/transforms";
4
4
  import { mat4, vec3 } from "gl-matrix";
5
+ /** Identifies a concrete camera implementation. */
5
6
  export type CameraType = "OrthographicCamera" | "PerspectiveCamera";
7
+ /**
8
+ * Abstract base class for cameras.
9
+ *
10
+ * A camera pairs a world-space transform with a projection, producing the
11
+ * view and projection matrices used to render a viewport. The concrete
12
+ * cameras, {@link OrthographicCamera} and {@link PerspectiveCamera}, define
13
+ * the projection. This class provides the shared transform, derived
14
+ * matrices, and navigation helpers.
15
+ *
16
+ * @group Cameras
17
+ */
6
18
  export declare abstract class Camera extends Node {
7
19
  private readonly transform_;
20
+ /** @hidden */
8
21
  protected projectionMatrix_: mat4;
22
+ /** @hidden */
9
23
  protected near_: number;
24
+ /** @hidden */
10
25
  protected far_: number;
26
+ /** @hidden */
11
27
  protected abstract updateProjectionMatrix(): void;
28
+ /** Identifies the camera type. */
12
29
  abstract get type(): CameraType;
30
+ /** Recomputes the camera's projection matrix. */
13
31
  update(): void;
32
+ /** The camera's projection matrix. */
14
33
  get projectionMatrix(): mat4;
34
+ /** The camera's world-space transform. */
15
35
  get transform(): TrsTransform;
36
+ /** The view matrix: the inverse of the camera's world transform. */
16
37
  get viewMatrix(): mat4;
38
+ /** The camera's local right axis in world space. */
17
39
  get right(): vec3;
40
+ /** The camera's local up axis in world space. */
18
41
  get up(): vec3;
42
+ /**
43
+ * Computes the combined view-projection matrix.
44
+ *
45
+ * @returns The projection matrix multiplied by the view matrix.
46
+ */
19
47
  getViewProjection(): mat4;
48
+ /** The view frustum derived from the current view-projection. */
20
49
  get frustum(): Frustum;
50
+ /**
51
+ * Sets the aspect ratio (width / height) of the viewport the camera
52
+ * renders into. Called automatically by the owning viewport when it
53
+ * resizes.
54
+ *
55
+ * @param aspectRatio - The viewport's width divided by its height.
56
+ */
21
57
  abstract setAspectRatio(aspectRatio: number): void;
58
+ /**
59
+ * Zooms the view by the given factor relative to the current zoom level.
60
+ * Factors greater than `1` zoom in and factors between `0` and `1` zoom
61
+ * out.
62
+ *
63
+ * @param factor - The magnification factor to apply.
64
+ */
22
65
  abstract zoom(factor: number): void;
66
+ /**
67
+ * Moves the camera by the given world-space offset.
68
+ *
69
+ * @param vec - The translation to add to the camera's position.
70
+ */
23
71
  pan(vec: vec3): void;
72
+ /** The camera's world-space position. */
24
73
  get position(): vec3;
74
+ /**
75
+ * Transforms a position from clip space to world space.
76
+ *
77
+ * @param position - The clip-space position to transform.
78
+ * @returns The corresponding world-space position.
79
+ */
25
80
  clipToWorld(position: vec3): vec3;
26
81
  }
27
82
  //# sourceMappingURL=camera.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../../../src/objects/cameras/camera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAQ,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAEpE,8BAAsB,MAAO,SAAQ,IAAI;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,SAAS,CAAC,iBAAiB,OAAiB;IAC5C,SAAS,CAAC,KAAK,SAAK;IACpB,SAAS,CAAC,IAAI,SAAK;IAEnB,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,IAAI;IAEjD,aAAoB,IAAI,IAAI,UAAU,CAAC;IAEhC,MAAM;IAIb,IAAI,gBAAgB,SAEnB;IAED,IAAW,SAAS,iBAEnB;IAED,IAAI,UAAU,SAEb;IAED,IAAI,KAAK,SAGR;IAED,IAAI,EAAE,SAGL;IAEM,iBAAiB,IAAI,IAAI;IAIhC,IAAI,OAAO,YAEV;aAEe,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;aACzC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAEnC,GAAG,CAAC,GAAG,EAAE,IAAI;IAIpB,IAAW,QAAQ,SAElB;IAEM,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;CAoBzC"}
1
+ {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../../../src/objects/cameras/camera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAQ,MAAM,WAAW,CAAC;AAE7C,mDAAmD;AACnD,MAAM,MAAM,UAAU,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,8BAAsB,MAAO,SAAQ,IAAI;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,cAAc;IACd,SAAS,CAAC,iBAAiB,OAAiB;IAC5C,cAAc;IACd,SAAS,CAAC,KAAK,SAAK;IACpB,cAAc;IACd,SAAS,CAAC,IAAI,SAAK;IAEnB,cAAc;IACd,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,IAAI;IAEjD,kCAAkC;IAClC,aAAoB,IAAI,IAAI,UAAU,CAAC;IAEvC,iDAAiD;IAC1C,MAAM;IAIb,sCAAsC;IACtC,IAAI,gBAAgB,SAEnB;IAED,0CAA0C;IAC1C,IAAW,SAAS,iBAEnB;IAED,oEAAoE;IACpE,IAAI,UAAU,SAEb;IAED,oDAAoD;IACpD,IAAI,KAAK,SAGR;IAED,iDAAiD;IACjD,IAAI,EAAE,SAGL;IAED;;;;OAIG;IACI,iBAAiB,IAAI,IAAI;IAIhC,iEAAiE;IACjE,IAAI,OAAO,YAEV;IAED;;;;;;OAMG;aACa,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAEzD;;;;;;OAMG;aACa,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAE1C;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,IAAI;IAIpB,yCAAyC;IACzC,IAAW,QAAQ,SAElB;IAED;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;CAoBzC"}
@@ -1,18 +1,105 @@
1
1
  import { OrthographicCamera } from "./orthographic_camera";
2
2
  import { EventContext } from "../../core/event_dispatcher";
3
+ /**
4
+ * The contract between a viewport and its camera controls.
5
+ *
6
+ * Implement this interface to drive a camera with custom input logic and
7
+ * assign it to a viewport through its `cameraControls` property. The
8
+ * viewport passes pointer and wheel events to `onEvent` unless a layer
9
+ * stops propagation.
10
+ *
11
+ * ```ts
12
+ * class ClickToZoomControls implements CameraControls {
13
+ * constructor(private camera: OrthographicCamera) {}
14
+ *
15
+ * get isMoving() {
16
+ * return false;
17
+ * }
18
+ *
19
+ * onUpdate(dt: number) {}
20
+ *
21
+ * onEvent(event: EventContext) {
22
+ * if (event.type === "pointerdown") this.camera.zoom(2);
23
+ * }
24
+ * }
25
+ *
26
+ * viewport.cameraControls = new ClickToZoomControls(camera);
27
+ * ```
28
+ *
29
+ * @group Controls
30
+ */
3
31
  export interface CameraControls {
32
+ /**
33
+ * Whether the camera is in motion from user interaction. Layers may
34
+ * read this to reduce rendering quality while the view changes.
35
+ */
4
36
  readonly isMoving: boolean;
37
+ /**
38
+ * Advances time-based motion such as damping. Called automatically by
39
+ * the render loop.
40
+ *
41
+ * @param dt - Time since the last frame in seconds.
42
+ */
5
43
  onUpdate(dt: number): void;
44
+ /**
45
+ * Handles a pointer or wheel event. Called automatically by the owning
46
+ * viewport unless a layer stops propagation.
47
+ *
48
+ * @param event - The event with clip and world coordinates attached.
49
+ */
6
50
  onEvent(event: EventContext): void;
7
51
  }
8
- /** @group Cameras & Controls */
52
+ /**
53
+ * Camera controls for 2D pan and zoom with an orthographic camera.
54
+ *
55
+ * Dragging with the left mouse button pans the view and the scroll wheel
56
+ * zooms around the cursor, keeping the point under the pointer fixed.
57
+ * Movement applies immediately with no inertia or damping.
58
+ *
59
+ * ```ts
60
+ * const camera = new OrthographicCamera({
61
+ * left: 0,
62
+ * right: 1024,
63
+ * top: 0,
64
+ * bottom: 1024,
65
+ * });
66
+ *
67
+ * const idetik = new Idetik({
68
+ * canvas,
69
+ * viewports: [{
70
+ * camera,
71
+ * layers: [imageLayer],
72
+ * cameraControls: new PanZoomControls(camera),
73
+ * }],
74
+ * });
75
+ * ```
76
+ *
77
+ * @group Controls
78
+ */
9
79
  export declare class PanZoomControls implements CameraControls {
10
80
  private readonly camera_;
11
81
  private dragActive_;
12
82
  private dragStart_;
83
+ /**
84
+ * Creates pan and zoom controls for the given camera.
85
+ *
86
+ * @param camera - The orthographic camera to control.
87
+ */
13
88
  constructor(camera: OrthographicCamera);
89
+ /** Whether a pan drag is in progress. */
14
90
  get isMoving(): boolean;
91
+ /**
92
+ * Handles a pointer or wheel event. Called automatically by the owning
93
+ * viewport unless a layer stops propagation.
94
+ *
95
+ * @param event - The event with clip and world coordinates attached.
96
+ */
15
97
  onEvent(event: EventContext): void;
98
+ /**
99
+ * Does nothing. Pan and zoom apply immediately with no inertia.
100
+ *
101
+ * @param _delta - Time since the last frame in seconds. Unused.
102
+ */
16
103
  onUpdate(_delta: number): void;
17
104
  private onWheel;
18
105
  private onPointerDown;
@@ -1 +1 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../../src/objects/cameras/controls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC;AAED,gCAAgC;AAChC,qBAAa,eAAgB,YAAW,cAAc;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAuB;gBAE7B,MAAM,EAAE,kBAAkB;IAItC,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAEM,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAkBlC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAE9B,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;CAQrB"}
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../../src/objects/cameras/controls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,eAAgB,YAAW,cAAc;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAuB;IAEzC;;;;OAIG;gBACS,MAAM,EAAE,kBAAkB;IAItC,yCAAyC;IACzC,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAkBzC;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,MAAM;IAE9B,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;CAQrB"}
@@ -2,14 +2,46 @@ import { CameraControls } from "./controls";
2
2
  import { EventContext } from "../../core/event_dispatcher";
3
3
  import { PerspectiveCamera } from "./perspective_camera";
4
4
  import { vec3 } from "gl-matrix";
5
+ /**
6
+ * Initialization properties for constructing orbit controls.
7
+ */
5
8
  export type OrbitControlsProps = {
9
+ /** Distance from the target in world units. Defaults to `1`. */
6
10
  radius?: number;
11
+ /** Initial azimuth angle in radians. Defaults to `0`. */
7
12
  yaw?: number;
13
+ /** Initial elevation angle in radians. Defaults to `0`. */
8
14
  pitch?: number;
15
+ /** The point the camera orbits. Defaults to the origin. */
9
16
  target?: vec3;
17
+ /** Velocity decay rate between `0` and `1`. Defaults to `0.5`. */
10
18
  dampingFactor?: number;
11
19
  };
12
- /** @group Cameras & Controls */
20
+ /**
21
+ * Camera controls for orbiting a perspective camera around a target.
22
+ *
23
+ * Dragging with the left mouse button orbits, dragging with `Shift` held
24
+ * or with the middle button pans the target, and the scroll wheel zooms by
25
+ * changing the orbit radius. Input adds velocity that damping decays over time.
26
+ *
27
+ * ```ts
28
+ * const camera = new PerspectiveCamera({ near: 1.0 });
29
+ *
30
+ * const idetik = new Idetik({
31
+ * canvas,
32
+ * viewports: [{
33
+ * camera,
34
+ * layers: [volumeLayer],
35
+ * cameraControls: new OrbitControls(camera, {
36
+ * radius: 100,
37
+ * target: [40, 40, 10],
38
+ * }),
39
+ * }],
40
+ * });
41
+ * ```
42
+ *
43
+ * @group Controls
44
+ */
13
45
  export declare class OrbitControls implements CameraControls {
14
46
  private readonly camera_;
15
47
  private readonly orbitVelocity_;
@@ -18,13 +50,36 @@ export declare class OrbitControls implements CameraControls {
18
50
  private readonly currCenter_;
19
51
  private readonly dampingFactor_;
20
52
  private currMouseButton_;
53
+ /**
54
+ * Creates orbit controls and moves the camera to the initial pose.
55
+ *
56
+ * @param camera - The perspective camera to control.
57
+ * @param params - Initialization properties.
58
+ */
21
59
  constructor(camera: PerspectiveCamera, params?: OrbitControlsProps);
60
+ /** The current distance from the target in world units. */
22
61
  get radius(): number;
62
+ /** The current azimuth angle in radians. */
23
63
  get yaw(): number;
64
+ /** The current elevation angle in radians. */
24
65
  get pitch(): number;
66
+ /** A copy of the point the camera orbits. */
25
67
  get target(): vec3;
68
+ /** Whether any orbit, pan, or zoom velocity remains. */
26
69
  get isMoving(): boolean;
70
+ /**
71
+ * Handles a pointer or wheel event. Called automatically by the owning
72
+ * viewport unless a layer stops propagation.
73
+ *
74
+ * @param event - The event with clip and world coordinates attached.
75
+ */
27
76
  onEvent(event: EventContext): void;
77
+ /**
78
+ * Applies pending velocities to the camera and decays them toward zero.
79
+ * Called automatically by the render loop once per frame.
80
+ *
81
+ * @param dt - Time since the last frame in seconds.
82
+ */
28
83
  onUpdate(dt: number): void;
29
84
  private onPointerDown;
30
85
  private onPointerMove;
@@ -1 +1 @@
1
- {"version":3,"file":"orbit_controls.d.ts","sourceRoot":"","sources":["../../../../../src/objects/cameras/orbit_controls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAY,IAAI,EAAE,MAAM,WAAW,CAAC;AAa3C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,gCAAgC;AAChC,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAE9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAE7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC,OAAO,CAAC,gBAAgB,CAAqB;gBAEjC,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,kBAAkB;IAsBlE,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,GAAG,IAAI,MAAM,CAEvB;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,MAAM,IAAI,IAAI,CAExB;IAED,IAAW,QAAQ,IAAI,OAAO,CAS7B;IAEM,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAkBlC,QAAQ,CAAC,EAAE,EAAE,MAAM;IAmC1B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,GAAG;IAWX,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;CAU1B"}
1
+ {"version":3,"file":"orbit_controls.d.ts","sourceRoot":"","sources":["../../../../../src/objects/cameras/orbit_controls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAY,IAAI,EAAE,MAAM,WAAW,CAAC;AAa3C;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAE9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAE7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC,OAAO,CAAC,gBAAgB,CAAqB;IAE7C;;;;;OAKG;gBACS,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,kBAAkB;IAsBlE,2DAA2D;IAC3D,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,4CAA4C;IAC5C,IAAW,GAAG,IAAI,MAAM,CAEvB;IAED,8CAA8C;IAC9C,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,6CAA6C;IAC7C,IAAW,MAAM,IAAI,IAAI,CAExB;IAED,wDAAwD;IACxD,IAAW,QAAQ,IAAI,OAAO,CAS7B;IAED;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAkBzC;;;;;OAKG;IACI,QAAQ,CAAC,EAAE,EAAE,MAAM;IAmC1B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,GAAG;IAWX,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;CAU1B"}