Skip to content

Commit 602a815

Browse files
committed
create type for applied camera
1 parent cc8f5e1 commit 602a815

3 files changed

Lines changed: 17 additions & 4 deletions

File tree

‎src/ansys/visor/visor-client/src/renderer/IRenderer.ts‎

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,17 @@ export type VisorCameraState = Readonly<{
2525
parallelScale: number;
2626
}>;
2727

28+
/** The seven camera fields that can be applied. No derived fields. */
29+
export type AppliedCameraState = Readonly<{
30+
position: readonly number[];
31+
focalPoint: readonly number[];
32+
viewUp: readonly number[];
33+
clippingRange: readonly number[];
34+
parallelProjection: boolean;
35+
viewAngle: number;
36+
parallelScale: number;
37+
}>;
38+
2839
/** Descriptor consumed by setColorVariableAsync. */
2940
export type ColorVariableDescriptor = Readonly<{
3041
spectrumId: string;
@@ -97,11 +108,11 @@ export interface IRenderer {
97108
setCameraViewAngleAsync(angle: number): Promise<void>;
98109
setCameraParallelScaleAsync(scale: number): Promise<void>;
99110
/**
100-
* Apply an entire camera snapshot in one RPC. WasmRenderer implements it
111+
* Apply the seven applied camera fields in one RPC. WasmRenderer implements it
101112
* by delegating to the seven per-field setters above. See §11 for the
102113
* Story 3.2 rationale (server-tracked camera + sync-back).
103114
*/
104-
setCameraStateAsync(state: VisorCameraState): Promise<void>;
115+
setCameraStateAsync(state: AppliedCameraState): Promise<void>;
105116
/** Frame the scene on the given bounds; used by scene-graph rebuilds. */
106117
resetCameraAsync(bounds?: readonly number[]): Promise<void>;
107118

‎src/ansys/visor/visor-client/src/renderer/NullRenderer.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {
2+
AppliedCameraState,
23
ColorVariableDescriptor,
34
GeometryPickMode,
45
IRenderer,
@@ -79,7 +80,7 @@ export class NullRenderer implements IRenderer {
7980
// no-op
8081
}
8182

82-
async setCameraStateAsync(_state: VisorCameraState): Promise<void> {
83+
async setCameraStateAsync(_state: AppliedCameraState): Promise<void> {
8384
// no-op
8485
}
8586

‎src/ansys/visor/visor-client/src/renderer/WasmRenderer.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {
2+
AppliedCameraState,
23
ColorVariableDescriptor,
34
GeometryPickMode,
45
IRenderer,
@@ -177,7 +178,7 @@ export class WasmRenderer implements IRenderer {
177178
await this.#vtkScene.camera.setParallelScale(scale);
178179
}
179180

180-
async setCameraStateAsync(state: VisorCameraState): Promise<void> {
181+
async setCameraStateAsync(state: AppliedCameraState): Promise<void> {
181182
// Sequential, not Promise.all, to preserve the observable ordering of
182183
// camera events any FPS/camera-changed listener sees (§11).
183184
await this.setCameraPositionAsync(state.position);

0 commit comments

Comments
 (0)