Extensions:

A lot of existing viewer functionality has been transferred over to modular Extensions. In order to continue to make use of this functionality, the viewer clients now need to explicitly enable extensions by calling createExtension with the extension’s constructor as the argument. For example, the complete functionality set requires all the extensions enabled.

const cameraController = this.createExtension(CameraController);
const selection = this.createExtension(LegacySelectionExtension);
const sections = this.createExtension(SectionTool);
const sectionOutlines = this.createExtension(SectionOutlines);
const measurements = this.createExtension(MeasurementsExtension);
const filtering = this.createExtension(FilteringExtension);
const explodeExtension = this.createExtension(ExplodeExtension);
const diffExtension = this.createExtension(DiffExtension);

General:

  • ViewerParamsno longer has a keepGeometryData property. Redundant geometry data is by default removed and cannot be kept
  • SectionBoxChanged and SectionBoxUpdated removed from ViewerEvent and replaced by SectionToolEvent.Updated in SectionTool extension
  • SelectionEvent.hits changed to Array<{node: TreeNode, point: Vector3}>
  • requestRender from Viewer now takes optional UpdateFlags
  • getObjects removed from Viewer. Similar functionality exists with getObject in SpeckleRenderer
  • explode removed from Viewer and replaced by having an ExplodeExtension active. Explode time is now controller via setExplode in ExplodeExtension
  • getDataTree and DataTree type still exist, but are deprecated and will be soon removed completely. Any functionality can now be replicated with WorldTree
  • cameraHandler removed from Viewer and replaced by controls accessor in CameraController.

Section Box:

  • setSectionBox removed from Viewer and replaced by setBox inSectionTool
  • getSectionBoxFromObjects removed from Viewer and replaced by boxFromObjects from SpeckleRenderer
  • getCurrentSectionBox removed from Viewer and replace by getCurrentBox inSectionTool
  • toggleSectionBox removed from Viewer and replaced by toggle in SectionTool
  • sectionBoxOff and sectionBoxOn removed from Viewer and replaced by the enabled accessor in SectionTool

Camera:

  • zoom removed from Viewer and replaced by setCameraView in CameraController extension
  • toggleCameraProjection removed from Viewer and replaced by toggleCameras in CameraController extension
  • setView removed from Viewer and replaced by setCameraView in CameraController extension
  • loadObject signature changed to loadObject(loader: Loader, zoomToObject?: boolean) and it’s now asynchronous
  • loadObjectAsync removed from Viewer

Diffing:

  • diff removed from Viewer and replaced by diff in DiffExtension
  • undiff removed from Viewer and replaced by undiff in DiffExtension
  • setDiffTime and setVisualDiffMode removed from Viewer and replaced by updateVisualDiff in DiffExtension

Filtering and Selection:

  • applyFilter removed from Viewer
  • getObjectProperties is now asynchronous
  • showObjects and hideObjects are removed from Viewer and moved to FilteringExtension
  • isolateObjects and unIsolateObjects are removed from Viewer and moved to FilterinExtension
  • selectObjects is removed from Viewer and replaced by selectObjects in SelectionExtension
  • resetSelection is removed from Viewer and replaced by clearSelection in SelectionExtension
  • highlightObjects and resetHighlight are removed from Viewer
  • setColorFilter ans removeColorFilter are removed from Viewer and replaced by setColorFilterand removeColorFilter in FilteringExtension
  • setUserObjectColors is remove from Viewer and replaced by setUserObjectColors in SelectionExtension but usage is discouraged since paradigm no longer applies
  • resetFilters is removed from Viewer and replaced by resetFilters in SelectionExtension

Measurements:

  • enableMeasurements removed from Viewer and replaced by having a MeasurementsExtension active and it’s enabled accessor set
  • setMeasurementOptions removed from Viewer and replaced by the options accessor in MeasurementsExtension
  • removeMeasurement removed from Viewer and replaced by removeMeasurement in MeasurementsExtension