Skip to content

Releases: iTwin/itwinjs-core

v4.1.6

12 Sep 15:40
Compare
Choose a tag to compare

Release notes

Changes

  • Allow creation of cross-origin workers (backport #5940) [release/4.1.x] (#5974)

Full changelog: 4.1.5...4.1.6

v4.1.5

08 Sep 13:38
Compare
Choose a tag to compare

Release notes

Changes

  • Presentation: Fix Presentation RPC throwing on multiple repeated requests (backport #5957) [release/4.1.x] (#5958)

Full changelog: 4.1.4...4.1.5

v4.1.4

07 Sep 18:27
Compare
Choose a tag to compare

Release notes

Changes

  • docs - upgrade bemetalsmith to 5.1.x (backport #5913) [release/4.1.x] (#5927)
  • Update web viewer tutorial to include two extra scopes (backport #5875) [release/4.1.x] (#5928)
  • Fix AppUI Learning toolbar documentation (backport #5945) [release/4.1.x] (#5946)
  • fix finalize release 4.1.x (#5944)
  • Don't prefetch v2 checkpoints twice, check first if one is already ongoing. (backport #5900) [release/4.1.x] (#5916)
  • Restart default txn on v2 checkpoints after 10 minutes of inactivity (backport #5847) [release/4.1.x] (#5950)

Full changelog: 4.1.3...4.1.4

v4.1.3

30 Aug 15:36
Compare
Choose a tag to compare

Release notes

Changes

  • @bentley/imodeljs-native 4.1.10 (#5922)
  • fix finalize release errors (#5908)

Full changelog: 4.1.2...4.1.3

v4.1.2

23 Aug 15:26
Compare
Choose a tag to compare

Release notes

Changes

  • Update gather-docs.yaml (#5888)
  • fix withOpenTelemetry (backport #5905) [release/4.1.x] (#5906)
  • use PagedIterator in TileStorage.listCachedTiles (backport #5749) [release/4.1.x] (#5887)

Full changelog: 4.1.1...4.1.2

v4.1.1

18 Aug 13:03
Compare
Choose a tag to compare

Release notes

Changes

  • 4.0.7 changelogs (#5857)
  • 3.7.12 & 3.7.13 Changelogs (#5866)
  • Bringing devtoolModuleFilenameTemplate in line with webpack documentation. (backport #5845) [release/4.1.x] (#5873)
  • Code trim behaviors (#5861)
  • remove new APIs from backport
  • Revert "remove new APIs from backport"
  • internalize new api
  • rush change
  • re-extract api
  • Update common/changes/@itwin/core-backend/mergify-bp-release-4.1.x-pr-5861_2023-08-17-16-46.json
  • Fix OOM in linux CI due to vite memory usage (#5852)
  • cherry-pick VITE_CI part of #5870 to prevent OOM
  • fix using old CI variable that doesn't exist in az pipelines
  • update new addon
  • rush update
  • Code trim behaviors (backport #5861) [release/4.1.x] (#5882)

Full changelog: 4.1.0...4.1.1

v4.1.0

14 Aug 14:37
Compare
Choose a tag to compare

4.1.0 Change Notes

Table of contents:

Snapping within view attachments

SheetViewDefinitions can include the contents of other views by way of ViewAttachments. It has always been possible to locate and interact with elements inside of a view attachment, but now you can also snap to their geometry while doing so. This is useful, for example, for measuring distances between elements inside of the attachment. Additionally, when locating elements on a sheet - whether or not snapping is enabled - information about the view attachment is included.

When a locate operation identifies an element inside of a view attachment, the attachment's element Id can be obtained via HitDetail.viewAttachment. If you are using Viewport.readPixels, the Id will be included in Pixel.Data. All world coordinates (e.g., HitDetail.hitPoint) will be in the sheet model's coordinate space. You can pass the attachment Id to ViewState.computeDisplayTransform to obtain the Transform from the view attachment's coordinate space to the sheet.

Note: most view attachments are two-dimensional drawings or orthographic spatial views. Attachments of perspective (camera) views do not support locating elements inside them, nor snapping to them.

Display

Tile decoding in workers

Producing a responsive web app requires limiting the amount of JavaScript code executing on the main thread. To that end, we have moved decoding of tile content to a worker. This helps to reduce stutter when loading a large number of tiles. We plan to move more code to workers in upcoming releases.

Smaller edge encoding

When rendering the contents of a view with edge display enabled, special tiles are requested that encode the edge geometry in addition to the surfaces. A tile containing edges can be many times bigger than the same tile containing only surfaces. iTwin.js 4.1 introduces a new encoding scheme that reduces that size difference by an order of magnitude. Previously, the average tile containing edges weighed 73% more than the corresponding tile without edges; now, the average difference is only 6.7%. This reduces tile transmission times and memory usage when edge display is enabled.

glTF point clouds

The newest evolution of the 3D Tiles specification introduces a streamlined way to represent point clouds using glTF, deprecating the previous "PNTS" tile format. As part of our efforts to align the iTwin platform with open web standards, iTwin.js now supports decoding and displaying point clouds encoded this way.

Presentation

Renderer, editor and category on calculated properties

Previously, the calculated properties specification only allowed specifying property label and value. Now the specification has an ability to assign renderer, editor and category to calculated properties.

Class property categories under custom categories

Now when moving property into a different category using categoryId, IdCategoryIdentifier has a new attribute createClassCategory which specifies whether an additional class category should be created under the category pointed to by the IdCategoryIdentifier.categoryId or not. See property categorization for more details.

Electron 25 support

In addition to already supported Electron versions, iTwin.js now supports Electron 25.

Geometry

Sweeping a section to a sequence of planes

A new method CurveFactory.createMiteredSweepSections moves a section "along" a polyline path; at each vertex the section projects to the plane containing the inbound and outbound edges' bisector.

Here are two examples of sections moving along a (red) path. The first section is a stepped polyline with rounded corners. The second section is a "stadium" shape.

createMiteredSweepSectionsSections

Here are those result sections assembled into RuledSweep solids and then faceted as meshes, illustrating optional output controlled by MiteredSweepOptions.outputSelect.

createMiteredSweepSectionsAsSurfaceAndMesh

New constructors

Swept surface constructions

The constructors for swept surfaces (LinearSweep, RotationalSweep, RuledSweep) now allow CurvePrimitive input. Internally, the curve is promoted to a CurveChain with one member.

Sweeping a linestring to facets

New method PolyfaceQuery.sweepLineStringToFacets provides new options to specify (a) sweep direction other than vertical, (b) limiting output to forward facing, side facing, and/or rear facing facets, and (c) assembly of output segments into chains.

In the first example, a mesh with an upward facing main surface has smaller vertical sides and a small downward facing flange at the bottom of the side right face. The red linestring is above the mesh. The red linestring is swept downward (along dashed lines), intersecting the mesh. On the left all cut lines are gathered as a single output (orange). On the right the forward, side, and rear facing parts are separated as green, blue, and magenta.

sweepLineStringToFacetsExampleIso

In the second example, the same red linestring is swept to the same facets but along a non-vertical direction.

sweepLineStringToFacetsExampleIso

New method PolyfaceQuery.sweepLineStringToFacetsXY performs the same sweep along the z-axis, optimized around a 2D range search object which the caller supplies. The search object must support the queries in the interface Range2dSearchInterface and be constructed from facet ranges tagged with Polyface read index.

Map Layers

Map Feature Info

The [Viewport.getMapFeatu...

Read more

v4.0.7

10 Aug 13:20
Compare
Choose a tag to compare

Release notes

Changes

Full changelog: 4.0.6...4.0.7

v3.7.13

08 Aug 19:50
Compare
Choose a tag to compare

Release notes

Changes

  • Migrate from using itwin/projects-client to itwin/itwins-client api (backport #5827) [release/3.7.x] (#5830)
  • @bentley/imodeljs-native 3.7.3 (#5826)

Full changelog: 3.7.12...3.7.13

v3.7.12

27 Jul 21:51
Compare
Choose a tag to compare

Release notes

Changes

  • Fix Draco Texture issue (backport #5760) [release/3.7.x] (#5786)
  • Handle trailing bytes after binary glTF chunk (#5792)

Full changelog: 3.7.11...3.7.12