import { ImageFormat } from './constants'; /** * Scene/Model */ export interface Scene { bounds: BoundingBox; models: Model[]; } export interface Model extends ModelParams { id: string | number; bounds: BoundingBox; metadata: object; } export interface UploadParams extends Pick, Partial { chunksId: string | number; size: number; } export interface BinaryParams extends Partial { file: File; type?: string; chunkSize?: number; } export declare type PathParams = Partial; export interface BinaryError { index: number; supportedTypes: string[]; } export interface ChunkParams { id: string | number; } export interface ModelUpdateParams extends Partial { id: string | number; } export declare type GetModelPropsParams = Pick; export declare type GetModelPropsSchemaParams = GetModelPropsParams; export interface ModelPropsParams { id: string | number; properties: { [key: string]: any; }; } export interface ModelParams { name: string; path: string; transformation: Transformation; boundingBox: boolean; visible: boolean; loaderName: string; loaderProperties: object; } export interface Transformation { translation: number[]; rotation: number[]; rotationCenter: number[]; scale: number[]; } export interface SetTransferFunctionParams extends TransferFunctionParams { transferFunction: Partial; } export interface UpstreamSetTransferFunctionParams extends TransferFunctionParams { transferFunction: TransferFunction; } export interface TransferFunctionParams { id: string | number; } export interface TransferFunction { opacityCurve: Vector2d[]; colormap: ColorMap; range: Vector2d; } export interface ColorMap { name: string; colors: Vector3d[]; } export interface Loader { name: string; extensions: string[]; } /** * Clip planes */ export interface ClipPlane { id: number; plane: Plane; } export declare type Plane = Vector4d; export interface ApplicationParameters { jpegCompression: number; frameExportFolder: string; synchronousMode: boolean; imageStreamFps: number; viewport: number[]; } export interface CancelParams { id: string | number; } export declare type SetAnimationParameters = Partial>; export interface AnimationParameters { current: number; delta: number; dt: number; frameCount: number; playing: boolean; unit: string; } export declare type InspectParams = Vector2d; export interface InspectCoords { hit: boolean; position: number[]; } export declare type RendererParams = Partial>; export interface Renderer extends AbstractObject { samplesPerPixel: number; subsampling: number; maxAccumFrames: number; backgroundColor: number[]; headLight: boolean; varianceThreshold: number; } export declare type CameraParams = Partial>; export interface Camera extends AbstractObject { position: number[]; orientation: number[]; target: number[]; } export interface AbstractObject { current: string; types: string[]; } export interface BoundingBox { max: number[]; min: number[]; } export interface SnapshotParams { name: string; size: number[]; samplesPerPixel: number; format: ImageFormat; quality: number; animationParameters?: Partial; renderer?: RendererParams; camera?: Partial; } export interface Snapshot { /** * Base 64 encoded image */ data: string; } export interface Statistics { fps: number; sceneSizeInBytes: number; } export interface SchemaParams { endpoint: string; } export interface EnvironmentMap { filename: string; } export interface Version { major: number; minor: number; patch: number; abi: number; revision: string; } export interface Vector2d extends Array { 0: number; 1: number; length: 2; } export interface Vector3d extends Array { 0: number; 1: number; 2: number; length: 3; } export interface Vector4d extends Array { 0: number; 1: number; 2: number; 3: number; length: 4; }