Releases: iTowns/itowns
Releases · iTowns/itowns
Release v2.6.1
v2.5.0
2.5.0 (2018-11-08)
Features
- core: add information properties in Layer and TiledGeometryLayer (daa57a7e)
- OrientedImageCamera: Camera extension for oriented images (56fc4a1)
- parser: Camera calibration parser (f8e7753)
Inside
- devDependencies Babel 7, webpack 4, Eslint 5
Bug Fixes
- controls: remove THREE warning (8364c7a)
- core: problem in runtime with bundle itowns and debug (f917be4)
- core: remove useless console.info in animation (b6a5329)
- core: wrong OBB from extent (d0aedf2)
- FirstPersonControl: It now supports Globe view. (1eae7fe)
- debug: error typo on obb properties (bb58aa7)
- doc: wrong camera utils parameter in documentation (dfab6ae)
- shaderUtils: use boundary delimiter in the regex (c62d9e0)
- source: always build an extent in FileSource (375375e)
- test: add node 10 build and remove node 11 build (11.0.0) for the moment (bcb1026)
- test: enhancement bootstrap and globeControls test (da7b75e)
- test: resolve fail test and cleanup boostrap (98ca430)
2.4.0
Resume
- Partial support mapbox vector tile.
- New architecture, add
ColorLayer,ElevationLayer,GeometryLayerandGeometryTiledLayer. With the will, attach the associated processes to them. - Add source data concept.
WMTS,WMS, they are considered sources. It's possible to combine all the types of layers (ColorLayer,GeometryLayer..) with any sources. - Fix and re-factorization of
GlobeControls. - Improved picking.
- Add hole support to geojson to mesh and option to create a unique mesh or a mesh by feature.
- Start support to oriented image. see example
Deprecated
createGlobeLayeris deprecated, use theGlobeLayerclass instead.createPanoramaLayeris deprecated, use thePanoramaLayerclass instead.GlobeControls.getCameraTargetGeoPositionhas been deprecated, useGlobeControls.getLookAtCoordinate.GlobeControls.setCameraTargetGeoPositionhas been deprecated, useGlobeControls.lookAtCoordinate.GlobeControls.setCameraTargetGeoPositionAdvancedhas been deprecated, useGlobeControls.lookAtCoordinateGlobeControls.setOrbitalPositionhas been deprecated, useGlobeControls.lookAtCoordinate
BREAKING CHANGES
- core
GlobeControls.moveTargetis removed useGlobeControls.getCameraTargetPositioninstead. - core: The providers
RasterProvider,StaticProvider,TMSProvider,WFSProvider,WMSProviderandWMTSProviderare replaced byDataSourceProvider. You must add source option in your layer. see json layer files. - gis:
ellipsoidSizesfromCoordinatesis no longer a function but an object. - Core: Before this change,
view.addLayerwas throwing some errors directly in
some cases, and rejecting the promise in others. This replaces the
former for the latter in all cases. If you relied on a try/catch block
surroundingview.addLayerto catch some undocumented errors, you need
to move your error handling code to your promise rejection handler. - core: this modify the signature of all picking functions.
- core: the signature of
Fetcher.texturehas changed, and only return a promise now, instead of an object containing the texture and the promise. - core:
c3DEngine.renderViewTobufferhas been renamedrenderViewToBuffer
and has a new signature. - core: change
view.notifyChangesignature and semantics - vector:
GeoJSONParsernow returns a Promise - core:
layer.options.mimetypeis removed in favor oflayer.format. - core: a Provider needs to return a Promise every time after
calling itsexecuteCommandfunction. - core: Feature have on array of number to store the coordinates instead of array of
Coordinates. - core: Upgrade to THREE v97.
- examples: picking WFS (Geometry or color) changes see examples FeatureToolTip and wfs picking.
Features
- controls: make event listeners opt-out for FirstPersonControls (5f20af6)
- core: add a 'radius' parameter to picking methods (4b45651)
- core: add a Cache system with expiration policy (cbf248a), closes #687
- core: add a new
VIEW.LAYERS_INITIALIZEDevent (e5ccfbb) - core: add vector tile loading (6411908)
- core: implement layer priorities (985d051)
- core: move url function outside providers (3aef9ca), closes #182
- core: store Layer instead of layer's id (7a93779)
- core: unify tilelayer in globeViewer, planarViewer and panoramaViewer (1e08030)
- core: update to THREE v97 (fa81c64)
- examples: add a loading screen for examples (7428478)
- panorama: add projection type constant #677 (b94ae1a)
- parser: add partial z support for geojson parsing (f0835f3), closes /tools.ietf.org/html/rfc7946#section-9
- pointclouds: use 'changeSource' mechanism to avoid useless work (b67670a)
- pointclouds: compute extent for pointclouds elements (#793) (a2f5950)
- protocols: add Source (b04e83b)
- protocols: add spatial hashing to StaticProvider (#675) (d4ec447)
- renderer: add default background color to texture (01035ac)
Code Refactoring
- core: change the return value of Fetcher.texture (592e8f8)
- core: change
view.notifyChangesemantics (881013d), closes #4 - core: improve render view to buffer / target functions (1b07ea6)
- core: remove unused condition in Scheduler (43b76ef)
- core: Harmonize the mimetype configuration (#597) (b38aa7b)
- gis: change ellipsoidSizes from function to object (f681060)
- vector: add hole support (a212dde), closes #688
Performance Improvements
- protocols: decrease the count of network fetch image/xbil (b891a81)
- protocols: improve performance in geojson parser
- protocols: improve performance to convert feature to mesh or texture
- renderer: stop creating new vector for each feature (#713) (b426336)
Bug Fixes
- 3dtiles: apply matrixWorld to boundingVolume.box (7ae39eb)
- 3dtiles: dont stop subdivision at tileset boundaries (bbf0a9b)
- 3dtiles: fix pnts loading (c091b0d)
- 3dtiles: simplify 3dtiles layer creation (ce9191c)
- badge: fix typo for coverage badge (5319066)
- chore: fix package_lock.json (152ac73)
- chore: tag eslint config as root (f75aed9)
- Coordinates: Concerning coordinate conversions, this commit fixes two bugs: (f3ce0fa)
- core: assign the correct layer property (73f3592), closes #758
- core: assume min level is 0 if not provided for dichotomy strategy (c9c93eb)
- core: avoid clone vector to convert coordinate (06e3313)
- core: Cache return mesh with null geometry (d1ba731), closes #869
- core: chain animations stops after the first animation (d75ca7d)
- core: compute globe fog distance after camera update (d65d4e6)
- core: correct typo in event's name (97f1000)
- core: delay FrameRequesters deletion to avoid breaking updates (139156d)
- core: fix wrong 3dtiles's OBB using BuilderEllipsoidTile (ca6daf1), closes #656
- core: fix wrong cachekey value equal to NaN in geometry building (8414a5d)
- core: force the use of decimal notation in protocol requests (ed4d001)
- core: make sure PlanarControls call notifyChange when needed (2989aea), closes #776
- core: make sure VIEW_EVENTS.LAYERS_INITIALIZED if fired (1cb2fa1)
- core: pass GlobeView options to GlobeLayer (dcb4830)
- core: remove correctly event listener after...
2.3.0
Breaking change
- The geodesic normal in the center of the tile's geometry is aligned with the mesh's local Z axis.
Previously, the tiles were not oriented. their local landmark had the same orientation as the world landmark.
You must take into account the orientation of the tile if you add objects to this tile. - For OSM color layers, user should use the
xyzprotocol instead oftms(reserved for "real" TMS layers, the difference between the 2 is the y origin) - update to major release THREE v0.89
Features
- 3dtiles
- add wireframe support for 3dTiles layer, and add wireframe checkbox to 3dTilesDebugUI, visible in the 3dTiles example (1a0d632)
- core
- examples
- add gui debug in planar in debug mode only (ccfede0)
- wfs
- Add a debug UI for geometry layer, to change visibility, opacity and toggle wireframe, material size and material linewith (89a05ef)
Performance Improvements
- core
- reduce to obb's highest points for horizon culling (2073699)
- examples
- geometry
- avoid useless computation for elevation layers (eece915)
- protocols
- increase performance to building features (4201967)
Bug Fixes
- 3dtiles
- controls
- core
- blending with premultiplied color to transparent color layer (b8062a3)
- disable logdepthbuffer if EXT_frag_depth is missing (eb6da6d)
- error to update OBBHelper (58ef581)
- fix wrong calculation of the color of the sky (77c19ef), closes #652
- handle near pos. in box3 visibility functions (628eeb3)
- marked dependency is insecure version (b7c222f)
- Prevent to subdivide for poor elevation level (60dccb5)
- use parent extent transformation to compute tile's transformation (84f45ca), closes #668 #642
- wrong building 3dTiles's OBB (20c9a90)
- examples
- gis
- GlobeControls
- minor debug (db99ec1)
- protocols
- wfs
- use bigger integer data type for indices array, for THREE.LineSegments. (133a85b)
2.2.0
2.2.0 (2017-12-15)
Breaking change
- view.addFrameRequester signature changed, you now need to specify a hook point
when registering them. The old behaviour is achieved with MAIN_LOOP_EVENTS.AFTER_CAMERA_UPDATE hook point (seeMainLoop.js).
So for instance, you should transform the following calls:
view.addFrameRequester(myFunc)-> view.addFrameRequester('after-camera-update', myFunc)
view.addFrameRequester(myObj) -> view.addFrameRequester('after-camera-update', myObj.update.bind(myObj)).
Note that we no more support object with update function, as it does not really make sense any more with several hook points).
See MainLoop.js for the full list of available hook points.
three.jsandproj4are now peer dependencies of the npm package. If you are not using the itowns.js bundle, you need to add them to your package.json's dependencies.
v2.1.0
Here is a somewhat complete changelog:
Core:
- FrameRequester: module can now be notified at each animation frame.
- Ability to reproject extent via
Extent.as DEMUtils, set of utility to read elevations
Format and protocol support
- Point clouds from potree converter
- 3dTiles: support for batch table, pnts and b3dm RTC.
- WFS/geojson
- GPX support greatly improved
- Add a provider that generates 2D texture from vector datas (geojson, gpx and kml)
Layers:
- options.zoom now takes precedence over configured tileMatrixSetLimits
- It's now possible to specify another Object3D than scene to geometry layers to use when adding children.
- add
GeometryLayer.postUpdatemethod - Some helpers to ease the creation of planar and globe geometry have been added
- Child layer now use parent's extent if it doesn't have one already
Controls:
Some new control examples:
- PlanarControls
- FlyControls
- FirstPersonControls
It's now possible to instanciate the globe without using GlobeControls
Examples
In addition of examples for new protocol and format, here are the new showcases:
- Mini-viewer for globe.html
- Cube with elevation and color layers (cubic_planar.html)
- A THREE mesh in an itowns scene (positionGlobe.html)
- Splitted rendering (split.html)
Others
- Countless bug fixes.
- update THREE to 0.87