-
Notifications
You must be signed in to change notification settings - Fork 315
[Demo] added an end-user oriented demonstration of itowns capabilities #2653
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
I would not be able to do a review until new year's eve (vacation time :D), @alavenant @Calvina24 could you review the functionality of this PR and dispatch the technical part to a member of the team? |
|
@Nynjin I saw that there is a 10mB binary file in the changes, would it be possible to remove it from the commits and host it elsewhere to not pollute the main itowns repository? We usually use itowns2-sample-data for the datasets. |
Got it thanks, I uploaded my models there and made a PR. |
1b4a570 to
1c434dd
Compare
camera movement between scene coordinates, layers removal/additions, onEnter/onExit for extra properties
- instead of removing / readding same layers which is bug-prone, don't remove and just toggle visibility - added heading to scenes to ensure camera ends up in the right spot
…age shared layers between multiple scenes
…oordinate projection - onCreate promise for scene first instantiation to set ready state - onEnter for each entry in scene - Scenes manage their layers to handle dependencies, transitionToScene only manages visibility - better ImmersiveView types
…fit specification with same pov and shared layers
added PointCloudView with PlanarControls, fixed default camera position for ImmersiveView + added IgnMnt elevation layer where missing
fixed empty UI on first scene, UI updates before camera transition now + navigation buttons now have fixed position regardless of text
Transition now uses camera's coordinates instead of current scene coordinates + avoid unecessary unzoom step when next scene's position is already further away that computed minimal distance for transition
PlanarView requires extent in constructor so instead of singleton like other views, there is one instance per extent
added custom type to encapsulate all currently required itowns layer types to avoid ts error
updated scene transition to avoid displaying current scene's layers and next scene's layers at the same time minor fix on gui transition to remove elevation and geoid layers as well
- removed unecessary ambiant lights - added atmosphere removal for scenes that do not require it with transition based on scene ranges
- refactor required to make layer promises and cache accessible to hard reset method by turning layers to objects with layerRepository - added clearInstance method to View in order to remove viewerDiv, dispose view and delete instance - moved sceneRepository outside of index.html to make it accessible - refactor on some types and scene names to make it clearer
…lobe instead of travel time and boolean
- prevent reset while doing scene transition - bypass view dispose error if possible
- use Globe3dScene as transition between scenes with its layers visible - prevent actions during scene transition
- replaced IGN_MNT elevation layer by WORLD_DTM
- prevent moveCameraTo if not a globe view - reset transition scene as well
…turedMeshes scene
- display informations about an element from a tracked layer - each LayerPromise manages how their info are extracted/structured with getPickingInfo
- switch between color and classification render with buttons
- filter registered layers by visibility before feature picking
- made FeaturePickerService's blockEvents method a global utils so PointCloudScene's UI can use it - check skymanager's existence and enabled property before define
- use custom type to add skymanager to view
- Added "itowns" as a dependency in the demo's package.json - Refactored modules with index.ts exports for each namespace - Removed LayerRepository and replaced its usage with direct layer imports - Updated the webpack configuration to support the demo example
|
Thanks for the work. The transition from one demo to another is smooth and enjoyable. I suggest to put the "go local" next to "bring your data to life". In "Feel the Relief", you could also talk about the ortho-images. "go local" : unzoom so that we can fully appreciate the scene as a whole Why not add a view "combine your data" with lidar, 3D objects, buildings, bim, ... ? |
Thank you for you feedback. I did consider putting "go local" before "bring your data to life" but having a planar view right in the middle of globe views looks a bit off, that's mostly why planar and street views are at the very end. And when it comes to combining the data, it's an interesting idea but I'd have to check how it holds up performance-wise since clicking directly on that scene would attempt to instantiate all of these elements at the same time. |
Description
This pull request introduces a new demonstration example for iTowns, adding a complete demo application under
examples/demo, integrated amongst the other Itowns examples under the sectionDemo.This demo section features multiple self-contained scenes with navigation, camera transitions, and layer management (visibility, controls, feature picking, recreation of view and layers from scratch, ...).
The
examples/demopackage can be described as such :Motivation and Context
iTowns currently provides an unstructured collection of examples that are mainly designed for developers and are kind of tutorials in the end. This PR adds an end-user oriented demonstration of main iTowns features.
See related issue.
Environment
Screenshots
Itowns.demo.mp4
Open questions / TODO