ohzi-core 13.0.2 → 13.0.4
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.
- package/README.md +1 -1
- package/build/index.mjs +1 -1
- package/build/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/BaseApplication.ts +3 -0
- package/src/Debug.ts +1 -1
- package/src/Graphics.ts +0 -1
- package/src/Initializer.ts +1 -1
- package/src/KeyboardInput.ts +8 -8
- package/src/RenderLoop.ts +1 -1
- package/src/camera_controller/CameraController.ts +537 -0
- package/src/camera_controller/movement_mode/CameraMovementMode.ts +22 -0
- package/src/camera_controller/movement_mode/ImmediateMode.ts +60 -0
- package/src/camera_controller/states/common/AbstractCameraState.ts +32 -0
- package/src/camera_controller/states/common/CommonCameraState.ts +207 -0
- package/src/components/mouse_interactors/ObjectRotator.ts +1 -1
- package/src/index.ts +8 -2
- package/src/{components → lib}/Input.ts +8 -21
- package/src/lib/Vector2.ts +49 -0
- package/src/raycast/GroupRaycaster.ts +1 -1
- package/src/raycast/PlaneDragResolver.ts +1 -1
- package/src/raycast/SurfaceDragResolver.ts +1 -1
- package/src/resource_loader/ResourceBatch.ts +1 -1
- package/src/scenes/AbstractScene.ts +13 -7
- package/src/scenes/loading_states/LoadingState.ts +11 -11
- package/src/utilities/CameraUtilities.ts +5 -4
- package/src/utilities/ModelUtilities.ts +1 -1
- package/src/view_components/ViewComponent.ts +1 -1
- package/src/view_components/ViewComponentManager.ts +1 -1
- package/src/view_components/ViewManager.ts +1 -1
- package/src/view_components/transition/ViewStateTransitionHandler.ts +2 -2
- package/types/camera_controller/CameraController.d.ts +88 -0
- package/types/camera_controller/movement_mode/CameraMovementMode.d.ts +6 -0
- package/types/camera_controller/movement_mode/ImmediateMode.d.ts +14 -0
- package/types/camera_controller/states/common/AbstractCameraState.d.ts +8 -0
- package/types/camera_controller/states/common/CommonCameraState.d.ts +24 -0
- package/types/components/mouse_interactors/ObjectRotator.d.ts +1 -1
- package/types/lib/Input.d.ts +41 -0
- package/types/lib/Vector2.d.ts +48 -0
- package/types/raycast/GroupRaycaster.d.ts +1 -1
- package/types/raycast/PlaneDragResolver.d.ts +1 -1
- package/types/raycast/SurfaceDragResolver.d.ts +1 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { Camera, Points } from 'three';
|
|
2
|
+
import { PlaneHelper, Quaternion, Vector3 } from 'three';
|
|
3
|
+
import { Plane } from 'three';
|
|
4
|
+
import { Box3 } from 'three';
|
|
5
|
+
import type { Input } from '../lib/Input';
|
|
6
|
+
import type { Cube } from '../primitives/Cube';
|
|
7
|
+
import type { Sphere } from '../primitives/Sphere';
|
|
8
|
+
import type { CameraMovementMode } from './movement_mode/CameraMovementMode';
|
|
9
|
+
import { AbstractCameraState } from './states/common/AbstractCameraState';
|
|
10
|
+
export declare class CameraController {
|
|
11
|
+
__last_reference_position: Vector3;
|
|
12
|
+
camera: Camera;
|
|
13
|
+
camera_initial_pos: Vector3;
|
|
14
|
+
camera_initial_rot: Quaternion;
|
|
15
|
+
current_azimuth: number;
|
|
16
|
+
current_mode: CameraMovementMode;
|
|
17
|
+
current_orientation: number;
|
|
18
|
+
current_state: AbstractCameraState;
|
|
19
|
+
current_tilt: number;
|
|
20
|
+
debug_box: Cube;
|
|
21
|
+
input: Input;
|
|
22
|
+
input_enabled: boolean;
|
|
23
|
+
max_zoom: number;
|
|
24
|
+
min_zoom: number;
|
|
25
|
+
normalized_zoom: number;
|
|
26
|
+
old_orientation: number;
|
|
27
|
+
orientation: number;
|
|
28
|
+
point_of_interest: Vector3;
|
|
29
|
+
projected_points: Points[];
|
|
30
|
+
projection_plane_helper: PlaneHelper;
|
|
31
|
+
projection_sphere_helper: Sphere;
|
|
32
|
+
raised_look_at_position: Vector3;
|
|
33
|
+
reference_position: Vector3;
|
|
34
|
+
reference_rotation: Quaternion;
|
|
35
|
+
reference_zoom: number;
|
|
36
|
+
tilt: number;
|
|
37
|
+
tmp_dir: Vector3;
|
|
38
|
+
tmp_forward: Vector3;
|
|
39
|
+
tmp_quat: Quaternion;
|
|
40
|
+
tmp_right: Vector3;
|
|
41
|
+
tmp_size: Vector3;
|
|
42
|
+
use_raised_look_at_direction: number;
|
|
43
|
+
vector_forward_axis: Vector3;
|
|
44
|
+
vector_right_axis: Vector3;
|
|
45
|
+
vector_up_axis: Vector3;
|
|
46
|
+
zoom: number;
|
|
47
|
+
constructor(input: Input);
|
|
48
|
+
enable(): void;
|
|
49
|
+
disable(): void;
|
|
50
|
+
set_camera(camera: Camera): void;
|
|
51
|
+
set_state(state: AbstractCameraState): void;
|
|
52
|
+
set_mode(mode: CameraMovementMode): void;
|
|
53
|
+
set_normalized_zoom(zoom: number): void;
|
|
54
|
+
update_normalized_zoom(min_zoom: number, max_zoom: number): void;
|
|
55
|
+
update(): void;
|
|
56
|
+
set_idle(): void;
|
|
57
|
+
camera_is_zoomed_out(): boolean;
|
|
58
|
+
set_rotation(tilt: number, orientation: number, azimuth?: number): void;
|
|
59
|
+
set_rotation_delta(tilt: number, orientation: number, azimuth?: number): void;
|
|
60
|
+
lerp_tilt(from_tilt: number, to_tilt: number, t: number): void;
|
|
61
|
+
set_quaternion(q: Quaternion): void;
|
|
62
|
+
lerp_quaternion(q: Quaternion, t: number): void;
|
|
63
|
+
lerp_orientation(from_orientation: number, to_orientation: number, t: number): void;
|
|
64
|
+
lerp_azimuth(from_azimuth: number, to_azimuth: number, t: number): void;
|
|
65
|
+
lerp_rotation(from_tilt: number, to_tilt: number, from_orientation: number, to_orientation: number, from_azimuth: number, to_azimuth: number, t: number): void;
|
|
66
|
+
build_rotation(tilt: number, orientation: number): Quaternion;
|
|
67
|
+
translate_forward(amount: number): void;
|
|
68
|
+
translate_right(amount: number): void;
|
|
69
|
+
focus_on_bounding_box(bb: Box3, scale?: number): void;
|
|
70
|
+
get_zoom_to_focus_on_points(points: Vector3[], scale: number): number;
|
|
71
|
+
get_target_pos_to_focus_on_points(points: Vector3[], scale: number): Vector3;
|
|
72
|
+
focus_camera_on_sphere(sphere: Sphere, debug: boolean): void;
|
|
73
|
+
get_zoom_to_sphere(sphere: Sphere, debug: boolean): number;
|
|
74
|
+
hide_projected_points(): void;
|
|
75
|
+
show_projected_points(points: Vector3[]): void;
|
|
76
|
+
show_plane_projection(plane: Plane, size?: number): void;
|
|
77
|
+
show_sphere_projection(sphere: Sphere): void;
|
|
78
|
+
fit_points(quaternion: Quaternion, points: Vector3[], zoom_scale?: number): {
|
|
79
|
+
zoom: number;
|
|
80
|
+
reference_position: Vector3;
|
|
81
|
+
camera_position: Vector3;
|
|
82
|
+
};
|
|
83
|
+
focus_camera_on_points(points: Vector3[], zoom_scale?: number): void;
|
|
84
|
+
get_current_tilt(): number;
|
|
85
|
+
get_current_orientation(): number;
|
|
86
|
+
get_current_azimuth(): number;
|
|
87
|
+
__get_zoom_to_show_rect(width: number, height: number, scale?: number): number;
|
|
88
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CameraController } from '../CameraController';
|
|
2
|
+
import { CameraMovementMode } from './CameraMovementMode';
|
|
3
|
+
import { Quaternion, Vector2, Vector3 } from 'three';
|
|
4
|
+
export declare class ImmediateMode extends CameraMovementMode {
|
|
5
|
+
rotation_speed: Vector2;
|
|
6
|
+
tmp_camera_target_pos: Vector3;
|
|
7
|
+
tmp_forward: Vector3;
|
|
8
|
+
tmp_quat: Quaternion;
|
|
9
|
+
vector_forward_axis: Vector3;
|
|
10
|
+
constructor();
|
|
11
|
+
on_enter(camera_controller: CameraController): void;
|
|
12
|
+
update(camera_controller: CameraController): void;
|
|
13
|
+
get_target_camera_pos(camera_controller: CameraController): Vector3;
|
|
14
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Vector2 } from 'three';
|
|
2
|
+
import type { Input } from '../../../lib/Input';
|
|
3
|
+
import type { CameraController } from '../../CameraController';
|
|
4
|
+
import { AbstractCameraState } from './AbstractCameraState';
|
|
5
|
+
export declare class CommonCameraState extends AbstractCameraState {
|
|
6
|
+
azimuth_dir: number;
|
|
7
|
+
forward_dir: number;
|
|
8
|
+
last_point: Vector2;
|
|
9
|
+
right_dir: number;
|
|
10
|
+
rotation_velocity: Vector2;
|
|
11
|
+
shift_key: boolean;
|
|
12
|
+
y_dir: number;
|
|
13
|
+
input: Input;
|
|
14
|
+
constructor(input: Input);
|
|
15
|
+
on_enter(camera_controller: CameraController): void;
|
|
16
|
+
on_exit(camera_controller: CameraController): void;
|
|
17
|
+
update(camera_controller: CameraController): void;
|
|
18
|
+
__show_camera_position(camera_controller: CameraController): void;
|
|
19
|
+
__zoom_camera(camera_controller: CameraController): void;
|
|
20
|
+
__rotate_camera(camera_controller: CameraController): void;
|
|
21
|
+
__move_camera(camera_controller: CameraController): void;
|
|
22
|
+
__check_key_down(): void;
|
|
23
|
+
__check_key_up(): void;
|
|
24
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GroupRaycaster } from '../../raycast/GroupRaycaster';
|
|
2
2
|
import { RaycastResolver } from '../../raycast/RaycastResolver';
|
|
3
3
|
import type { Object3D } from 'three';
|
|
4
|
-
import type { Input } from '
|
|
4
|
+
import type { Input } from '../../lib/Input';
|
|
5
5
|
declare class ObjectRotator extends RaycastResolver {
|
|
6
6
|
group_raycaster: GroupRaycaster;
|
|
7
7
|
input: Input;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Vector2 } from "./Vector2";
|
|
2
|
+
export interface Input {
|
|
3
|
+
keyboard: {
|
|
4
|
+
is_key_down(key: string): boolean;
|
|
5
|
+
is_key_pressed(key: string): boolean;
|
|
6
|
+
is_key_released(key: string): boolean;
|
|
7
|
+
};
|
|
8
|
+
init(dom_element: any, sub_region_element: any): void;
|
|
9
|
+
update(): void;
|
|
10
|
+
clear(): void;
|
|
11
|
+
mouse_input_allowed(): boolean;
|
|
12
|
+
set_mouse_input_active(): void;
|
|
13
|
+
set_touch_input_active(): void;
|
|
14
|
+
get left_mouse_button_pressed(): boolean;
|
|
15
|
+
get left_mouse_button_down(): boolean;
|
|
16
|
+
get left_mouse_button_released(): boolean;
|
|
17
|
+
get right_mouse_button_pressed(): boolean;
|
|
18
|
+
get right_mouse_button_down(): boolean;
|
|
19
|
+
get right_mouse_button_released(): boolean;
|
|
20
|
+
get middle_mouse_button_pressed(): boolean;
|
|
21
|
+
get middle_mouse_button_down(): boolean;
|
|
22
|
+
get middle_mouse_button_released(): boolean;
|
|
23
|
+
get is_touchscreen(): boolean;
|
|
24
|
+
get scroll_delta(): number;
|
|
25
|
+
get zoom_delta(): number;
|
|
26
|
+
get pointer_count(): number;
|
|
27
|
+
get pointer_is_within_bounds(): boolean;
|
|
28
|
+
pointer_is_over_element(elem: any): boolean;
|
|
29
|
+
get pointer_pos_delta(): Vector2;
|
|
30
|
+
get NDC(): Vector2;
|
|
31
|
+
get NDC_delta(): Vector2;
|
|
32
|
+
get pointer_center(): Vector2;
|
|
33
|
+
get pointer_center_delta(): Vector2;
|
|
34
|
+
get pointer_center_NDC(): Vector2;
|
|
35
|
+
get pointer_center_NDC_delta(): Vector2;
|
|
36
|
+
get_pointer_pos(index?: number): Vector2;
|
|
37
|
+
get_pointer_pos_delta(index?: number): Vector2;
|
|
38
|
+
get_pointer_NDC(index?: number): Vector2;
|
|
39
|
+
get_pointer_NDC_delta(index?: number): Vector2;
|
|
40
|
+
dispose(): void;
|
|
41
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export interface Vector2 {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
set(x: number, y: number): this;
|
|
5
|
+
clone(): Vector2;
|
|
6
|
+
copy(v: {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
}): this;
|
|
10
|
+
add(v: {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
}): this;
|
|
14
|
+
sub(v: {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
}): this;
|
|
18
|
+
multiplyScalar(scalar: number): this;
|
|
19
|
+
divide(v: {
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
22
|
+
}): this;
|
|
23
|
+
divideScalar(scalar: number): this;
|
|
24
|
+
dot(v: {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
}): number;
|
|
28
|
+
cross(v: {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
}): number;
|
|
32
|
+
lengthSq(): number;
|
|
33
|
+
length(): number;
|
|
34
|
+
normalize(): this;
|
|
35
|
+
angle(): number;
|
|
36
|
+
distanceTo(v: {
|
|
37
|
+
x: number;
|
|
38
|
+
y: number;
|
|
39
|
+
}): number;
|
|
40
|
+
distanceToSquared(v: {
|
|
41
|
+
x: number;
|
|
42
|
+
y: number;
|
|
43
|
+
}): number;
|
|
44
|
+
lerp(v: {
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
}, alpha: number): this;
|
|
48
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Vector3 } from 'three';
|
|
2
|
-
import type { Input } from '../
|
|
2
|
+
import type { Input } from '../lib/Input';
|
|
3
3
|
import { PlaneRaycaster } from './PlaneRaycaster';
|
|
4
4
|
import { PlaneRaycastResolver } from './PlaneRaycastResolver';
|
|
5
5
|
declare class PlaneDragResolver extends PlaneRaycastResolver {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Mesh, Vector3 } from 'three';
|
|
2
|
-
import type { Input } from '../
|
|
2
|
+
import type { Input } from '../lib/Input';
|
|
3
3
|
import { GroupRaycaster } from './GroupRaycaster';
|
|
4
4
|
import { RaycastResolver } from './RaycastResolver';
|
|
5
5
|
declare class SurfaceDragResolver extends RaycastResolver {
|