ViewerAPI¶
Interface ViewerAPI
addPointsToSet(id: number, pois: PointOfInterest[]): number[];
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;
changePointsInSet(
poiSetId: number,
poiIds: number[],
pois: PointOfInterest[],
): void;
changePOISet(id: number, properties: POISetProperties): POISetProperties;
changePOIStyle(
poiStyleId: number,
properties: POIStyleProperties,
): POIStyleProperties;
changePolyline(polylineId: number, properties: PolylineProperties): void;
changeSetting<T extends string>(
viewerSetting: T,
value: ViewerSettingType<T>,
): boolean;
changeXREdgeCompare(
properties: XREdgeCompareProperties,
): XREdgeCompareProperties;
clearBackground(): void;
createCollectionFromGizmo(
includeOverlappingNodes: boolean,
): Promise<number>;
createGeometry(userGeoData: UserGeometryData): number;
createHeatmap(properties: HeatmapProperties): number;
createPointCloud(
points: CloudPoint[],
properties?: PointCloudProperties,
): number;
createPOISet(properties?: POISetProperties): number;
createPOIStyle(properties?: POIStyleProperties): 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[];
getPOISetData(id: number): POISetProperties;
getPOISets(): number[];
getPOIStyleData(poiStyleId: number): POIStyleProperties;
getPOIStyles(): 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;
removePointsFromSet(id: number, poiIds: number[]): void;
removePOISet(id: number): void;
removePOIStyle(poiStyleId: 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
add Points To Set
ExperimentalExperimental. May be changed in the future without notice.
Adds points to an existing POI set.
Triggers a ViewerPOISetPointsAddedEvent event if the points were added successfully.
Parameters
- id: number
The ID of the POI set
- pois: PointOfInterest[]
The list of PointOfInterests to add.
Returns number[]
The IDs of the newly added POIs.
- id: number
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
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: 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
Leaves the 2D drawing mode and discards all uncomitted drawings.
Returns void
change Global Heatmap Config
ExperimentalExperimental. 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
ExperimentalExperimental. 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
Changes the properties of the viewer magnifier.
Parameters
- properties: ViewerMagnifierProperties
Properties which should be changed.
Returns ViewerMagnifierProperties
The changed properties.
- properties: ViewerMagnifierProperties
change Point Cloud
ExperimentalExperimental. 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 Points In Set
ExperimentalExperimental. May be changed in the future without notice.
Changes points in an existing POI set.
Triggers a ViewerPOISetPointsChangedEvent event if the points were changed successfully.
Parameters
- poiSetId: number
The ID of the POI set
- poiIds: number[]
The IDs of the POIs to change.
- pois: PointOfInterest[]
The new PointOfInterest data. The length of this array must match the length of the poiIds array.
Returns void
- poiSetId: number
change POI Set
ExperimentalExperimental. May be changed in the future without notice.
Sets the properties for the POI set.
Triggers a ViewerPOISetChangedEvent event if the properties were changed.
Parameters
- id: number
The ID of the POI set to change.
- properties: POISetProperties
The new properties of the POI set.
Returns POISetProperties
- id: number
change POI Style
ExperimentalExperimental. May be changed in the future without notice.
Sets the properties for the POI style.
Triggers a ViewerPOIStyleChangedEvent event if the properties were changed.
Parameters
- poiStyleId: number
The ID of the POI style to change.
- properties: POIStyleProperties
The new properties of the POI style.
Returns POIStyleProperties
- poiStyleId: number
change Polyline
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
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
- T extends string
The type of the setting to change.
Parameters
Returns boolean
True if the setting was changed successfully, false otherwise.
See
ViewerSettingStrings for a list of available viewer settings.
- T extends string
change XR Edge Compare
ExperimentalSets 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
clear Background
Clears the viewer's background.
Returns void
create Collection From Gizmo
Parameters
- includeOverlappingNodes: boolean
Returns Promise<number>
create Geometry
Parameters
- userGeoData: UserGeometryData
Returns number
create Heatmap
ExperimentalExperimental. 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
ExperimentalExperimental. 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: PointCloudPropertiesInitial properties of the created point cloud.
Returns number
The ID of the newly created point cloud.
- points: CloudPoint[]
create POI Set
ExperimentalExperimental. May be changed in the future without notice.
Creates a new POI set.
Triggers a ViewerPOISetCreatedEvent event if the set was created successfully.
Parameters
Optionalproperties: POISetPropertiesInitial properties of the created POI set.
Returns number
The ID the newly created set.
create POI Style
ExperimentalExperimental. May be changed in the future without notice.
Creates a new POI style.
Triggers a ViewerPOIStyleCreatedEvent event if the style was created successfully.
Parameters
Optionalproperties: POIStylePropertiesInitial properties of the created POI style.
Returns number
The ID the newly created style.
create Polyline
Creates a new Polyline with the specified positions and properties.
Parameters
- positions: number[]
List of 3D positions which defines the Polyline.
Optionalproperties: PolylinePropertiesThe properties of the Polyline.
Returns number
- positions: number[]
dehighlight Entity
Disable highlighting for the handle
Parameters
OptionalhighlightHandle: number: number
Returns void
enable Navigation
Sets the enabled state of the 3D navigation to on or off. If called without any flag, the state will be toggled.
Parameters
Optionalflag: booleanSpecifies if the navigation should be enabled or disabled. Default: true.
Returns void
Deprecated
use ViewerSettingStrings.NAVIGATION_MODE instead
enable Snapping
Enables or disables snapping in the viewer.
Parameters
- useSnapping: boolean
Whether to enable or disable snapping.
Returns void
- useSnapping: boolean
enter Color Compare Mode
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
Enters the 2D drawing mode where you can draw on top of your 3D model.
Returns void
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
viewandupparameters allow to define a viewing direction and roll for the resulting camera pose, while the optionaltransitionTimeparameter 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: 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
Positions the camera such that the aux node with the specified
nodeIDis fitting into the view. The optionaltransitionTimeparameter allows for controlling animation speed.Triggers a ViewChangedEvent.
Parameters
- nodeID: number
The ID of the node on which the view will be fitted on
OptionaltransitionTime: 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
Positions the camera such that it looks from a specific ViewDirection. The optional
transitionTimeparameter allows for controlling animation speed.Triggers a ViewChangedEvent.
Parameters
Optionaldirection: ViewDirectionThe direction to fit. Default: ViewDirection.CURRENT.
OptionaltransitionTime: 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
nodeIDis fitting into the view. The optionalviewandupparameter allow to define a viewing direction and roll for the resulting camera pose, while the optionaltransitionTimeparameter allows for controlling animation speed.Parameters
- nodeID: number
The 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: 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
transitionTimeparameter 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.
OptionaltransitionTime: 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
viewandupparameters allow to define a viewing direction and roll for the resulting camera pose, while the optionaltransitionTimeparameter allows for controlling animation speed.Triggers a ViewChangedEvent.
Parameters
- volume: BoxVolume
A 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: 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
transitionTimeparameter allows for controlling animation speed.Triggers a ViewChangedEvent.
Parameters
- volume: BoxVolume
The volume on which the camera will be fitted
Optionaldirection: ViewDirectionThe direction to fit. Default: ViewDirection.CURRENT.
OptionaltransitionTime: 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
Flips specific elements in the auxiliary geometry (like text or specific polygons) with respect to the current view.
Returns void
force Render Mode
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
Returns ActiveItemInfo
get Available Gizmo Transformation Modes
Returns number
get Box Gizmo Properties
get Camera Position
Returns the current camera position as a 3D vector.
Returns Float32Array<ArrayBufferLike> | [number, number, number]
The current camera position.
get Camera Projection Type
Returns the current CameraProjectionType of the camera.
Returns CameraProjectionType
The current camera projection type.
get Center Of Rotation
Returns the center of rotation being the point around which the camera rotates around.
Returns Float32Array<ArrayBufferLike> | [number, number, number]
A 3D vector representing the center of rotation
get Context
get Current Gizmo Type
Returns GizmoType
get Gizmo Size
Returns Float32Array<ArrayBufferLike> | [number, number, number]
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
Returns GizmoTransformationMode
get Global Heatmap Config
ExperimentalExperimental. 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
ExperimentalExperimental. 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 changeGlobalHeatmapConfig 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
ExperimentalExperimental. 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
ExperimentalExperimental. May be changed in the future without notice.
Returns a list of all heatmap datasets.
Returns number[]
Array of heatmap dataset IDs.
get ID
Returns the ID of the viewer.
Returns string
The ID of the viewer
get Interaction Level
Returns the current interaction level of the viewer.
Returns ViewerInteractionLevel
The current interaction level of the viewer.
get Magnifier Properties
Returns the current properties of the magnifier.
Returns ViewerMagnifierProperties
The current properties of the magnifier.
get Point Cloud Data
ExperimentalExperimental. 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
ExperimentalExperimental. May be changed in the future without notice.
Returns a list of all point clouds.
Returns number[]
Array of point cloud IDs.
get POI Set Data
ExperimentalExperimental. May be changed in the future without notice.
Queries the properties of a POI set.
Parameters
- id: number
The ID of the POI set to query.
Returns POISetProperties
The properties of the queried POI set.
- id: number
get POI Sets
ExperimentalExperimental. May be changed in the future without notice.
Returns the IDs of all existing POI sets.
Returns number[]
A number array representing the IDs of all POI sets.
get POI Style Data
ExperimentalExperimental. May be changed in the future without notice.
Queries the properties of a POI style.
Parameters
- poiStyleId: number
The ID of the POI style to query.
Returns POIStyleProperties
The properties of the queried POI style.
- poiStyleId: number
get POI Styles
ExperimentalExperimental. May be changed in the future without notice.
Returns the IDs of all existing POI styles.
Returns number[]
A number array representing the IDs of all POI styles.
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
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
get XR Edge Compare Properties
ExperimentalReturns the currently set XR Edge Compare properties.
Returns XREdgeCompareProperties
The currently set properties.
hide All Line Markers
Returns void
hide All Markers
Returns void
hide All Point Markers
Returns void
hide Gizmo
Hides the currently visible Gizmo
Returns void
hide Point Marker
Parameters
Optionalindex: number
Returns void
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,
): numberParameters
- 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
highlight B Box
- highlightBBox(
center: Float32Array<ArrayBufferLike> | [number, number, number],
size: Float32Array<ArrayBufferLike> | [number, number, number],
): numberParameters
- center: Float32Array<ArrayBufferLike> | [number, number, number]
- size: Float32Array<ArrayBufferLike> | [number, number, number]
Returns number
highlight Circular Arc
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
OptionalhighlightParameters: ViewerHighlightParameters
Returns Promise<number>
the highlightHandle, which it reqed to remove the highlighting
- handle: TopologyHandle
highlight Line
Parameters
- values: number[]
- scale: number
- markerIndex: number
Returns void
highlight Point
is Snapping Enabled
Returns whether snapping is enabled in the viewer.
Returns boolean
trueif snapping is enabled,falseotherwise.
leave Color Compare Mode
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
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: ViewerDrawingProcessOptionsOptions to configure the result of the processing.
Returns Promise<ViewerDrawingResult>
The processed 2D drawing data.
read Setting
Returns the current value of a viewer setting.
Type Parameters
- T extends string
The type of the setting to read.
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.
- T extends string
remove Geometry
Parameters
- id: number
Returns void
remove Heatmap
ExperimentalExperimental. 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
ExperimentalExperimental. 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 Points From Set
ExperimentalExperimental. May be changed in the future without notice.
Removes points from an existing POI set.
Triggers a ViewerPOISetPointsRemovedEvent event if the points were removed successfully.
Parameters
- id: number
The ID of the POI set
- poiIds: number[]
The IDs of the POIs to remove.
Returns void
- id: number
remove POI Set
ExperimentalExperimental. May be changed in the future without notice.
Removes the POI set with the given identifier.
Triggers a ViewerPOISetRemovedEvent event if the set was removed successfully.
Parameters
- id: number
The ID of the POI set to be removed.
Returns void
- id: number
remove POI Style
ExperimentalExperimental. May be changed in the future without notice.
Removes the POI style with the given identifier.
Triggers a ViewerPOIStyleRemovedEvent event if the style was removed successfully.
Parameters
- poiStyleId: number
The ID of the POI style to be removed.
Returns void
- poiStyleId: number
remove Polyline
Removes the Polyline with the specified Id.
Parameters
- polylineId: number
The Id of the Polyline which should be removed.
Returns void
- polylineId: number
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.
OptionalincludeOverlappingNodes: 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
Optionalwidth: numberThe width of the requested screenshot. If not specified it uses the width of the current view.
Optionalheight: numberThe 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: 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
request XR Auto Detect Scores
ExperimentalRequest 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
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
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
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
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
set COR Gizmo Visible
Parameters
- flag: boolean
Returns void
set Gizmo Transformation Mode
Parameters
- mode: GizmoTransformationMode
Returns void
set Interaction Level
Sets the viewer's interaction level.
Parameters
- level: ViewerInteractionLevel
Specifies the viewer's 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,
],
): voidSets 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
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: 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
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: 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
Shows the BoxGizmo based on the specified properties. If the BoxGizmo is already visible the specified properties will be updated.
Parameters
Optionalproperties: BoxGizmoPropertiesThe properties of the BoxGizmo.
Returns void
show Clipping Box Gizmo
Parameters
- clipRoomID: number
Returns void
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,
],
): voidParameters
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 Selection Box Gizmo From Volume
Parameters
Optionalvolume: BoxVolume
Returns void
show Selection Transformation Gizmo
Parameters
- nodeIds: number[]
Returns void
take Screenshot
- takeScreenshot(
callback: (dataUrl: string) => void,
mimeType?: string,
width?: number,
height?: number,
): voidTakes 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.
OptionalmimeType: stringA string indicating the image format. The default type is image/png.
Optionalwidth: numberThe width of the requested screenshot. If not specified it uses the width of the current view.
Optionalheight: 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
update Geometry
Parameters
- id: number
- data: UserGeometryData
Returns 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: