ohzi-core 13.2.2 → 14.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.
- package/build/index.mjs +1 -1
- package/build/index.mjs.map +1 -1
- package/package.json +7 -4
- package/src/camera_controller/CameraController.ts +6 -4
- package/src/dev_bridge/CameraBridge.ts +363 -0
- package/src/dev_bridge/CaptureService.ts +256 -0
- package/src/dev_bridge/CommandDispatcher.ts +114 -0
- package/src/dev_bridge/ConsoleBuffer.ts +286 -0
- package/src/dev_bridge/DevBridge.ts +195 -0
- package/src/dev_bridge/InputSynthesizer.ts +287 -0
- package/src/dev_bridge/PerformanceProbe.ts +118 -0
- package/src/dev_bridge/RenderModeRegistry.ts +66 -0
- package/src/dev_bridge/SceneEditor.ts +288 -0
- package/src/dev_bridge/SceneInspector.ts +388 -0
- package/src/dev_bridge/ViewNavigator.ts +101 -0
- package/src/dev_bridge/protocol.ts +31 -0
- package/src/index.ts +15 -5
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
export interface ViewSummary
|
|
2
|
+
{
|
|
3
|
+
name: string;
|
|
4
|
+
url: string;
|
|
5
|
+
current: boolean;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface ViewManagerLike
|
|
9
|
+
{
|
|
10
|
+
views: Array<{ name?: unknown; url?: unknown }>;
|
|
11
|
+
get_current_view(): { name?: unknown } | undefined;
|
|
12
|
+
go_to_view(name: string, change_url?: boolean, skip?: boolean): void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface NavigateRequest
|
|
16
|
+
{
|
|
17
|
+
name?: unknown;
|
|
18
|
+
change_url?: unknown;
|
|
19
|
+
skip?: unknown;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface NavigateResult
|
|
23
|
+
{
|
|
24
|
+
requested: string;
|
|
25
|
+
current: string | null;
|
|
26
|
+
change_url: boolean;
|
|
27
|
+
skip: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// ViewManager.get() returns undefined for an unknown name and go_to_view then
|
|
31
|
+
// dereferences v.url, so the name is validated here before it can throw.
|
|
32
|
+
class ViewNavigator
|
|
33
|
+
{
|
|
34
|
+
list(manager: ViewManagerLike): { current: string | null; views: ViewSummary[] }
|
|
35
|
+
{
|
|
36
|
+
const current = this.current(manager);
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
current,
|
|
40
|
+
views: this.names(manager).map((view) => ({
|
|
41
|
+
name: view.name,
|
|
42
|
+
url: view.url,
|
|
43
|
+
current: view.name === current
|
|
44
|
+
}))
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
go(manager: ViewManagerLike, request: NavigateRequest): NavigateResult
|
|
49
|
+
{
|
|
50
|
+
const name = typeof request.name === 'string' ? request.name : null;
|
|
51
|
+
const available = this.names(manager);
|
|
52
|
+
|
|
53
|
+
if (name === null || !available.some((view) => view.name === name))
|
|
54
|
+
{
|
|
55
|
+
const listed = available.map((view) => view.name).join(', ');
|
|
56
|
+
|
|
57
|
+
throw this.error('not_found', `Unknown view. Available views: ${listed}.`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const change_url = request.change_url === undefined ? true : request.change_url === true;
|
|
61
|
+
const skip = request.skip === true;
|
|
62
|
+
|
|
63
|
+
manager.go_to_view(name, change_url, skip);
|
|
64
|
+
|
|
65
|
+
return { requested: name, current: this.current(manager), change_url, skip };
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
private names(manager: ViewManagerLike): Array<{ name: string; url: string }>
|
|
69
|
+
{
|
|
70
|
+
const views = Array.isArray(manager.views) ? manager.views : [];
|
|
71
|
+
|
|
72
|
+
return views
|
|
73
|
+
.filter((view) => typeof view.name === 'string')
|
|
74
|
+
.map((view) => ({
|
|
75
|
+
name: view.name as string,
|
|
76
|
+
url: typeof view.url === 'string' ? view.url : ''
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
private current(manager: ViewManagerLike): string | null
|
|
81
|
+
{
|
|
82
|
+
const view = manager.get_current_view();
|
|
83
|
+
|
|
84
|
+
if (typeof view !== 'object' || view === null || typeof view.name !== 'string')
|
|
85
|
+
{
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return view.name;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
private error(code: string, message: string): Error
|
|
93
|
+
{
|
|
94
|
+
const error: Error & { code?: string } = new Error(message);
|
|
95
|
+
error.code = code;
|
|
96
|
+
|
|
97
|
+
return error;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export { ViewNavigator };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// This file MUST stay in sync with mcp/src/protocol.ts.
|
|
2
|
+
// A mismatch is caught at handshake time and refuses the connection.
|
|
3
|
+
export const PROTOCOL_VERSION = 1;
|
|
4
|
+
|
|
5
|
+
export interface CanvasInfo
|
|
6
|
+
{
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
dpr: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface AppInfo
|
|
13
|
+
{
|
|
14
|
+
core_version: string;
|
|
15
|
+
components_version: string;
|
|
16
|
+
pit_version: string;
|
|
17
|
+
active_view: string | null;
|
|
18
|
+
has_camera: boolean;
|
|
19
|
+
canvas: CanvasInfo;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface Command
|
|
23
|
+
{
|
|
24
|
+
id: string;
|
|
25
|
+
cmd: string;
|
|
26
|
+
args?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type Reply =
|
|
30
|
+
| { id: string; ok: true; result: unknown }
|
|
31
|
+
| { id: string; ok: false; error: { code: string; message: string } };
|
package/src/index.ts
CHANGED
|
@@ -17,7 +17,17 @@ import { CameraManager } from './CameraManager';
|
|
|
17
17
|
import { CanvasDrawer } from './canvas_drawer/CanvasDrawer';
|
|
18
18
|
import { SimpleTextDrawer } from './canvas_drawer/SimpleTextDrawer';
|
|
19
19
|
import { Capabilities } from './Capabilities';
|
|
20
|
+
import { CameraBridge } from './dev_bridge/CameraBridge';
|
|
21
|
+
import { CaptureService } from './dev_bridge/CaptureService';
|
|
22
|
+
import { ConsoleBuffer } from './dev_bridge/ConsoleBuffer';
|
|
23
|
+
import { InputSynthesizer } from './dev_bridge/InputSynthesizer';
|
|
24
|
+
import { PerformanceProbe } from './dev_bridge/PerformanceProbe';
|
|
25
|
+
import { RenderModeRegistry } from './dev_bridge/RenderModeRegistry';
|
|
26
|
+
import { SceneEditor } from './dev_bridge/SceneEditor';
|
|
27
|
+
import { SceneInspector } from './dev_bridge/SceneInspector';
|
|
28
|
+
import { ViewNavigator } from './dev_bridge/ViewNavigator';
|
|
20
29
|
import { Debug } from './Debug';
|
|
30
|
+
import { DevBridge } from './dev_bridge/DevBridge';
|
|
21
31
|
import { Graphics } from './Graphics';
|
|
22
32
|
import { CSSAnimator } from './html_utilities/CSSAnimator';
|
|
23
33
|
import { Initializer } from './Initializer';
|
|
@@ -125,12 +135,12 @@ import { AbstractCameraState } from './camera_controller/states/common/AbstractC
|
|
|
125
135
|
import { CommonCameraState } from './camera_controller/states/common/CommonCameraState';
|
|
126
136
|
|
|
127
137
|
export {
|
|
128
|
-
AbstractCameraState, AbstractLoader, AbstractScene, ActionEvent, ActionInterpolator, ActionSequencer, ActionSequencerBuilder, AddMaterial, ApplicationView, ArrayUtilities, Arrow, AsyncAbstractLoader, AsyncAudiosLoader, AsyncObjectsLoader, AsyncTextureLoader, AsyncTexturesLoader, AudioLoader, BaseApplication, BaseRender, BaseShaderMaterial, BasisLoader, BlitMaterial, Blurrer, Browser, BufferGeometryUtils, CameraController, CameraManager, CameraMovementMode, CameraUtilities, CanvasDrawer, Capabilities, CommonCameraState, Compilator, CSSAnimator, Cube, CubemapLoader, DAELoader, Debug, DebugNormalsRender, DrawIOAnimationSheet, DualFilteringBlurMaterial, DualFilteringBlurrer, EasingFunctions, FileLoader,
|
|
138
|
+
AbstractCameraState, AbstractLoader, AbstractScene, ActionEvent, ActionInterpolator, ActionSequencer, ActionSequencerBuilder, AddMaterial, ApplicationView, ArrayUtilities, Arrow, AsyncAbstractLoader, AsyncAudiosLoader, AsyncObjectsLoader, AsyncTextureLoader, AsyncTexturesLoader, AudioLoader, BaseApplication, BaseRender, BaseShaderMaterial, BasisLoader, BlitMaterial, Blurrer, Browser, BufferGeometryUtils, CameraBridge, CameraController, CameraManager, CameraMovementMode, CameraUtilities, CanvasDrawer, Capabilities, CaptureService, CommonCameraState, Compilator, ConsoleBuffer, CSSAnimator, Cube, CubemapLoader, DAELoader, Debug, DebugNormalsRender, DevBridge, DrawIOAnimationSheet, DualFilteringBlurMaterial, DualFilteringBlurrer, EasingFunctions, FileLoader,
|
|
129
139
|
FontLoader, FrustumPointFitter, GaussianBlurrer, GeometryUtilities, GLTFDRACOLoader, GLTFLoader, GPUParticleSystem, Graphics, Grid, HDRCubeTextureLoader, HDRTextureLoader, HighQualityLoadingState, HorizontalPlane, HTMLUtilities,
|
|
130
|
-
ImageUtilities, ImmediateMode, Initializer, JSONLoader, KeyboardInput, Line, LoadingState, MedianFilter, MeshSampler,
|
|
140
|
+
ImageUtilities, ImmediateMode, Initializer, InputSynthesizer, JSONLoader, KeyboardInput, Line, LoadingState, MedianFilter, MeshSampler,
|
|
131
141
|
ModelUtilities, NormalAORender,
|
|
132
142
|
NormalRender, NumberInterpolator, ObjectUtilities, OBJLoader, OMath, OrthographicCamera, OrthographicFrustumPointFitter, OS, OScreen, ParticleAttribute,
|
|
133
|
-
ParticlePositionAttribute, PerspectiveCamera, PerspectiveFrustumPointFitter, PointArrayLoader, RegularLoadingState, RenderLoop, ResourceBatch,
|
|
134
|
-
ResourceContainer, SceneManager, Screen, SDFTextBatch, SimpleTextDrawer, Sphere, StringUtilities, Text2D, TextLoader, TextureLoader, Time, TimeUtilities, TransitionManager, TransitionTable, UnrealBloomComposeMaterial, UnrealBloomRender, UpdatableMaterialMesh, Validation, VectorInterpolator, VerticalPlane, VideoLoader, ViewComponent,
|
|
135
|
-
ViewComponentManager, ViewManager, VRRender, WorldImage
|
|
143
|
+
ParticlePositionAttribute, PerformanceProbe, PerspectiveCamera, PerspectiveFrustumPointFitter, PointArrayLoader, RegularLoadingState, RenderLoop, RenderModeRegistry, ResourceBatch,
|
|
144
|
+
ResourceContainer, SceneEditor, SceneInspector, SceneManager, Screen, SDFTextBatch, SimpleTextDrawer, Sphere, StringUtilities, Text2D, TextLoader, TextureLoader, Time, TimeUtilities, TransitionManager, TransitionTable, UnrealBloomComposeMaterial, UnrealBloomRender, UpdatableMaterialMesh, Validation, VectorInterpolator, VerticalPlane, VideoLoader, ViewComponent,
|
|
145
|
+
ViewComponentManager, ViewManager, ViewNavigator, VRRender, WorldImage
|
|
136
146
|
};
|