Commit Graph

312 Commits

Author SHA1 Message Date
AlexandruPopovici c7a2390bf3 #783 Implemented multi selection via multiple draw range with automatic fill of groups. Implemented selection of multiple objects when clicking something in the world, if that object is part of a whole and it needs to be selected together with others. It's not perfect yet, I;ve seen some bad selections, but will fix that soon 2022-06-17 17:28:39 +03:00
AlexandruPopovici d508eb6d5b #783. Implemented separate materal draw ranges for the line batches. Added the Batch common interface and separate the MeshBatch from the LineBatch, both implementing the Batch interface. Selection now works properly for both meshes and lines 2022-06-16 19:40:32 +03:00
AlexandruPopovici 4d764c166c #783 Implemented line batch colouring using an additional InstancedBufferAttribute where each line segment can have it's own color. This way we can know which subset to color differently. Transparency is also supported in theory, but will get to that later on. Also started to split the mesh batch from the line batch since they will be conceptualyl different, but share a common contract 2022-06-16 17:19:41 +03:00
AlexandruPopovici 6084a4849c #783 Implemented picking for the batched meshes 2022-06-15 17:30:04 +03:00
AlexandruPopovici 059893da30 #783 Fixed an issue with some types of lines and the current batching system which made the batched lines look really broken 2022-06-15 14:44:44 +03:00
AlexandruPopovici 1846554778 #783 Working on picking and fixing some issues which arose a few days ago regarding some types of lines when I switched to full-tree represenation 2022-06-15 11:13:25 +03:00
AlexandruPopovici 2157631def #783 Fixed an issue where some meshes were left out of batching. Added transparency to materials that require it. Seems to be working fine so far, though we might see issues in the future] 2022-06-14 13:01:04 +03:00
AlexandruPopovici ae46d0ce5e #783 Fixed an issue with batching a single mesh at the end of the batch list. Geometries can now inherit render materals/display styles from their entire hierarchy 2022-06-14 01:26:16 +03:00
AlexandruPopovici b5c6e4ac37 #783 Fixed RTE not working with batched line segments 2022-06-13 22:42:06 +03:00
AlexandruPopovici 6cf41f64c4 #783. Some changes regarding materials, default materials and material hashes 2022-06-13 22:26:41 +03:00
AlexandruPopovici bee051ff49 #783. Implemented line batching. This is actually a big change, since the prevous viewers did not have line batching and it was causing huge performance problems with having to render thousands of lines separately. As expected, batching lines did require a bit of a change to how we render the actual line geometries, but managed to get most of them in. Still need to account for high/low buffer splitting for the individual segments. 2022-06-10 17:08:58 +03:00
AlexandruPopovici 757cc7e666 783. Continued working on batching. Got first batches to render on the screen. A bit messed up, but it's something 2022-06-10 00:08:03 +03:00
AlexandruPopovici f2c11abb23 #783. Started working on the Batcher will will organize the render nodes into batches that minimize draw calls neatly 2022-06-09 18:02:13 +03:00
AlexandruPopovici 386500be7a #783 Removed the concept of nested nodes. It was complicating matters unnecessarily. Any nodes inside other nodes display values are chidlren of that node now. 2022-06-09 13:09:55 +03:00
AlexandruPopovici 665fda37ae #783. Started working on materials and their render tree interaction 2022-06-09 00:10:10 +03:00
AlexandruPopovici 36da0e38e2 #783 Fixed an issue where the display values for non-geometry nodes was ignored 2022-06-07 14:29:49 +03:00
AlexandruPopovici ab353fc87c #783 Fixed an issue with transforming hierarchies of nodes inside Block Instances. Fixed an issue with Spirals not being interpreted as their display value (default behavior). Cleaned up Converter. It's nice and short now 2022-06-06 22:47:16 +03:00
AlexandruPopovici 99e9e8c36f Fixed some issues with node conversions and geometry conversions. Added auth token if exists to the object loader in sandbox. Remove all old code from Converter. Only the '...toNode' conversions remain. Tested some more 2022-06-06 17:48:05 +03:00
AlexandruPopovici 8c3fb6cb4c Added inherited transforms for all objects within block instances 2022-06-03 19:44:11 +03:00
AlexandruPopovici cbdccb1ace Merged with a lot of local stuff 2022-06-03 16:39:02 +03:00
AlexandruPopovici fcea53ddd2 Implemented the concept of RenderTree which just extends the functionality of the general purpose WorldTree. Moved all geometry conversions to a seaprate source where no async, no fetches, no special things happen, with the intent of possibly moving this to a webworker in the future 2022-06-03 16:37:06 +03:00
AlexandruPopovici 59ad804227 working on tree parsing 2022-06-02 17:18:07 +03:00
Alexandru Popovici 9b81618f58 Manged to bundle a default hdri with the viewer. The clients can eith… (#779)
* Manged to bundle a default hdri with the viewer. The clients can either use the default one, or specify their own

* Added a comment describing why we're hiding the .exr behind a .png. Fixed some lint errors/warnings
2022-05-30 12:38:59 +03:00
AlexandruPopovici 0853a5acb2 Fixed an issue with selecting lines which are inside block instances. However that still doesn't work properly because the actual geometry isn't getting tested at pick time due to some issues inside SelectionHelper 2022-05-26 17:41:06 +03:00
Fabians b12d51463d Merge branch 'alex/viewer-redux' of github.com:specklesystems/speckle-server into alex/viewer-redux 2022-05-26 16:55:58 +03:00
Fabians be87f88ff6 viewer asset support 2022-05-26 16:55:09 +03:00
AlexandruPopovici e43f7136b8 #746 Fixed some issues regarding selecting lines and the visual response looks 2022-05-26 16:03:52 +03:00
AlexandruPopovici 482862d896 Fixes regarding block instances and selecting stuff 2022-05-26 14:56:26 +03:00
AlexandruPopovici c55f73185f Merged with main. Fixed an issue with geometry baking 2022-05-26 11:46:19 +03:00
AlexandruPopovici 448ae95d8b Added a sample hdr to the assets 2022-05-26 11:01:11 +03:00
AlexandruPopovici abf636c946 #746. Used vector buffers in the speckle materials to avoid pointless nursery pressure. Some lint-related fixes 2022-05-26 10:20:44 +03:00
AlexandruPopovici 168838b059 Fixed lint errors 2022-05-25 17:34:14 +03:00
Alexandru Popovici 12d3a216b6 Fixed transformation order for arcs. Fixed origin not being scaled accordingly (#769) 2022-05-25 16:31:10 +03:00
AlexandruPopovici f2fdf545b7 Added automatic loader selection based on file extension. Changed the default environment in the sandbox 2022-05-25 12:29:39 +03:00
Alexandru Popovici 40f7487cfd Acos fix (#766)
* Fixed an issue where floating point precision would lead to acos returning NaN

* Wrong paranthesis close
2022-05-24 16:46:45 +03:00
Fabians 758d4fb125 attempted viewer build fix 2022-05-24 15:59:56 +03:00
AlexandruPopovici 439201ce0e Merged with main 2022-05-24 12:12:30 +03:00
AlexandruPopovici 71ce007a08 #746. Added remaining material extensions and replaced them where required. 2022-05-24 12:08:28 +03:00
AlexandruPopovici 81a4de69b2 #746. Figured out how to clamp the world space thick lines to any pixel value when they're screen size width becomes less than 1 pixel and they start to basically dissapear. 2022-05-20 15:57:57 +03:00
Gergő Jedlicska 638969cd01 gergo/yarn (#753)
* yarn first go

* fix frontend build cache loader

* yarn workspaces built server Docker

* build(yarn): add workspaces plugin config

* chore(package defs): clean package*.json -s

* chore(gitignore): ignore yarn error log

* build(yarn): update yarn lock

* build(preview-service webpack): add extra resolved path to preview service webpack config

because of yarn package hoisting, there are no package level node_modules folder anymore.

* build(docker): update dockerignore with yarn specific configs

* build(docker): update Dockerfiles for yarn workspaces utilization

* ci(circleci): update server test job to yarn

* ci(circle): disable cache restore

* ci(circleci): trying the node orb yarn-run

* ci(circleci): yarn-run again

* ci(circleci): disable node orb

* ci(circleci): change base node image for tests

* ci(circleci): add yarn cache

* ci(circleci): remove node install step

* ci(circleci): add server specific cache archives

* ci(circleci): test build and publish

* ci(circleci): change npm auth method to suit yarn

* ci(circleci): trying new builder image

* ci(circleci): another base image, maybe this works

* ci(circleci): force a specific docker engine version

* ci(circleci): add yarn version plugin and its changes

* ci(circleci): cleanup and remove temp branch config

* chore(package defs): moving from npm run to yarn

* explicitly specifying webpack4 as a frontend dep

* chore(package defs): replace npm with yarn everywhere

* docs(root readme): update with some yarn specific docs

* chore(root workspace): update dev scripts and package lock

* ci(circleci): enable package publish step with yarn

Co-authored-by: Fabians <fabis94@live.com>
2022-05-19 19:53:07 +02:00
AlexandruPopovici 1599970f22 #746 Made the new thick lines work with RTE 2022-05-19 13:05:34 +03:00
AlexandruPopovici 1eb44d00d9 Updated three.js version to 140. Thick lin raycasting now properly works in world space and also the threshold in world space is now accurate. 2022-05-18 11:53:50 +03:00
AlexandruPopovici e574623a43 #746 Fixed an issue with RTE and basic line geometry. Group transforms were not baked into the high and low attributes. Now they work correctly 2022-05-17 22:42:06 +03:00
AlexandruPopovici a3c7dcf408 #746 Implemented RTE for basic line materials (non thick) 2022-05-17 17:53:49 +03:00
AlexandruPopovici 742d83296e #746 Added real time switching between thick and regular lines 2022-05-17 17:12:02 +03:00
AlexandruPopovici 832f537dc7 Added realtime switching between RTE and non-RTE rendering. The speckle materials now have conditional compiling regarding RTE implementation 2022-05-17 15:56:32 +03:00
AlexandruPopovici e3cd5ae1f0 #746 A lot of changes to Geometry. Started integrating RTE with the viewer 2022-05-17 14:52:38 +03:00
AlexandruPopovici b0a138fa6e #746 Delete original geometry data after merging 2022-05-13 11:37:37 +03:00
AlexandruPopovici 27a5814d52 #746. More or less finished with refactoring the converter. There is now an intermediary layer between the speckle data parsing and actual three.js geometry. There is also an intermediary data type being passed around the converter and the geometry handler 2022-05-12 19:41:02 +03:00
AlexandruPopovici 8877720c5a #746. Continued working on the converter. Added an intermediary layer between the converted and the scene object loader. Added the concept of GeometryData, and implemented it for some of the speckle types. 2022-05-11 18:12:04 +03:00