@tonybfox/threejs-tools 1.0.0

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 (80) hide show
  1. package/README.md +321 -0
  2. package/dist/asset-loader/index.cjs +376 -0
  3. package/dist/asset-loader/index.cjs.map +1 -0
  4. package/dist/asset-loader/index.d.mts +101 -0
  5. package/dist/asset-loader/index.d.ts +101 -0
  6. package/dist/asset-loader/index.mjs +7 -0
  7. package/dist/asset-loader/index.mjs.map +1 -0
  8. package/dist/camera/index.cjs +313 -0
  9. package/dist/camera/index.cjs.map +1 -0
  10. package/dist/camera/index.d.mts +82 -0
  11. package/dist/camera/index.d.ts +82 -0
  12. package/dist/camera/index.mjs +7 -0
  13. package/dist/camera/index.mjs.map +1 -0
  14. package/dist/chunk-5DP6WDB3.mjs +1161 -0
  15. package/dist/chunk-5DP6WDB3.mjs.map +1 -0
  16. package/dist/chunk-BJKSICFA.mjs +1579 -0
  17. package/dist/chunk-BJKSICFA.mjs.map +1 -0
  18. package/dist/chunk-BYRZCHE7.mjs +277 -0
  19. package/dist/chunk-BYRZCHE7.mjs.map +1 -0
  20. package/dist/chunk-EIROAPF7.mjs +387 -0
  21. package/dist/chunk-EIROAPF7.mjs.map +1 -0
  22. package/dist/chunk-EQDOX34V.mjs +164 -0
  23. package/dist/chunk-EQDOX34V.mjs.map +1 -0
  24. package/dist/chunk-IIAZ2WJJ.mjs +405 -0
  25. package/dist/chunk-IIAZ2WJJ.mjs.map +1 -0
  26. package/dist/chunk-L4VIIJZD.mjs +340 -0
  27. package/dist/chunk-L4VIIJZD.mjs.map +1 -0
  28. package/dist/chunk-P35QJCOG.mjs +339 -0
  29. package/dist/chunk-P35QJCOG.mjs.map +1 -0
  30. package/dist/chunk-R64RVBRM.mjs +394 -0
  31. package/dist/chunk-R64RVBRM.mjs.map +1 -0
  32. package/dist/compass/index.cjs +375 -0
  33. package/dist/compass/index.cjs.map +1 -0
  34. package/dist/compass/index.d.mts +58 -0
  35. package/dist/compass/index.d.ts +58 -0
  36. package/dist/compass/index.mjs +7 -0
  37. package/dist/compass/index.mjs.map +1 -0
  38. package/dist/grid/index.cjs +200 -0
  39. package/dist/grid/index.cjs.map +1 -0
  40. package/dist/grid/index.d.mts +43 -0
  41. package/dist/grid/index.d.ts +43 -0
  42. package/dist/grid/index.mjs +7 -0
  43. package/dist/grid/index.mjs.map +1 -0
  44. package/dist/index.cjs +5049 -0
  45. package/dist/index.cjs.map +1 -0
  46. package/dist/index.d.mts +13 -0
  47. package/dist/index.d.ts +13 -0
  48. package/dist/index.mjs +47 -0
  49. package/dist/index.mjs.map +1 -0
  50. package/dist/measurements/index.cjs +1198 -0
  51. package/dist/measurements/index.cjs.map +1 -0
  52. package/dist/measurements/index.d.mts +449 -0
  53. package/dist/measurements/index.d.ts +449 -0
  54. package/dist/measurements/index.mjs +9 -0
  55. package/dist/measurements/index.mjs.map +1 -0
  56. package/dist/sunlight/index.cjs +441 -0
  57. package/dist/sunlight/index.cjs.map +1 -0
  58. package/dist/sunlight/index.d.mts +92 -0
  59. package/dist/sunlight/index.d.ts +92 -0
  60. package/dist/sunlight/index.mjs +7 -0
  61. package/dist/sunlight/index.mjs.map +1 -0
  62. package/dist/terrain/index.cjs +423 -0
  63. package/dist/terrain/index.cjs.map +1 -0
  64. package/dist/terrain/index.d.mts +219 -0
  65. package/dist/terrain/index.d.ts +219 -0
  66. package/dist/terrain/index.mjs +7 -0
  67. package/dist/terrain/index.mjs.map +1 -0
  68. package/dist/transform-controls/index.cjs +1587 -0
  69. package/dist/transform-controls/index.cjs.map +1 -0
  70. package/dist/transform-controls/index.d.mts +162 -0
  71. package/dist/transform-controls/index.d.ts +162 -0
  72. package/dist/transform-controls/index.mjs +13 -0
  73. package/dist/transform-controls/index.mjs.map +1 -0
  74. package/dist/view-helper/index.cjs +430 -0
  75. package/dist/view-helper/index.cjs.map +1 -0
  76. package/dist/view-helper/index.d.mts +75 -0
  77. package/dist/view-helper/index.d.ts +75 -0
  78. package/dist/view-helper/index.mjs +7 -0
  79. package/dist/view-helper/index.mjs.map +1 -0
  80. package/package.json +124 -0
