ViewerAPI¶
Interface ViewerAPI
animateViewToViewmatrix(
matrix:
| Float32Array<ArrayBufferLike>
| [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
],
transitionTime?: number,
): Promise<void>;
cancelDrawingMode(): void;
changeGlobalHeatmapConfig(config: HeatmapConfig): void;
changeHeatmap(id: number, properties: HeatmapProperties): void;
changeMagnifier(
properties: ViewerMagnifierProperties,
): ViewerMagnifierProperties;
changePointCloud(
pointCloudId: number,
properties: PointCloudProperties,
): void;
changePolyline(polylineId: number, properties: PolylineProperties): void;
changeSetting<T extends string>(
viewerSetting: T,
value: ViewerSettingType<T>,
): boolean;
changeXREdgeCompare(
properties: XREdgeCompareProperties,
): XREdgeCompareProperties;
createCollectionFromGizmo(
includeOverlappingNodes: boolean,
): Promise<number>;
createGeometry(userGeoData: UserGeometryData): number;
createHeatmap(properties: HeatmapProperties): number;
createPointCloud(
points: CloudPoint[],
properties?: PointCloudProperties,
): number;
createPolyline(
positions: number[],
properties?: PolylineProperties,
): number;
dehighlightEntity(highlightHandle?: number): void;
enableNavigation(flag?: boolean): void;
enableSnapping(useSnapping: boolean): void;
enterColorCompareMode(): void;
enterDrawingMode(): void;
fitView(
view?: Float32Array<ArrayBufferLike> | [number, number, number],
up?: Float32Array<ArrayBufferLike> | [number, number, number],
transitionTime?: number,
): Promise<void>;
fitViewToAuxNode(nodeID: number, transitionTime?: number): Promise<void>;
fitViewToDirection(
direction?: ViewDirection,
transitionTime?: number,
): Promise<void>;
fitViewToNode(
nodeID: number,
view?: Float32Array<ArrayBufferLike> | [number, number, number],
up?: Float32Array<ArrayBufferLike> | [number, number, number],
transitionTime?: number,
): Promise<void>;
fitViewToRectangle(
x: number,
y: number,
width: number,
height: number,
transitionTime?: number,
): Promise<void>;
fitViewToVolume(
volume: BoxVolume,
view?: Float32Array<ArrayBufferLike> | [number, number, number],
up?: Float32Array<ArrayBufferLike> | [number, number, number],
transitionTime?: number,
): Promise<void>;
fitViewToVolumeFromDirection(
volume: BoxVolume,
direction?: ViewDirection,
transitionTime?: number,
): Promise<void>;
flipAuxToView(): void;
forceRenderMode(renderMode: RenderMode): void;
getActiveItem(): ActiveItemInfo;
getAvailableGizmoTransformationModes(): number;
getBoxGizmoProperties(): BoxGizmoProperties;
getCameraPosition(): | Float32Array<ArrayBufferLike>
| [number, number, number];
getCameraProjectionType(): CameraProjectionType;
getCenterOfRotation(): | Float32Array<ArrayBufferLike>
| [number, number, number];
getContext(): ContextAPI;
getCurrentGizmoType(): GizmoType;
getGizmoSize(): Float32Array<ArrayBufferLike> | [number, number, number];
getGizmoTransform(): | Float32Array<ArrayBufferLike>
| [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
];
getGizmoTransformationMode(): GizmoTransformationMode;
getGlobalHeatmapConfig(): HeatmapConfig;
getHeatmapColorSchemeLegend(): number[];
getHeatmapData(id: number): HeatmapProperties;
getHeatmaps(): number[];
getID(): string;
getInteractionLevel(): ViewerInteractionLevel;
getMagnifierProperties(): ViewerMagnifierProperties;
getPointCloudData(pointCloudId: number): PointCloudProperties;
getPointClouds(): number[];
getProjectionMatrix(): | Float32Array<ArrayBufferLike>
| [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
];
getState(): ViewerState;
getToCoordinateSystemMatrix(): | Float32Array<ArrayBufferLike>
| [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
];
getViewMatrix(): [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
];
getXREdgeCompareProperties(): XREdgeCompareProperties;
hideAllLineMarkers(): void;
hideAllMarkers(): void;
hideAllPointMarkers(): void;
hideGizmo(): void;
hidePointMarker(index?: number): void;
highlightArc(
pickedPt1: Float32Array<ArrayBufferLike> | [number, number, number],
pickedPt3: Float32Array<ArrayBufferLike> | [number, number, number],
center: Float32Array<ArrayBufferLike> | [number, number, number],
axis: Float32Array<ArrayBufferLike> | [number, number, number],
angle: number,
measurementID: number,
): number;
highlightBBox(
center: Float32Array<ArrayBufferLike> | [number, number, number],
size: Float32Array<ArrayBufferLike> | [number, number, number],
): number;
highlightCircularArc(
circularArcDescriptor: TopologyCircularArcDescriptor,
): number;
highlightEntity(
handle: TopologyHandle,
highlightParameters?: ViewerHighlightParameters,
): Promise<number>;
highlightLine(values: number[], scale: number, markerIndex: number): void;
highlightPoint(
position: Float32Array<ArrayBufferLike> | [number, number, number],
markerIndex: number,
): void;
isSnappingEnabled(): boolean;
leaveColorCompareMode(): void;
leaveDrawingMode(
options?: ViewerDrawingProcessOptions,
): Promise<ViewerDrawingResult>;
readSetting<T extends string>(viewerSetting: T): ViewerSettingType<T>;
removeGeometry(id: number): void;
removeHeatmap(id: number): void;
removePointCloud(pointCloudId: number): void;
removePolyline(polylineId: number): void;
requestNodeIdsByRect(
x: number,
y: number,
width: number,
height: number,
includeOverlappingNodes?: boolean,
): Promise<number[]>;
requestScreenshot(
width?: number,
height?: number,
mimeType?: "image/png" | "image/jpeg",
resetCanvasSize?: boolean,
): Promise<string>;
requestTopologyHandlesByRect(
x: number,
y: number,
width: number,
height: number,
): Promise<TopologyHandle[]>;
requestXRAutoDetectScores(nodeIDs: number[]): Promise<XRAutoDetectScore[]>;
reset(): void;
resetSetting(viewerSetting: ViewerSettingStrings): void;
restoreInitView(): void;
setActiveItem(id: number, type: ActiveItemType): void;
setCenterOfRotation(
center?: Float32Array<ArrayBufferLike> | [number, number, number],
): Promise<void>;
setCORGizmoVisible(flag: boolean): void;
setGizmoTransformationMode(mode: GizmoTransformationMode): void;
setInteractionLevel(level: ViewerInteractionLevel): void;
setProjectionMatrix(
matrix:
| Float32Array<ArrayBufferLike>
| [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
],
): void;
setView(
position: Float32Array<ArrayBufferLike> | [number, number, number],
target: Float32Array<ArrayBufferLike> | [number, number, number],
upVector?: Float32Array<ArrayBufferLike> | [number, number, number],
transitionTime?: number,
): Promise<void>;
setViewMatrix(
matrix:
| Float32Array<ArrayBufferLike>
| [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
],
transitionTime?: number,
): Promise<void>;
showAxisMarker(
values:
| Float32Array<ArrayBufferLike>
| [number, number, number, number, number, number],
scale?: number,
index?: number,
): void;
showBoxGizmo(properties?: BoxGizmoProperties): void;
showClippingBoxGizmo(clipRoomID: number): void;
showPointMarker(
position: Float32Array<ArrayBufferLike> | [number, number, number],
index?: number,
): void;
showSelectionBoxGizmo(
size?: Float32Array<ArrayBufferLike> | [number, number, number],
transform?:
| Float32Array<ArrayBufferLike>
| [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
],
): void;
showSelectionBoxGizmoFromVolume(volume?: BoxVolume): void;
showSelectionTransformationGizmo(nodeIds: number[]): void;
takeScreenshot(
callback: (dataUrl: string) => void,
mimeType?: string,
width?: number,
height?: number,
): void;
updateGeometry(id: number, data: UserGeometryData): void;
}
Hierarchy (View Summary)
Methods
animate
- animateViewToViewmatrix(
 matrix:
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ],
 transitionTime?: number,
 ): Promise<void>
