Commit Graph

2405 Commits

Author SHA1 Message Date
AlexandruPopovici f73384e66f #811 Integrated double-click to zoom, and zoom extents with the new viewer. Currently I'm using old existing code just for the sake of less regression, but will revisit it in the future 2022-06-21 15:47:24 +03:00
AlexandruPopovici 499653d983 #811 Started taking the axe on a lot of legacy code which became obsolete after redux Stage 2. Turned ViewerObjectLoader to typescript and started moving a lot of stuff from viewer to a new class, SpeckleRenderer, which will centralize and handle a lot of stuff 2022-06-21 00:58:20 +03:00
AlexandruPopovici 6383804199 #783 Added optional srgb->linear transformation of vertex colors. This is used by point clouds, and possibly any other types which want vertex colors 2022-06-20 16:55:22 +03:00
AlexandruPopovici 11a429f9ca #783 Implemented Point and PointCloud speckle type support for batching and everything else. 2022-06-20 16:39:51 +03:00
AlexandruPopovici d4c0495860 #783. Fixed a misplaced 'if' inside the mesh batch draw material ranges function. Added HideAll draw range constant. We're using this when we want to hide an entire batch so that three.js does not do all the buffer binding, material and state switching for batches that have a draw range of 0-0. Apparently three.js doesn't skip all the GL commands automatically for meshes with 0 draw range 2022-06-18 00:38:41 +03:00
AlexandruPopovici dad9acb3e9 #783 Implemented visibility ranges for line batches 2022-06-18 00:07:56 +03:00
AlexandruPopovici 60536592a4 #783 Implemented visible range for batches. Required when wanting to isolate/hide/don't show stuff. Only implemented it for the mesh batch type for now. Line batch is next 2022-06-17 19:07:10 +03:00
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
Dimitrie Stefanescu 99e922cdd0 Merge branch 'main' into alex/viewer-redux 2022-06-02 12:01:13 +01:00
Gergő Jedlicska 67cb97a262 gergo/testCommentsGQL (#775)
* 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

* test(server comments gql): add wip server comments gql tests

* test(server comments graphql): add missing test operations and generate a bunch of testcases

* test(server comments graphql api): fix all authz test cases for comments

* test(server comments service): fix comments service failing test

* fix(tests): do not look inside

Co-authored-by: Fabians <fabis94@live.com>
Co-authored-by: Dimitrie Stefanescu <didimitrie@gmail.com>
2022-06-02 11:15:27 +02:00
Gergő Jedlicska 1d8ffac57a update knex dependency chain (#776)
* chore(root): update packages

* chore(server + preview service): add pg-query-stream peer dependency

* build(dockerfiles): unify and update docker base layer to latest node lts
2022-06-01 10:25:09 +02:00
Gergő Jedlicska 142219dc4c fix(helm chart): default create namespace to false, it interferes with our deployment setup 2022-05-31 10:24:39 +02:00
Gergő Jedlicska 1c234a86b2 gergo/hotfixes (#785)
* ci(circleci): publish npm packages with the implicit default `latest` tag

* feat(helm chart): add a conditional flag for creating k8s namespace in the helm chart

* fix(server package.json): fix cross-env variable string naming

fix #780
2022-05-30 19:40:20 +02:00
Gergő Jedlicska 1f5f5ef943 fix(preview service): there is no need to double promise a preview (#782) 2022-05-30 11:59:28 +02: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
Dimitrie Stefanescu 00c8ff8703 Merge pull request #781 from specklesystems/dim/angle-previews-fix
fix(frontend): corrects rotation direction
2022-05-30 08:15:52 +01:00
Dimitrie Stefanescu 21f3d396fb fix(frontend): corrects rotation direction 2022-05-30 08:14:13 +01:00
Dimitrie Stefanescu 0ff34c383c Merge pull request #778 from specklesystems/dim/angle-previews
3D previews fixes
2022-05-26 20:17:16 +01:00
Dimitrie Stefanescu 4608072a88 fix(frontend): adds bw filter and rotate guard 2022-05-26 20:05:48 +01:00
pre-commit-ci[bot] 70971152a0 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-05-26 15:35:17 +00:00
Dimitrie Stefanescu e8bde06d7d feat(frontend): implements stiched 3d previews 2022-05-26 15:53:21 +01:00
Dimitrie Stefanescu d98a3c5d15 feat(previews): creates stiched frames previews 2022-05-26 15:53:01 +01: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