import { GrayImage3 } from './../image-slice-show/share/image'; import { View } from './../cross-line/cross-line.component'; import { Color, Vector2, Vector3 } from 'three'; import { BoundingBox2 } from './share/boundingbox2'; export interface PlaneTextureData { r: Uint8Array; g: Uint8Array; b: Uint8Array; shape: Vector2; } export declare class Plane2Model { readonly box: BoundingBox2; readonly z: number; readonly textureData?: PlaneTextureData; readonly rotation: Vector3; readonly transparent: boolean; readonly opacity: number; readonly wireFrame: boolean; readonly color?: Color; type: 'plane2'; constructor(box: BoundingBox2, z?: number, textureData?: PlaneTextureData, rotation?: Vector3, transparent?: boolean, opacity?: number, wireFrame?: boolean, color?: Color); } export declare class InfoPlanceModel { readonly box: BoundingBox2; readonly z: number; readonly texture?: HTMLCanvasElement; readonly transparent: boolean; readonly opacity: number; readonly wireFrame: boolean; type: 'infoplane'; constructor(box: BoundingBox2, z?: number, texture?: HTMLCanvasElement, transparent?: boolean, opacity?: number, wireFrame?: boolean); } export declare class CubeModel { readonly size: Vector3; readonly center: Vector3; readonly rotate: Vector3; type: 'cube'; constructor(size: Vector3, center: Vector3, rotate: Vector3); } export declare class SphereModel { readonly center: Vector3; readonly radius: number; readonly widthSegments: number; readonly heightSegments: number; readonly phiStart: number; readonly phiLength: number; readonly thetaStart: number; readonly thetaLength: number; type: 'sphere'; constructor(center: Vector3, radius: number, widthSegments?: number, heightSegments?: number, phiStart?: number, phiLength?: number, thetaStart?: number, thetaLength?: number); } export declare class CircleModel { readonly center: Vector3; readonly radius: number; readonly segments: number; readonly thetaStart: number; readonly thetaLength: number; type: 'circle'; constructor(center: Vector3, radius: number, segments?: number, thetaStart?: number, thetaLength?: number); } export declare class RingModel { readonly center: Vector3; readonly innerRadius: number; readonly outerRadius: number; readonly thetaSegments: number; readonly phiSegments: number; readonly thetaStart: number; readonly thetaLength: number; type: 'ring'; constructor(center: Vector3, innerRadius?: number, outerRadius?: number, thetaSegments?: number, phiSegments?: number, thetaStart?: number, thetaLength?: number); } export declare class UserDefinedModel { readonly shapes: Vector2[] | undefined; type: 'user-defined'; constructor(shapes: Vector2[] | undefined); } export declare class ProfileModel { readonly points: number[] | undefined; type: 'profile1d'; constructor(points: number[] | undefined); } export declare class LineModel { readonly start: Vector3; readonly end: Vector3; readonly style: 'Solid' | 'Dashed'; readonly color: Color; type: 'line'; constructor(start: Vector3, end: Vector3, style?: 'Solid' | 'Dashed', color?: Color); } export declare class OBJModel { readonly center: Vector3; type: 'obj'; constructor(center: Vector3); } export declare class VRMLModel { readonly center: Vector3; type: 'vrml'; constructor(center: Vector3); } export declare class CrossLineModel { readonly position: Vector3; readonly view: View; readonly lineWidth: number; type: 'crossline'; constructor(position: Vector3, view: View, lineWidth?: number); } export declare class FovModel { readonly box: BoundingBox2; type: 'fov'; constructor(box: BoundingBox2); } export declare class VolumeModel { readonly color: string; readonly opacity: string; readonly algorithm: number; readonly alphaCorrection: number; readonly volume: GrayImage3; type: 'volume'; constructor(color?: string, // default,spectrum,hot_and_cold,gold,red,green,blue,walking_dead,random,muscle_bone opacity?: string, // linear,lowpass,highpass,bandpass,flat,random,linear_full algorithm?: number, // 0,1 alphaCorrection?: number, // 0-1 volume?: GrayImage3); } export declare type EntityModel = OBJModel | Plane2Model | CubeModel | LineModel | SphereModel | CircleModel | UserDefinedModel | RingModel | ProfileModel | VRMLModel | CrossLineModel | InfoPlanceModel | FovModel | VolumeModel; export declare type ModelType = EntityModel['type']; export declare type ModelOf = Extract;