- Animates to the specified view matrix. The optional - transitionTimeparameter allows for controlling animation speed.- Parameters- matrix: 
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]The new view matrix for the camera 
- OptionaltransitionTime: number- Defines the transition time for the camera movement in milliseconds. Default: 600. 
 - Returns Promise<void>- A promise that resolves when the camera movement is finished. 
- matrix: 
cancel
change
- changeGlobalHeatmapConfig(config: HeatmapConfig): void
- Experimental- Experimental. May be changed in the future without notice. - Configures global heatmap settings and triggers a ViewerHeatmapConfigChangedEvent. - Parameters- config: HeatmapConfigSettings to configure. 
 - Returns void- Example: Configuring the heatmap:- viewer.changeGlobalHeatmapConfig({ // set a color scheme colorScheme: webvis.HeatmapColorScheme.BLACKBODY, // calculated density is normalized, upper end of color scheme is mapped to maxValue maxValue: 100, // configure heatmap to be had 5 separated bands of colors (smooth gradient by default) colorBands: true, colorResolution: 5, // kernel defines the falloff from a point's center to its edge // this defaults to a gaussian curve, but other options are available kernel: webvis.HeatmapKernal.LINEAR, // scale all points' size uniformly for more/less overlap sizeFactor: 2, // scale all point's strength uniformly // this has the same effect as adjusting maxValue by the inverse factor strengthFactor: 1.5, });
- config: HeatmapConfig
change
- changeHeatmap(id: number, properties: HeatmapProperties): void
- Experimental- Experimental. May be changed in the future without notice. - Changes one or more properties of the heatmap with the specified ID and triggers a ViewerHeatmapCreatedEvent. - Parameters- id: numberID of dataset to update. Obtained using createHeatmap. 
- properties: HeatmapPropertiesThe properties of the Heatmap you want change. 
 - Returns void- Example: Adding points to an existing heatmap dataset:- // [continued createHeatmapData example] // add points heatmapPositions.push( 1, 3, 0, // fourth point 3, 0, 1, // fifth point ) // update data by passing id and data to override viewer.changeHeatmap(heatmapDataId, { position: heatmapPositions });
- id: number
change
- changeMagnifier(
 properties: ViewerMagnifierProperties,
 ): ViewerMagnifierProperties
- Changes the properties of the viewers magnifier. - Parameters- properties: ViewerMagnifierPropertiesObject of Properties which should be changed. 
 - Returns ViewerMagnifierProperties- An Object with the changed Properties. 
- properties: ViewerMagnifierProperties
change
- changePointCloud(pointCloudId: number, properties: PointCloudProperties): void
- Experimental- Experimental. May be changed in the future without notice. - Changes one or more properties of the point cloud with the specified ID and triggers a ViewerPointCloudChangedEvent. - Parameters- pointCloudId: numberThe ID of the point cloud to update. Obtained using createPointCloud. 
- properties: PointCloudPropertiesThe properties of the point cloud you want change. 
 - Returns void
- pointCloudId: number
change
- changePolyline(polylineId: number, properties: PolylineProperties): void
- Changes the properties of the Polyline with the specified Id. - Parameters- polylineId: numberThe Id of the Polyline which should be removed. 
- properties: PolylinePropertiesThe properties which should be changed. 
 - Returns void
- polylineId: number
change
- changeSetting<T extends string>(
 viewerSetting: T,
 value: ViewerSettingType<T>,
 ): boolean
- Changes the viewer setting with the given name to the given value. - Triggers a ViewerSettingChangedEvent if the new value is different from the old value. - Type Parameters- Parameters- Returns boolean- True if the setting was changed successfully, false otherwise. - See- ViewerSettingStrings for a list of available viewer settings. 
changeXREdge
- changeXREdgeCompare(
 properties: XREdgeCompareProperties,
 ): XREdgeCompareProperties
- Experimental- Sets the specified properties. - Parameters- properties: XREdgeComparePropertiesAn object with all or a subset of properties to update. 
 - Returns XREdgeCompareProperties- An object with the changed properties. 
- properties: XREdgeCompareProperties
create
create
create
- createHeatmap(properties: HeatmapProperties): number
- Experimental- Experimental. May be changed in the future without notice. - Creates a new heatmap and triggers a ViewerHeatmapCreatedEvent. - Parameters- properties: HeatmapPropertiesInitial properties of the created Heatmap. 
 - Returns number- ID of dataset or -1 if an error occurred. - Example: Adding heatmap data:- // positions are stored in a flat array const heatmapPositions = [ 0, 1, 0, // first point 0, 1, 1, // second point 0, 0, 2, // third point ]; const heatmapDataId = viewer.createHeatmap({ position: heatmapPositions });- Example: Adding heatmap data with varying size/strength:- By specifying per-point size and/or strength, you can tweak ther influence on the heatmap. This example defines two points: - Small radius and high strength. Represents a precisely located but highly important issue.
- High radius and low strength. Represents a low-priority issue affecting a larger area.
 - Note: The number of points defined by position, size and strength must match. Since position contains the coordinates, its length must be three times that of size and strength. - const position = [ 0, 0, 0, // first point 1, 0, 0, // second point ]; const size = [ 0.2, // first point has small radius 3, // second point has large radius ]; const strength = [ 2, // first point has a high impact 0.5, // second point has a low impact ]; const heatmapDataId = viewer.createHeatmap({ position, size, strength });
- properties: HeatmapProperties
create
- createPointCloud(
 points: CloudPoint[],
 properties?: PointCloudProperties,
 ): number
- Experimental- Experimental. May be changed in the future without notice. - Creates a new point cloud and triggers a ViewerPointCloudCreatedEvent. - Parameters- points: CloudPoint[]The list of points. 
- Optionalproperties: PointCloudProperties- Initial properties of the created point cloud. 
 - Returns number- The ID of the newly created point cloud. 
- points: CloudPoint[]
create
- createPolyline(positions: number[], properties?: PolylineProperties): number
- Creates a new Polyline with the specified positions and properties. - Parameters- positions: number[]List of 3D positions which defines the Polyline. 
- Optionalproperties: PolylineProperties- The properties of the Polyline. 
 - Returns number
- positions: number[]
dehighlight
enable
enable
enter
- enterColorCompareMode(): void
- Enters the color compare mode which renders nodes depending on their Property.COMPARISON_GROUP. - In the color compare mode, the viewer will render the pixels of nodes with the Property.COMPARISON_GROUP set to the value ComparisonGroup.A in the color specified by the ViewerSettingStrings.COLOR_COMPARISON_FIRST_COLOR setting. The pixels of nodes with the Property.COMPARISON_GROUP set to the value ComparisonGroup.B will be rendered in the color specified by the ViewerSettingStrings.COLOR_COMPARISON_SECOND_COLOR setting. However, in this mode, the depth value at each pixel is compared between the two groups. If the depth values overlap within a certain threshold, the pixel is rendered in the color specified by the ViewerSettingStrings.COLOR_COMPARISON_MATCHING_COLOR setting. - By this approach, the viewer can visualize the differences between two groups of nodes ("3-color-comparison"). - Returns void- See- InteractionMode.COLOR_COMPARISON
- leaveColorCompareMode to leave the color compare mode.
 
enter
fit
- fitView(
 view?: Float32Array<ArrayBufferLike> | [number, number, number],
 up?: Float32Array<ArrayBufferLike> | [number, number, number],
 transitionTime?: number,
 ): Promise<void>
- Positions the camera such that the whole geometry is fitting into the view. The optional - viewand- upparameters allow to define a viewing direction and roll for the resulting camera pose, while the optional- transitionTimeparameter allows for controlling animation speed.- Triggers a ViewChangedEvent. - Parameters- Optionalview: Float32Array<ArrayBufferLike> | [number, number, number]- Defines the desired viewing direction 
- Optionalup: Float32Array<ArrayBufferLike> | [number, number, number]- Defines the desired camera orientation in conjunction with the viewing direction 
- OptionaltransitionTime: number- Defines the transition time for the camera movement in milliseconds. Default: 100. 
 - Returns Promise<void>- A promise that resolves when the camera movement is finished. 
fit
- fitViewToAuxNode(nodeID: number, transitionTime?: number): Promise<void>
- Positions the camera such that the aux node with the specified - nodeIDis fitting into the view. The optional- transitionTimeparameter allows for controlling animation speed.- Triggers a ViewChangedEvent. - Parameters- nodeID: numberThe ID of the node on which the view will be fitted on 
- OptionaltransitionTime: number- Defines the transition time for the camera movement in milliseconds. Default: 100. 
 - Returns Promise<void>- A promise that resolves when the camera movement is finished. 
- nodeID: number
fit
- fitViewToDirection(
 direction?: ViewDirection,
 transitionTime?: number,
 ): Promise<void>
- Positions the camera such that it looks from a specific ViewDirection. The optional - transitionTimeparameter allows for controlling animation speed.- Triggers a ViewChangedEvent. - Parameters- Optionaldirection: ViewDirection- The direction to fit. Default: ViewDirection.CURRENT. 
- OptionaltransitionTime: number- Defines the transition time for the camera movement in milliseconds. Default: 100. 
 - Returns Promise<void>- A promise that resolves when the camera movement is finished. 
fit
- fitViewToNode(
 nodeID: number,
 view?: Float32Array<ArrayBufferLike> | [number, number, number],
 up?: Float32Array<ArrayBufferLike> | [number, number, number],
 transitionTime?: number,
 ): Promise<void>
- Positions the camera such that the bounding box of the node with the - nodeIDis fitting into the view. The optional- viewand- upparameter allow to define a viewing direction and roll for the resulting camera pose, while the optional- transitionTimeparameter allows for controlling animation speed.- Parameters- nodeID: numberThe ID of the node on which the view will be fitted on 
- Optionalview: Float32Array<ArrayBufferLike> | [number, number, number]- The direction in which the camera will look on the node 
- Optionalup: Float32Array<ArrayBufferLike> | [number, number, number]- The orientation in which the camera will look on the node 
- OptionaltransitionTime: number- Defines the transition time for the cameramovement in milliseconds. Default: 100. 
 - Returns Promise<void>- A promise that resolves when the camera movement is finished. 
- nodeID: number
fit
- fitViewToRectangle(
 x: number,
 y: number,
 width: number,
 height: number,
 transitionTime?: number,
 ): Promise<void>
- Positions the camera such that the view is focused onto the given rectangle. The optional - transitionTimeparameter allows for controlling animation speed.- Triggers a ViewChangedEvent. - Parameters- x: numberSpecifies the X-coordinate of the 2D screen space rectangle in pixels. 
- y: numberSpecifies the Y-coordinate of the 2D screen space rectangle in pixels. 
- width: numberSpecifies the width of the 2D screen space rectangle in pixels. 
- height: numberSpecifies the height of the 2D screen space rectangle in pixels. 
- OptionaltransitionTime: number- Defines the transition time for the camera movement in milliseconds. Default: 1000. 
 - Returns Promise<void>- A promise that resolves when the camera movement is finished. 
- x: number
fit
- fitViewToVolume(
 volume: BoxVolume,
 view?: Float32Array<ArrayBufferLike> | [number, number, number],
 up?: Float32Array<ArrayBufferLike> | [number, number, number],
 transitionTime?: number,
 ): Promise<void>
- Positions the camera such that the view is focused onto the given BoxVolume. The optional - viewand- upparameters allow to define a viewing direction and roll for the resulting camera pose, while the optional- transitionTimeparameter allows for controlling animation speed.- Triggers a ViewChangedEvent. - Parameters- volume: BoxVolumeA particular volume on which the view will be fitted 
- Optionalview: Float32Array<ArrayBufferLike> | [number, number, number]- Specifies the direction in which the camera will look on the volume 
- Optionalup: Float32Array<ArrayBufferLike> | [number, number, number]- Specifies the orientation in which the camera will look on the volume 
- OptionaltransitionTime: number- Defines the transition time for the camera movement in milliseconds. Default: 100. 
 - Returns Promise<void>- A promise that resolves when the camera movement is finished. 
- volume: BoxVolume
fit
- fitViewToVolumeFromDirection(
 volume: BoxVolume,
 direction?: ViewDirection,
 transitionTime?: number,
 ): Promise<void>
- Positions the camera such that it looks from the specified ViewDirection onto the specified BoxVolume. The optional - transitionTimeparameter allows for controlling animation speed.- Triggers a ViewChangedEvent. - Parameters- volume: BoxVolumeThe volume on which the camera will be fitted 
- Optionaldirection: ViewDirection- The direction to fit. Default: ViewDirection.CURRENT. 
- OptionaltransitionTime: number- Defines the transition time for the camera movement in milliseconds. Default: 100. 
 - Returns Promise<void>- A promise that resolves when the camera movement is finished. 
- volume: BoxVolume
flip
force
- forceRenderMode(renderMode: RenderMode): void
- Forces the viewer to render in the specified RenderMode regardless of any other RenderMode settings. If RenderMode.Unset is passed, the viewer will switch back to the default mode, specified in ViewerSettingStrings.RENDER_MODE. - Parameters- renderMode: RenderModeThe render mode to force the viewer to render in. 
 - Returns void
- renderMode: RenderMode
get
- getActiveItem(): ActiveItemInfo
- Returns ActiveItemInfo
get
get
- getBoxGizmoProperties(): BoxGizmoProperties
- Returns the properties of the BoxGizmo - Returns BoxGizmoProperties- The properties of the BoxGizmo 
get
get
- getCameraProjectionType(): CameraProjectionType
- Returns the current CameraProjectionType of the camera. - Returns CameraProjectionType- The current camera projection type. 
get
get
- getContext(): ContextAPI
- Returns the webvis context to which the viewer belongs. - Returns ContextAPI- The context of the viewer 
get
get
get
- getGizmoTransform(): | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]
- Returns
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]
get
- getGizmoTransformationMode(): GizmoTransformationMode
- Returns GizmoTransformationMode
get
- getGlobalHeatmapConfig(): HeatmapConfig
- Experimental- Experimental. May be changed in the future without notice. - Return the current global heatmap configuration. - Returns HeatmapConfig- Current global heatmap configuration. 
get
- getHeatmapColorSchemeLegend(): number[]
- Experimental- Experimental. May be changed in the future without notice. - Returns data which can be used to create a legend. The data has 4 color channels (RGBA) each in a range between 0 and 255 packed into an Array. - Returns number[]- Color scheme legend data. - Example: Creating a legend:- Note: Canvas can be resized using CSS width/height settings to achieve desired display size. - const legend = document.createElement("canvas"); // fetch data const legendData = viewer.getHeatmapColorSchemeLegend(); // width matches colorResolution set using configureHeatmap const width = legendData.length / 4; // canvas requires ImageData as source const img = new ImageData(new Uint8ClampedArray(legendData), width, 1); // resize canvas render resolution legend.width = width; legend.height = 1; // get canvas 2d context and fill canvas with data const ctx = legend.getContext("2d"); ctx.putImageData(img, 0, 0);
get
- getHeatmapData(id: number): HeatmapProperties
- Experimental- Experimental. May be changed in the future without notice. - Returns the properties of a heatmap dataset. - Parameters- id: numberID of dataset to query. Obtained using createHeatmap. 
 - Returns HeatmapProperties- Properties of the heatmap dataset. 
- id: number
get
getID
get
- getInteractionLevel(): ViewerInteractionLevel
- Returns the Viewer interaction level. - Returns ViewerInteractionLevel- The current interaction level. 
get
- getMagnifierProperties(): ViewerMagnifierProperties
- Returns the current properties of the magnifier. - Returns ViewerMagnifierProperties- The current properties of the magnifier. 
get
- getPointCloudData(pointCloudId: number): PointCloudProperties
- Experimental- Experimental. May be changed in the future without notice. - Returns the properties of a point cloud dataset. - Parameters- pointCloudId: numberThe ID of point cloud to query. Obtained using createPointCloud. 
 - Returns PointCloudProperties- Properties of the point cloud. 
- pointCloudId: number
get
get
- getProjectionMatrix(): | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]
- Returns the current projection matrix. The 4x4 transformation matrix is represented as a flat 16-element array in column-major order. - Returns
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]- The current projection matrix 
get
- getState(): ViewerState
- Returns ViewerState
get
- getToCoordinateSystemMatrix(): | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]
- Returns
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]- The toCoordinateSystem matrix - Deprecated- use CoordinateSystemAPI.getCoordinateSystemMatrix instead - Returns a 4x4 rotation matrix which is used to transform the internal default right-handed coordinate system with X and Y as front plane axis to the configured one. 
get
- getViewMatrix(): [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]
- Returns the current view matrix. The 4x4 transformation matrix is represented as a flat 16-element array in column-major order. - Returns [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]- The current view matrix of the camera 
getXREdge
- getXREdgeCompareProperties(): XREdgeCompareProperties
- Experimental- Returns the currently set XR Edge Compare properties. - Returns XREdgeCompareProperties- The currently set properties. 
hide
hide
hide
hide
hide
highlight
- highlightArc(
 pickedPt1: Float32Array<ArrayBufferLike> | [number, number, number],
 pickedPt3: Float32Array<ArrayBufferLike> | [number, number, number],
 center: Float32Array<ArrayBufferLike> | [number, number, number],
 axis: Float32Array<ArrayBufferLike> | [number, number, number],
 angle: number,
 measurementID: number,
 ): number
