Warning
Nightly releases are generated automatically from the latest source code and are intended for experimental purposes only. These builds may contain incomplete or untested features, bugs, or security vulnerabilities, and as such, are not for production use. Users should be aware that nightly releases may cause unexpected behavior, data loss, or system instability. Use of these releases is at the user's own risk, and it is advised to have adequate backups before testing. The software is provided as is with no guarantees or support.
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)
Index
Methods
Methods
animate View To Viewmatrix
- 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
transitionTime
parameter 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
Optional
transitionTime: numberDefines 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 Drawing Mode
change Global Heatmap Config
- changeGlobalHeatmapConfig(config: HeatmapConfig): void
Experimental
Experimental. May be changed in the future without notice.
Configures global heatmap settings and triggers a ViewerHeatmapConfigChangedEvent.
Parameters
- config: HeatmapConfig
Settings 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 Heatmap
- 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: number
ID of dataset to update. Obtained using createHeatmap.
- properties: HeatmapProperties
The 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 Magnifier
- changeMagnifier(
properties: ViewerMagnifierProperties,
): ViewerMagnifierProperties Changes the properties of the viewers magnifier.
Parameters
- properties: ViewerMagnifierProperties
Object of Properties which should be changed.
Returns ViewerMagnifierProperties
An Object with the changed Properties.
- properties: ViewerMagnifierProperties
change Point Cloud
- 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: number
The ID of the point cloud to update. Obtained using createPointCloud.
- properties: PointCloudProperties
The properties of the point cloud you want change.
Returns void
- pointCloudId: number
change Polyline
- changePolyline(polylineId: number, properties: PolylineProperties): void
Changes the properties of the Polyline with the specified Id.
Parameters
- polylineId: number
The Id of the Polyline which should be removed.
- properties: PolylineProperties
The properties which should be changed.
Returns void
- polylineId: number
change Setting
- 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 Compare
- changeXREdgeCompare(
properties: XREdgeCompareProperties,
): XREdgeCompareProperties Experimental
Sets the specified properties.
Parameters
- properties: XREdgeCompareProperties
An object with all or a subset of properties to update.
Returns XREdgeCompareProperties
An object with the changed properties.
- properties: XREdgeCompareProperties
create Collection From Gizmo
create Geometry
create Heatmap
- createHeatmap(properties: HeatmapProperties): number
Experimental
Experimental. May be changed in the future without notice.
Creates a new heatmap and triggers a ViewerHeatmapCreatedEvent.
Parameters
- properties: HeatmapProperties
Initial 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 Point Cloud
- 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.
Optional
properties: PointCloudPropertiesInitial properties of the created point cloud.
Returns number
The ID of the newly created point cloud.
- points: CloudPoint[]
create Polyline
- 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.
Optional
properties: PolylinePropertiesThe properties of the Polyline.
Returns number
- positions: number[]
dehighlight Entity
enable Navigation
enable Snapping
enter Color Compare Mode
- 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 Drawing Mode
fit View
- 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
view
andup
parameters allow to define a viewing direction and roll for the resulting camera pose, while the optionaltransitionTime
parameter allows for controlling animation speed.Triggers a ViewChangedEvent.
Parameters
Optional
view: Float32Array<ArrayBufferLike> | [number, number, number]Defines the desired viewing direction
Optional
up: Float32Array<ArrayBufferLike> | [number, number, number]Defines the desired camera orientation in conjunction with the viewing direction
Optional
transitionTime: numberDefines 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 View To Aux Node
- fitViewToAuxNode(nodeID: number, transitionTime?: number): Promise<void>
Positions the camera such that the aux node with the specified
nodeID
is fitting into the view. The optionaltransitionTime
parameter allows for controlling animation speed.Triggers a ViewChangedEvent.
Parameters
- nodeID: number
The ID of the node on which the view will be fitted on
Optional
transitionTime: numberDefines 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 View To Direction
- fitViewToDirection(
direction?: ViewDirection,
transitionTime?: number,
): Promise<void> Positions the camera such that it looks from a specific ViewDirection. The optional
transitionTime
parameter allows for controlling animation speed.Triggers a ViewChangedEvent.
Parameters
Optional
direction: ViewDirectionThe direction to fit. Default: ViewDirection.CURRENT.
Optional
transitionTime: numberDefines 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 View To Node
- 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
nodeID
is fitting into the view. The optionalview
andup
parameter allow to define a viewing direction and roll for the resulting camera pose, while the optionaltransitionTime
parameter allows for controlling animation speed.Parameters
- nodeID: number
The ID of the node on which the view will be fitted on
Optional
view: Float32Array<ArrayBufferLike> | [number, number, number]The direction in which the camera will look on the node
Optional
up: Float32Array<ArrayBufferLike> | [number, number, number]The orientation in which the camera will look on the node
Optional
transitionTime: numberDefines 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 View To Rectangle
- 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
transitionTime
parameter allows for controlling animation speed.Triggers a ViewChangedEvent.
Parameters
- x: number
Specifies the X-coordinate of the 2D screen space rectangle in pixels.
- y: number
Specifies the Y-coordinate of the 2D screen space rectangle in pixels.
- width: number
Specifies the width of the 2D screen space rectangle in pixels.
- height: number
Specifies the height of the 2D screen space rectangle in pixels.
Optional
transitionTime: numberDefines 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 View To Volume
- 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
view
andup
parameters allow to define a viewing direction and roll for the resulting camera pose, while the optionaltransitionTime
parameter allows for controlling animation speed.Triggers a ViewChangedEvent.
Parameters
- volume: BoxVolume
A particular volume on which the view will be fitted
Optional
view: Float32Array<ArrayBufferLike> | [number, number, number]Specifies the direction in which the camera will look on the volume
Optional
up: Float32Array<ArrayBufferLike> | [number, number, number]Specifies the orientation in which the camera will look on the volume
Optional
transitionTime: numberDefines 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 View To Volume From Direction
- 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
transitionTime
parameter allows for controlling animation speed.Triggers a ViewChangedEvent.
Parameters
- volume: BoxVolume
The volume on which the camera will be fitted
Optional
direction: ViewDirectionThe direction to fit. Default: ViewDirection.CURRENT.
Optional
transitionTime: numberDefines 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 Aux To View
force Render Mode
- 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: RenderMode
The render mode to force the viewer to render in.
Returns void
- renderMode: RenderMode
get Active Item
- getActiveItem(): ActiveItemInfo
Returns ActiveItemInfo
get Available Gizmo Transformation Modes
get Box Gizmo Properties
- getBoxGizmoProperties(): BoxGizmoProperties
Returns the properties of the BoxGizmo
Returns BoxGizmoProperties
The properties of the BoxGizmo
get Camera Position
get Camera Projection Type
- getCameraProjectionType(): CameraProjectionType
Returns the current CameraProjectionType of the camera.
Returns CameraProjectionType
The current camera projection type.
get Center Of Rotation
get Context
- getContext(): ContextAPI
Returns the webvis context to which the viewer belongs.
Returns ContextAPI
The context of the viewer
get Current Gizmo Type
get Gizmo Size
get Gizmo Transform
- 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 Gizmo Transformation Mode
- getGizmoTransformationMode(): GizmoTransformationMode
Returns GizmoTransformationMode
get Global Heatmap Config
- 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 Heatmap Color Scheme Legend
- 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 Heatmap Data
- getHeatmapData(id: number): HeatmapProperties
Experimental
Experimental. May be changed in the future without notice.
Returns the properties of a heatmap dataset.
Parameters
- id: number
ID of dataset to query. Obtained using createHeatmap.
Returns HeatmapProperties
Properties of the heatmap dataset.
- id: number
get Heatmaps
getID
get Interaction Level
- getInteractionLevel(): ViewerInteractionLevel
Returns the Viewer interaction level.
Returns ViewerInteractionLevel
The current interaction level.
get Magnifier Properties
- getMagnifierProperties(): ViewerMagnifierProperties
Returns the current properties of the magnifier.
Returns ViewerMagnifierProperties
The current properties of the magnifier.
get Point Cloud Data
- getPointCloudData(pointCloudId: number): PointCloudProperties
Experimental
Experimental. May be changed in the future without notice.
Returns the properties of a point cloud dataset.
Parameters
- pointCloudId: number
The ID of point cloud to query. Obtained using createPointCloud.
Returns PointCloudProperties
Properties of the point cloud.
- pointCloudId: number
get Point Clouds
get Projection Matrix
- 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 State
- getState(): ViewerState
Returns ViewerState
get To Coordinate System Matrix
- 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 View Matrix
- 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 Compare Properties
- getXREdgeCompareProperties(): XREdgeCompareProperties
Experimental
Returns the currently set XR Edge Compare properties.
Returns XREdgeCompareProperties
The currently set properties.
hide All Line Markers
hide All Markers
hide All Point Markers
hide Gizmo
hide Point Marker
highlight Arc
- 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 Circular Arc
- highlightCircularArc(
circularArcDescriptor: TopologyCircularArcDescriptor,
): number Parameters
- circularArcDescriptor: TopologyCircularArcDescriptor
Returns number
highlight Entity
- highlightEntity(
handle: TopologyHandle,
highlightParameters?: ViewerHighlightParameters,
): Promise<number> Enable highlighting of the entity , which matches the attributes informed in the viewerDataSelector
Parameters
- handle: TopologyHandle
: IViewerHighlightSelector
Optional
highlightParameters: ViewerHighlightParameters
Returns Promise<number>
the highlightHandle, which it reqed to remove the highlighting
- handle: TopologyHandle
highlight Line
highlight Point
is Snapping Enabled
leave Color Compare Mode
- 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 Drawing Mode
- 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
Optional
options: ViewerDrawingProcessOptionsOptions to configure the result of the processing.
Returns Promise<ViewerDrawingResult>
The processed 2D drawing data.
read Setting
- readSetting<T extends string>(viewerSetting: T): ViewerSettingType<T>
Returns the current value of a viewer setting.
Type Parameters
Parameters
- viewerSetting: T
The 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 Geometry
remove Heatmap
- 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: number
The ID of heatmap to remove. Obtained using createHeatmap.
Returns void
- id: number
remove Point Cloud
- 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: number
The ID of point cloud to remove. Obtained using createPointCloud.
Returns void
- pointCloudId: number
remove Polyline
request Node Ids By Rect
- 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: number
Specifies the X-Coordinate of the 2D screen space rectangle.
- y: number
Specifies the Y-Coordinate of the 2D screen space rectangle.
- width: number
Specifies the width of the 2D screen space rectangle.
- height: number
Specifies the height of the 2D screen space rectangle.
Optional
includeOverlappingNodes: booleanSpecifies 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 Screenshot
- 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
Optional
width: numberThe width of the requested screenshot. If not specified it uses the width of the current view.
Optional
height: numberThe height of the requested screenshot. If not specified it uses the height of the current view.
Optional
mimeType: "image/png" | "image/jpeg"A string indicating the image format. Default:
image/png
.Optional
resetCanvasSize: booleanIf '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 Topology Handles By Rect
- 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: number
Specifies the X-coordinate of the 2D screen space rectangle in pixels.
- y: number
Specifies the Y-xoordinate of the 2D screen space rectangle in pixels.
- width: number
Specifies the width of the 2D screen space rectangle in pixels.
- height: number
Specifies 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 Detect Scores
- 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 Setting
- resetSetting(viewerSetting: ViewerSettingStrings): void
Resets the value of a viewer setting to its default value.
Triggers a ViewerSettingChangedEvent.
Parameters
- viewerSetting: ViewerSettingStrings
The name of the viewer setting that should be reset.
Returns void
See
ViewerSettingStrings for a list of available viewer settings.
- viewerSetting: ViewerSettingStrings
restore Init View
- 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 Active Item
- setActiveItem(id: number, type: ActiveItemType): void
Parameters
- id: number
- type: ActiveItemType
Returns void
set Center Of Rotation
- 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
Optional
center: 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 Visible
set Gizmo Transformation Mode
- setGizmoTransformationMode(mode: GizmoTransformationMode): void
Parameters
- mode: GizmoTransformationMode
Returns void
set Interaction Level
- setInteractionLevel(level: ViewerInteractionLevel): void
Sets the Viewer interaction level.
Parameters
- level: ViewerInteractionLevel
Specifies the interaction level.
Returns void
- level: ViewerInteractionLevel
set Projection Matrix
- 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 View
- 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
transitionTime
parameter 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
Optional
upVector: Float32Array<ArrayBufferLike> | [number, number, number]Specifies the new orientation of the camera
Optional
transitionTime: numberDefines 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 View Matrix
- 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
transitionTime
parameter 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
Optional
transitionTime: numberDefines 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 Axis Marker
show Box Gizmo
- 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
Optional
properties: BoxGizmoPropertiesThe properties of the BoxGizmo.
Returns void
show Clipping Box Gizmo
show Point Marker
show Selection Box Gizmo
- 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
Optional
size: Float32Array<ArrayBufferLike> | [number, number, number]Optional
transform:
| Float32Array<ArrayBufferLike>
| [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
]
Returns void
show Selection Box Gizmo From Volume
show Selection Transformation Gizmo
take Screenshot
- takeScreenshot(
callback: (dataUrl: string) => void,
mimeType?: string,
width?: number,
height?: number,
): void Takes a screenshot from the current view.
Parameters
- callback: (dataUrl: string) => void
A callback containing the result which is executed after all Rendering operations are finished.
Optional
mimeType: stringA string indicating the image format. The default type is image/png.
Optional
width: numberThe width of the requested screenshot. If not specified it uses the width of the current view.
Optional
height: numberThe 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: