1.10.0 Change Notes
iModel.js will now perform smooth animations when changing between saved views, if possible. If the beginning and ending views are in the same direction but far apart, a zoom out then in path is followed to provide context. See ScreenViewport.animation for settings that control view animations.
Viewport.synchWithView previously accepted a
boolean argument indicating whether or not the changes should be saved in the undo buffer. It now alternatively accepts a ViewChangeOptions allowing further customization of its behavior, including whether and how to animate the transition.
IModelExporter, IModelTransformer, and IModelImporter are now beta and provide low-level functionality needed for iModel transformation and data exchange. See the iModel Transformation and Data Exchange article for more information.
Beta support for device pixel ratio was introduced in v1.9.0. 1.10.0 fixes a handful of bugs associated with this feature. In particular, device pixel ratio may vary between different Viewports. As a result, the previously free-standing APIs have moved to the Viewport class:
- Viewport.devicePixelRatio replaces
- Viewport.cssPixelsToDevicePixels replaces
Do not assume that
Viewport.devicePixelRatio will always return
- New walk tool LookAndMoveTool.
- Supports mouse look and keyboard (wasd) for movement.
- Touch screen control sticks for look and move.
- Improved responsiveness when using touch controls.
- Reduced CPU overhead associated with binding uniform shader program variables, resulting in up to 30% improvement in frames per second.
- Graphics for reality models and background maps load much more quickly and smoothly.
- BUG: matrix times matrix multipliers (multiplyMatrixMatrix, multiplyMatrixMatrixInverse, multiplyMatrixInverseMatrix, multiplyMatrixMatrixTranspose, multiplyMatrixTransposeMatrix) did not transfer inverse coefficient arrays into the product.
- When an existing result matrix marked "inverseStored" was supplied, the "inverseStored" marking persisted, but the product inverse coefficient matrix was not constructed
- When no result was supplied in the call, there were no problems.
- As corrected, all 5 multiplications construct inverse products when possible, and mark up appropriately.
CurveLocationDetaildata carrier has new optional members
fraction1= fractional position for end of coincident section
point= point at end of coincident section
detail.captureFraction1Point1 (f,xyz)directly captures (no clone) fraction and point.
- CurveLocationDetail.createCurveEvaluatedFractionFraction` constructor with 2 fractions.
detail.inverseInterpolateFraction (f, defaultLocalFraction)maps input fraction f to local fraction of the
fraction, fraction1interval of the detail.
detail.swapFractionsAndPoints ()swaps the
[fraction1, point1]values (if both defined)
matrixA.multiplyMatrixInverseMatrix(other: Matrix3d, result?: Matrix3d): Matrix3d | undefined
- intersect with [0,1] interval
- maintain current direction
- return false if empty after clip.
segment.reverseIfNeededForDeltaSign(sign?: number): void;`
- maintain endpoints, but reverse so direction corresponds to request.
Last Updated: 29 April, 2020