- Parameters- pickedPt1: Float32Array<ArrayBufferLike> | [number, number, number]
- pickedPt3: Float32Array<ArrayBufferLike> | [number, number, number]
- center: Float32Array<ArrayBufferLike> | [number, number, number]
- axis: Float32Array<ArrayBufferLike> | [number, number, number]
- angle: number
- measurementID: number
 - Returns number
highlightBBox
- highlightBBox(
 center: Float32Array<ArrayBufferLike> | [number, number, number],
 size: Float32Array<ArrayBufferLike> | [number, number, number],
 ): number
- Parameters- center: Float32Array<ArrayBufferLike> | [number, number, number]
- size: Float32Array<ArrayBufferLike> | [number, number, number]
 - Returns number
highlight
- highlightCircularArc(
 circularArcDescriptor: TopologyCircularArcDescriptor,
 ): number
- Parameters- circularArcDescriptor: TopologyCircularArcDescriptor
 - Returns number
highlight
- highlightEntity(
 handle: TopologyHandle,
 highlightParameters?: ViewerHighlightParameters,
 ): Promise<number>
- Enable highlighting of the entity , which matches the attributes informed in the viewerDataSelector - Parameters- handle: TopologyHandle: IViewerHighlightSelector 
- OptionalhighlightParameters: ViewerHighlightParameters
 - Returns Promise<number>- the highlightHandle, which it reqed to remove the highlighting 
