@konitif/viewer-3d 0.284.1
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/LICENSE.md +21 -0
- package/README.md +34 -0
- package/dist/balanceFootprintDefinition.d.ts +7 -0
- package/dist/balanceFootprintDefinition.d.ts.map +1 -0
- package/dist/balanceFootprintDefinition.js +2 -0
- package/dist/balanceFootprintDefinition.js.map +1 -0
- package/dist/diagnosticContactDefinition.d.ts +7 -0
- package/dist/diagnosticContactDefinition.d.ts.map +1 -0
- package/dist/diagnosticContactDefinition.js +2 -0
- package/dist/diagnosticContactDefinition.js.map +1 -0
- package/dist/handTipDefinition.d.ts +13 -0
- package/dist/handTipDefinition.d.ts.map +1 -0
- package/dist/handTipDefinition.js +2 -0
- package/dist/handTipDefinition.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/jointHandleDefinition.d.ts +23 -0
- package/dist/jointHandleDefinition.d.ts.map +1 -0
- package/dist/jointHandleDefinition.js +2 -0
- package/dist/jointHandleDefinition.js.map +1 -0
- package/dist/ledPlacementDefinition.d.ts +38 -0
- package/dist/ledPlacementDefinition.d.ts.map +1 -0
- package/dist/ledPlacementDefinition.js +2 -0
- package/dist/ledPlacementDefinition.js.map +1 -0
- package/dist/ledReferenceFrame.d.ts +26 -0
- package/dist/ledReferenceFrame.d.ts.map +1 -0
- package/dist/ledReferenceFrame.js +2 -0
- package/dist/ledReferenceFrame.js.map +1 -0
- package/dist/ledRingCalibration.d.ts +22 -0
- package/dist/ledRingCalibration.d.ts.map +1 -0
- package/dist/ledRingCalibration.js +2 -0
- package/dist/ledRingCalibration.js.map +1 -0
- package/dist/renderer/AnimationLoop.d.ts +18 -0
- package/dist/renderer/AnimationLoop.d.ts.map +1 -0
- package/dist/renderer/AnimationLoop.js +39 -0
- package/dist/renderer/AnimationLoop.js.map +1 -0
- package/dist/renderer/CameraController.d.ts +154 -0
- package/dist/renderer/CameraController.d.ts.map +1 -0
- package/dist/renderer/CameraController.js +469 -0
- package/dist/renderer/CameraController.js.map +1 -0
- package/dist/renderer/NavigationPhysicsObservation.d.ts +25 -0
- package/dist/renderer/NavigationPhysicsObservation.d.ts.map +1 -0
- package/dist/renderer/NavigationPhysicsObservation.js +81 -0
- package/dist/renderer/NavigationPhysicsObservation.js.map +1 -0
- package/dist/renderer/ObservedRobotGroundingProjection.d.ts +206 -0
- package/dist/renderer/ObservedRobotGroundingProjection.d.ts.map +1 -0
- package/dist/renderer/ObservedRobotGroundingProjection.js +522 -0
- package/dist/renderer/ObservedRobotGroundingProjection.js.map +1 -0
- package/dist/renderer/ObservedRobotPresentationBuffer.d.ts +71 -0
- package/dist/renderer/ObservedRobotPresentationBuffer.d.ts.map +1 -0
- package/dist/renderer/ObservedRobotPresentationBuffer.js +226 -0
- package/dist/renderer/ObservedRobotPresentationBuffer.js.map +1 -0
- package/dist/renderer/PerformanceMonitor.d.ts +38 -0
- package/dist/renderer/PerformanceMonitor.d.ts.map +1 -0
- package/dist/renderer/PerformanceMonitor.js +84 -0
- package/dist/renderer/PerformanceMonitor.js.map +1 -0
- package/dist/renderer/ProjectileInteraction.d.ts +57 -0
- package/dist/renderer/ProjectileInteraction.d.ts.map +1 -0
- package/dist/renderer/ProjectileInteraction.js +152 -0
- package/dist/renderer/ProjectileInteraction.js.map +1 -0
- package/dist/renderer/RobotComparisonVisibilityTransition.d.ts +12 -0
- package/dist/renderer/RobotComparisonVisibilityTransition.d.ts.map +1 -0
- package/dist/renderer/RobotComparisonVisibilityTransition.js +23 -0
- package/dist/renderer/RobotComparisonVisibilityTransition.js.map +1 -0
- package/dist/renderer/RobotPoseTransition.d.ts +34 -0
- package/dist/renderer/RobotPoseTransition.d.ts.map +1 -0
- package/dist/renderer/RobotPoseTransition.js +66 -0
- package/dist/renderer/RobotPoseTransition.js.map +1 -0
- package/dist/renderer/RobotPostureCompensation.d.ts +31 -0
- package/dist/renderer/RobotPostureCompensation.d.ts.map +1 -0
- package/dist/renderer/RobotPostureCompensation.js +60 -0
- package/dist/renderer/RobotPostureCompensation.js.map +1 -0
- package/dist/renderer/SelectionController.d.ts +24 -0
- package/dist/renderer/SelectionController.d.ts.map +1 -0
- package/dist/renderer/SelectionController.js +68 -0
- package/dist/renderer/SelectionController.js.map +1 -0
- package/dist/renderer/TemporalProjectionModel.d.ts +71 -0
- package/dist/renderer/TemporalProjectionModel.d.ts.map +1 -0
- package/dist/renderer/TemporalProjectionModel.js +363 -0
- package/dist/renderer/TemporalProjectionModel.js.map +1 -0
- package/dist/renderer/Viewer3DRenderer.d.ts +1137 -0
- package/dist/renderer/Viewer3DRenderer.d.ts.map +1 -0
- package/dist/renderer/Viewer3DRenderer.js +10655 -0
- package/dist/renderer/Viewer3DRenderer.js.map +1 -0
- package/dist/renderer/ViewerExperimentCollector.d.ts +27 -0
- package/dist/renderer/ViewerExperimentCollector.d.ts.map +1 -0
- package/dist/renderer/ViewerExperimentCollector.js +2 -0
- package/dist/renderer/ViewerExperimentCollector.js.map +1 -0
- package/dist/renderer/ViewerExperimentPort.d.ts +19 -0
- package/dist/renderer/ViewerExperimentPort.d.ts.map +1 -0
- package/dist/renderer/ViewerExperimentPort.js +2 -0
- package/dist/renderer/ViewerExperimentPort.js.map +1 -0
- package/dist/renderer/ViewerFrameSignals.d.ts +13 -0
- package/dist/renderer/ViewerFrameSignals.d.ts.map +1 -0
- package/dist/renderer/ViewerFrameSignals.js +73 -0
- package/dist/renderer/ViewerFrameSignals.js.map +1 -0
- package/dist/renderer/ViewerHistoryData.d.ts +59 -0
- package/dist/renderer/ViewerHistoryData.d.ts.map +1 -0
- package/dist/renderer/ViewerHistoryData.js +2 -0
- package/dist/renderer/ViewerHistoryData.js.map +1 -0
- package/dist/renderer/ViewerHistoryPort.d.ts +15 -0
- package/dist/renderer/ViewerHistoryPort.d.ts.map +1 -0
- package/dist/renderer/ViewerHistoryPort.js +2 -0
- package/dist/renderer/ViewerHistoryPort.js.map +1 -0
- package/dist/renderer/ViewerIncarnationHealth.d.ts +14 -0
- package/dist/renderer/ViewerIncarnationHealth.d.ts.map +1 -0
- package/dist/renderer/ViewerIncarnationHealth.js +13 -0
- package/dist/renderer/ViewerIncarnationHealth.js.map +1 -0
- package/dist/renderer/ViewerInputBindings.d.ts +19 -0
- package/dist/renderer/ViewerInputBindings.d.ts.map +1 -0
- package/dist/renderer/ViewerInputBindings.js +44 -0
- package/dist/renderer/ViewerInputBindings.js.map +1 -0
- package/dist/renderer/ViewerMetadata.d.ts +11 -0
- package/dist/renderer/ViewerMetadata.d.ts.map +1 -0
- package/dist/renderer/ViewerMetadata.js +8 -0
- package/dist/renderer/ViewerMetadata.js.map +1 -0
- package/dist/renderer/ViewerPlaybackCompletionPolicy.d.ts +29 -0
- package/dist/renderer/ViewerPlaybackCompletionPolicy.d.ts.map +1 -0
- package/dist/renderer/ViewerPlaybackCompletionPolicy.js +27 -0
- package/dist/renderer/ViewerPlaybackCompletionPolicy.js.map +1 -0
- package/dist/renderer/ViewerProjectileParticleRenderer.d.ts +21 -0
- package/dist/renderer/ViewerProjectileParticleRenderer.d.ts.map +1 -0
- package/dist/renderer/ViewerProjectileParticleRenderer.js +134 -0
- package/dist/renderer/ViewerProjectileParticleRenderer.js.map +1 -0
- package/dist/renderer/ViewerResizePresentation.d.ts +16 -0
- package/dist/renderer/ViewerResizePresentation.d.ts.map +1 -0
- package/dist/renderer/ViewerResizePresentation.js +12 -0
- package/dist/renderer/ViewerResizePresentation.js.map +1 -0
- package/dist/renderer/ViewerTemporalProjectionExperimentAdapter.d.ts +34 -0
- package/dist/renderer/ViewerTemporalProjectionExperimentAdapter.d.ts.map +1 -0
- package/dist/renderer/ViewerTemporalProjectionExperimentAdapter.js +130 -0
- package/dist/renderer/ViewerTemporalProjectionExperimentAdapter.js.map +1 -0
- package/dist/renderer/ViewerTemporalScheduler.d.ts +6 -0
- package/dist/renderer/ViewerTemporalScheduler.d.ts.map +1 -0
- package/dist/renderer/ViewerTemporalScheduler.js +12 -0
- package/dist/renderer/ViewerTemporalScheduler.js.map +1 -0
- package/dist/renderer/VisualGroundLayer.d.ts +110 -0
- package/dist/renderer/VisualGroundLayer.d.ts.map +1 -0
- package/dist/renderer/VisualGroundLayer.js +576 -0
- package/dist/renderer/VisualGroundLayer.js.map +1 -0
- package/dist/renderer/displayFrameRate.d.ts +5 -0
- package/dist/renderer/displayFrameRate.d.ts.map +1 -0
- package/dist/renderer/displayFrameRate.js +23 -0
- package/dist/renderer/displayFrameRate.js.map +1 -0
- package/dist/renderer/index.d.ts +20 -0
- package/dist/renderer/index.d.ts.map +1 -0
- package/dist/renderer/index.js +18 -0
- package/dist/renderer/index.js.map +1 -0
- package/dist/renderer/physics/ViewerJointResolution.d.ts +19 -0
- package/dist/renderer/physics/ViewerJointResolution.d.ts.map +1 -0
- package/dist/renderer/physics/ViewerJointResolution.js +24 -0
- package/dist/renderer/physics/ViewerJointResolution.js.map +1 -0
- package/dist/renderer/physics/ViewerPhysicsFrame.d.ts +9 -0
- package/dist/renderer/physics/ViewerPhysicsFrame.d.ts.map +1 -0
- package/dist/renderer/physics/ViewerPhysicsFrame.js +26 -0
- package/dist/renderer/physics/ViewerPhysicsFrame.js.map +1 -0
- package/dist/renderer/physics/ViewerPhysicsJointMapping.d.ts +11 -0
- package/dist/renderer/physics/ViewerPhysicsJointMapping.d.ts.map +1 -0
- package/dist/renderer/physics/ViewerPhysicsJointMapping.js +20 -0
- package/dist/renderer/physics/ViewerPhysicsJointMapping.js.map +1 -0
- package/dist/renderer/physics/ViewerPhysicsMetadata.d.ts +20 -0
- package/dist/renderer/physics/ViewerPhysicsMetadata.d.ts.map +1 -0
- package/dist/renderer/physics/ViewerPhysicsMetadata.js +49 -0
- package/dist/renderer/physics/ViewerPhysicsMetadata.js.map +1 -0
- package/dist/renderer/robotViewerMotion.d.ts +49 -0
- package/dist/renderer/robotViewerMotion.d.ts.map +1 -0
- package/dist/renderer/robotViewerMotion.js +253 -0
- package/dist/renderer/robotViewerMotion.js.map +1 -0
- package/dist/supportDefinition.d.ts +11 -0
- package/dist/supportDefinition.d.ts.map +1 -0
- package/dist/supportDefinition.js +2 -0
- package/dist/supportDefinition.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,1137 @@
|
|
|
1
|
+
import type { ViewerJointHandleDefinition, ViewerSupportDefinition, ViewerDiagnosticContactDefinition, ViewerBalanceFootprintDefinition, ViewerHandTipDefinition, ViewerLedRingCalibration, ViewerLedReferenceFrame, ViewerLedPlacementDefinition } from '../index.js';
|
|
2
|
+
import { type TemporalSchedulerHost } from '@konitif/temporal';
|
|
3
|
+
import type { BodyTransform, JointTarget, PhysicsEngineType, PhysicsRuntimeConfig, PhysicsServiceSnapshot, PhysicsServicePort, RobotPhysicsSource } from '@konitif/physics';
|
|
4
|
+
import { type ViewerMetadata } from './ViewerMetadata.js';
|
|
5
|
+
import type { ViewerHistoryPort, ViewerHistoryObservation } from './ViewerHistoryPort.js';
|
|
6
|
+
import type { ViewerHistorySample } from './ViewerHistoryData.js';
|
|
7
|
+
export type ViewerRuntimeHistoryPort = ViewerHistoryPort<Omit<ViewerHistorySample<ViewerMetadata>, 'id' | 'recordedAt'> & {
|
|
8
|
+
recordedAt?: number;
|
|
9
|
+
}, ViewerHistoryObservation<ViewerHistorySample<ViewerMetadata>>>;
|
|
10
|
+
import { type InteractionInputBinding, type InteractionInputBindingOverride, type InteractionInputSignal } from '@konitif/tools/input';
|
|
11
|
+
import { Object3D, OrthographicCamera, PerspectiveCamera, Quaternion, Scene, Vector3, WebGLRenderer } from 'three';
|
|
12
|
+
import { ArcballControls } from 'three/examples/jsm/controls/ArcballControls.js';
|
|
13
|
+
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
|
14
|
+
import { type RobotMotionAnimation } from './robotViewerMotion.js';
|
|
15
|
+
import { type Viewer3DNavigationPhysicsObservation } from './NavigationPhysicsObservation.js';
|
|
16
|
+
import { type ViewerIncarnationHealth } from './ViewerIncarnationHealth.js';
|
|
17
|
+
import { type Viewer3DPerformanceSummary } from './PerformanceMonitor.js';
|
|
18
|
+
import { type ViewerTemporalProjectionMode, type ViewerTemporalProjectionStatus } from './TemporalProjectionModel.js';
|
|
19
|
+
import { type ObservedRobotPresentationStatus } from './ObservedRobotPresentationBuffer.js';
|
|
20
|
+
import type { ViewerExperimentCollector } from './ViewerExperimentCollector.js';
|
|
21
|
+
import type { ViewerExperimentPort, ViewerExperimentStart } from './ViewerExperimentPort.js';
|
|
22
|
+
import { type RobotSagittalPostureCompensationOptions } from './RobotPostureCompensation.js';
|
|
23
|
+
import { type ViewerPlaybackCompletionBehavior } from './ViewerPlaybackCompletionPolicy.js';
|
|
24
|
+
import { type ObservedRobotGroundingProjection, type ObservedRobotSupportInclinationProjection } from './ObservedRobotGroundingProjection.js';
|
|
25
|
+
import { type ViewerVisualGroundComponentId, type ViewerVisualGroundOptions, type ViewerVisualGroundPaletteOptions } from './VisualGroundLayer.js';
|
|
26
|
+
export declare const VIEWER3D_PROJECTILE_PARTICLE_LIMIT = 24;
|
|
27
|
+
export declare function resolveViewerFocusTiltBlurStrength(framingSpan: number): number;
|
|
28
|
+
export declare function resolveViewerPoseHandleDistanceOpacity(subjectScreenSpanPixels: number): number;
|
|
29
|
+
export declare function resolveViewerCameraClippingPlanes(input: {
|
|
30
|
+
requestedNear: number;
|
|
31
|
+
requestedFar: number;
|
|
32
|
+
groundSize: number;
|
|
33
|
+
maximumCameraDistance?: number;
|
|
34
|
+
}): {
|
|
35
|
+
near: number;
|
|
36
|
+
far: number;
|
|
37
|
+
};
|
|
38
|
+
export interface ViewerNavigationPresentationFrame {
|
|
39
|
+
position: Vector3;
|
|
40
|
+
quaternion: Quaternion;
|
|
41
|
+
}
|
|
42
|
+
/** Maps the local MoveTo frame (+Z forward, +X left) onto one robot incarnation. */
|
|
43
|
+
export declare function resolveViewerNavigationPresentationFrame(input: {
|
|
44
|
+
activePosition: Vector3;
|
|
45
|
+
activeOrientation: Quaternion;
|
|
46
|
+
referenceOrientation: Quaternion;
|
|
47
|
+
}): ViewerNavigationPresentationFrame;
|
|
48
|
+
export declare function projectViewerNavigationWorldPointToLocal(point: Vector3, frame: ViewerNavigationPresentationFrame): Vector3;
|
|
49
|
+
export type RobotViewerVector = {
|
|
50
|
+
x: number;
|
|
51
|
+
y: number;
|
|
52
|
+
z: number;
|
|
53
|
+
};
|
|
54
|
+
export type RobotViewerQuaternion = {
|
|
55
|
+
x: number;
|
|
56
|
+
y: number;
|
|
57
|
+
z: number;
|
|
58
|
+
w: number;
|
|
59
|
+
};
|
|
60
|
+
export interface Viewer3DPhysicsObservation {
|
|
61
|
+
sampleId: string;
|
|
62
|
+
observedAtMs: number;
|
|
63
|
+
simulatedTimeSeconds: number;
|
|
64
|
+
centerOfMass: BodyTransform['position'] | null;
|
|
65
|
+
bodyTransforms: readonly BodyTransform[];
|
|
66
|
+
navigation: Viewer3DNavigationPhysicsObservation | null;
|
|
67
|
+
}
|
|
68
|
+
export interface Viewer3DRobotComparisonAppearance {
|
|
69
|
+
mode: 'overlay' | 'offset' | 'observed-only';
|
|
70
|
+
centeredSeparation: boolean;
|
|
71
|
+
offsetMeters: number;
|
|
72
|
+
observed: {
|
|
73
|
+
opacity: number;
|
|
74
|
+
tint: string;
|
|
75
|
+
};
|
|
76
|
+
simulated: {
|
|
77
|
+
opacity: number;
|
|
78
|
+
tint: string;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export interface Viewer3DPoseHandleDefinition {
|
|
82
|
+
readonly id: string;
|
|
83
|
+
readonly label: string;
|
|
84
|
+
readonly names: readonly string[];
|
|
85
|
+
readonly color: string;
|
|
86
|
+
}
|
|
87
|
+
export interface Viewer3DOptions<Artifact = unknown, Snapshot = unknown> {
|
|
88
|
+
/** Visibility host only: frame scheduling remains owned by the viewer's AnimationLoop. */
|
|
89
|
+
temporalSchedulerHost?: TemporalSchedulerHost;
|
|
90
|
+
supportDefinition?: ViewerSupportDefinition;
|
|
91
|
+
diagnosticContactDefinitions?: readonly ViewerDiagnosticContactDefinition[];
|
|
92
|
+
balanceFootprintDefinitions?: readonly ViewerBalanceFootprintDefinition[];
|
|
93
|
+
/** Ordered model anchors; absent/unresolved names use the geometric center. */
|
|
94
|
+
cameraFocusAnchorNames?: readonly string[];
|
|
95
|
+
projectileTargetAnchorNames?: readonly string[];
|
|
96
|
+
/** Pure presentation policy; undefined selects the neutral renderer color. */
|
|
97
|
+
resolveJointColor?: (jointId: string) => string | undefined;
|
|
98
|
+
/** Pure model policy; absent means no implicit joint trajectory selection. */
|
|
99
|
+
shouldRenderJointTrajectory?: (jointId: string, jointType?: string) => boolean;
|
|
100
|
+
handTipDefinitions?: readonly ViewerHandTipDefinition[];
|
|
101
|
+
ledRingDefaults?: Readonly<Record<string, Readonly<Viewer3DLedRingCalibration>>>;
|
|
102
|
+
headLedFrame?: ViewerLedReferenceFrame | null;
|
|
103
|
+
bodyLedPlacements?: Readonly<Record<string, readonly ViewerLedPlacementDefinition[]>>;
|
|
104
|
+
jointHandleDefinitions?: readonly ViewerJointHandleDefinition[];
|
|
105
|
+
/** Product-supplied visual anchors. No implicit model-specific handles. */
|
|
106
|
+
poseHandleDefinitions?: readonly Viewer3DPoseHandleDefinition[];
|
|
107
|
+
transparent?: boolean;
|
|
108
|
+
showRobot?: boolean;
|
|
109
|
+
showObservedRobotGhost?: boolean;
|
|
110
|
+
groundObservedRobotGhost?: boolean;
|
|
111
|
+
showAxes?: boolean;
|
|
112
|
+
showGrid?: boolean;
|
|
113
|
+
showVisualGround?: boolean;
|
|
114
|
+
visualGround?: ViewerVisualGroundOptions;
|
|
115
|
+
visualGroundPalette?: ViewerVisualGroundPaletteOptions;
|
|
116
|
+
showStats?: boolean;
|
|
117
|
+
showGlobalRafProbe?: boolean;
|
|
118
|
+
showTrajectories?: boolean;
|
|
119
|
+
showHandTrajectoriesOnly?: boolean;
|
|
120
|
+
showContactPoints?: boolean;
|
|
121
|
+
showPhysicsDebug?: boolean;
|
|
122
|
+
showPhysicsColliders?: boolean;
|
|
123
|
+
showPhysicsCenterOfMass?: boolean;
|
|
124
|
+
showPhysicsGravity?: boolean;
|
|
125
|
+
showEyeRingDebug?: boolean;
|
|
126
|
+
showEyeRingMire?: boolean;
|
|
127
|
+
eyeRingCalibration?: Partial<Viewer3DEyeRingCalibration>;
|
|
128
|
+
showBalanceDebug?: boolean;
|
|
129
|
+
showPoseHandles?: boolean;
|
|
130
|
+
poseHandleOcclusion?: boolean;
|
|
131
|
+
interactionMode?: Viewer3DInteractionMode;
|
|
132
|
+
inputBindings?: readonly InteractionInputBinding[];
|
|
133
|
+
inputBindingOverrides?: readonly InteractionInputBindingOverride[];
|
|
134
|
+
cameraProjection?: Viewer3DCameraProjection;
|
|
135
|
+
cameraControlMode?: Viewer3DCameraControlMode;
|
|
136
|
+
antialias?: boolean;
|
|
137
|
+
antialiasMode?: 'none' | 'msaa' | 'fxaa' | 'smaa';
|
|
138
|
+
maxPixelRatio?: number;
|
|
139
|
+
minPixelRatio?: number;
|
|
140
|
+
adaptivePixelRatio?: boolean;
|
|
141
|
+
targetFrameRate?: number;
|
|
142
|
+
autonomousPlayback?: boolean;
|
|
143
|
+
continuousPlaybackRender?: boolean;
|
|
144
|
+
stopPlaybackAtRangeEnd?: boolean;
|
|
145
|
+
transitionToAnimationStart?: boolean;
|
|
146
|
+
controlsEnabled?: boolean;
|
|
147
|
+
suspendWhenViewportHidden?: boolean;
|
|
148
|
+
physicsEngine?: PhysicsEngineType;
|
|
149
|
+
physicsEnabled?: boolean;
|
|
150
|
+
physicsMotorsCoupled?: boolean;
|
|
151
|
+
physicsStepRateHz?: number;
|
|
152
|
+
physicsPostureCompensation?: RobotSagittalPostureCompensationOptions | null;
|
|
153
|
+
physicsService: PhysicsServicePort;
|
|
154
|
+
/** Injected services are caller-owned by default. Use 'viewer' to transfer disposal responsibility.
|
|
155
|
+
* This does not coordinate shared simulation writes.
|
|
156
|
+
*/
|
|
157
|
+
physicsServiceOwnership?: 'caller' | 'viewer';
|
|
158
|
+
runtimeHistory?: ViewerRuntimeHistoryPort | null;
|
|
159
|
+
runtimeHistorySampleIntervalMs?: number;
|
|
160
|
+
/** Dedicated collector configured for the temporal projection protocol. Omit for legacy collection. */
|
|
161
|
+
temporalProjectionExperimentCollector: ViewerExperimentCollector<Artifact, Snapshot>;
|
|
162
|
+
temporalProjectionMode?: ViewerTemporalProjectionMode;
|
|
163
|
+
temporalProjectionBufferDelayMs?: number;
|
|
164
|
+
temporalProjectionMaxSampleGapMs?: number;
|
|
165
|
+
physicsObservationEnabled?: boolean;
|
|
166
|
+
onTemporalProjectionStatus?: (status: ViewerTemporalProjectionStatus) => void;
|
|
167
|
+
onPhysicsObservation?: (observation: Viewer3DPhysicsObservation) => void;
|
|
168
|
+
onCameraInteractionStart?: () => void;
|
|
169
|
+
cameraPosition?: RobotViewerVector;
|
|
170
|
+
cameraTarget?: RobotViewerVector;
|
|
171
|
+
onNavigationDestination?: (destination: RobotViewerVector) => void;
|
|
172
|
+
onNavigationSimulationObservation?: (observation: Viewer3DNavigationSimulationObservation) => void;
|
|
173
|
+
onProjectileInteraction?: (observation: Viewer3DProjectileInteractionObservation) => void;
|
|
174
|
+
}
|
|
175
|
+
export interface Viewer3DNavigationMoveToParameters {
|
|
176
|
+
forwardDistanceM: number;
|
|
177
|
+
leftDistanceM: number;
|
|
178
|
+
leftAngularDistanceRad: number;
|
|
179
|
+
}
|
|
180
|
+
export interface Viewer3DNavigationSimulationObservation extends Viewer3DNavigationMoveToParameters {
|
|
181
|
+
provenance: 'kinematic-preview';
|
|
182
|
+
progress: number;
|
|
183
|
+
completed: boolean;
|
|
184
|
+
}
|
|
185
|
+
export type Viewer3DInteractionMode = 'projectile' | 'camera' | 'joint' | 'pose' | 'navigate';
|
|
186
|
+
export type Viewer3DCameraProjection = 'perspective' | 'iso';
|
|
187
|
+
export type Viewer3DCameraControlMode = 'orbit' | 'arcball';
|
|
188
|
+
export type Viewer3DSymmetricCameraView = 'mixed' | 'left' | 'right';
|
|
189
|
+
export type Viewer3DPhysicalEntryMode = 'grounded-reset' | 'stabilized-continuation';
|
|
190
|
+
export interface Viewer3DProjectileInteractionObservation {
|
|
191
|
+
status: 'idle' | 'charging' | 'launched' | 'impact' | 'ground-contact' | 'settled' | 'removed' | 'rejected';
|
|
192
|
+
target: Viewer3DPoseControlTarget;
|
|
193
|
+
massKilograms: number;
|
|
194
|
+
speedMetersPerSecond: number;
|
|
195
|
+
activeCount: number;
|
|
196
|
+
limit: number;
|
|
197
|
+
launchedCount: number;
|
|
198
|
+
chargeRatio: number;
|
|
199
|
+
reason?: 'real-capability-unavailable' | 'physics-unavailable' | 'target-unavailable' | 'projectile-limit-reached';
|
|
200
|
+
}
|
|
201
|
+
export type Viewer3DLedRingZoneId = 'eyes' | 'headTop' | 'ears' | 'hands' | 'feet' | 'torso';
|
|
202
|
+
export type Viewer3DLedRingCalibration = ViewerLedRingCalibration;
|
|
203
|
+
export interface Viewer3DEyeRingCalibration extends Viewer3DLedRingCalibration {
|
|
204
|
+
zones?: Partial<Record<Viewer3DLedRingZoneId, Partial<Viewer3DLedRingCalibration>>>;
|
|
205
|
+
}
|
|
206
|
+
export interface Viewer3DPlaybackState {
|
|
207
|
+
sourceId?: string | null;
|
|
208
|
+
/** Stable identity of the authored subject projected by this occurrence. */
|
|
209
|
+
subjectId?: string | null;
|
|
210
|
+
/** Complete projected duration, including non-motion content such as audio. */
|
|
211
|
+
durationSeconds?: number | null;
|
|
212
|
+
currentTime: number;
|
|
213
|
+
resolveAuthoritativeCurrentTime?: (() => number) | null;
|
|
214
|
+
resolveTemporalProjectionSample?: ((currentTimeSeconds: number) => ViewerHistorySample<ViewerMetadata> | null) | null;
|
|
215
|
+
/** `manual` delegates time advancement to the deterministic buffer producer. */
|
|
216
|
+
clockMode?: 'realtime' | 'manual';
|
|
217
|
+
/** Independent playback reset, or continuation from a preceding stabilized clip. */
|
|
218
|
+
physicalEntryMode?: Viewer3DPhysicalEntryMode;
|
|
219
|
+
isPlaying?: boolean;
|
|
220
|
+
playbackRate?: number;
|
|
221
|
+
loopPlayback?: boolean;
|
|
222
|
+
workRange?: {
|
|
223
|
+
start: number;
|
|
224
|
+
end: number;
|
|
225
|
+
};
|
|
226
|
+
mutedTrackTargets?: readonly string[];
|
|
227
|
+
completionBehavior?: ViewerPlaybackCompletionBehavior;
|
|
228
|
+
completionReached?: boolean;
|
|
229
|
+
completionTransitionDurationMs?: number;
|
|
230
|
+
startTransitionMinimumDurationSeconds?: number;
|
|
231
|
+
entryPose?: Readonly<Record<string, number>> | 'robot-default' | null;
|
|
232
|
+
endTransitionMinimumDurationSeconds?: number;
|
|
233
|
+
exitPose?: Readonly<Record<string, number>> | 'robot-default' | null;
|
|
234
|
+
completionTargetPose?: Readonly<Record<string, number>> | null;
|
|
235
|
+
}
|
|
236
|
+
export interface Viewer3DPoseEditDetail {
|
|
237
|
+
dirty: boolean;
|
|
238
|
+
jointIds: string[];
|
|
239
|
+
jointValues: Record<string, number>;
|
|
240
|
+
action: 'change' | 'apply' | 'revert' | 'reset';
|
|
241
|
+
}
|
|
242
|
+
export type Viewer3DPoseControlTarget = 'simulated' | 'observed';
|
|
243
|
+
export interface Viewer3DObservedRobotVisibilityOptions {
|
|
244
|
+
transitionCameraFocus?: boolean;
|
|
245
|
+
transitionPresentation?: boolean;
|
|
246
|
+
nextPoseControlTarget?: Viewer3DPoseControlTarget;
|
|
247
|
+
durationMs?: number;
|
|
248
|
+
}
|
|
249
|
+
export interface Viewer3DJointHoverDetail {
|
|
250
|
+
jointIds: string[];
|
|
251
|
+
activeJointIds?: string[];
|
|
252
|
+
phase?: 'hover' | 'select' | 'drag' | 'clear';
|
|
253
|
+
}
|
|
254
|
+
export interface Viewer3DLivePoseTargetDetail {
|
|
255
|
+
phase: 'start' | 'change' | 'end';
|
|
256
|
+
targets: Array<{
|
|
257
|
+
jointId: string;
|
|
258
|
+
positionRad: number;
|
|
259
|
+
}>;
|
|
260
|
+
}
|
|
261
|
+
interface Viewer3DDestroyOptions {
|
|
262
|
+
reason?: 'dispose' | 'hmr';
|
|
263
|
+
}
|
|
264
|
+
type ViewerArcballControls = ArcballControls & {
|
|
265
|
+
readonly target: Vector3;
|
|
266
|
+
};
|
|
267
|
+
type ViewerCameraControls = OrbitControls | ViewerArcballControls;
|
|
268
|
+
export declare class Viewer3D<Artifact = unknown, Snapshot = unknown> implements ViewerExperimentPort<Artifact, Snapshot> {
|
|
269
|
+
readonly container: HTMLDivElement;
|
|
270
|
+
readonly renderer: WebGLRenderer;
|
|
271
|
+
readonly scene: Scene;
|
|
272
|
+
readonly perspectiveCamera: PerspectiveCamera;
|
|
273
|
+
readonly orthographicCamera: OrthographicCamera;
|
|
274
|
+
camera: PerspectiveCamera | OrthographicCamera;
|
|
275
|
+
controls: ViewerCameraControls;
|
|
276
|
+
readonly resizeObserver: ResizeObserver;
|
|
277
|
+
private composer;
|
|
278
|
+
private renderPass;
|
|
279
|
+
private horizontalTiltShiftPass;
|
|
280
|
+
private verticalTiltShiftPass;
|
|
281
|
+
private postProcessingAntialiasPass;
|
|
282
|
+
private robot;
|
|
283
|
+
private readonly simulatedRobotPresentationRoot;
|
|
284
|
+
private readonly observedRobotPresentationRoot;
|
|
285
|
+
private observedRobotGhost;
|
|
286
|
+
private observedRobotGhostMirrorsSimulatedRobot;
|
|
287
|
+
private comparisonProfileId;
|
|
288
|
+
private comparisonViewerSample;
|
|
289
|
+
private readonly comparisonColliderGroup;
|
|
290
|
+
private readonly comparisonColliders;
|
|
291
|
+
private comparisonCenterOfMassMarker;
|
|
292
|
+
private poseControlTarget;
|
|
293
|
+
private observedPoseLiveControlEnabled;
|
|
294
|
+
private readonly robotMaterialBaselines;
|
|
295
|
+
private readonly observedRobotGhostMaterialBaselines;
|
|
296
|
+
private readonly observedRobotGhostRenderOrderBaselines;
|
|
297
|
+
private readonly observedRobotGhostShadowMaterials;
|
|
298
|
+
private observedRobotGhostShadowOpacity;
|
|
299
|
+
private robotComparisonVisibilityTransition;
|
|
300
|
+
private cameraTransitionActive;
|
|
301
|
+
private readonly observedRobotGhostBasePosition;
|
|
302
|
+
private readonly observedRobotGhostBaseQuaternion;
|
|
303
|
+
private observedRobotTemporalSupportAnchorState;
|
|
304
|
+
private observedRobotGrounding;
|
|
305
|
+
private observedRobotSupportInclination;
|
|
306
|
+
private robotComparisonAppearance;
|
|
307
|
+
private axesHelper;
|
|
308
|
+
private gridHelper;
|
|
309
|
+
private visualGroundLayer;
|
|
310
|
+
private keyLight;
|
|
311
|
+
private trajectoryGroup;
|
|
312
|
+
private contactPointGroup;
|
|
313
|
+
private physicsDebugGroup;
|
|
314
|
+
private physicsDebugGroundMesh;
|
|
315
|
+
private physicsDebugGravityArrow;
|
|
316
|
+
private eyeRingDebugGroup;
|
|
317
|
+
private balanceDebugGroup;
|
|
318
|
+
private balanceDebugCenterOfMassQualified;
|
|
319
|
+
private balanceDebugCenterOfMassFadeStartedAt;
|
|
320
|
+
private simulatedRobotInitializationOffsetStartedAt;
|
|
321
|
+
private simulatedRobotInitializationOffsetFromY;
|
|
322
|
+
private poseHandleGroup;
|
|
323
|
+
private navigationPreviewGroup;
|
|
324
|
+
private navigationMarker;
|
|
325
|
+
private navigationPath;
|
|
326
|
+
private navigationMarkerAnimationStartedAt;
|
|
327
|
+
private navigationSimulationCursor;
|
|
328
|
+
private navigationSimulationPoints;
|
|
329
|
+
private navigationSimulationStartedAt;
|
|
330
|
+
private navigationSimulationDurationMs;
|
|
331
|
+
private navigationSimulationTargetYawRad;
|
|
332
|
+
private navigationSimulationResolve;
|
|
333
|
+
private navigationSimulationPhysicsBaseline;
|
|
334
|
+
private projectileInteractionGroup;
|
|
335
|
+
private projectileLauncherGroup;
|
|
336
|
+
private projectileSlingshotLeftElastic;
|
|
337
|
+
private projectileSlingshotRightElastic;
|
|
338
|
+
private projectileSlingshotPouch;
|
|
339
|
+
private projectileSlingshotLoadedBall;
|
|
340
|
+
private projectileSlingshotPullRatio;
|
|
341
|
+
private projectileSlingshotReleaseState;
|
|
342
|
+
private projectileTrajectoryLine;
|
|
343
|
+
private projectileTrajectoryLaunchOverlay;
|
|
344
|
+
private projectileImpactArrow;
|
|
345
|
+
private projectileParticleRenderer;
|
|
346
|
+
private projectileAimLaunch;
|
|
347
|
+
private readonly projectileAimTarget;
|
|
348
|
+
private projectileAimSpeedMetersPerSecond;
|
|
349
|
+
private projectileChargeStartedAt;
|
|
350
|
+
private projectileLastChargeRatio;
|
|
351
|
+
private projectileAimTransition;
|
|
352
|
+
private readonly projectileParticles;
|
|
353
|
+
private nextProjectileParticleId;
|
|
354
|
+
private projectilePhysicsSettlingUntil;
|
|
355
|
+
private readonly projectileRaycaster;
|
|
356
|
+
private readonly projectilePointer;
|
|
357
|
+
private projectilePointerInside;
|
|
358
|
+
private trajectoryAnimation;
|
|
359
|
+
private trajectorySignature;
|
|
360
|
+
private trajectoryAnchors;
|
|
361
|
+
private themeObserver;
|
|
362
|
+
private animationLoop;
|
|
363
|
+
private defaultPose;
|
|
364
|
+
private defaultRobotTransform;
|
|
365
|
+
private physicsResetPose;
|
|
366
|
+
private physicsResetRobotTransform;
|
|
367
|
+
private physicsResetBaselineCaptureFrames;
|
|
368
|
+
private physicsResetBaselineCaptureFrameCount;
|
|
369
|
+
private physicsPostureCompensationTransitionFrameActive;
|
|
370
|
+
private lastAnimatedJointTargets;
|
|
371
|
+
private nextAnimatedJointTargets;
|
|
372
|
+
private readonly transientDesiredProjectionValues;
|
|
373
|
+
private readonly transientDesiredProjectionBaseline;
|
|
374
|
+
private playbackState;
|
|
375
|
+
private playbackTransitionState;
|
|
376
|
+
private playbackCompletionTransitionState;
|
|
377
|
+
private boundaryPosePreviewTransitionState;
|
|
378
|
+
private deferredBoundaryPreviewRuntimeHistoryProjection;
|
|
379
|
+
private scrubPreviewState;
|
|
380
|
+
private lastScrubPhysicsSyncAt;
|
|
381
|
+
private playbackSyncSignature;
|
|
382
|
+
private physicsKinematicHoldFrames;
|
|
383
|
+
private physicsKinematicHoldRootPose;
|
|
384
|
+
private physicsProjectionMinimumStateRevision;
|
|
385
|
+
private statsCadenceElement;
|
|
386
|
+
private statsCadenceTextElement;
|
|
387
|
+
private statsGraphCanvas;
|
|
388
|
+
private readonly performanceMonitor;
|
|
389
|
+
private readonly temporalProjection;
|
|
390
|
+
private readonly observedRobotPresentation;
|
|
391
|
+
private readonly temporalProjectionExperiment;
|
|
392
|
+
private viewportObserver;
|
|
393
|
+
private resizeFrame;
|
|
394
|
+
private resizeSettleTimer;
|
|
395
|
+
private transientInvisibleResizePasses;
|
|
396
|
+
private currentPixelRatio;
|
|
397
|
+
private averageFrameMs;
|
|
398
|
+
private averageRafFrameMs;
|
|
399
|
+
private averageGlobalRafFrameMs;
|
|
400
|
+
private readonly configuredTargetFrameRate;
|
|
401
|
+
private observedFrameRateCeiling;
|
|
402
|
+
private lastRafAt;
|
|
403
|
+
private lastGlobalRafAt;
|
|
404
|
+
private lastCadenceReportAt;
|
|
405
|
+
private rafFramesSinceReport;
|
|
406
|
+
private globalRafFramesSinceReport;
|
|
407
|
+
private renderFramesSinceReport;
|
|
408
|
+
private playbackFramesSinceReport;
|
|
409
|
+
private scrubFramesSinceReport;
|
|
410
|
+
private lastFrameAt;
|
|
411
|
+
private lastPixelRatioTuneAt;
|
|
412
|
+
private averageLoopMs;
|
|
413
|
+
private averagePoseMs;
|
|
414
|
+
private averageControlsMs;
|
|
415
|
+
private averageRenderMs;
|
|
416
|
+
private lastRenderCalls;
|
|
417
|
+
private lastRenderTriangles;
|
|
418
|
+
private longTaskObserver;
|
|
419
|
+
private longTaskCountSinceReport;
|
|
420
|
+
private longTaskDurationSinceReport;
|
|
421
|
+
private globalRafProbeFrame;
|
|
422
|
+
private profilerTimerProbe;
|
|
423
|
+
private lastProfilerTimerProbeAt;
|
|
424
|
+
private averageProfilerTimerDelayMs;
|
|
425
|
+
private viewportVisible;
|
|
426
|
+
private rendererClientWidth;
|
|
427
|
+
private rendererClientHeight;
|
|
428
|
+
private rendererPixelRatio;
|
|
429
|
+
private orthographicViewHeight;
|
|
430
|
+
private controlsActive;
|
|
431
|
+
private controlsSettlingFrames;
|
|
432
|
+
private visualGroundReflectionInteractionActive;
|
|
433
|
+
private destroyed;
|
|
434
|
+
private readonly selectionController;
|
|
435
|
+
private lastDispatchedJointHoverSignature;
|
|
436
|
+
private poseHandleDragState;
|
|
437
|
+
private poseHandleTargetTransitionState;
|
|
438
|
+
private poseHandleDragStarted;
|
|
439
|
+
private poseHandleControlsWereEnabled;
|
|
440
|
+
private suppressPoseHandleClickUntil;
|
|
441
|
+
private poseEditBaseline;
|
|
442
|
+
private dirtyPose;
|
|
443
|
+
private readonly dirtyPoseJointIds;
|
|
444
|
+
private readonly physicsDebugMarkers;
|
|
445
|
+
private readonly physicsDebugLinks;
|
|
446
|
+
private readonly physicsDebugColliders;
|
|
447
|
+
private physicsCenterOfMassMarker;
|
|
448
|
+
private readonly temporalInvalidation;
|
|
449
|
+
private readonly temporalScheduler;
|
|
450
|
+
private readonly physicsService;
|
|
451
|
+
private cameraController;
|
|
452
|
+
private readonly poseHandleRaycaster;
|
|
453
|
+
private readonly poseHandlePointer;
|
|
454
|
+
private readonly navigationRaycaster;
|
|
455
|
+
private readonly navigationPointer;
|
|
456
|
+
private readonly navigationGroundPlane;
|
|
457
|
+
private readonly visualGroundFocusProjection;
|
|
458
|
+
private readonly poseHandleLocalAnchorOffsets;
|
|
459
|
+
private readonly options;
|
|
460
|
+
private resolvedInputBindings;
|
|
461
|
+
private readonly cameraPoseLocked;
|
|
462
|
+
private lastPhysicsStepAt;
|
|
463
|
+
private readonly physicsAuthoredJointTargets;
|
|
464
|
+
private physicsPostureCompensationTiltRadians;
|
|
465
|
+
private physicsAuxiliaryJointNames;
|
|
466
|
+
private physicsVisualRootBodyName;
|
|
467
|
+
private physicsVisualRootToRobotMatrix;
|
|
468
|
+
private physicsJointMappings;
|
|
469
|
+
private physicsVisualBodyObjectNames;
|
|
470
|
+
private physicsVisualAlignmentProfile;
|
|
471
|
+
private lastRuntimeHistorySampleAt;
|
|
472
|
+
private unsubscribeRuntimeHistory;
|
|
473
|
+
private lastRuntimeHistoryReplaySignature;
|
|
474
|
+
private runtimeHistoryReplayActive;
|
|
475
|
+
private runtimeHistoryProjectionRequiresPhysicsRebase;
|
|
476
|
+
private runtimeHistoryProjectedPhysicsRootPose;
|
|
477
|
+
private isApplyingRuntimeHistorySample;
|
|
478
|
+
private isApplyingPhysicsPose;
|
|
479
|
+
private temporalProjectionDiscontinuitySequence;
|
|
480
|
+
private lastTemporalProjectionSampleId;
|
|
481
|
+
private lastTemporalProjectionStatusSignature;
|
|
482
|
+
private projectedPhysicsBodyTransforms;
|
|
483
|
+
private projectedPhysicsCenterOfMass;
|
|
484
|
+
private get hoveredPoseHandleId();
|
|
485
|
+
private set hoveredPoseHandleId(value);
|
|
486
|
+
private get hoveredPoseHandleAxisId();
|
|
487
|
+
private set hoveredPoseHandleAxisId(value);
|
|
488
|
+
private get hoveredPoseHandleAxisIds();
|
|
489
|
+
private set hoveredPoseHandleAxisIds(value);
|
|
490
|
+
private get externalHoveredJointTargets();
|
|
491
|
+
private set externalHoveredJointTargets(value);
|
|
492
|
+
private get selectedPoseHandleId();
|
|
493
|
+
private set selectedPoseHandleId(value);
|
|
494
|
+
private get selectedPoseHandleAxisId();
|
|
495
|
+
private set selectedPoseHandleAxisId(value);
|
|
496
|
+
private get selectedPoseHandleAxisIds();
|
|
497
|
+
private set selectedPoseHandleAxisIds(value);
|
|
498
|
+
private get needsRender();
|
|
499
|
+
private set needsRender(value);
|
|
500
|
+
private get wasContinuousLoopActive();
|
|
501
|
+
private set wasContinuousLoopActive(value);
|
|
502
|
+
constructor(container: HTMLDivElement, options: Viewer3DOptions<Artifact, Snapshot>);
|
|
503
|
+
setStatsVisible(showStats: boolean): void;
|
|
504
|
+
setGlobalRafProbeVisible(showGlobalRafProbe: boolean): void;
|
|
505
|
+
setGridVisible(showGrid: boolean): void;
|
|
506
|
+
setVisualGroundVisible(showVisualGround: boolean): void;
|
|
507
|
+
configureVisualGround(config: ViewerVisualGroundOptions, palette?: ViewerVisualGroundPaletteOptions): void;
|
|
508
|
+
setVisualGroundComponentVisible(componentId: ViewerVisualGroundComponentId, visible: boolean): void;
|
|
509
|
+
setAxesVisible(showAxes: boolean): void;
|
|
510
|
+
setOrientationGizmoVisible(_showOrientationGizmo: boolean): void;
|
|
511
|
+
setRobotVisible(showRobot: boolean): void;
|
|
512
|
+
/**
|
|
513
|
+
* Installs a second visual incarnation reserved for observed robot telemetry.
|
|
514
|
+
* It never participates in physics, authoring, selection, or command routing.
|
|
515
|
+
*/
|
|
516
|
+
setObservedRobotGhost(robot: Object3D | null): void;
|
|
517
|
+
/**
|
|
518
|
+
* Makes the secondary incarnation a read-only profile comparison projection.
|
|
519
|
+
* Canonical joint values are copied from the simulated robot at render time;
|
|
520
|
+
* the secondary robot never becomes an authoring or physics authority.
|
|
521
|
+
*/
|
|
522
|
+
setObservedRobotGhostMirrorsSimulatedRobot(enabled: boolean): void;
|
|
523
|
+
setObservedRobotGhostIndependentSimulation(profileId: string | null): void;
|
|
524
|
+
private projectComparisonSimulation;
|
|
525
|
+
setObservedRobotGhostVisible(visible: boolean, options?: Viewer3DObservedRobotVisibilityOptions): void;
|
|
526
|
+
projectObservedRobotGhostJointValues(values: Readonly<Record<string, number | null>>): boolean;
|
|
527
|
+
/**
|
|
528
|
+
* Admits one immutable observed pose into the visual-only smoothing buffer.
|
|
529
|
+
* The upstream frame remains the sole telemetry authority; reconstructed
|
|
530
|
+
* values are applied only to the observed ghost incarnation.
|
|
531
|
+
*/
|
|
532
|
+
ingestObservedRobotGhostJointObservation(input: {
|
|
533
|
+
frameId: string;
|
|
534
|
+
connectionId: string;
|
|
535
|
+
observedAtSeconds: number | null;
|
|
536
|
+
jointValues: Readonly<Record<string, number>>;
|
|
537
|
+
receivedAtMs?: number;
|
|
538
|
+
}): boolean;
|
|
539
|
+
resetObservedRobotGhostJointObservation(): void;
|
|
540
|
+
getObservedRobotPresentationStatus(): ObservedRobotPresentationStatus;
|
|
541
|
+
private applyObservedRobotGhostJointValues;
|
|
542
|
+
private updateObservedRobotGhostPresentation;
|
|
543
|
+
getObservedRobotGroundingProjection(): ObservedRobotGroundingProjection;
|
|
544
|
+
getObservedRobotSupportInclinationProjection(): ObservedRobotSupportInclinationProjection;
|
|
545
|
+
/**
|
|
546
|
+
* Changes only the comparison projection. Simulation state and observed
|
|
547
|
+
* telemetry remain untouched and continue to be owned by their sources.
|
|
548
|
+
*/
|
|
549
|
+
setRobotComparisonAppearance(appearance: Viewer3DRobotComparisonAppearance): void;
|
|
550
|
+
setPhysicsEngine(physicsEngine: PhysicsEngineType, physicsEnabled?: boolean): Promise<void>;
|
|
551
|
+
setPhysicsEnabled(physicsEnabled: boolean): void;
|
|
552
|
+
setPhysicsObservationEnabled(enabled: boolean): void;
|
|
553
|
+
setPhysicsMotorsCoupled(physicsMotorsCoupled: boolean): void;
|
|
554
|
+
setTransitionToAnimationStart(enabled: boolean): void;
|
|
555
|
+
loadPhysicsRobot(source: RobotPhysicsSource): Promise<void>;
|
|
556
|
+
resetPhysicsSimulation(): Promise<void>;
|
|
557
|
+
getPhysicsSnapshot(): PhysicsServiceSnapshot;
|
|
558
|
+
readNavigationPhysicsObservation(): Viewer3DNavigationPhysicsObservation | null;
|
|
559
|
+
getPerformanceSummary(): Viewer3DPerformanceSummary;
|
|
560
|
+
setTemporalProjectionMode(mode: ViewerTemporalProjectionMode): void;
|
|
561
|
+
getTemporalProjectionStatus(): ViewerTemporalProjectionStatus;
|
|
562
|
+
getIncarnationHealth(): ViewerIncarnationHealth;
|
|
563
|
+
startTemporalProjectionExperiment(input: ViewerExperimentStart): Snapshot;
|
|
564
|
+
markTemporalProjectionExperimentPhase(phaseId: string, observedAtMs: number, provenance?: ViewerMetadata): boolean;
|
|
565
|
+
stopTemporalProjectionExperiment(endedAtMs: number): Artifact;
|
|
566
|
+
getTemporalProjectionExperimentSnapshot(): Snapshot;
|
|
567
|
+
releasePhysicsJointTargets(targets?: Record<string, JointTarget>): void;
|
|
568
|
+
clearPhysicsJointTargets(): void;
|
|
569
|
+
setPhysicsRuntimeConfig(config: PhysicsRuntimeConfig): void;
|
|
570
|
+
setPhysicsResetBaselineCaptureFrames(frameCount: number): void;
|
|
571
|
+
inspectRuntimeHistorySnapshot(snapshot: ViewerHistoryObservation<ViewerHistorySample<ViewerMetadata>>): void;
|
|
572
|
+
projectRuntimeHistorySample(sample: ViewerHistorySample<ViewerMetadata>, options?: {
|
|
573
|
+
applyCamera?: boolean;
|
|
574
|
+
deferDuringBoundaryPosePreview?: boolean;
|
|
575
|
+
}): void;
|
|
576
|
+
captureRuntimeHistoryProjectionSample(options?: {
|
|
577
|
+
timeSeconds?: number;
|
|
578
|
+
}): void;
|
|
579
|
+
/**
|
|
580
|
+
* Advances the isolated producer by an explicit simulation slice. This is a
|
|
581
|
+
* bake operation: no RAF, audio clock or visible playback transport can own
|
|
582
|
+
* the temporal cursor while it runs.
|
|
583
|
+
*/
|
|
584
|
+
bakeRuntimeHistoryProjectionFrame(input: {
|
|
585
|
+
currentTimeSeconds: number;
|
|
586
|
+
deltaSeconds: number;
|
|
587
|
+
recordTimeSeconds: number;
|
|
588
|
+
record?: boolean;
|
|
589
|
+
kinematicBoundary?: 'entry' | 'exit' | null;
|
|
590
|
+
}): Promise<boolean>;
|
|
591
|
+
resumeRuntimeHistoryLiveProjection(): void;
|
|
592
|
+
resumeRuntimeHistoryBufferedProjection(): void;
|
|
593
|
+
setTrajectoriesVisible(showTrajectories: boolean): void;
|
|
594
|
+
setHandTrajectoriesOnly(showHandTrajectoriesOnly: boolean): void;
|
|
595
|
+
setInteractionMode(interactionMode: Viewer3DInteractionMode): void;
|
|
596
|
+
setNavigationPreview(input: {
|
|
597
|
+
destination: RobotViewerVector;
|
|
598
|
+
points: readonly RobotViewerVector[];
|
|
599
|
+
moveTo: Viewer3DNavigationMoveToParameters;
|
|
600
|
+
} | null): void;
|
|
601
|
+
playNavigationSimulation(points: readonly RobotViewerVector[], leftAngularDistanceRad?: number): Promise<'completed' | 'cancelled' | 'unavailable'>;
|
|
602
|
+
cancelNavigationSimulation(): void;
|
|
603
|
+
setExternalHoveredJointTargets(jointTargets: readonly string[]): void;
|
|
604
|
+
setPoseHandlesVisible(showPoseHandles: boolean): void;
|
|
605
|
+
setPoseHandleOcclusionEnabled(enabled: boolean): void;
|
|
606
|
+
/**
|
|
607
|
+
* Chooses the incarnation used to place pose controls. The observed target
|
|
608
|
+
* remains telemetry-only; selecting it never mutates its joint values.
|
|
609
|
+
*/
|
|
610
|
+
setPoseControlTarget(target: Viewer3DPoseControlTarget, options?: {
|
|
611
|
+
transitionCameraFocus?: boolean;
|
|
612
|
+
durationMs?: number;
|
|
613
|
+
comparisonVisibilityAppearing?: boolean;
|
|
614
|
+
}): void;
|
|
615
|
+
/** Emits desired targets from observed-anchored handles without mutating telemetry. */
|
|
616
|
+
setObservedPoseLiveControlEnabled(enabled: boolean): void;
|
|
617
|
+
setContactPointsVisible(showContactPoints: boolean): void;
|
|
618
|
+
setPhysicsDebugVisible(showPhysicsDebug: boolean): void;
|
|
619
|
+
setPhysicsCollidersVisible(showPhysicsColliders: boolean): void;
|
|
620
|
+
setPhysicsCenterOfMassVisible(showPhysicsCenterOfMass: boolean): void;
|
|
621
|
+
setPhysicsGravityVisible(showPhysicsGravity: boolean): void;
|
|
622
|
+
setEyeRingDebugVisible(showEyeRingDebug: boolean): void;
|
|
623
|
+
setEyeRingMireVisible(showEyeRingMire: boolean): void;
|
|
624
|
+
setEyeRingCalibration(eyeRingCalibration: Partial<Viewer3DEyeRingCalibration>): void;
|
|
625
|
+
setBalanceDebugVisible(showBalanceDebug: boolean): void;
|
|
626
|
+
setTrajectoryPreview(animation: RobotMotionAnimation | null): void;
|
|
627
|
+
setRobot(robot: Object3D): void;
|
|
628
|
+
getRobot(): Object3D | null;
|
|
629
|
+
private syncRobotPoseAfterRobotLoad;
|
|
630
|
+
markProfilerSignal(label: string): void;
|
|
631
|
+
applyPoseEdit(): void;
|
|
632
|
+
revertPoseEdit(): void;
|
|
633
|
+
applyAnimationFrame(animation: RobotMotionAnimation | null, time: number, mutedTrackTargets?: readonly string[]): void;
|
|
634
|
+
/**
|
|
635
|
+
* Projects temporary desired joint values directly on the visible robot.
|
|
636
|
+
* This is a read-only authoring projection: it does not mutate the authored
|
|
637
|
+
* animation, advance physics, or promote the displayed frame into runtime.
|
|
638
|
+
*/
|
|
639
|
+
projectDesiredJointValues(values: Readonly<Record<string, number | null>>): boolean;
|
|
640
|
+
/**
|
|
641
|
+
* Projects an owner-scoped desired pose without authoring, physics or runtime effects.
|
|
642
|
+
* The baseline is retained so removing one projection restores the visual pose that
|
|
643
|
+
* existed before that owner became active.
|
|
644
|
+
*/
|
|
645
|
+
setTransientDesiredJointProjection(ownerId: string, values: Readonly<Record<string, number | null>>): boolean;
|
|
646
|
+
clearTransientDesiredJointProjection(ownerId: string): boolean;
|
|
647
|
+
syncScrubPreview(animation: RobotMotionAnimation | null, time: number, mutedTrackTargets?: readonly string[], active?: boolean): void;
|
|
648
|
+
syncAnimationPlayback(animation: RobotMotionAnimation | null, playback: Viewer3DPlaybackState): void;
|
|
649
|
+
previewBoundaryPose(pose: Readonly<Record<string, number>> | 'robot-default', durationMs?: number): boolean;
|
|
650
|
+
private getPlaybackSyncSignature;
|
|
651
|
+
private createPoseSignature;
|
|
652
|
+
private createMutedTrackTargetSet;
|
|
653
|
+
private createMutedTrackTargetSignature;
|
|
654
|
+
private resolveMutedTrackTargetSet;
|
|
655
|
+
private applyRobotPose;
|
|
656
|
+
private updateScrubPreviewPose;
|
|
657
|
+
private hasPendingScrubPreviewWork;
|
|
658
|
+
private resolveAnimationTransitionStartTime;
|
|
659
|
+
private ensureAnimationStartTransition;
|
|
660
|
+
private createAnimationStartTransition;
|
|
661
|
+
private resolveImmediateAnimationStartTransitionEndTime;
|
|
662
|
+
private updatePlaybackStartTransition;
|
|
663
|
+
private resolveTrackFirstKeyAtOrAfter;
|
|
664
|
+
private updatePlaybackEndTransition;
|
|
665
|
+
private resolveTrackLastKeyAtOrBefore;
|
|
666
|
+
private updatePlaybackPose;
|
|
667
|
+
private startPlaybackCompletionTransition;
|
|
668
|
+
private updatePlaybackCompletionTransition;
|
|
669
|
+
private updateBoundaryPosePreviewTransition;
|
|
670
|
+
frameRobotToView(): void;
|
|
671
|
+
destroy(options?: Viewer3DDestroyOptions): void;
|
|
672
|
+
private setupScene;
|
|
673
|
+
private ensureAxesHelper;
|
|
674
|
+
private ensureGridHelper;
|
|
675
|
+
private ensureVisualGroundLayer;
|
|
676
|
+
private updateVisualGroundEnvironment;
|
|
677
|
+
private updateVisualGroundShadowCasters;
|
|
678
|
+
private setupStats;
|
|
679
|
+
private teardownStats;
|
|
680
|
+
private observeThemeChanges;
|
|
681
|
+
private readThemeColor;
|
|
682
|
+
private applyTheme;
|
|
683
|
+
private resolveVisualGroundPalette;
|
|
684
|
+
private resolveVisualGroundSkyColor;
|
|
685
|
+
private resolveGridPalette;
|
|
686
|
+
private applyGridVertexColors;
|
|
687
|
+
private resolveThemeColor;
|
|
688
|
+
private toThreeColorValue;
|
|
689
|
+
private getColorLuminance;
|
|
690
|
+
private createRenderer;
|
|
691
|
+
private getViewportAspect;
|
|
692
|
+
private resolveOrthographicViewHeightFromPerspectiveDistance;
|
|
693
|
+
private updateCameraProjectionForViewport;
|
|
694
|
+
private createCameraControls;
|
|
695
|
+
private setControlsCamera;
|
|
696
|
+
private setCameraControlsMotionEnabled;
|
|
697
|
+
private disposeCameraControls;
|
|
698
|
+
private applyCameraPose;
|
|
699
|
+
private applyCameraPlanes;
|
|
700
|
+
private syncPostProcessingCamera;
|
|
701
|
+
private getMaximumPixelRatio;
|
|
702
|
+
private getMinimumPixelRatio;
|
|
703
|
+
private readViewportAuthority;
|
|
704
|
+
private applyRendererSize;
|
|
705
|
+
private setupPostProcessing;
|
|
706
|
+
private updateVisualGroundFocusTiltPasses;
|
|
707
|
+
private updateVisualGroundFocusTiltStrength;
|
|
708
|
+
private updateVisualGroundFocusTarget;
|
|
709
|
+
private tunePixelRatio;
|
|
710
|
+
private observeViewportVisibility;
|
|
711
|
+
private handleResize;
|
|
712
|
+
private scheduleResize;
|
|
713
|
+
private scheduleSettledResize;
|
|
714
|
+
private cancelResizeSettleTimer;
|
|
715
|
+
private cancelResizeWork;
|
|
716
|
+
private flushResize;
|
|
717
|
+
private loop;
|
|
718
|
+
private render;
|
|
719
|
+
private renderResizeFrame;
|
|
720
|
+
private hasContinuousRenderWork;
|
|
721
|
+
private isPhysicsActive;
|
|
722
|
+
private applyPhysicsPostureCompensation;
|
|
723
|
+
private resetPhysicsPostureCompensation;
|
|
724
|
+
private stepPhysics;
|
|
725
|
+
private capturePhysicsVisualJointAngles;
|
|
726
|
+
private syncRobotPoseFromProjectedJointAngles;
|
|
727
|
+
private resetTemporalProjection;
|
|
728
|
+
private resolveTemporalProjectionDiscontinuityToken;
|
|
729
|
+
private publishTemporalProjectionStatus;
|
|
730
|
+
private recordRuntimeHistorySample;
|
|
731
|
+
private serializeRuntimeHistoryTransform;
|
|
732
|
+
private subscribeRuntimeHistory;
|
|
733
|
+
private applyRuntimeHistorySample;
|
|
734
|
+
private captureRuntimeHistoryVisualJointStates;
|
|
735
|
+
private applyRuntimeHistoryVisualJointStates;
|
|
736
|
+
private reconcileRecordedMimicJoints;
|
|
737
|
+
private applyRuntimeHistoryJointStates;
|
|
738
|
+
private resolveRuntimeHistoryPhysicsRootPose;
|
|
739
|
+
private deserializeRuntimeHistoryTransform;
|
|
740
|
+
private requestRender;
|
|
741
|
+
private scheduleLoop;
|
|
742
|
+
private updateRafCadence;
|
|
743
|
+
private startGlobalRafProbe;
|
|
744
|
+
private runGlobalRafProbe;
|
|
745
|
+
private resetStatsCadence;
|
|
746
|
+
private getEffectiveTargetFrameRate;
|
|
747
|
+
private getTargetFrameRate;
|
|
748
|
+
private updateStatsCadence;
|
|
749
|
+
private recordProfilerSample;
|
|
750
|
+
private getProfilerDocumentState;
|
|
751
|
+
private formatPlaybackProfilerState;
|
|
752
|
+
private formatProfilerSignals;
|
|
753
|
+
private markFrameSignal;
|
|
754
|
+
private consumeToolPerformanceProbeSummary;
|
|
755
|
+
private startProfilerTimerProbe;
|
|
756
|
+
private stopProfilerTimerProbe;
|
|
757
|
+
private drawStatsHistoryGraph;
|
|
758
|
+
private drawStatsGraphGrid;
|
|
759
|
+
private drawStatsGraphSeries;
|
|
760
|
+
private getProfilerFpsCeiling;
|
|
761
|
+
private getProfilerMsCeiling;
|
|
762
|
+
private observeMainThreadLongTasks;
|
|
763
|
+
private updateProfilerAverage;
|
|
764
|
+
private getProfilerHotPhase;
|
|
765
|
+
private formatCompactCount;
|
|
766
|
+
private disposeObject3D;
|
|
767
|
+
private configureObservedRobotGhostMaterials;
|
|
768
|
+
private applyObservedRobotGhostRenderOrder;
|
|
769
|
+
private applyObservedRobotGhostShadowOpacity;
|
|
770
|
+
private clearObservedRobotGhost;
|
|
771
|
+
private applyRobotComparisonAppearance;
|
|
772
|
+
private applyObservedRobotGhostGrounding;
|
|
773
|
+
private resolveObservedRobotSupportContacts;
|
|
774
|
+
private resolveObservedRobotSupportContactPoints;
|
|
775
|
+
private selectObservedRobotSupportPoints;
|
|
776
|
+
private resolveObservedRobotSupport;
|
|
777
|
+
private resolveFiniteBoundsMinimumY;
|
|
778
|
+
private resolveObservedRobotBodyEnvelopeBounds;
|
|
779
|
+
private resolveObservedRobotCollisionBounds;
|
|
780
|
+
private resolveObservedRobotRenderedBounds;
|
|
781
|
+
private resolveObservedRobotMeshBounds;
|
|
782
|
+
private resolveRobotFootSupportBounds;
|
|
783
|
+
private groundSimulatedRobotOnSupportFloor;
|
|
784
|
+
private resolveRobotSupportBounds;
|
|
785
|
+
private resolveRobotSupportGeometryBounds;
|
|
786
|
+
private captureMaterialBaselines;
|
|
787
|
+
private captureMaterialBaseline;
|
|
788
|
+
private readComparisonOpacityFactor;
|
|
789
|
+
private applyComparisonOpacityFactor;
|
|
790
|
+
private startRobotComparisonVisibilityTransition;
|
|
791
|
+
private updateRobotComparisonVisibilityTransition;
|
|
792
|
+
private cancelRobotComparisonVisibilityTransition;
|
|
793
|
+
private applyMaterialAppearance;
|
|
794
|
+
private disposeMaterial;
|
|
795
|
+
private resolveRobotObject;
|
|
796
|
+
private resolveObjectFromRobot;
|
|
797
|
+
private getPoseControlRobot;
|
|
798
|
+
private resolvePoseControlObject;
|
|
799
|
+
private resolveRobotCameraFocusFrame;
|
|
800
|
+
/**
|
|
801
|
+
* Camera presets are authored in the normalized simulated-robot frame. Map
|
|
802
|
+
* their world-space offset into the selected incarnation without applying
|
|
803
|
+
* the model normalization twice. This keeps the existing visual directions
|
|
804
|
+
* for SIM while allowing REAL yaw/orientation to drive the same preset.
|
|
805
|
+
*/
|
|
806
|
+
private resolvePoseControlCameraOffset;
|
|
807
|
+
private getPoseControlJoints;
|
|
808
|
+
private getRobotJoints;
|
|
809
|
+
private syncObservedRobotGhostFromSimulatedRobot;
|
|
810
|
+
private setJointValue;
|
|
811
|
+
private applyAuthoredJointValue;
|
|
812
|
+
/**
|
|
813
|
+
* Applies a transient desired pose to the visual incarnation only.
|
|
814
|
+
*
|
|
815
|
+
* Timeline authoring is a reader/manipulator of the authored projection, not
|
|
816
|
+
* a physics command. Routing this value through setJointValue() or
|
|
817
|
+
* applyAuthoredJointValue() would update the coupled physics target and defer
|
|
818
|
+
* the visible result until the simulator publishes another observation.
|
|
819
|
+
*/
|
|
820
|
+
private applyDesiredProjectionJointValue;
|
|
821
|
+
private syncPhysicsJointTarget;
|
|
822
|
+
private syncPhysicsJointTargetsFromRobotPose;
|
|
823
|
+
private createPhysicsJointTargetsFromRobotPose;
|
|
824
|
+
private createPhysicsJointTargetsFromAuthoredTargets;
|
|
825
|
+
private syncPhysicsKinematicPoseFromRobotPose;
|
|
826
|
+
private syncPhysicsKinematicPoseFromAuthoredTargets;
|
|
827
|
+
/**
|
|
828
|
+
* Materializes an unbuffered timeline pose as a grounded initial condition.
|
|
829
|
+
*
|
|
830
|
+
* Buffered temporal samples already own their recorded root/physics state
|
|
831
|
+
* and must never pass through this path. For live authored playback, the
|
|
832
|
+
* visual support and the physics support are aligned atomically so the first
|
|
833
|
+
* simulation step cannot inherit a stale, airborne root transform.
|
|
834
|
+
*/
|
|
835
|
+
private alignUnbufferedPlaybackPoseToSupportFloor;
|
|
836
|
+
private syncPhysicsKinematicPoseTargets;
|
|
837
|
+
private rememberPhysicsAuthoredJointTargets;
|
|
838
|
+
private schedulePhysicsResetBaselineCapture;
|
|
839
|
+
private updatePhysicsResetBaselineCapture;
|
|
840
|
+
private capturePhysicsResetBaseline;
|
|
841
|
+
private canCapturePhysicsResetBaseline;
|
|
842
|
+
private shouldSyncPhysicsKinematicPose;
|
|
843
|
+
private syncRobotPoseFromPhysicsJointStates;
|
|
844
|
+
private syncRobotRootFromPhysicsBody;
|
|
845
|
+
private beginSimulatedRobotInitializationPresentation;
|
|
846
|
+
private updateSimulatedRobotInitializationPresentation;
|
|
847
|
+
private resolvePhysicsStateRevision;
|
|
848
|
+
private acceptFreshPhysicsRootProjection;
|
|
849
|
+
private resolvePhysicsVisualRootToRobotMatrix;
|
|
850
|
+
private getPhysicsRootCalibrationScore;
|
|
851
|
+
private createPhysicsBodyViewerWorldMatrix;
|
|
852
|
+
private createPhysicsCoordinateFrameMatrix;
|
|
853
|
+
private createPhysicsCoordinateFrameQuaternion;
|
|
854
|
+
private resolvePhysicsSceneYawRadians;
|
|
855
|
+
private shouldSyncPhysicsJointTargets;
|
|
856
|
+
private resolvePhysicsJointMapping;
|
|
857
|
+
private getDirectPhysicsJointMappings;
|
|
858
|
+
private readJointValue;
|
|
859
|
+
private resolveJointValueRatio;
|
|
860
|
+
private captureJointPose;
|
|
861
|
+
private captureJointPoseForTargets;
|
|
862
|
+
private resetPoseEditState;
|
|
863
|
+
private ensurePoseEditBaseline;
|
|
864
|
+
private markPoseEditDirty;
|
|
865
|
+
private dispatchPoseEditChange;
|
|
866
|
+
private dispatchJointHoverChange;
|
|
867
|
+
private restoreLastAnimatedPose;
|
|
868
|
+
private restoreInactiveAnimatedJoints;
|
|
869
|
+
private updateViewerDebugLayers;
|
|
870
|
+
private shouldEnableCameraControls;
|
|
871
|
+
private shouldShowInteractionHandles;
|
|
872
|
+
private ensureNavigationPreviewGroup;
|
|
873
|
+
private resolveNavigationPreviewPresentationFrame;
|
|
874
|
+
private applyNavigationPreviewPresentationTransform;
|
|
875
|
+
private clearNavigationPreviewObjects;
|
|
876
|
+
private addNavigationGizmoSegment;
|
|
877
|
+
private addNavigationOrientationGizmo;
|
|
878
|
+
private addNavigationGizmoLabel;
|
|
879
|
+
private handleNavigationDoubleClick;
|
|
880
|
+
private updateNavigationMarkerEasing;
|
|
881
|
+
private updateNavigationSimulation;
|
|
882
|
+
private captureNavigationSimulationPhysicsBaseline;
|
|
883
|
+
private projectNavigationSimulationToPhysicsRoot;
|
|
884
|
+
private ensurePoseHandleGroup;
|
|
885
|
+
private startPoseHandleTargetTransition;
|
|
886
|
+
private cancelPoseHandleTargetTransition;
|
|
887
|
+
private updatePoseHandleTargetTransition;
|
|
888
|
+
private applyPoseHandleTargetTransitionOpacity;
|
|
889
|
+
private updatePoseHandleVisibility;
|
|
890
|
+
private clearPoseHandles;
|
|
891
|
+
private updatePoseHandles;
|
|
892
|
+
private refreshPoseHandleProjection;
|
|
893
|
+
private resolvePoseInteractionHandles;
|
|
894
|
+
private resolveJointInteractionHandles;
|
|
895
|
+
private resolvePoseHandleLocalAnchorOffset;
|
|
896
|
+
private createPoseHandleMarker;
|
|
897
|
+
private createPoseHandleValueSignature;
|
|
898
|
+
private resolvePoseHandleAxisLayouts;
|
|
899
|
+
private resolvePoseHandleCenterRadius;
|
|
900
|
+
private createPoseHandleTexture;
|
|
901
|
+
private updatePoseHandleAppearance;
|
|
902
|
+
private updatePoseHandleScreenScale;
|
|
903
|
+
private isPoseHandleAnatomicallyOccluded;
|
|
904
|
+
private resolvePoseHandleVisibleBodyFamilies;
|
|
905
|
+
private resolvePoseHandleBodyFamilyFromObject;
|
|
906
|
+
private resolvePoseHandleBodyFamily;
|
|
907
|
+
private resolvePoseHandleSubjectScreenSpanPixels;
|
|
908
|
+
private resolveWorldUnitsPerScreenPixel;
|
|
909
|
+
private resolvePoseHandleScreenMetrics;
|
|
910
|
+
private resolvePoseHandleFromPointer;
|
|
911
|
+
private resolvePoseHandleAxisSelectionFromPointer;
|
|
912
|
+
private resolvePoseHandleAxisFromPointer;
|
|
913
|
+
private handlePoseHandlePointerMove;
|
|
914
|
+
private handlePoseHandlePointerDown;
|
|
915
|
+
private clearPoseHandleFocus;
|
|
916
|
+
private handlePoseHandlePointerUp;
|
|
917
|
+
private handlePoseHandlePointerLeave;
|
|
918
|
+
private handlePoseHandleClick;
|
|
919
|
+
private createPoseHandleDragState;
|
|
920
|
+
private resolveHandleJointAxes;
|
|
921
|
+
private createPoseHandleDragPlane;
|
|
922
|
+
private resolvePointerWorldPointOnPlane;
|
|
923
|
+
private dragPoseHandle;
|
|
924
|
+
private dragJointHandle;
|
|
925
|
+
private resolveActiveJointDragAxes;
|
|
926
|
+
private dragPosePreviewHandle;
|
|
927
|
+
private finishPoseHandleDrag;
|
|
928
|
+
private dispatchLivePoseTarget;
|
|
929
|
+
private ensureProjectileInteractionGroup;
|
|
930
|
+
private refreshProjectileAim;
|
|
931
|
+
private updateProjectileAimPresentation;
|
|
932
|
+
private syncProjectileSlingshotSegment;
|
|
933
|
+
private orientProjectileSlingshotPerpendicularToTangent;
|
|
934
|
+
private syncProjectileSlingshotPresentation;
|
|
935
|
+
private resolveProjectileSlingshotPouchPosition;
|
|
936
|
+
private beginProjectileSlingshotRelease;
|
|
937
|
+
private updateProjectileSlingshotRelease;
|
|
938
|
+
private updateProjectileCameraProjection;
|
|
939
|
+
private resolveProjectileIdleTarget;
|
|
940
|
+
private beginProjectileIdleTransition;
|
|
941
|
+
private updateProjectileAimTransition;
|
|
942
|
+
private createProjectileLaunchSolution;
|
|
943
|
+
private resolveProjectileChargeRatio;
|
|
944
|
+
private updateProjectileCharge;
|
|
945
|
+
private resolveProjectileLauncherOrigin;
|
|
946
|
+
private resolveDefaultProjectileTarget;
|
|
947
|
+
private resolveProjectileTargetFromPointer;
|
|
948
|
+
private resolveProjectilePhysicsBodyName;
|
|
949
|
+
private handleProjectilePointerMove;
|
|
950
|
+
private handleProjectilePointerEnter;
|
|
951
|
+
private handleProjectilePointerLeave;
|
|
952
|
+
private handleProjectileWindowBlur;
|
|
953
|
+
setInputBindingOverrides(overrides: readonly InteractionInputBindingOverride[]): void;
|
|
954
|
+
dispatchInteractionInput(signal: InteractionInputSignal): boolean;
|
|
955
|
+
private handleInteractionKeyDown;
|
|
956
|
+
private handleInteractionKeyUp;
|
|
957
|
+
private executeInteractionAction;
|
|
958
|
+
private launchProjectile;
|
|
959
|
+
private setProjectileParticlePhase;
|
|
960
|
+
private updateProjectileInteraction;
|
|
961
|
+
private resolveProjectileVisualScale;
|
|
962
|
+
private resolveProjectileRobotCollision;
|
|
963
|
+
private ensureProjectilePhysicsVisualAlignment;
|
|
964
|
+
private projectProjectilePhysicsObservation;
|
|
965
|
+
private resolveProjectilePhysicsColliderHit;
|
|
966
|
+
private projectViewerImpulseToPhysics;
|
|
967
|
+
private projectViewerPointToPhysics;
|
|
968
|
+
private isProjectilePhysicsReady;
|
|
969
|
+
private reportProjectileInteraction;
|
|
970
|
+
private cancelProjectileInteraction;
|
|
971
|
+
private clearProjectileInteraction;
|
|
972
|
+
private ensureContactPointGroup;
|
|
973
|
+
private updateContactPointVisibility;
|
|
974
|
+
private clearContactPoints;
|
|
975
|
+
private updateContactPoints;
|
|
976
|
+
private resolveContactPoints;
|
|
977
|
+
private createContactPointMarker;
|
|
978
|
+
private ensurePhysicsDebugGroup;
|
|
979
|
+
/** Physics diagnostics are authored in the SIM authority frame. */
|
|
980
|
+
private applyPhysicsDebugPresentationTransform;
|
|
981
|
+
private updatePhysicsDebugVisibility;
|
|
982
|
+
private shouldShowAnyPhysicsDebugLayer;
|
|
983
|
+
private clearPhysicsDebug;
|
|
984
|
+
private syncPhysicsDebugTransforms;
|
|
985
|
+
private syncPhysicsDebugEnvironment;
|
|
986
|
+
private ensurePhysicsDebugGroundMesh;
|
|
987
|
+
private ensurePhysicsDebugGravityArrow;
|
|
988
|
+
private resolvePhysicsDebugMarkerPosition;
|
|
989
|
+
private resolvePhysicsDebugMarkerQuaternion;
|
|
990
|
+
private resolvePhysicsDebugBodyPose;
|
|
991
|
+
private resolvePhysicsDebugMarkerPose;
|
|
992
|
+
private resolvePhysicsDebugBodyCenterOfMass;
|
|
993
|
+
private shouldDisplayPhysicsDebugBody;
|
|
994
|
+
private shouldDisplayPhysicsDebugLink;
|
|
995
|
+
private syncPhysicsDebugMarkerStyle;
|
|
996
|
+
private resolvePhysicsDebugMarkerScale;
|
|
997
|
+
private resolvePhysicsDebugMarkerRadius;
|
|
998
|
+
private resolvePhysicsDebugBodyMass;
|
|
999
|
+
private resolvePhysicsDebugMarkerColor;
|
|
1000
|
+
private syncPhysicsDebugColliders;
|
|
1001
|
+
private ensurePhysicsDebugColliderGroup;
|
|
1002
|
+
private createPhysicsDebugColliderObject;
|
|
1003
|
+
private createPhysicsDebugCapsuleCollider;
|
|
1004
|
+
private createPhysicsDebugColliderMaterial;
|
|
1005
|
+
private applyPhysicsDebugColliderLocalTransform;
|
|
1006
|
+
private resolvePhysicsDebugColliderColor;
|
|
1007
|
+
private resolvePhysicsDebugColliderProxies;
|
|
1008
|
+
private resolvePhysicsDebugVisualJointPosition;
|
|
1009
|
+
private hasPhysicsDebugVisualAnchor;
|
|
1010
|
+
private resolvePhysicsDebugVisualObject;
|
|
1011
|
+
private syncPhysicsDebugCoordinateFrame;
|
|
1012
|
+
private resolvePhysicsDebugParentBodyName;
|
|
1013
|
+
private syncPhysicsCenterOfMassMarker;
|
|
1014
|
+
private ensurePhysicsCenterOfMassMarker;
|
|
1015
|
+
private ensurePhysicsDebugMarker;
|
|
1016
|
+
private ensurePhysicsDebugLink;
|
|
1017
|
+
private createPhysicsDebugAxis;
|
|
1018
|
+
private ensureEyeRingDebugGroup;
|
|
1019
|
+
private updateEyeRingDebugVisibility;
|
|
1020
|
+
private clearEyeRingDebug;
|
|
1021
|
+
private updateEyeRingDebug;
|
|
1022
|
+
private resolveEyeRingCalibration;
|
|
1023
|
+
private resolveLedRingCalibrationZones;
|
|
1024
|
+
private resolveFiniteCalibrationNumber;
|
|
1025
|
+
private resolveLedLayout;
|
|
1026
|
+
private resolveLedRingZoneCalibration;
|
|
1027
|
+
private resolveEyeRingDebugDimensions;
|
|
1028
|
+
private resolveEyeRingPose;
|
|
1029
|
+
private resolvePoseControlEyeRingPose;
|
|
1030
|
+
private resolveLedRingPoses;
|
|
1031
|
+
private resolveHeadLedRingPoses;
|
|
1032
|
+
private resolveTorsoLedRingPoses;
|
|
1033
|
+
private resolveHandLedRingPoses;
|
|
1034
|
+
private resolveFootLedRingPoses;
|
|
1035
|
+
private resolveConfiguredLedRingPoses;
|
|
1036
|
+
private createLedRingOrientationFromNormal;
|
|
1037
|
+
private createLedLayoutGuide;
|
|
1038
|
+
private createEyeRingCircle;
|
|
1039
|
+
private createEyeRingLedMarker;
|
|
1040
|
+
private createEyeRingMireLines;
|
|
1041
|
+
private createEyeRingLine;
|
|
1042
|
+
private ensureBalanceDebugGroup;
|
|
1043
|
+
/** Physics coordinates are SIM-local; observed support points are world-space. */
|
|
1044
|
+
private applyBalanceDebugPresentationOffset;
|
|
1045
|
+
private updateBalanceDebugVisibility;
|
|
1046
|
+
private clearBalanceDebug;
|
|
1047
|
+
private updateBalanceDebug;
|
|
1048
|
+
/**
|
|
1049
|
+
* REAL currently exposes articulated joint telemetry but no admitted COM.
|
|
1050
|
+
* Project its semantic foot contacts without copying the SIM-only COM and
|
|
1051
|
+
* balance-risk result onto an incarnation that did not produce them.
|
|
1052
|
+
*/
|
|
1053
|
+
private updateObservedBalanceDebug;
|
|
1054
|
+
private updateBalanceDebugCenterOfMassFade;
|
|
1055
|
+
private resolveBalanceDebugSupportPoints;
|
|
1056
|
+
private createBalanceDebugBoundsSupportPoints;
|
|
1057
|
+
private resolveBalanceDebugObservedContacts;
|
|
1058
|
+
private resolveBalanceDebugPhysicsSupportPoints;
|
|
1059
|
+
private resolveBalanceDebugColliderSamplePoints;
|
|
1060
|
+
private createBalanceDebugColliderLocalMatrix;
|
|
1061
|
+
private resolveBalanceDebugContactPoints;
|
|
1062
|
+
private createBalanceDebugFootprintPoints;
|
|
1063
|
+
private resolveBalanceDebugCenterOfMass;
|
|
1064
|
+
private resolvePhysicsVectorViewerPosition;
|
|
1065
|
+
private resolveBalanceDebugJointPosition;
|
|
1066
|
+
private resolveBalanceDebugSupportPolygon;
|
|
1067
|
+
private createBalanceDebugSupportOutline;
|
|
1068
|
+
private createBalanceDebugSupportFill;
|
|
1069
|
+
private evaluateBalanceDebugRisk;
|
|
1070
|
+
private isBalanceDebugPointInsidePolygon;
|
|
1071
|
+
private getBalanceDebugDistanceToPolygonEdge;
|
|
1072
|
+
private getBalanceDebugDistanceToSegment;
|
|
1073
|
+
private createBalanceDebugLine;
|
|
1074
|
+
private createBalanceDebugMarker;
|
|
1075
|
+
private createBalanceDebugCenterProjectionMarker;
|
|
1076
|
+
private ensureTrajectoryGroup;
|
|
1077
|
+
private updateTrajectoryGroupVisibility;
|
|
1078
|
+
private clearTrajectoryPreview;
|
|
1079
|
+
private rebuildTrajectoryPreview;
|
|
1080
|
+
private getTrajectorySignature;
|
|
1081
|
+
private getTrajectoryPreviewTargets;
|
|
1082
|
+
private shouldRenderTrajectoryForTarget;
|
|
1083
|
+
private resolveJointColor;
|
|
1084
|
+
private createTrajectoryObject;
|
|
1085
|
+
private getTrajectoryTerminalDirection;
|
|
1086
|
+
private updateTrajectoryCurrentMarkers;
|
|
1087
|
+
private getTrajectoryPoint;
|
|
1088
|
+
private getHandTipTrajectoryPoint;
|
|
1089
|
+
private getPoseControlHandTipPoint;
|
|
1090
|
+
private getRobotHandTipPoint;
|
|
1091
|
+
private getTrajectoryAnchor;
|
|
1092
|
+
private getHandTipTrajectoryAnchor;
|
|
1093
|
+
private getLocalMeshBounds;
|
|
1094
|
+
private restoreJointPose;
|
|
1095
|
+
private captureRobotTransform;
|
|
1096
|
+
private restoreRobotTransform;
|
|
1097
|
+
private restorePhysicsResetRobotState;
|
|
1098
|
+
private restoreDefaultRobotState;
|
|
1099
|
+
setCameraPose(position: RobotViewerVector, target?: RobotViewerVector, up?: RobotViewerVector): void;
|
|
1100
|
+
orbitCameraBy(deltaYawRadians: number, deltaPitchRadians: number): void;
|
|
1101
|
+
getCameraPose(): {
|
|
1102
|
+
position: RobotViewerVector;
|
|
1103
|
+
target: RobotViewerVector;
|
|
1104
|
+
up: RobotViewerVector;
|
|
1105
|
+
quaternion: RobotViewerQuaternion;
|
|
1106
|
+
projection: Viewer3DCameraProjection;
|
|
1107
|
+
};
|
|
1108
|
+
resolveEyeRingCameraPose(viewId?: Viewer3DSymmetricCameraView): {
|
|
1109
|
+
position: RobotViewerVector;
|
|
1110
|
+
target: RobotViewerVector;
|
|
1111
|
+
projection: Viewer3DCameraProjection;
|
|
1112
|
+
} | null;
|
|
1113
|
+
resolveRobotObjectCameraPose(anchorNames: readonly string[] | readonly (readonly string[])[], offset: RobotViewerVector, options?: {
|
|
1114
|
+
targetOffset?: RobotViewerVector;
|
|
1115
|
+
projection?: Viewer3DCameraProjection;
|
|
1116
|
+
}): {
|
|
1117
|
+
position: RobotViewerVector;
|
|
1118
|
+
target: RobotViewerVector;
|
|
1119
|
+
projection: Viewer3DCameraProjection;
|
|
1120
|
+
} | null;
|
|
1121
|
+
private serializeCameraVector;
|
|
1122
|
+
private serializeCameraQuaternion;
|
|
1123
|
+
private serializeRuntimeHistoryVector;
|
|
1124
|
+
transitionCameraPose(position: RobotViewerVector, target?: RobotViewerVector, durationMs?: number, up?: RobotViewerVector): void;
|
|
1125
|
+
resetCameraView(durationMs?: number): void;
|
|
1126
|
+
private cancelCameraTransition;
|
|
1127
|
+
private applyCameraPoseImmediate;
|
|
1128
|
+
setCameraProjection(cameraProjection: Viewer3DCameraProjection): void;
|
|
1129
|
+
setCameraControlMode(cameraControlMode: Viewer3DCameraControlMode): void;
|
|
1130
|
+
private replaceCameraControls;
|
|
1131
|
+
private handleControlsStart;
|
|
1132
|
+
private handleControlsChange;
|
|
1133
|
+
private handleControlsEnd;
|
|
1134
|
+
private interpolateTrack;
|
|
1135
|
+
}
|
|
1136
|
+
export {};
|
|
1137
|
+
//# sourceMappingURL=Viewer3DRenderer.d.ts.map
|