@inweb/viewer-core
Version:
3D CAD and BIM data Viewer core
228 lines (227 loc) • 6.51 kB
TypeScript
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;