@vgai/engine 0.5.13 → 0.5.15
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/dist/adapter/adapter-module.d.ts +447 -0
- package/dist/adapter/adapter-module.d.ts.map +1 -0
- package/dist/adapter/adapter-module.js +308 -0
- package/dist/adapter/authoring.d.ts +357 -10
- package/dist/adapter/authoring.d.ts.map +1 -1
- package/dist/adapter/authoring.js +87 -1
- package/dist/adapter/constraint.d.ts +9 -3
- package/dist/adapter/constraint.d.ts.map +1 -1
- package/dist/adapter/finders/finder-result.d.ts +28 -0
- package/dist/adapter/finders/finder-result.d.ts.map +1 -0
- package/dist/adapter/finders/finder-result.js +10 -0
- package/dist/adapter/finders/index.d.ts +38 -0
- package/dist/adapter/finders/index.d.ts.map +1 -0
- package/dist/adapter/finders/index.js +41 -0
- package/dist/adapter/finders/prefabs-from-stories.d.ts +64 -0
- package/dist/adapter/finders/prefabs-from-stories.d.ts.map +1 -0
- package/dist/adapter/finders/prefabs-from-stories.js +92 -0
- package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts +67 -0
- package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts.map +1 -0
- package/dist/adapter/finders/scenes-from-entrypoint-selection.js +226 -0
- package/dist/adapter/first-party-systems.d.ts.map +1 -1
- package/dist/adapter/first-party-systems.js +29 -0
- package/dist/adapter/index.d.ts +7 -3
- package/dist/adapter/index.d.ts.map +1 -1
- package/dist/adapter/index.js +5 -2
- package/dist/adapter/ingest/contract-system-adapters.d.ts +24 -1
- package/dist/adapter/ingest/contract-system-adapters.d.ts.map +1 -1
- package/dist/adapter/ingest/contract-system-adapters.js +100 -34
- package/dist/adapter/ingest/game-contract.d.ts +188 -2
- package/dist/adapter/ingest/game-contract.d.ts.map +1 -1
- package/dist/adapter/ingest/game-contract.js +107 -0
- package/dist/adapter/ingest/mount-readiness.d.ts +84 -0
- package/dist/adapter/ingest/mount-readiness.d.ts.map +1 -0
- package/dist/adapter/ingest/mount-readiness.js +81 -0
- package/dist/adapter/ingest/scene-capture.d.ts +91 -2
- package/dist/adapter/ingest/scene-capture.d.ts.map +1 -1
- package/dist/adapter/ingest/scene-capture.js +110 -18
- package/dist/adapter/ingest/structural-ids.d.ts +11 -5
- package/dist/adapter/ingest/structural-ids.d.ts.map +1 -1
- package/dist/adapter/ingest/structural-ids.js +18 -9
- package/dist/adapter/ingest/upstream-pin.d.ts +4 -2
- package/dist/adapter/ingest/upstream-pin.d.ts.map +1 -1
- package/dist/adapter/ingest/upstream-pin.js +4 -2
- package/dist/adapter/ingest/visible-capture-window.d.ts +116 -0
- package/dist/adapter/ingest/visible-capture-window.d.ts.map +1 -0
- package/dist/adapter/ingest/visible-capture-window.js +141 -0
- package/dist/adapter/loop-gate-report.d.ts +3 -4
- package/dist/adapter/loop-gate-report.d.ts.map +1 -1
- package/dist/adapter/loop-gate-report.js +3 -4
- package/dist/adapter/root-adapter.d.ts +22 -2
- package/dist/adapter/root-adapter.d.ts.map +1 -1
- package/dist/adapter/setup-three-root-adapter.d.ts.map +1 -1
- package/dist/adapter/setup-three-root-adapter.js +15 -0
- package/dist/adapter/system-adapter.d.ts +161 -2
- package/dist/adapter/system-adapter.d.ts.map +1 -1
- package/dist/adapter/system-adapter.js +18 -1
- package/dist/animation/camera-ownership.d.ts +4 -2
- package/dist/animation/camera-ownership.d.ts.map +1 -1
- package/dist/animation/camera-ownership.js +58 -1
- package/dist/animation/runtime-inspection.d.ts +70 -0
- package/dist/animation/runtime-inspection.d.ts.map +1 -0
- package/dist/animation/runtime-inspection.js +25 -0
- package/dist/animation/xstate-animation-binding.d.ts +9 -1
- package/dist/animation/xstate-animation-binding.d.ts.map +1 -1
- package/dist/animation/xstate-animation-binding.js +48 -1
- package/dist/asset-formats/material.d.ts +1 -1
- package/dist/asset-formats/mesh.d.ts +1 -1
- package/dist/asset-formats/particles.d.ts +13 -0
- package/dist/asset-formats/particles.d.ts.map +1 -1
- package/dist/asset-formats/particles.js +28 -0
- package/dist/behavior/xstate-inspection.d.ts +24 -0
- package/dist/behavior/xstate-inspection.d.ts.map +1 -0
- package/dist/behavior/xstate-inspection.js +25 -0
- package/dist/core/game-loop.d.ts +7 -5
- package/dist/core/game-loop.d.ts.map +1 -1
- package/dist/core/game-loop.js +39 -18
- package/dist/core/types.d.ts +11 -12
- package/dist/core/types.d.ts.map +1 -1
- package/dist/data/data-asset.js +1 -1
- package/dist/dev/instruments.d.ts.map +1 -1
- package/dist/dev/instruments.js +5 -1
- package/dist/dev/render-debug-adapter.d.ts +19 -2
- package/dist/dev/render-debug-adapter.d.ts.map +1 -1
- package/dist/dev/render-debug-adapter.js +10 -0
- package/dist/ecs/user-data.d.ts +10 -2
- package/dist/ecs/user-data.d.ts.map +1 -1
- package/dist/ecs/user-data.js +6 -2
- package/dist/input/binding-identity.d.ts +10 -0
- package/dist/input/binding-identity.d.ts.map +1 -0
- package/dist/input/binding-identity.js +36 -0
- package/dist/input/input-manager.d.ts +18 -185
- package/dist/input/input-manager.d.ts.map +1 -1
- package/dist/input/input-manager.js +78 -68
- package/dist/manifest/load.d.ts +14 -0
- package/dist/manifest/load.d.ts.map +1 -1
- package/dist/manifest/load.js +6 -1
- package/dist/manifest/schema.d.ts +18 -0
- package/dist/manifest/schema.d.ts.map +1 -1
- package/dist/manifest/schema.js +65 -8
- package/dist/pixi/authoring.d.ts +27 -0
- package/dist/pixi/authoring.d.ts.map +1 -1
- package/dist/pixi/authoring.js +10 -3
- package/dist/pixi/index.d.ts +1 -1
- package/dist/pixi/index.d.ts.map +1 -1
- package/dist/pixi/index.js +1 -1
- package/dist/pixi/ingest.d.ts +8 -0
- package/dist/pixi/ingest.d.ts.map +1 -1
- package/dist/pixi/ingest.js +10 -1
- package/dist/pixi/render-pass-bracket.d.ts +56 -0
- package/dist/pixi/render-pass-bracket.d.ts.map +1 -0
- package/dist/pixi/render-pass-bracket.js +98 -0
- package/dist/pixi/scene-capture.d.ts +32 -1
- package/dist/pixi/scene-capture.d.ts.map +1 -1
- package/dist/pixi/scene-capture.js +21 -9
- package/dist/pixi/system-adapters.d.ts +29 -0
- package/dist/pixi/system-adapters.d.ts.map +1 -1
- package/dist/pixi/system-adapters.js +27 -0
- package/dist/render/particles-factory.d.ts +16 -2
- package/dist/render/particles-factory.d.ts.map +1 -1
- package/dist/render/particles-factory.js +88 -5
- package/dist/render/soft-particle-depth.d.ts +149 -0
- package/dist/render/soft-particle-depth.d.ts.map +1 -0
- package/dist/render/soft-particle-depth.js +305 -0
- package/dist/render/voxel-surface.d.ts +117 -0
- package/dist/render/voxel-surface.d.ts.map +1 -0
- package/dist/render/voxel-surface.js +263 -0
- package/dist/runtime/create-runtime.js +7 -0
- package/dist/runtime/debug-bridge.d.ts +15 -15
- package/dist/runtime/debug-bridge.d.ts.map +1 -1
- package/dist/runtime/debug-bridge.js +27 -26
- package/dist/runtime/game.d.ts.map +1 -1
- package/dist/runtime/game.js +1 -2
- package/dist/setup/setup-particles.d.ts.map +1 -1
- package/dist/setup/setup-particles.js +9 -0
- package/dist/world3d-react/r3f-adapter.d.ts.map +1 -1
- package/dist/world3d-react/r3f-adapter.js +42 -3
- package/dist/world3d-react/rapier-physics-bridge.d.ts.map +1 -1
- package/dist/world3d-react/rapier-physics-bridge.js +201 -11
- package/dist-config/config.js.map +1 -1
- package/package.json +4 -2
- package/schemas/engine-capabilities.json +12 -12
- package/schemas/vgai-project.schema.json +42 -3
- package/src/adapter/adapter-module.ts +607 -0
- package/src/adapter/authoring.ts +440 -10
- package/src/adapter/constraint.ts +10 -3
- package/src/adapter/finders/finder-result.ts +29 -0
- package/src/adapter/finders/index.ts +62 -0
- package/src/adapter/finders/prefabs-from-stories.ts +142 -0
- package/src/adapter/finders/scenes-from-entrypoint-selection.ts +304 -0
- package/src/adapter/first-party-systems.ts +30 -0
- package/src/adapter/index.ts +32 -1
- package/src/adapter/ingest/contract-system-adapters.ts +116 -32
- package/src/adapter/ingest/game-contract.ts +265 -2
- package/src/adapter/ingest/mount-readiness.ts +140 -0
- package/src/adapter/ingest/scene-capture.ts +199 -22
- package/src/adapter/ingest/structural-ids.ts +21 -9
- package/src/adapter/ingest/upstream-pin.ts +4 -2
- package/src/adapter/ingest/visible-capture-window.ts +213 -0
- package/src/adapter/loop-gate-report.ts +3 -4
- package/src/adapter/root-adapter.ts +22 -2
- package/src/adapter/setup-three-root-adapter.ts +16 -0
- package/src/adapter/system-adapter.ts +188 -2
- package/src/animation/camera-ownership.ts +68 -3
- package/src/animation/runtime-inspection.ts +104 -0
- package/src/animation/xstate-animation-binding.ts +53 -1
- package/src/asset-formats/particles.ts +31 -0
- package/src/behavior/xstate-inspection.ts +51 -0
- package/src/core/game-loop.ts +39 -17
- package/src/core/types.ts +11 -12
- package/src/data/data-asset.ts +1 -1
- package/src/dev/instruments.ts +5 -1
- package/src/dev/render-debug-adapter.ts +22 -2
- package/src/ecs/user-data.ts +10 -2
- package/src/input/binding-identity.ts +37 -0
- package/src/input/input-manager.ts +93 -68
- package/src/manifest/load.ts +23 -2
- package/src/manifest/schema.ts +77 -8
- package/src/pixi/authoring.ts +37 -5
- package/src/pixi/index.ts +2 -0
- package/src/pixi/ingest.ts +15 -2
- package/src/pixi/render-pass-bracket.ts +117 -0
- package/src/pixi/scene-capture.ts +63 -13
- package/src/pixi/system-adapters.ts +41 -0
- package/src/render/particles-factory.ts +89 -6
- package/src/render/soft-particle-depth.ts +336 -0
- package/src/render/voxel-surface.ts +358 -0
- package/src/runtime/create-runtime.ts +7 -0
- package/src/runtime/debug-bridge.ts +32 -31
- package/src/runtime/game.ts +1 -2
- package/src/setup/setup-particles.ts +9 -0
- package/src/world3d-react/r3f-adapter.tsx +48 -2
- package/src/world3d-react/rapier-physics-bridge.tsx +249 -11
|
@@ -165,7 +165,12 @@ export interface HierarchyProvider {
|
|
|
165
165
|
}
|
|
166
166
|
export interface SelectionProvider {
|
|
167
167
|
get(): string[];
|
|
168
|
-
|
|
168
|
+
/** Set the selected authoring subjects. `exact` is for projections that
|
|
169
|
+
* already name a real node (for example a folded-internal light inventory);
|
|
170
|
+
* the default keeps the adapter's normal semantic component resolution. */
|
|
171
|
+
set(ids: string[], options?: {
|
|
172
|
+
intent?: 'semantic' | 'exact';
|
|
173
|
+
}): void;
|
|
169
174
|
/** Resolve a raw native/render hit to the semantic authoring subject. The
|
|
170
175
|
* shell must not infer ownership from ancestry or substrate-specific kinds.
|
|
171
176
|
* Older adapters may omit this; raw ids then remain the selection ids. */
|
|
@@ -199,7 +204,14 @@ export interface TransformProvider {
|
|
|
199
204
|
/** Pause whatever controller fights the gizmo (physics/script) for editing. */
|
|
200
205
|
beginEdit(id: string): void;
|
|
201
206
|
apply(id: string, t: Transform): void;
|
|
202
|
-
|
|
207
|
+
/**
|
|
208
|
+
* Close the gesture — and, for an adapter that persists, ANSWER FOR IT: the
|
|
209
|
+
* returned {@link WriteAck} is this edit's own outcome, produced after the
|
|
210
|
+
* write it triggered has settled. Returning nothing is the honest report of
|
|
211
|
+
* an adapter that performed no write, and the shell then reports the
|
|
212
|
+
* live-only floor rather than borrowing an answer from somewhere else.
|
|
213
|
+
*/
|
|
214
|
+
endEdit(id: string): void | WriteAck | Promise<void | WriteAck>;
|
|
203
215
|
}
|
|
204
216
|
/**
|
|
205
217
|
* One transform gesture event (see {@link AuthoringAdapter.observeTransforms}).
|
|
@@ -215,7 +227,21 @@ export interface InspectorProvider {
|
|
|
215
227
|
/** Schema-driven — NOT fixed to `SceneEntity`. */
|
|
216
228
|
properties(id: string): PropertyDescriptor[];
|
|
217
229
|
get(id: string, path: string): unknown;
|
|
218
|
-
|
|
230
|
+
/**
|
|
231
|
+
* Write one property — and, for an adapter that persists, ANSWER FOR IT: the
|
|
232
|
+
* returned {@link WriteAck} is this edit's own outcome (same contract as
|
|
233
|
+
* {@link TransformProvider.endEdit}). Returning nothing means no write was
|
|
234
|
+
* performed by this provider, and the shell reports the live-only floor.
|
|
235
|
+
*/
|
|
236
|
+
set(id: string, path: string, value: unknown): void | WriteAck | Promise<void | WriteAck>;
|
|
237
|
+
/** Optional per-subject write preflight for shell affordances outside the
|
|
238
|
+
* Inspector field grid (notably hierarchy eye/lock controls). The property
|
|
239
|
+
* descriptor remains the Inspector's source of `readonly`; this gives other
|
|
240
|
+
* generic surfaces the same answer and its adapter-authored reason. */
|
|
241
|
+
editability?(id: string, path: string): {
|
|
242
|
+
writable: boolean;
|
|
243
|
+
reason?: string;
|
|
244
|
+
};
|
|
219
245
|
/**
|
|
220
246
|
* Optional — REMOVE a property's authored override entirely (not "set to a
|
|
221
247
|
* value"), letting whatever governs it in its absence take over. The one
|
|
@@ -269,6 +295,43 @@ export interface RelatedSubjectLink {
|
|
|
269
295
|
export interface RelatedSubjectsProvider {
|
|
270
296
|
links(id: string): readonly RelatedSubjectLink[];
|
|
271
297
|
}
|
|
298
|
+
/** One source-owned prop that differs from its component's declared default. */
|
|
299
|
+
export interface ComponentInstanceOverride {
|
|
300
|
+
/** The owning Inspector field path; stable and agent-addressable. */
|
|
301
|
+
readonly path: string;
|
|
302
|
+
readonly label: string;
|
|
303
|
+
readonly value: unknown;
|
|
304
|
+
/** Source text of the component default, when the declaration exposes one. */
|
|
305
|
+
readonly defaultText?: string;
|
|
306
|
+
/** Applying requires a literal callsite value and a literal declared default. */
|
|
307
|
+
readonly canApplyToComponent: boolean;
|
|
308
|
+
readonly applyUnavailableReason?: string;
|
|
309
|
+
/** Placed instances that will inherit this default after the apply. */
|
|
310
|
+
readonly affectedInstanceCount: number;
|
|
311
|
+
}
|
|
312
|
+
/** Derived prefab-instance facts. Nothing in this shape is persisted separately. */
|
|
313
|
+
export interface ComponentInstanceDescription {
|
|
314
|
+
readonly componentName: string;
|
|
315
|
+
readonly sourcePath?: string;
|
|
316
|
+
readonly overrides: readonly ComponentInstanceOverride[];
|
|
317
|
+
}
|
|
318
|
+
export interface ComponentInstanceApplyResult {
|
|
319
|
+
readonly changed: boolean;
|
|
320
|
+
readonly message: string;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Source-derived component-instance operations. A provider exists only when an
|
|
324
|
+
* adapter can prove component identity and write the component's native source.
|
|
325
|
+
* No override store is implied: describe is a diff, revert removes callsite
|
|
326
|
+
* props, and apply edits the component declaration itself.
|
|
327
|
+
*/
|
|
328
|
+
export interface ComponentInstancesProvider {
|
|
329
|
+
describe(id: string): ComponentInstanceDescription | null;
|
|
330
|
+
/** Open the native component/prefab board for this instance's surface. */
|
|
331
|
+
openComponent?(id: string): void;
|
|
332
|
+
revert(id: string, paths: readonly string[]): Promise<void>;
|
|
333
|
+
applyToComponent(id: string, path: string): Promise<ComponentInstanceApplyResult>;
|
|
334
|
+
}
|
|
272
335
|
export interface StructureProvider {
|
|
273
336
|
create(kind: string, parentId?: string): string;
|
|
274
337
|
/**
|
|
@@ -335,6 +398,23 @@ export interface StructureProvider {
|
|
|
335
398
|
* is a harmless no-op.
|
|
336
399
|
*/
|
|
337
400
|
removeMany?(ids: readonly string[]): void | Promise<void>;
|
|
401
|
+
/** Copy authored entities through the host clipboard. The adapter owns the
|
|
402
|
+
* native payload (JSX for a source-backed Three/Canvas world, native records
|
|
403
|
+
* for a data-backed adapter); the shell never serializes an engine-private
|
|
404
|
+
* shape. */
|
|
405
|
+
copy?(ids: readonly string[]): boolean | Promise<boolean>;
|
|
406
|
+
/** Honest affordance preflight. Omit when copy is never offered. */
|
|
407
|
+
canCopy?(ids: readonly string[]): boolean;
|
|
408
|
+
/** Copy, then remove the same authored entities only after the clipboard
|
|
409
|
+
* write succeeds. One adapter operation owns that ordering. */
|
|
410
|
+
cut?(ids: readonly string[]): boolean | Promise<boolean>;
|
|
411
|
+
/** Paste as children of `parentId`; `null` means the adapter document root.
|
|
412
|
+
* The shell derives the current selection's parent so ordinary Paste creates
|
|
413
|
+
* siblings, matching scene-hierarchy editors. */
|
|
414
|
+
paste?(parentId: string | null): boolean | Promise<boolean>;
|
|
415
|
+
/** Honest affordance preflight. It need only cover adapter/session state;
|
|
416
|
+
* the actual paste still validates the live system clipboard. */
|
|
417
|
+
canPaste?(parentId: string | null): boolean;
|
|
338
418
|
}
|
|
339
419
|
/**
|
|
340
420
|
* PersistenceProvider — whether and where an adapter's edits persist (design).
|
|
@@ -344,6 +424,10 @@ export interface StructureProvider {
|
|
|
344
424
|
*/
|
|
345
425
|
export interface PersistenceProvider {
|
|
346
426
|
isDirty(): boolean;
|
|
427
|
+
/** The last persistence failure that still requires attention. Successful
|
|
428
|
+
* subsequent persistence clears it. Auto-saving source adapters use this to
|
|
429
|
+
* report a rolled-back source write without inventing a dirty document. */
|
|
430
|
+
lastError?(): string | null;
|
|
347
431
|
/** Save to the adapter's OWN source of truth (.vscn / overlay file / …). */
|
|
348
432
|
save(): Promise<void>;
|
|
349
433
|
/**
|
|
@@ -376,6 +460,13 @@ export interface PersistenceProvider {
|
|
|
376
460
|
/** D12 — per-layer viewport picking. Coordinates are client (browser) px. */
|
|
377
461
|
export interface PickProvider {
|
|
378
462
|
pick(clientX: number, clientY: number): string | null;
|
|
463
|
+
/**
|
|
464
|
+
* Every authorable subject below the point, frontmost first. The shell uses
|
|
465
|
+
* this for the ordinary scene-editor "pick from overlap" menu; adapters
|
|
466
|
+
* that cannot enumerate an overlap may omit it and still provide the
|
|
467
|
+
* single-hit floor through {@link pick}.
|
|
468
|
+
*/
|
|
469
|
+
candidates?(clientX: number, clientY: number): readonly string[];
|
|
379
470
|
}
|
|
380
471
|
/** D4 — storybook stories. */
|
|
381
472
|
export interface StoryRef {
|
|
@@ -388,6 +479,14 @@ export interface StoriesProvider {
|
|
|
388
479
|
apply(nodeId: string, storyId: string | null): void;
|
|
389
480
|
/** Render ONLY this node against the story (storybook canvas); null exits. */
|
|
390
481
|
isolate?(nodeId: string | null, storyId?: string): void;
|
|
482
|
+
/**
|
|
483
|
+
* Display vocabulary for this provider's section — e.g. an ingested game's
|
|
484
|
+
* contract scenes say "Scenes"; absent means the default "Stories". The
|
|
485
|
+
* states are the same seam either way; only the word the human reads
|
|
486
|
+
* changes, so a game's own screens are never labelled with a design-time
|
|
487
|
+
* term the game never uses.
|
|
488
|
+
*/
|
|
489
|
+
readonly title?: string;
|
|
391
490
|
}
|
|
392
491
|
/**
|
|
393
492
|
* Where a drop landed, when the shell knows. The VIEWPORT knows a world point
|
|
@@ -398,10 +497,22 @@ export interface StoriesProvider {
|
|
|
398
497
|
*/
|
|
399
498
|
export interface AssetDropContext {
|
|
400
499
|
readonly position?: readonly [number, number, number];
|
|
500
|
+
/** Transient drag metadata. The project's native source remains truth; this
|
|
501
|
+
* only tells an adapter whether the path names a file or a source component. */
|
|
502
|
+
readonly item?: {
|
|
503
|
+
readonly kind: 'file';
|
|
504
|
+
readonly name: string;
|
|
505
|
+
} | {
|
|
506
|
+
readonly kind: 'component';
|
|
507
|
+
readonly name: string;
|
|
508
|
+
readonly sourcePath: string;
|
|
509
|
+
readonly exportKind: 'default' | 'named';
|
|
510
|
+
readonly surface: 'three' | 'canvas' | 'dom' | 'unknown';
|
|
511
|
+
};
|
|
401
512
|
}
|
|
402
513
|
/** Asset drop (hierarchy + viewport). */
|
|
403
514
|
export interface AssetDropProvider {
|
|
404
|
-
accepts(nodeId: string, assetPath: string): boolean;
|
|
515
|
+
accepts(nodeId: string, assetPath: string, context?: AssetDropContext): boolean;
|
|
405
516
|
drop(nodeId: string, assetPath: string, context?: AssetDropContext): void | Promise<void>;
|
|
406
517
|
}
|
|
407
518
|
/** Plain-object rect shape shared by {@link RectProvider} — the same fields a real
|
|
@@ -469,8 +580,9 @@ export interface BoxEditReferencePoint {
|
|
|
469
580
|
x: number;
|
|
470
581
|
y: number;
|
|
471
582
|
}
|
|
472
|
-
/** Spatial gesture → source/data write
|
|
473
|
-
*
|
|
583
|
+
/** Spatial gesture → source/data write for native 2D boxes (DOM or canvas).
|
|
584
|
+
* Distinct from the 3D TransformProvider. begin/apply/end bracket a single
|
|
585
|
+
* undo step; apply is live-preview. */
|
|
474
586
|
export interface BoxEditProvider {
|
|
475
587
|
begin(id: string): void;
|
|
476
588
|
/** patch: any of x,y,width,height,marginTop… paddingLeft… — px deltas or absolutes.
|
|
@@ -480,6 +592,14 @@ export interface BoxEditProvider {
|
|
|
480
592
|
* source units and any placement-preserving compensation. */
|
|
481
593
|
apply(id: string, patch: Record<string, number>): void;
|
|
482
594
|
end(id: string): void;
|
|
595
|
+
/** Native transform origin for the viewport gizmo, in the same host-space
|
|
596
|
+
* frame as {@link RectProvider}. A 2D scene uses this instead of guessing
|
|
597
|
+
* from the visual bounds: sprites can have anchors, containers can have
|
|
598
|
+
* pivots, and neither necessarily sits at the box center. */
|
|
599
|
+
gizmoOrigin?(id: string): {
|
|
600
|
+
x: number;
|
|
601
|
+
y: number;
|
|
602
|
+
} | null;
|
|
483
603
|
/** Optional single native anchor/pivot affordance for this node. */
|
|
484
604
|
referencePoint?(id: string): BoxEditReferencePoint | null;
|
|
485
605
|
}
|
|
@@ -525,10 +645,10 @@ export interface ColorSampleProvider {
|
|
|
525
645
|
* - `source` is the original: a `new` expression at a `file:line:col` in the
|
|
526
646
|
* game's own code, which is where an edit to a constructor literal has to be
|
|
527
647
|
* written.
|
|
528
|
-
* - `data` is the sibling a level-based game needs.
|
|
529
|
-
*
|
|
530
|
-
* it is binary records inside
|
|
531
|
-
* authored move of
|
|
648
|
+
* - `data` is the sibling a level-based game needs. Its placed cargo — the
|
|
649
|
+
* enemies, the pickups, the objectives — reaches no source literal at all;
|
|
650
|
+
* it is binary records inside a level file that the game parses at load. An
|
|
651
|
+
* authored move of one is therefore an edit to THE GAME'S OWN DATA, and
|
|
532
652
|
* the honest anchor is the data file plus the index of the record that
|
|
533
653
|
* addresses the object inside it.
|
|
534
654
|
*
|
|
@@ -560,6 +680,98 @@ export type NodeCreationSite = {
|
|
|
560
680
|
anchored: false;
|
|
561
681
|
reason: string;
|
|
562
682
|
};
|
|
683
|
+
/**
|
|
684
|
+
* WHERE AN AUTHORED WRITE LANDS — the vocabulary of anchor KINDS, and the
|
|
685
|
+
* closed set of them.
|
|
686
|
+
*
|
|
687
|
+
* {@link NodeCreationSite} answers "where did this object come from"; a kind
|
|
688
|
+
* answers the write-side question beside it: WHICH LANE would carry an edit to
|
|
689
|
+
* this node, and therefore WHAT has to be true for that edit to be correct. The
|
|
690
|
+
* two are not the same fact — two nodes can both be `{ kind: 'source' }` at a
|
|
691
|
+
* `file:line` and still be written by different lanes with different gates.
|
|
692
|
+
*
|
|
693
|
+
* Each kind's CORRECTNESS CONTRACT, and the named test that proves it:
|
|
694
|
+
*
|
|
695
|
+
* - `source-prop` — the value is a literal PROP on an element of the game's own
|
|
696
|
+
* source (a JSX attribute the serve-time authoring stamp addresses). Lands at
|
|
697
|
+
* the anchor; survives a cold remount, because the file is truth and the next
|
|
698
|
+
* mount re-derives from it.
|
|
699
|
+
* Proof: `packages/editor/test/oid-source-persistence.test.ts`.
|
|
700
|
+
* - `construction-literal` — the value is a literal in the CONSTRUCTION
|
|
701
|
+
* EXPRESSION that built the object (`new THREE.Mesh(…)` in the game's own
|
|
702
|
+
* served module). Same landing/remount contract, plus one gate the prop lane
|
|
703
|
+
* does not have: a site that constructed more than one object is refused,
|
|
704
|
+
* because rewriting its literal would move all of them.
|
|
705
|
+
* Proof: `packages/editor/test/ingest-source-persistence.test.ts`.
|
|
706
|
+
* - `physics-binding` — the node's own transform props are DEAD: a simulated
|
|
707
|
+
* body writes its matrix every frame from a spawn it reads elsewhere, so the
|
|
708
|
+
* write lands at the literal that binding reads (the component callsite whose
|
|
709
|
+
* props the `useBox(…)`/`<RigidBody>` hook takes). It carries the two
|
|
710
|
+
* contracts above AND ONE MORE: the authored value must SURVIVE RE-SETTLE —
|
|
711
|
+
* after the world re-derives from source and the design-time settle runs, the
|
|
712
|
+
* body must have re-spawned at the AUTHORED pose, not at the old one. Being
|
|
713
|
+
* silently re-posed by the owner is this kind's whole failure mode, and the
|
|
714
|
+
* reason it is a kind rather than a flavour of `source-prop`.
|
|
715
|
+
* Proof: `packages/editor/test/r3f-physics-binding.test.ts`.
|
|
716
|
+
* - `data-record` — the value is a field of a RECORD in the game's own data
|
|
717
|
+
* file, addressed by index; no source literal mentions it. Lands in that
|
|
718
|
+
* file through the game's own declared writer; survives a cold remount for
|
|
719
|
+
* the same reason source does.
|
|
720
|
+
* Proof: `packages/editor/test/ingest-source-persistence.test.ts`
|
|
721
|
+
* ("a level-data record is an anchor too").
|
|
722
|
+
* - `live-only` — there is no anchor. The edit lands on the running object for
|
|
723
|
+
* the session and NOTHING else, and the contract is that the surface SAYS SO:
|
|
724
|
+
* a write ack that claims a destination it did not reach is the lie this kind
|
|
725
|
+
* exists to keep nameable.
|
|
726
|
+
* Proof: `packages/editor/test/oid-source-persistence.test.ts`
|
|
727
|
+
* ("an object with no source stamp is refused by name")
|
|
728
|
+
* + `packages/editor/test/inspection-write-destination.test.ts`.
|
|
729
|
+
*/
|
|
730
|
+
export type WriteAnchorKind = 'source-prop' | 'construction-literal' | 'physics-binding' | 'data-record' | 'live-only';
|
|
731
|
+
/**
|
|
732
|
+
* WHAT ONE EDIT DID — the ack the persistence pipe returns for THAT edit, from
|
|
733
|
+
* the component that actually performed the write.
|
|
734
|
+
*
|
|
735
|
+
* It is deliberately NOT a property of an adapter, a session or a surface. The
|
|
736
|
+
* fact it carries is per-edit, because that is the only granularity at which it
|
|
737
|
+
* can be true: one composite may hold a source-backed three root beside a
|
|
738
|
+
* live-only DOM root, and one three root holds body-placed nodes beside
|
|
739
|
+
* ordinary JSX props. An answer computed from the SURFACE rather than from the
|
|
740
|
+
* edit reports whichever child happened to be persist-capable — measured on the
|
|
741
|
+
* vendored racing game, where a three-root edit acked the other root's
|
|
742
|
+
* destination with `persisted: true`.
|
|
743
|
+
*
|
|
744
|
+
* `persisted: false` is an ANSWER, never a failure: `live-only` is a real
|
|
745
|
+
* anchor kind and the contract of that kind is that the surface SAYS SO. What
|
|
746
|
+
* is forbidden is a `destination` no byte reached being reported with
|
|
747
|
+
* `persisted: true`.
|
|
748
|
+
*
|
|
749
|
+
* A provider that performs a write returns this; one that has no write to
|
|
750
|
+
* perform returns nothing and the shell reports the live-only floor. There is
|
|
751
|
+
* no third answer, and in particular there is no adapter-wide blanket
|
|
752
|
+
* destination standing in for one — {@link PersistenceProvider.destination}
|
|
753
|
+
* answers the different question "where do this surface's SAVES go", for the
|
|
754
|
+
* save-status chrome.
|
|
755
|
+
*/
|
|
756
|
+
export interface WriteAck {
|
|
757
|
+
/** Where THIS edit's bytes landed, in the writer's own words — or the
|
|
758
|
+
* live-only/ephemeral floor when none did. */
|
|
759
|
+
readonly destination: string;
|
|
760
|
+
/** Whether a byte actually moved for THIS edit. */
|
|
761
|
+
readonly persisted: boolean;
|
|
762
|
+
}
|
|
763
|
+
/**
|
|
764
|
+
* The vocabulary as an ordered list — most-addressable first, `live-only` last,
|
|
765
|
+
* so two reports of the same world are diffable line for line.
|
|
766
|
+
*
|
|
767
|
+
* Derived from {@link WRITE_ANCHOR_KIND_PRESENCE} rather than spelled a second
|
|
768
|
+
* time: one list the compiler pins to the union, and nothing downstream can
|
|
769
|
+
* enumerate a different set.
|
|
770
|
+
*/
|
|
771
|
+
export declare const WRITE_ANCHOR_KINDS: readonly WriteAnchorKind[];
|
|
772
|
+
/** Zero counts for every kind — the starting point of any per-kind tally, so a
|
|
773
|
+
* tally can never omit a kind by forgetting to initialize it. */
|
|
774
|
+
export declare function emptyWriteAnchorKindCounts(): Record<WriteAnchorKind, number>;
|
|
563
775
|
/**
|
|
564
776
|
* Absent ⇒ this adapter's substrate has no creation-site index at all (a
|
|
565
777
|
* document-backed world's truth is the document, not a construction site).
|
|
@@ -567,6 +779,102 @@ export type NodeCreationSite = {
|
|
|
567
779
|
*/
|
|
568
780
|
export interface CreationSiteProvider {
|
|
569
781
|
anchor(id: string): NodeCreationSite;
|
|
782
|
+
/**
|
|
783
|
+
* The write-side sibling of {@link anchor}: which LANE would carry an edit to
|
|
784
|
+
* this node's transform, in the closed vocabulary above. Exposed beside the
|
|
785
|
+
* anchor because that is where every reader already looks, and because a
|
|
786
|
+
* caller sweeping a hierarchy needs it to find a representative node per kind
|
|
787
|
+
* (`vgai doctor`'s edit-write walk is that caller).
|
|
788
|
+
*
|
|
789
|
+
* Absent ⇒ this adapter plans no lanes it can distinguish; the reader has only
|
|
790
|
+
* the anchor's own shape, which cannot tell two source lanes apart.
|
|
791
|
+
* `undefined` for a particular id ⇒ this adapter plans no write for THAT id
|
|
792
|
+
* (a synthetic hierarchy row, an id no child of a composite owns) — which is
|
|
793
|
+
* not the same as `live-only`, a lane that really does land on a live object.
|
|
794
|
+
*/
|
|
795
|
+
writeAnchorKind?(id: string): WriteAnchorKind | undefined;
|
|
796
|
+
}
|
|
797
|
+
/** A plain world-space point. Component handles cross the authoring seam as
|
|
798
|
+
* data; a substrate object or renderer handle never does. */
|
|
799
|
+
export type SpatialPoint3 = readonly [x: number, y: number, z: number];
|
|
800
|
+
/** Non-interactive geometry an adapter asks the viewport to draw for one
|
|
801
|
+
* spatial component. The vocabulary is intentionally geometric rather than
|
|
802
|
+
* domain-shaped: audio attenuation, light range and a collider radius can all
|
|
803
|
+
* use the same sphere without teaching the shell any of those concepts. */
|
|
804
|
+
export type SpatialHandleGuide = {
|
|
805
|
+
readonly kind: 'line';
|
|
806
|
+
readonly points: readonly SpatialPoint3[];
|
|
807
|
+
readonly color: string;
|
|
808
|
+
readonly opacity?: number;
|
|
809
|
+
readonly dashed?: boolean;
|
|
810
|
+
} | {
|
|
811
|
+
readonly kind: 'sphere';
|
|
812
|
+
readonly center: SpatialPoint3;
|
|
813
|
+
readonly radius: number;
|
|
814
|
+
readonly color: string;
|
|
815
|
+
readonly opacity?: number;
|
|
816
|
+
readonly dashed?: boolean;
|
|
817
|
+
} | {
|
|
818
|
+
readonly kind: 'cone';
|
|
819
|
+
readonly origin: SpatialPoint3;
|
|
820
|
+
readonly direction: SpatialPoint3;
|
|
821
|
+
readonly length: number;
|
|
822
|
+
/** Full opening angle in degrees, matching Web Audio and authoring UIs. */
|
|
823
|
+
readonly angle: number;
|
|
824
|
+
readonly color: string;
|
|
825
|
+
readonly opacity?: number;
|
|
826
|
+
readonly dashed?: boolean;
|
|
827
|
+
} | {
|
|
828
|
+
readonly kind: 'box';
|
|
829
|
+
readonly center: SpatialPoint3;
|
|
830
|
+
readonly rotation: readonly [x: number, y: number, z: number, w: number];
|
|
831
|
+
readonly halfExtents: SpatialPoint3;
|
|
832
|
+
readonly color: string;
|
|
833
|
+
readonly opacity?: number;
|
|
834
|
+
readonly dashed?: boolean;
|
|
835
|
+
} | {
|
|
836
|
+
readonly kind: 'capsule';
|
|
837
|
+
readonly center: SpatialPoint3;
|
|
838
|
+
readonly rotation: readonly [x: number, y: number, z: number, w: number];
|
|
839
|
+
readonly radius: number;
|
|
840
|
+
readonly halfHeight: number;
|
|
841
|
+
readonly color: string;
|
|
842
|
+
readonly opacity?: number;
|
|
843
|
+
readonly dashed?: boolean;
|
|
844
|
+
};
|
|
845
|
+
/** One draggable point. `id` is stable only within its owning node; `label`
|
|
846
|
+
* feeds accessible/editor hints rather than becoming a persisted name. */
|
|
847
|
+
export interface SpatialDragHandle {
|
|
848
|
+
readonly id: string;
|
|
849
|
+
readonly label: string;
|
|
850
|
+
readonly position: SpatialPoint3;
|
|
851
|
+
readonly color: string;
|
|
852
|
+
readonly writable: boolean;
|
|
853
|
+
readonly reason?: string;
|
|
854
|
+
}
|
|
855
|
+
/** One adapter-owned component projection. `category` is a viewport overlay
|
|
856
|
+
* channel (for example `audio`), not a game-object kind; unknown categories
|
|
857
|
+
* obey the master Helpers toggle instead of being rejected. */
|
|
858
|
+
export interface SpatialHandleLayer {
|
|
859
|
+
readonly id: string;
|
|
860
|
+
readonly category: string;
|
|
861
|
+
readonly guides: readonly SpatialHandleGuide[];
|
|
862
|
+
readonly handles: readonly SpatialDragHandle[];
|
|
863
|
+
}
|
|
864
|
+
/**
|
|
865
|
+
* Format-neutral direct-manipulation seam for component-owned spatial values.
|
|
866
|
+
*
|
|
867
|
+
* The viewport draws only the returned geometry. During a drag it returns a
|
|
868
|
+
* world-space point to the adapter; the adapter alone knows whether that means
|
|
869
|
+
* an AudioSource distance, a light cone, a collider extent, or something else,
|
|
870
|
+
* and the adapter alone owns live preview + source persistence. `commit` runs
|
|
871
|
+
* once at gesture end, so source/HMR/history are never hammered per pointer
|
|
872
|
+
* move. Absent means this adapter has no spatial component handles.
|
|
873
|
+
*/
|
|
874
|
+
export interface SpatialHandlesProvider {
|
|
875
|
+
layers(id: string): readonly SpatialHandleLayer[];
|
|
876
|
+
preview(id: string, handleId: string, worldPosition: SpatialPoint3): void;
|
|
877
|
+
commit(id: string, handleId: string, worldPosition: SpatialPoint3): void | Promise<void>;
|
|
570
878
|
}
|
|
571
879
|
export interface AuthoringAdapter {
|
|
572
880
|
readonly capabilities: AuthoringCapabilities;
|
|
@@ -581,6 +889,8 @@ export interface AuthoringAdapter {
|
|
|
581
889
|
/** The selected node is an atomic asset that can open in the Asset Editor. */
|
|
582
890
|
readonly assetSubject?: AssetSubjectProvider;
|
|
583
891
|
readonly related?: RelatedSubjectsProvider;
|
|
892
|
+
/** Source-derived prefab/component instance overrides and native writes. */
|
|
893
|
+
readonly instances?: ComponentInstancesProvider;
|
|
584
894
|
readonly structure?: StructureProvider;
|
|
585
895
|
readonly persistence?: PersistenceProvider;
|
|
586
896
|
/** D12 — per-layer viewport picking. Absent ⇒ this adapter is not pickable. */
|
|
@@ -602,6 +912,8 @@ export interface AuthoringAdapter {
|
|
|
602
912
|
/** WO-IDX1 — the source location that constructed a node's live object.
|
|
603
913
|
* Absent ⇒ this adapter indexes no creation sites. */
|
|
604
914
|
readonly creationSite?: CreationSiteProvider;
|
|
915
|
+
/** Adapter-owned component guides and direct-manipulation points. */
|
|
916
|
+
readonly spatialHandles?: SpatialHandlesProvider;
|
|
605
917
|
/** Asset drop (hierarchy + viewport). Absent ⇒ this adapter accepts no drops. */
|
|
606
918
|
readonly assetDrop?: AssetDropProvider;
|
|
607
919
|
/** Change notification → UI refresh. */
|
|
@@ -617,4 +929,39 @@ export interface AuthoringAdapter {
|
|
|
617
929
|
*/
|
|
618
930
|
observeTransforms?(listener: (event: TransformObservation) => void): () => void;
|
|
619
931
|
}
|
|
932
|
+
/**
|
|
933
|
+
* THE PROVIDER VOCABULARY — every member of {@link AuthoringAdapter} beyond the
|
|
934
|
+
* two an adapter cannot exist without.
|
|
935
|
+
*
|
|
936
|
+
* Why this exists: the editor's coverage warnings are supposed to make stopping
|
|
937
|
+
* short of a native root IMPOSSIBLE, and they cannot do that while the row
|
|
938
|
+
* vocabulary is a hand-written list frozen at what its author happened to know.
|
|
939
|
+
* A list like that goes quiet at "all warnings closed" while whole capabilities
|
|
940
|
+
* — stories, asset drop, related subjects, structure — were never enumerated at
|
|
941
|
+
* all, so nothing ever warned about them. So the vocabulary IS the type: adding
|
|
942
|
+
* a provider to `AuthoringAdapter` and forgetting it here is a COMPILE ERROR
|
|
943
|
+
* (the `Record` below is missing a key), and inventing a key the type does not
|
|
944
|
+
* have is an excess-property error. There is no third way to add a provider.
|
|
945
|
+
*
|
|
946
|
+
* `capabilities` and `hierarchy` are excluded because they are required members
|
|
947
|
+
* — every adapter has them by construction, so "absent" is not a state they can
|
|
948
|
+
* be in and a row about them could never say anything.
|
|
949
|
+
*/
|
|
950
|
+
export type AuthoringProviderKey = Exclude<keyof AuthoringAdapter, 'capabilities' | 'hierarchy'>;
|
|
951
|
+
/**
|
|
952
|
+
* The vocabulary as an ordered list — declaration order of the interface, so
|
|
953
|
+
* two reports of the same root are diffable line for line.
|
|
954
|
+
*
|
|
955
|
+
* Derived from {@link AUTHORING_PROVIDER_PRESENCE} rather than spelled a second
|
|
956
|
+
* time: one list that the compiler pins to the type, and nothing downstream can
|
|
957
|
+
* enumerate a different set.
|
|
958
|
+
*/
|
|
959
|
+
export declare const AUTHORING_PROVIDER_KEYS: readonly AuthoringProviderKey[];
|
|
960
|
+
/**
|
|
961
|
+
* Which providers this adapter actually exposes — PRESENCE, measured off the
|
|
962
|
+
* object itself. Nothing here consults `capabilities`, the adapter's class, the
|
|
963
|
+
* route that built it, or the game's id: an adapter this function has never
|
|
964
|
+
* heard of gets the same answer as one it has.
|
|
965
|
+
*/
|
|
966
|
+
export declare function measureAuthoringProviders(adapter: AuthoringAdapter): Readonly<Record<AuthoringProviderKey, boolean>>;
|
|
620
967
|
//# sourceMappingURL=authoring.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authoring.d.ts","sourceRoot":"","sources":["../../src/adapter/authoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;OASG;IACH,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;IACrE;kDAC8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd;qEACiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,WAAW,GACX,UAAU,GACV,SAAS,GACT,QAAQ,GACR,UAAU,CAAC;AAEf,gFAAgF;AAChF,MAAM,WAAW,UAAU;IACzB,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd;4EACwE;IACxE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;iFAC6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACvE;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,IAAI,UAAU,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C;oDACgD;IAChD,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,IAAI,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB;;8EAE0E;IAC1E,OAAO,CAAC,CACN,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAChE,mBAAmB,GAAG,IAAI,CAAC;CAC/B;AAED;;;+BAG+B;AAC/B,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,UAAU,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;8EAE0E;IAC1E,WAAW,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,oBAAoB,CAAC;IAC1E,+EAA+E;IAC/E,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAC7C,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAAC;IAC9C;;;;;OAKG;IACH,OAAO,CAAC,IAAI,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,qBAAqB,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED;;0EAE0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,IAAI,IAAI,IAAI,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,kBAAkB,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACvD;;4BAEwB;IACxB,OAAO,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3D;;;;;;OAMG;IACH,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5E;;;mBAGe;IACf,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C;;mBAEe;IACf,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;iFAE6E;IAC7E,KAAK,CAAC,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C;gFAC4E;IAC5E,OAAO,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,+EAA+E;IAC/E,UAAU,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,IAAI,OAAO,CAAC;IACnB,4EAA4E;IAC5E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7D;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACvD;AAED,8BAA8B;AAC9B,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IACvC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACpD,8EAA8E;IAC9E,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACvD;AAED,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACpD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3F;AAED;;uFAEuF;AACvF,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;yFAIyF;AACzF,MAAM,WAAW,YAAY;IAC3B,qFAAqF;IACrF,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjF,+EAA+E;IAC/E,YAAY,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG;QACzB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;QACzB,UAAU,CAAC,EAAE,WAAW,CAAC;KAC1B,CAAC;IACF;;;;;;;;;OASG;IACH,eAAe,CAAC,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9E;AAED;;;+EAG+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC;;6EAEyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd;iFAC6E;IAC7E,UAAU,CAAC,EAAE,aAAa,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;+FAC+F;AAC/F,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;iEAI6D;IAC7D,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oEAAoE;IACpE,cAAc,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAAC;CAC3D;AAED;;;;iCAIiC;AACjC,MAAM,WAAW,YAAY;IAC3B,0FAA0F;IAC1F,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;sEAGkE;IAClE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;CACtE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5F;IACE,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C;;sDAEkD;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC;mFAC+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B;sEACkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC;uFACmF;IACnF,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B;4EACwE;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,gFAAgF;IAChF,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC;2DACuD;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,wCAAwC;IACxC,SAAS,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC7C;;;;;;;;OAQG;IACH,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACjF"}
|
|
1
|
+
{"version":3,"file":"authoring.d.ts","sourceRoot":"","sources":["../../src/adapter/authoring.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,4 +19,90 @@
|
|
|
19
19
|
* toggle against these three paths, generically, for any adapter that reports
|
|
20
20
|
* them via `InspectorProvider.properties`.
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* The exhaustiveness pin, the same shape and for the same reason as
|
|
24
|
+
* {@link AUTHORING_PROVIDER_PRESENCE}: a `Record` over the union, so a lane that
|
|
25
|
+
* starts producing a new kind of anchor cannot ship without joining the
|
|
26
|
+
* vocabulary (the `Record` would be missing a key) and cannot invent a key the
|
|
27
|
+
* union does not have (excess-property error). The values are `true` and carry
|
|
28
|
+
* no meaning — the KEYS are the payload.
|
|
29
|
+
*
|
|
30
|
+
* What this buys downstream: the per-kind write-reach counts and `vgai doctor`'s
|
|
31
|
+
* edit-write walk both enumerate {@link WRITE_ANCHOR_KINDS} rather than a
|
|
32
|
+
* hand-written list, so a new kind arrives already measured and already walked
|
|
33
|
+
* instead of silently untested.
|
|
34
|
+
*/
|
|
35
|
+
const WRITE_ANCHOR_KIND_PRESENCE = {
|
|
36
|
+
'source-prop': true,
|
|
37
|
+
'construction-literal': true,
|
|
38
|
+
'physics-binding': true,
|
|
39
|
+
'data-record': true,
|
|
40
|
+
'live-only': true,
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* The vocabulary as an ordered list — most-addressable first, `live-only` last,
|
|
44
|
+
* so two reports of the same world are diffable line for line.
|
|
45
|
+
*
|
|
46
|
+
* Derived from {@link WRITE_ANCHOR_KIND_PRESENCE} rather than spelled a second
|
|
47
|
+
* time: one list the compiler pins to the union, and nothing downstream can
|
|
48
|
+
* enumerate a different set.
|
|
49
|
+
*/
|
|
50
|
+
export const WRITE_ANCHOR_KINDS = Object.keys(WRITE_ANCHOR_KIND_PRESENCE);
|
|
51
|
+
/** Zero counts for every kind — the starting point of any per-kind tally, so a
|
|
52
|
+
* tally can never omit a kind by forgetting to initialize it. */
|
|
53
|
+
export function emptyWriteAnchorKindCounts() {
|
|
54
|
+
const counts = {};
|
|
55
|
+
for (const kind of WRITE_ANCHOR_KINDS)
|
|
56
|
+
counts[kind] = 0;
|
|
57
|
+
return counts;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The exhaustiveness pin. A `Record` over the key union, so the compiler — not
|
|
61
|
+
* a scan, not a reviewer — is what refuses a vocabulary that has drifted from
|
|
62
|
+
* the interface above. The values are `true` and carry no meaning: the KEYS are
|
|
63
|
+
* the payload.
|
|
64
|
+
*/
|
|
65
|
+
const AUTHORING_PROVIDER_PRESENCE = {
|
|
66
|
+
provenance: true,
|
|
67
|
+
selection: true,
|
|
68
|
+
transforms: true,
|
|
69
|
+
inspector: true,
|
|
70
|
+
assetSubject: true,
|
|
71
|
+
related: true,
|
|
72
|
+
instances: true,
|
|
73
|
+
structure: true,
|
|
74
|
+
persistence: true,
|
|
75
|
+
pickable: true,
|
|
76
|
+
rects: true,
|
|
77
|
+
boxEdit: true,
|
|
78
|
+
text: true,
|
|
79
|
+
colorSample: true,
|
|
80
|
+
stories: true,
|
|
81
|
+
creationSite: true,
|
|
82
|
+
spatialHandles: true,
|
|
83
|
+
assetDrop: true,
|
|
84
|
+
subscribe: true,
|
|
85
|
+
observeTransforms: true,
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* The vocabulary as an ordered list — declaration order of the interface, so
|
|
89
|
+
* two reports of the same root are diffable line for line.
|
|
90
|
+
*
|
|
91
|
+
* Derived from {@link AUTHORING_PROVIDER_PRESENCE} rather than spelled a second
|
|
92
|
+
* time: one list that the compiler pins to the type, and nothing downstream can
|
|
93
|
+
* enumerate a different set.
|
|
94
|
+
*/
|
|
95
|
+
export const AUTHORING_PROVIDER_KEYS = Object.keys(AUTHORING_PROVIDER_PRESENCE);
|
|
96
|
+
/**
|
|
97
|
+
* Which providers this adapter actually exposes — PRESENCE, measured off the
|
|
98
|
+
* object itself. Nothing here consults `capabilities`, the adapter's class, the
|
|
99
|
+
* route that built it, or the game's id: an adapter this function has never
|
|
100
|
+
* heard of gets the same answer as one it has.
|
|
101
|
+
*/
|
|
102
|
+
export function measureAuthoringProviders(adapter) {
|
|
103
|
+
const measured = {};
|
|
104
|
+
for (const key of AUTHORING_PROVIDER_KEYS) {
|
|
105
|
+
measured[key] = adapter[key] !== undefined;
|
|
106
|
+
}
|
|
107
|
+
return measured;
|
|
108
|
+
}
|
|
@@ -12,22 +12,28 @@ export type ConstraintStatus = 'ready' | 'disabled' | 'unresolved' | 'error';
|
|
|
12
12
|
export interface ConstraintConfig {
|
|
13
13
|
/** Stable only within this mounted owner. */
|
|
14
14
|
readonly id: string;
|
|
15
|
-
readonly type: 'two-bone-ik' | 'ccd-ik' | (string & {});
|
|
15
|
+
readonly type: 'two-bone-ik' | 'ccd-ik' | 'aim' | 'rotation' | (string & {});
|
|
16
16
|
readonly label: string;
|
|
17
17
|
readonly enabled: boolean;
|
|
18
18
|
readonly weight: number;
|
|
19
19
|
/** Evaluation order among constraints attached to this owner. */
|
|
20
20
|
readonly order: number;
|
|
21
21
|
}
|
|
22
|
+
export interface ConstraintError {
|
|
23
|
+
readonly value: number;
|
|
24
|
+
readonly unit: 'metres' | 'degrees';
|
|
25
|
+
}
|
|
22
26
|
export interface ConstraintSnapshot {
|
|
23
27
|
readonly status: ConstraintStatus;
|
|
24
28
|
readonly message?: string;
|
|
25
29
|
/** Root → effector, using the real bones from the live skeleton. */
|
|
26
30
|
readonly chain: readonly THREE.Object3D[];
|
|
31
|
+
/** The ordinary object whose transform the constraint affects. */
|
|
32
|
+
readonly constrained: THREE.Object3D | null;
|
|
27
33
|
readonly target: THREE.Object3D | null;
|
|
28
34
|
readonly pole: THREE.Object3D | null;
|
|
29
|
-
/**
|
|
30
|
-
readonly error:
|
|
35
|
+
/** Residual after the latest solve, in the constraint's native unit. */
|
|
36
|
+
readonly error: ConstraintError | null;
|
|
31
37
|
}
|
|
32
38
|
export interface ConstraintMark {
|
|
33
39
|
readonly config: ConstraintConfig;
|