UNPKG

@inweb/viewer-core

Version:

3D CAD and BIM data Viewer core

228 lines (227 loc) 6.51 kB
export type CameraMode = "perspective" | "orthographic"; export interface RGB { red: number; green: number; blue: number; } /** * Viewer options interface. */ export interface IOptions { /** * Show the world coordinate system axes in the bottom-left corner of the viewer. * * @defaultValue true */ showWCS?: boolean; /** * Enable camera animation. * * @defaultValue true */ cameraAnimation?: boolean; /** * Enable anti-aliasing. Can be one of: * * - `false` - Disable anti-aliasing. * - `true` - Enable anti-aliasing using MSAA. * - `fxaa` - Enable Fast Approximate anti-aliasing (FXAA). * - `smaa` - Enable Subpixel Morphological anti-aliasing (SMAA). * - `msaa` - Enable Multisample anti-aliasing (MSAA), if the underlying WebGL context supports it. * * @defaultValue true */ antialiasing?: boolean | string; /** * Show ground shadows below the model. * * @defaultValue false */ groundShadow?: boolean; /** * Enable ambient shadows. * * @defaultValue false */ shadows?: boolean; /** * Camera speed on X axis. * * @defaultValue 4 */ cameraAxisXSpeed?: number; /** * Camera speed on Y axis. * * @defaultValue 1 */ cameraAxisYSpeed?: number; /** * Enable ambient occlusion. * * @defaultValue false */ ambientOcclusion?: boolean; /** * Enable streaming of drawings from the server. * * If streaming is disabled, the file/assembly will be loaded in one go. The viewer will only update * once the loading is complete, which may take a while. * * If streaming is enabled, {@link enablePartialMode | partial streaming} mode may be enabled as well. * * @defaultValue true */ enableStreamingMode?: boolean; /** * Enable partial streaming mode to be able open large drawing. * * In partial streaming mode, the viewer keeps only visible objects in memory and loads other objects * when the camera changes. * * Only used if {@link enableStreamingMode | streaming} is enabled. If partial streaming is enabled, * then {@link sceneGraph | scene graph} will be disabled. * * @defaultValue false */ enablePartialMode?: boolean; /** * The size of the memory buffer for graphics data, in bytes. * * @defaultValue 3294967296 */ memoryLimit?: number; /** * Cutting planes fill color. * * @defaultValue { red: 0xff, green: 0x98, blue: 0x00 } */ cuttingPlaneFillColor?: RGB; /** * Edges highlight color. */ edgesColor?: { r: number; g: number; b: number; }; /** * Faces highlight color. */ facesColor?: { r: number; g: number; b: number; }; /** * Show highlighted edges. */ edgesVisibility?: boolean; /** * Show highlighted edges over drawing. */ edgesOverlap?: boolean; /** * Show highlighted faces over drawing. */ facesOverlap?: boolean; /** * Highlighted faces transparency value, from 0 to 255. */ facesTransparancy?: number; /** * Enable custom highlight settings. */ enableCustomHighlight?: boolean; /** * Enable scene graph. * * Scene graph increases perfomance improvement, but consumes memory. If scene graph is enabled, then * {@link enablePartialMode | partial streaming} mode will be disabled. */ sceneGraph: boolean; /** * Show the edges of the model: * * - `false` - No model edges are displayed. Usefull for less memory consumption. * - `true` - Display isolines. */ edgeModel: boolean; /** * Reverse the mouse wheel direction for zooming: * * - `false` - Moving the wheel up zooms in, moving down zooms out. * - `true` - Moving the wheel up zooms out, moving down zooms in. */ reverseZoomWheel: boolean; /** * Enable mouse wheel zooming. */ enableZoomWheel: boolean; /** * Enable touch gestures. * * This option will be ignored when {@link enableZoomWheel | mouse wheel zooming} is disabled, since * gestures contains touch zoom. */ enableGestures: boolean; /** * Deprecated since `25.8`. */ geometryType?: string; /** * Unit of measurement for the ruler tool (distance measurements). * * When set to `Default`, the ruler uses the file's native units. Otherwise, distances are * automatically converted to the specified unit. * * Available values: * * - `Default` - Use file's native units (recommended) * - `Millimeters`, `mm` - Metric: 0.001 m * - `Centimeters`, `cm` - Metric: 0.01 m * - `Meters`, `m` - Metric: 1 m (base unit) * - `Kilometers`, `km` - Metric: 1000 m * - `Micrometers`, `µm` - Metric: 0.000001 m * - `Inches`, `in` - Imperial: 0.0254 m * - `Feet`, `ft` - Imperial: 0.3048 m * - `Yards`, `yd` - Imperial: 0.9144 m * - `Miles`, `mi` - Imperial: 1609.344 m * - `Mils`, `mil` - Imperial: 0.0000254 m * - `MicroInches`, `µin` - Imperial: 0.0000000254 m * * @defaultValue "Default" */ rulerUnit?: string; /** * Number of decimal places to display in ruler measurements. * * Controls the precision of distance values shown by the ruler tool. Higher values provide more * precision but may clutter the display with unnecessary digits. * * Available values: * * - `Default` - Use file's native units precision, if supported, otherwise use 2 digits. * - `Auto` - Automatically choose precision based on distance value. * - `0`...`10` - Use specified number of decimal places (range 0-10, inclusive). * * @defaultValue 2 */ rulerPrecision?: any; /** * Camera projection mode: * * - `perspective` - Perspective camera with field of view. * - `orthographic` - Orthographic camera with parallel projection. * * @defaultValue "perspective" */ cameraMode?: CameraMode; /** * Resets options to default values. * * @param fields - Name of fields to be reset. */ resetToDefaults?: (fields?: string[]) => void; } export declare function defaultOptions(): IOptions;