- handle: TopologyHandle
highlight
highlight
is
leave
- leaveColorCompareMode(): void
- Leaves the color compare mode. For a description of the color compare mode see enterColorCompareMode. - Returns void- See- Property.COMPARISON_GROUP
- InteractionMode.COLOR_COMPARISON
- enterColorCompareMode to enter the color compare mode.
 
leave
- leaveDrawingMode(
 options?: ViewerDrawingProcessOptions,
 ): Promise<ViewerDrawingResult>
- Leaves the 2D Drawing Mode and returns the processed 2D drawing data which can be used to create a Drawing with the help of the DrawingAPI. - Parameters- Optionaloptions: ViewerDrawingProcessOptions- Options to configure the result of the processing. 
 - Returns Promise<ViewerDrawingResult>- The processed 2D drawing data. 
read
- readSetting<T extends string>(viewerSetting: T): ViewerSettingType<T>
- Returns the current value of a viewer setting. - Type Parameters- Parameters- viewerSetting: TThe name of the setting to read. 
 - Returns ViewerSettingType<T>- The current value of the setting. - See- ViewerSettingStrings for a list of available viewer settings. 
- viewerSetting: T
remove
remove
- removeHeatmap(id: number): void
- Experimental- Experimental. May be changed in the future without notice. - Removes the heatmap with the specified ID and triggers a ViewerHeatmapRemovedEvent. - Parameters- id: numberThe ID of heatmap to remove. Obtained using createHeatmap. 
 - Returns void