@@ -0,0 +1,82 @@
1
+ import * as THREE from 'three';
2
+ import CameraControls from 'camera-controls';
3
+
4
+ type Vector3Tuple = [number, number, number];
5
+ type Vector3Like = THREE.Vector3 | Vector3Tuple;
6
+ type CameraMode = 'perspective' | 'orthographic';
7
+ interface PerspectiveCameraConfig {
8
+ fov?: number;
9
+ near?: number;
10
+ far?: number;
11
+ position?: Vector3Like;
12
+ zoom?: number;
13
+ }
14
+ interface OrthographicCameraConfig {
15
+ size?: number;
16
+ near?: number;
17
+ far?: number;
18
+ position?: Vector3Like;
19
+ zoom?: number;
20
+ }
21
+ interface DualCameraControlsOptions {
22
+ domElement?: HTMLElement;
23
+ initialMode?: CameraMode;
24
+ initialTarget?: Vector3Like;
25
+ perspective?: PerspectiveCameraConfig;
26
+ orthographic?: OrthographicCameraConfig;
27
+ }
28
+ interface ModeChangedEvent {
29
+ type: 'modechange';
30
+ mode: CameraMode;
31
+ previousMode: CameraMode;
32
+ camera: THREE.PerspectiveCamera | THREE.OrthographicCamera;
33
+ }
34
+ /**
35
+ * Camera controls that manage both perspective and orthographic cameras while
36
+ * extending {@link CameraControls}. Provides helpers to toggle between the
37
+ * camera types and keep the framing consistent.
38
+ */
39
+ declare class DualCameraControls extends CameraControls {
40
+ readonly perspectiveCamera: THREE.PerspectiveCamera;
41
+ readonly orthographicCamera: THREE.OrthographicCamera;
42
+ private readonly renderer;
43
+ private readonly domElementRef;
44
+ private activeMode;
45
+ private readonly minOrthoHalfHeight;
46
+ private readonly updateClock;
47
+ constructor(renderer: THREE.WebGLRenderer, options?: DualCameraControlsOptions);
48
+ get mode(): CameraMode;
49
+ /**
50
+ * Returns the currently active camera instance.
51
+ */
52
+ get activeCamera(): THREE.PerspectiveCamera | THREE.OrthographicCamera;
53
+ /**
54
+ * Switch to the perspective camera while keeping the current framing.
55
+ */
56
+ switchToPerspective(enableTransition?: boolean): void;
57
+ /**
58
+ * Switch to the orthographic camera while keeping the current framing.
59
+ */
60
+ switchToOrthographic(enableTransition?: boolean): void;
61
+ /**
62
+ * Toggles between perspective and orthographic camera modes.
63
+ */
64
+ toggleCameraMode(enableTransition?: boolean): void;
65
+ /**
66
+ * Update camera projection parameters when the viewport size changes.
67
+ */
68
+ handleResize(width: number, height: number): void;
69
+ /**
70
+ * Moves the camera to a new position and target.
71
+ */
72
+ moveCamera(position: Vector3Like, target: Vector3Like, enableTransition?: boolean): Promise<void>;
73
+ /**
74
+ * Updates the controls using an internally managed clock.
75
+ * Useful when you don't want to pass delta time each frame.
76
+ */
77
+ updateDelta(): ReturnType<CameraControls['update']>;
78
+ private updateInputBindingsForMode;
79
+ private updateOrthographicFrustum;
80
+ }
81
+
82
+ export { type CameraMode, DualCameraControls, type DualCameraControlsOptions, type ModeChangedEvent, type OrthographicCameraConfig, type PerspectiveCameraConfig };
@@ -0,0 +1,82 @@
1
+ import * as THREE from 'three';
2
+ import CameraControls from 'camera-controls';
3
+
4
+ type Vector3Tuple = [number, number, number];
5
+ type Vector3Like = THREE.Vector3 | Vector3Tuple;
6
+ type CameraMode = 'perspective' | 'orthographic';
7
+ interface PerspectiveCameraConfig {
8
+ fov?: number;
9
+ near?: number;
10
+ far?: number;
11
+ position?: Vector3Like;
12
+ zoom?: number;
13
+ }
14
+ interface OrthographicCameraConfig {
15
+ size?: number;
16
+ near?: number;
17
+ far?: number;
18
+ position?: Vector3Like;
19
+ zoom?: number;
20
+ }
21
+ interface DualCameraControlsOptions {
22
+ domElement?: HTMLElement;
23
+ initialMode?: CameraMode;
24
+ initialTarget?: Vector3Like;
25
+ perspective?: PerspectiveCameraConfig;
26
+ orthographic?: OrthographicCameraConfig;
27
+ }
28
+ interface ModeChangedEvent {
29
+ type: 'modechange';
30
+ mode: CameraMode;
31
+ previousMode: CameraMode;
32
+ camera: THREE.PerspectiveCamera | THREE.OrthographicCamera;
33
+ }
34
+ /**
35
+ * Camera controls that manage both perspective and orthographic cameras while
36
+ * extending {@link CameraControls}. Provides helpers to toggle between the
37
+ * camera types and keep the framing consistent.
38
+ */
39
+ declare class DualCameraControls extends CameraControls {
40
+ readonly perspectiveCamera: THREE.PerspectiveCamera;
41
+ readonly orthographicCamera: THREE.OrthographicCamera;
42
+ private readonly renderer;
43
+ private readonly domElementRef;
44
+ private activeMode;
45
+ private readonly minOrthoHalfHeight;
46
+ private readonly updateClock;
47
+ constructor(renderer: THREE.WebGLRenderer, options?: DualCameraControlsOptions);
48
+ get mode(): CameraMode;
49
+ /**
50
+ * Returns the currently active camera instance.
51
+ */
52
+ get activeCamera(): THREE.PerspectiveCamera | THREE.OrthographicCamera;
53
+ /**
54
+ * Switch to the perspective camera while keeping the current framing.
55
+ */
56
+ switchToPerspective(enableTransition?: boolean): void;
57
+ /**
58
+ * Switch to the orthographic camera while keeping the current framing.
59
+ */
60
+ switchToOrthographic(enableTransition?: boolean): void;
61
+ /**
62
+ * Toggles between perspective and orthographic camera modes.
63
+ */
64
+ toggleCameraMode(enableTransition?: boolean): void;
65
+ /**
66
+ * Update camera projection parameters when the viewport size changes.
67
+ */
68
+ handleResize(width: number, height: number): void;
69
+ /**
70
+ * Moves the camera to a new position and target.
71
+ */
72
+ moveCamera(position: Vector3Like, target: Vector3Like, enableTransition?: boolean): Promise<void>;
73
+ /**
74
+ * Updates the controls using an internally managed clock.
75
+ * Useful when you don't want to pass delta time each frame.
76
+ */
77
+ updateDelta(): ReturnType<CameraControls['update']>;
78
+ private updateInputBindingsForMode;
79
+ private updateOrthographicFrustum;
80
+ }
81
+
82
+ export { type CameraMode, DualCameraControls, type DualCameraControlsOptions, type ModeChangedEvent, type OrthographicCameraConfig, type PerspectiveCameraConfig };
@@ -0,0 +1,7 @@
1
+ import {
2
+ DualCameraControls
3
+ } from "../chunk-BYRZCHE7.mjs";
4
+ export {
5
+ DualCameraControls
6
+ };
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}