3.10.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.9.0). This document provides both a general overview of the required updates and a detailed list of API changes.
Data Gateways and Datapools#
This version of instant3Dhub introduces the Datapool concept to streamline and unify how instant3Dhub retrieves and authorizes data. If you have used data gateways before, only minor modifications to your helm deployment variables will be necessary. This change generalizes how data sources are configured and provides greater flexibility for data storage already available through a URL that requires additional configuration.
Example of a configuration for instant3Dhub < 3.10.0
dataGateways:
customerGateway1:
- namespace: customer
specifier: document-uuid
urlContentType:
- "openjt"
urlTemplate: https://download.example.com/documents/$(1).jt
authUrlTemplate: https://auth.example.com/documents/$(1).jt
forwardHeaders: [ "Authorization" ]
forwardCookies: [ "SessionID" ]
The migrated configuration would look like this for instant3Dhub >= 3.10
datapools:
- urn: urn:customer:document-uuid
urlContentType:
- "openjt"
urlTemplate: https://download.example.com/documents/${1}.jt
authUrlTemplate: https://auth.example.com/documents/${1}.jt
forwardHeaders: [ "Authorization" ]
forwardCookies: [ "SessionID" ]
For further information, please consult the URN Mapper Configuration
or the values.yaml
in the product repository.
Reality API Refactoring#
This version introduces a rework of the experimental RealityAPI. It provides a new, cleaner way to control any AR-related webvis feature. Furthermore, it opens the door for implementing further AR features in webvis.
In earlier versions, the entry point to any webvis AR functionality was the connectXRSession method. It has now been replaced by the more powerful connectXR function. It allows the API user to pass on an XRConfiguration, which can be used to specify exactly which AR functionalities should be used during an XR session. Furthermore, there exists now a disconnectXR method to properly disconnect from a running XR session.
An important change to the old version is the removal of the XR members. This is most obviously reflected in the names of some methods, such as enterXRMemberInitMode(xrMemberId) -> enterXRInitMode(). As the XR members represent a redundant concept, this reduces the complexity of applications based on the RealityAPI and improves the user experience.
XR Playback API#
As part of the refactoring of the RealityAPI, the closely linked XR Playback API was also officially introduced in this version.
With the XR Playback API, pre-recorded frame sequences can be played back anywhere, removing the need to visit the physical location for each test iteration. The recordings can be used to test new features easily or increase development iteration speed without the need of having a physical device available.
Dynamic Clip Plane#
The ViewerAPI offers a flexible dynamic clip plane feature that enables users to selectively hide or reveal portions of the scene by placing a virtual clipping plane in front of the camera at a fixed distance. This functionality can be customized using three distinct settings: ViewerSettingString.DYNAMIC_CLIPPING_ENABLED, ViewerSettingString.DYNAMIC_CLIPPING_DISTANCE, and ViewerSettingString.MAX_DYNAMIC_CLIP_DIST. Previously, these settings were hardcoded within our core library, often resulting in unpredictable behavior for app developers. In this version, we’ve relocated the associated logic behind these settings from the core library to our related UI component. This maintains the original behavior when using our UI component while granting app developers complete control over the functionality for those seeking to create a more tailored user experience.
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
- anchorXR
- connectXR
- disconnectXR
- enterXRInitMode
- getXRCapabilities
- getXRPlaybackProperties
- getXRPlaybackState
- getXRState
- hideXRBackgroundFeed
- requestHubVersion
- requestXRDeviceScreenshot
- seekXRPlayback
- setXRPlaybackBoomerang
- setXRPlaybackFrameRange
- setXRPlaybackSource
- setXRPlaybackSpeed
- showXRBackgroundFeed
- startXRPlayback
- startXRSpectate
- stopXRPlayback
- stopXRSpectate
- unanchorXR
-
connectXRSessionreplaced by connectXR
-
enterXRMemberInitModereplaced by enterXRInitMode
-
fixateXRMemberreplaced by anchorXR
-
getXRMemberInforeplaced by getXRState
-
getXRMemberStatereplaced by getXRState
-
requestXMemberCapabilitiesreplaced by getXRCapabilities
-
setXRFusionModereplaced by SettingStrings.XR_FUSION_MODE
-
setXRMemberSettingsreplaced by SettingStrings
-
startXRMemberSpectatereplaced by startXRSpectate
-
stopXRMemberSpectatereplaced by stopXRSpectate
-
unfixateXRMemberreplaced by unanchorXR
- exitXRMemberInitMode
- getXRSessionState
- resetAR
- showExpertDialog
- startAR
- stopAR
ViewerAPI
- destroy
Events
- XRModelTrackerEdgeImgReceivedEvent
- XRModelTrackerInfoReceivedEvent
- XRPlaybackStateChangedEvent
- XRSpectateStartedEvent
- XRSpectateStoppedEvent
- XRStateChangedEvent
-
XRMemberModelTrackerEdgeImgReceivedEventreplaced by XRModelTrackerEdgeImgReceivedEvent
-
XRMemberModelTrackerInfoReceivedEventreplaced by XRModelTrackerInfoReceivedEvent
-
XRMemberStateChangedEventreplaced by XRStateChangedEvent
- XRMemberCapabilitiesChangedEvent
- XRSessionStateChangedEvent
Functions
Types
- XRConfiguration
- XRImage
- XRImageSourceConfig
- XRModelTrackerInfo
- XRPlaybackProperties
- XRPlaybackState
- XRState
Enums
- XRCapability
- XRImageResolutionProfile
- XRImageSource
- XRModelTrackingPhase
- XRModelTrackingState
- XRWorldMappingStatus
-
ModelTrackingStatereplaced by XRModelTrackingPhase
-
WorldMappingStatusreplaced by XRWorldMappingStatus
-
XRCapabilitiesreplaced by XRCapability
- EventType
- NavigationMode
- Property
- SettingStrings
- ViewerSettingStrings
- ModelTrackerConnectionState
- StreamConnectionState
- XRSessionConnectionState
- XRState
EventType
- XR_MODELTRACKER_EDGEIMG_RECEIVED
- XR_MODELTRACKER_INFO_RECEIVED
- XR_PLAYBACK_STATE_CHANGED
- XR_SETTINGS_CHANGED
- XR_SPECTATE_STARTED
- XR_SPECTATE_STOPPED
- XR_STATE_CHANGED
-
XR_MEMBER_MODELTRACKER_EDGEIMG_RECEIVEDreplaced by XR_MODELTRACKER_EDGEIMG_RECEIVED
-
XR_MEMBER_MODELTRACKER_INFO_RECEIVEDreplaced by XR_MODELTRACKER_INFO_RECEIVED
-
XR_MEMBER_STATE_CHANGEDreplaced by XR_STATE_CHANGED
- XR_MEMBER_CAPABILITIES_CHANGED
- XR_SESSION_STATE_CHANGED
NavigationMode
Property
SettingStrings
- XR_ENABLE_DEBUG_IMAGES
- XR_FUSION_MODE
- XR_IMAGE_COMPRESSION_QUALITY
- XR_IMAGE_RESOLUTION_PROFILE
- XR_MODEL_TRACKER_QUALITY_THRESHOLD
- XR_MODEL_TRACKER_SMOOTHING_FACTOR
- SLAM_PROVIDER_TYPE
- XR_ENABLED