* chore(viewer-lib): testing numbers
* feat(viewer-lib): Implemented a way to compute the projected pixxel difference between fp32 and fp64 as it would happen on the GPU. With this we can determine which streams need RTE
* feata(viewer-lib): Proper precision loss detection
* feat(viewer-lib): Removed default 'USE_RTE' defines from all non instanced mesh materials. Updated standard shader to compile and work properly in non RTE mode
* fix(viewer-lib): non-RTE vertex transform also takes pivot into account
* feat(viewer-lib): All required vertex programs now have proper non-RT vertex and shadow transformation pipelines
* feat(viewer-lib): Mesh batch determines if it needs RTE on it's own
* feat(viewer-lib): Shadowmap now also renders properly with selective RTE
* feat(viewer-lib): Instanced batches no longer use RTE regardless of the RTE need source
* feat(viewer-lib): Lines now have no RTE by default and it's only enabled on demand by the batch when required
* feat(viewer-lib): Points and point clouds no longer use RTE by default. It's enabled on demand
* feat(viewer-lib): WIP on area measurement
* feat(viewer-lib): WIP on area measurement. Basics are working. Needs more bling
* feat(viewer-lib): Implemented polygon triangulation for measured area
* chore(shared): Updated MeasurementType
* Add Area control to measure panel
* feat(viewer-lib): Real time updates of the fill polygon and area value
* feat(viewer-lib): Added pole of innacessibility as area label anchor using the polylabel libraryh
* feat(viewer-lib): Fixed fill polygon material
* feat(viewer-lib): Changed the surface normal indicator from the faulty disc to a outlined rectangle. Looks and works much better now
* fix(viewer-lib): Measurements get clipped by sections planes
* faet(viewer-lib): Measurements can now optionally define their own snapping method. Area measurement snaps to first point in screen space. Generic vertex snap still applies if enabled
* fix(viewer-lib): Forgot to project the measured point
* feat(viewer-lib): Double click auto-finishes the area measurmenet by instantly joining with the first point. Right clikc removes current area measurement point so you can 'undo'
* fix(viewer-lib: Fixed a stupid bug relatedto text because somebody thought that making it 'async' would be sooooo cool...
* fix(frontend): Prevent zoom on double click when using area measurement
* chore(viewer-lib): Refined and fomralized a bit now that the general idea of a measurement has got more complex
* chore(viewer-lib): Moved state switching a bit
* chore(viewer-lib): Replaced the old disc normal indicator with the new one and made it standard. Added an option to the gizmo's style that determines the pixels size of the normal indicator
* chore(viewer-lib): Documented the area measurement tool
* chore(viewer-lib): Some updates:
- Implemented proper bounds getter for area measurement
- Got rid of the static vector buffers in Measurement and replaced them with consts where needed
- Reduced the min click timing from 250ms to 150ms
- Other small adjustments
* feat(viewer-lib): Added the option to chain measurements
* chore(frontend-2): Added toggle for measurement chaining
* chore(viewer-lib): Perpendicular measurement chaining now align on the same line as requested
* feat(viewer-lib): Implemented point (coordinate) measurement:
- Added support for billboard offseting in NDC in the shader via vec2 offset uniform. Not a dream come true, but required mostly because of how troika works
- SpeckleText background now follows text anchoring
- Implemented new POINT measurement type
* chore(viewer-lib): Separated label position calculation. We now update only the label transform each frame, instead of updating the entire label redunantly
* chore(viewer-lib): Offsets are now constants. Removed redundant vector and matrix creation
* chore(frontend-2): Placeholder radio button for point measurement type. Fixed compile errors
* fix(viewer-lib): Fixes WEB-3105. Export all measurement types
* updated icons
* Update description
---------
Co-authored-by: andrewwallacespeckle <andrew@speckle.systems>
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
* feat(fileimport-service): add next gen file importer
* feat(fileimports): integrate server and fileimporter
* chore(dui3): remove leftover artifacts
* fix(server): test typing fixes
* fix(fileimports): test and pr comment fixes
* feat(fileimports: moare test fixes
* fix(fileimports): tests and yarn dedupe
* feat(full-stack): handle v2 automation result schema in the app
* fix(automate): lost length in merge
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems>
* feat(workspaces): enable toggle for auto-join discoverable workspaces
* fix(workspaces): include auto-join flag on LimitedWorkspace
* chore(workspaces): gqlgen
* feat(viewer-sandbox): Made a sandbox function that will only invoke the object-loader loading objects
* first pass of creating an objectloader2
* updated build + added vitest
* try to get viewer sandbox to use new code
* sandbox type fix
* refactor a bit
* can download root
* intermediate commit for downloader/caching queue
* can download stuff!
* refactor files
* intro isBase and fix isString
* move single download to downloader
* fix download
* PR feedback
* some intermediate commit
* do clean up and download better
* clean up promises and linting
* can generate values while downloading and caching
* add a finish method
* remove unused functions
* remove asBase
* add temporary docs
* add more docs with mermaid
* add more test models
* add response validation
* add tests and redo options
* add test for download batch
* fix downloader tests and change Item to have clearer Base items
* add tests and refactor a little
* use fetch in downloader as an option
* use optional in-memory indexdb instead of monkey patching the global one
* more refactors for options for objectloader2
* add tests for objectloader2
* adjust single download
* benchmark loading and adjust ol2 batches
* download more!
* adjust to use hash privates
* refactored again with renaming
* cleanup
* make setupCacheDb throw instead
* use BatchedPool for downloads!
* fix tests
* adjust timings and add adaptive waiting
* Only wait if queue wasn't empty and queue size was full
* fix tests
* fix file names and some private usage
* fix interval and private usage
* rename vars
* use params for methods
* fix params for constructors and tests
* fix params for constructors and tests again
* using dexie
* faster settings but doesn't end well
* fixed end, optimized and removed logs
* fix tests
* fix types?
* update lock with WSL
* add e2e small model test
* fix/update yarn.lock
* Remove unused eslint ignore to fix pre-commit
* prettier fixes
* fix real DB usage
* rename methods to better match OL1
* rename methods to better match OL1 again
* add extra header collection
* add headers correctly
* test getTotalObjectCount
* feat(viewer-lib): Replaced old object loader with Adam's objectloder2
* fix(viewer-lib): Removed the old object loader. Removed unneeded pause time in speckle loader
* Testing
* only deferred if not downloaded....don't save everything
* Lockfile
* pool isn't adjustable, adjust download buckets, dexie read is faster
* chore
* fix(viewer-lib): Fixed compiler errors
* fix getObject access with real indexeddb...adjust buffer for deferred access
* Fix disposal and pausing
* don't index item!
* fix dockerfiles to use OL2
* fix Dockerfile
* Fix dockerfile
* defer correctly and use record to add/lookup/remove to
* delete stuff correctly
* chore(sandbox): Enabled viewer loading
* use objects instead of arrays to avoid findIndex
* remove extra count
* add a found cache to avoid some db hits
* order matters for deferment
* move found map to deferment
* change option numbers
* 2 level cache with expiry
* defer everything, use loader to track what is requested....expire only found items
* add deferment disposal
* oops mismerge
* chore(sandbox): Default stream
* Beta version of CachePump and CacheReader
* Clean up initialization
* More clean up
* chore(objectloader2): Fixed CI compiler error
* chore(objectloader2): Fixed prettier
* add cachePump tests
* add cacheReader tests
* fixed more tests
* fixed final tests
* moving stuff around and lock return value
* try to move stuff out of objectloader2
* use a factory
* rename factory
* formatting
* eslist fixes
* try allocating no strings
* add comments
* small refactor and add another test
* fix deferment expiration and have test
* use byte size for max memory cache size
* fix deferment manager tests
* use a set of keys to determine if the whole batch was gathered
* saved comment
* fix(viewer-sandbox): Fixed compiler error
* remove extra disposal
* simplify the error handling
---------
Co-authored-by: AlexandruPopovici <alexandrupopoviciioan@gmail.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>