- id: number
remove
- removePointCloud(pointCloudId: number): void
- Experimental- Experimental. May be changed in the future without notice. - Removes the point cloud with the specified ID and triggers a ViewerPointCloudRemovedEvent. - Parameters- pointCloudId: numberThe ID of point cloud to remove. Obtained using createPointCloud. 
 - Returns void
- pointCloudId: number
remove
request
- requestNodeIdsByRect(
 x: number,
 y: number,
 width: number,
 height: number,
 includeOverlappingNodes?: boolean,
 ): Promise<number[]>
- Returns a list of all node IDs which are included or overlapped by the specified 2D screen space rectangle. - Parameters- x: numberSpecifies the X-Coordinate of the 2D screen space rectangle. 
- y: numberSpecifies the Y-Coordinate of the 2D screen space rectangle. 
- width: numberSpecifies the width of the 2D screen space rectangle. 
- height: numberSpecifies the height of the 2D screen space rectangle. 
- OptionalincludeOverlappingNodes: boolean- Specifies that the result should include nodes which overlap the specified 2D screen space rectangle as well. Default: false. 
 - Returns Promise<number[]>- List of all node IDs which are included or overlapped by the specified 2D screen space rectangle. 
- x: number
request
- requestScreenshot(
 width?: number,
 height?: number,
 mimeType?: "image/png" | "image/jpeg",
 resetCanvasSize?: boolean,
 ): Promise<string>
