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.
3.8.0 Migration Guide¶
In this release, you’ll find only minor API cleanups, refactorings, and changes. In the majority of cases, these won’t impact already existing applications, which run on our previous version (3.7.0). This document provides both a general overview of the required updates and a detailed list of API changes.
Relocate logic how Annotations react to connected Node changes¶
In order to empower application developers with greater flexibility to create their own tailored solutions, we have made the strategic decision to relocate the logic how Annotations respond to property changes of a connected Node from our webvis-core to the webvis-ui. This allows application developers to construct a completely customized logic for how their custom Annotation UIs should respond to property changes of a connected Node.
To inspire you in creating your own custom UI to visualize Annotations and react to Node changes, we’ve provided a simplified version of the logic implemented in our <webvis-annotation> Component as an example:
// Listen to property changes of the connected Node and reflect them to the annotation.
myContext.registerListener([webvis.EventType.NODE_CHANGED], (e : webvis.NodeChangedEvent) =>
{
if ( e.property === webvis.Property.GLOBAL_TRANSFORM )
{
const inverseOldTrafo : mat4 = mat4.invert(mat4.create(), e.oldValue),
deltaTrafo : mat4 = mat4.multiply(mat4.create(), e.newValue, inverseOldTrafo),
newAnchorPosition : vec3 = vec3.transformMat4(vec3.create(), oldAnchorPosition, deltaTrafo);
myContext.changeAnnotation( myAnnotationId, {
anchorPosition : newAnchorPosition
} );
}
else if ( e.property === webvis.Property.ENABLED )
{
myContext.changeAnnotation( myAnnotationId, {
enabled : e.newValue === 1
} );
}
}, connectedNodeId, false));
// Listen to the removal of the connected Node and remove the annotation as well.
myContext.registerListener([webvis.EventType.NODE_REMOVED], (e : webvis.NodeRemovedEvent) =>
{
myContext.removeAnnotation( myAnnotationId );
}, connectedNodeId, false));
API Changes¶
The following list contain API additions, changes and removals which might be subject for migration efforts. Most alterations were performed to provide a more streamlined experience when working with the API and come only with minimal need for manual intervention from application developers.
ContextAPI
- clear
- createCircularArcDescriptor
- getShapeHandle
- measureBetween
- measureThickness
- requestAnnotationData
- requestServiceStates
- requestTopologyDescriptor
ViewerAPI
Events
Types
- AnnotationProperties
- BetweenMeasurementResult
- MeasurementTarget
- MeasurementTargetClassMap
- PointerInfo
- ThicknessMeasurementResult
- TopologyCircleDescriptor
- TopologyCircularArcDescriptor
- TopologyConeDescriptor
- TopologyCurveDescriptor
- TopologyCylinderDescriptor
- TopologyDescriptor
- TopologyDescriptorMap
- TopologyEdgeDescriptor
- TopologyEllipseDescriptor
- TopologyFaceDescriptor
- TopologyLineSegmentDescriptor
- TopologyLoopDescriptor
- TopologyPlanarFaceDescriptor
- TopologyShapeDescriptor
- TopologySphereDescriptor
- TopologyTorusDescriptor
-
IClickResultreplaced by PointerInfo
-
IPointerInforenamed to PointerInfo
-
ITopologyDataSelectorrenamed to TopologyHandle
Enums
- MeasurementTargetClass
- ServiceState
- ServiceStateCategory
- ServiceType
- TopologySubType
- ViewerInteractionLevel
- ViewerState
- ViewerStateCategory
- EntityType
- EventType
- SettingStrings
- ViewerSettingStrings
EntityType
- SHAPE
- VOID
EventType
SettingStrings
ViewerSettingStrings
- SSAO_ENABLED
- TAA_ENABLED
- RENDERSERVICE_CANVAS_RATIO