- Requests a screenshot of the current viewer at the current view. - Parameters- Optionalwidth: number- The width of the requested screenshot. If not specified it uses the width of the current view. 
- Optionalheight: number- The height of the requested screenshot. If not specified it uses the height of the current view. 
- OptionalmimeType: "image/png" | "image/jpeg"- A string indicating the image format. Default: - image/png.
- OptionalresetCanvasSize: boolean- If 'true', it ensures that the “normal” screen-dependent resolution is used again after taking the screenshot. Default: - true.
 - Returns Promise<string>- A string containing the requested screenshot as dataUrl.
 
request
- requestTopologyHandlesByRect(
 x: number,
 y: number,
 width: number,
 height: number,
 ): Promise<TopologyHandle[]>
- Returns a list of all TopologyHandles which are included and overlapped by the specified 2D screen space rectangle. - Parameters- x: numberSpecifies the X-coordinate of the 2D screen space rectangle in pixels. 
- y: numberSpecifies the Y-xoordinate of the 2D screen space rectangle in pixels. 
- width: numberSpecifies the width of the 2D screen space rectangle in pixels. 
- height: numberSpecifies the height of the 2D screen space rectangle in pixels. 
 - Returns Promise<TopologyHandle[]>- A list of all TopologyHandles which are included and overlapped by the specified 2D screen space rectangle. 
- x: number
requestXRAuto
- requestXRAutoDetectScores(nodeIDs: number[]): Promise<XRAutoDetectScore[]>
- Experimental- Request scores caluclated based on the ratio of matching/non-matching pixels of the XR Edge Compare feature. Passed nodes must be in XR Edge Compare mode mode to produce a valid score. Multiple concurrent requests of this method are not allowed. - Example - // Get an instance of the ContextAPI const myContext : ContextAPI = webvis.getContext( "example" ) // The node to request a result for const nodeID = 1; // Enable XR Edge Compare mode for node myContext.setProperty(nodeID, webvis.Property.COMPARISON_GROUP, webvis.ComparisonGroup.XR_EDGE); async function update() { // Request score const result = await myContext.getViewer().requestXRAutoDetectScores([nodeID]); // Check score value console.log(result[0].score > 0.5 ? "Positive" : "Negative"); // Re-request score twice per second as long as node is in XR Edge Compare mode if (result[0].details.edgeCompareEnabled) { setTimeout(update, 500); } } // Start loop update();- Parameters- nodeIDs: number[]The nodeIDs to process. 
 - Returns Promise<XRAutoDetectScore[]>- A promise containing a list of auto detect score results.
 
- nodeIDs: number[]
reset
reset
- resetSetting(viewerSetting: ViewerSettingStrings): void
- Resets the value of a viewer setting to its default value. - Triggers a ViewerSettingChangedEvent. - Parameters- viewerSetting: ViewerSettingStringsThe name of the viewer setting that should be reset. 
 - Returns void- See- ViewerSettingStrings for a list of available viewer settings. 
- viewerSetting: ViewerSettingStrings
restore
- restoreInitView(): void
- Sets the camera to the initial position specified in the ViewerSettingStrings.INIT_VIEW setting. If the setting is not defined or empty, there will be no effect. - Triggers a ViewChangedEvent if the ViewerSettingStrings.INIT_VIEW setting is set. - Returns void
set
- setActiveItem(id: number, type: ActiveItemType): void
- Parameters- id: number
- type: ActiveItemType
 - Returns void
set
- setCenterOfRotation(
 center?: Float32Array<ArrayBufferLike> | [number, number, number],
 ): Promise<void>
- Sets the center of rotation being the point around which the inspection camera rotates. If no center parameter is supplied the center of rotation is set to the center of all currently loaded models. - Parameters- Optionalcenter: Float32Array<ArrayBufferLike> | [number, number, number]- The new center of rotation represented by a 3D vector 
 - Returns Promise<void>- A promise that resolves when the center of rotation is set 
setCORGizmo
set
- setGizmoTransformationMode(mode: GizmoTransformationMode): void
- Parameters- mode: GizmoTransformationMode
 - Returns void
set
- setInteractionLevel(level: ViewerInteractionLevel): void
- Sets the Viewer interaction level. - Parameters- level: ViewerInteractionLevelSpecifies the interaction level. 
 - Returns void
- level: ViewerInteractionLevel
set
- setProjectionMatrix(
 matrix:
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ],
 ): void
- Sets the current projection matrix. The 4x4 transformation matrix must be represented as a flat 16-element array in column-major order. - Parameters- matrix: 
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]The new projection matrix 
 - Returns void
- matrix: 
set
- setView(
 position: Float32Array<ArrayBufferLike> | [number, number, number],
 target: Float32Array<ArrayBufferLike> | [number, number, number],
 upVector?: Float32Array<ArrayBufferLike> | [number, number, number],
 transitionTime?: number,
 ): Promise<void>
- Sets the camera position, its target and the up-vector. If the up-vector is not defined, the previous up-vector is kept. The optional - transitionTimeparameter allows for controlling animation speed.- Parameters- position: Float32Array<ArrayBufferLike> | [number, number, number]Specifies the new position or center of the camera 
- target: Float32Array<ArrayBufferLike> | [number, number, number]Specifies the point on which the camera will look 
- OptionalupVector: Float32Array<ArrayBufferLike> | [number, number, number]- Specifies the new orientation of the camera 
- OptionaltransitionTime: number- Defines the transition time for the camera movement in milliseconds. Default: 0. 
 - Returns Promise<void>- A promise that resolves when the camera movement is finished. 
- position: Float32Array<ArrayBufferLike> | [number, number, number]
set
- setViewMatrix(
 matrix:
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ],
 transitionTime?: number,
 ): Promise<void>
- Sets the view matrix. The optional - transitionTimeparameter allows for controlling animation speed.- Parameters- matrix: 
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]The new view matrix for the camera 
- OptionaltransitionTime: number- Defines the transition time for the camera movement in milliseconds. Default: 0. 
 - Returns Promise<void>- A promise that resolves when the camera movement is finished. 
- matrix: 
show
show
- showBoxGizmo(properties?: BoxGizmoProperties): void
- Shows the BoxGizmo based on the specified properties. If the BoxGizmo is already visible the specified properties will be updated. - Parameters- Optionalproperties: BoxGizmoProperties- The properties of the BoxGizmo. 
 - Returns void
show
show
show
- showSelectionBoxGizmo(
 size?: Float32Array<ArrayBufferLike> | [number, number, number],
 transform?:
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ],
 ): void
- Parameters- Optionalsize: Float32Array<ArrayBufferLike> | [number, number, number]
- Optionaltransform:
 | Float32Array<ArrayBufferLike>
 | [
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 number,
 ]
 - Returns void
show
show
take
- takeScreenshot(
 callback: (dataUrl: string) => void,
 mimeType?: string,
 width?: number,
 height?: number,
 ): void
- Takes a screenshot from the current view. - Parameters- callback: (dataUrl: string) => voidA callback containing the result which is executed after all Rendering operations are finished. 
- OptionalmimeType: string- A string indicating the image format. The default type is image/png. 
- Optionalwidth: number- The width of the requested screenshot. If not specified it uses the width of the current view. 
- Optionalheight: number- The height of the requested screenshot. If not specified it uses the height of the current view. 
 - Returns void- Deprecated- takeScreenshot is deprecated, please use requestScreenshot instead 
- callback: (dataUrl: string) => void
Visualizing 3D data with webvis: The ViewerAPI
Overview
The ViewerAPI provides methods to interact with the viewer.
Quick Start
A viewer is always part of a webvis context. Please note, that a context can contain one or more viewers. To create a viewer, you can use ContextAPI.createViewer.
The viewer's settings
Each viewer of a context has its own settings. You can configure the viewer by passing the initial settings to the ContextAPI.createViewer method. A full list of available viewer settings can be found in the ViewerSettingStrings.
You can also change the settings of a viewer at runtime using ViewerAPI.changeSetting and read the current settings with ViewerAPI.readSetting. Use ViewerAPI.resetSetting to reset a setting to its default value.
Viewer settings vs. context settings
You can also change settings on the context level via ContextAPI.changeSetting. The difference between viewer settings and context settings is that viewer settings are only applied to the specific viewer while context settings are applied to all viewers of the context. The same applies to resetting a setting via ContextAPI.resetSetting.
This also means that if you read a setting via ContextAPI.readSetting, you will get the value of the context setting which might differ from the value of settings of a specific viewer.
Manipulating the camera view
The viewer provides methods to manipulate the camera's view. The most important one is ViewerAPI.setViewMatrix which allows you to set the view matrix directly. The view matrix transforms the geometry from world space into camera space.
If you prefer to animate the camera movement, you can use ViewerAPI.animateViewToViewmatrix:
If you want to read out the current view matrix at a specific frame, you can use ViewerAPI.getViewMatrix
However, if you are interested in subscribing to view changes, you can listen to the ViewChangedEvent:
Receiving information about the 3D scene via the ViewerAPI
The ViewerAPI provides methods to retrieve information about the 3D scene based on the current view. For instance, you can get the node IDs which are included or overlapped by a specific 2D screen space rectangle using ViewerAPI.requestNodeIdsByRect:
Another example is to get all TopologyHandles which are included and overlapped by a specific 2D screen space rectangle using ViewerAPI.requestTopologyHandlesByRect:
Taking screenshots
The ViewerAPI provides a method to take screenshots of the current view. You can use ViewerAPI.requestScreenshot to request a screenshot of the current viewer at the current view: