Commit Graph

25 Commits

Author SHA1 Message Date
AlexandruPopovici cc8580b8da #828 Eliminated the redundant position attributes for the line geometries. Like for meshes, re-used the original position attributes as the high parts of our encoding 2022-07-27 22:54:45 +03:00
AlexandruPopovici 3ca2d08e18 #828 Implemented the SpeckleMesh which extends three's Mesh and corrects the raycasting implementation to work with the positions encoded as pairs of lows and highs 2022-07-27 21:46:03 +03:00
AlexandruPopovici 9e7c80bb4f #828. Added controlled update and render loops which propagate throught the viewer library 2022-07-27 15:09:46 +03:00
AlexandruPopovici 453e83e515 #827 Implemented the colored material (used when filtering by non-numeric properties) for lines as well. 2022-07-26 23:10:52 +03:00
AlexandruPopovici e35c4ad35b #828 Added proper vertex normal computation based off fp64 positions 2022-07-26 18:56:00 +03:00
AlexandruPopovici e05af7eafe #728 Removed all references to USE_RTE and THICK_LINES since we're always going to be using these implementaions 2022-07-26 11:01:38 +03:00
AlexandruPopovici f706efc875 #828. Removed unused code from Geometry. Corrected the types for the position attribute underlying typed array. Removed duplicate code 2022-07-26 10:46:54 +03:00
AlexandruPopovici 30e985be4a #827. Implemented non-numeric filter-by properties support. Added this functionality to the sandbox as well. 2022-07-22 15:35:34 +03:00
AlexandruPopovici c238cdaa07 #827. Added min/max values when filtering by volume. Some changes to the filtering implementation to avoid redundant tree searches 2022-07-22 00:03:35 +03:00
AlexandruPopovici fdc550a38a #827 Implemented gradient based filtering using ramp texture and per vertex ramp texture index. Implemented filtering by volume in the sandbox, using the gradient filter 2022-07-20 23:59:11 +03:00
AlexandruPopovici dbd3763a5a #827 Added the possibility to visually display the scene's batches as well as to select any object by holding the ctrl key and it will isolate it's entire batch, not just the object. These will be useful for debbuging 2022-07-18 23:43:08 +03:00
AlexandruPopovici fdd03ef821 #828[Debt] Added support for vertex colors on meshes that specify it 2022-07-18 17:00:01 +03:00
AlexandruPopovici a4fa7bb4dd #811 Implemented conveniene method for isolating objets visually, where all other objects are ghosted, like the effect should look like. Fixed an issue with Brep conversion 2022-06-28 11:41:45 +03:00
AlexandruPopovici 65d5aa6659 #811 Added a material for the gradient filter, so we have multiple filter materials to apply. However th gradient material is not fully implemented. It can only do a single solid color. We'll implement the actual gradient of colors in the future 2022-06-27 19:00:20 +03:00
AlexandruPopovici 51596d81b4 Fixed some remaining issues with the filtering API. Made transparent materials to not write to the depth buffer so we don't get false depth test fails. We will see in the future if we want to treat transparent objects differetly, however for now it's going to be fine 2022-06-27 18:51:52 +03:00
AlexandruPopovici 7840591672 #811 Separated batch aut filling draw ranges as a separate function. This will allow sequential calls to set different draw ranges with different materials sequentially for the filtering API 2022-06-24 16:44:31 +03:00
AlexandruPopovici 923e835c54 #811 Added the the unload functionality, so we can load/unload stuff in the sandbox. It's currently a bit leaky but we'll fix that. Also we currentyl don;t support multiple paralel streams to be loaded in. I first want to make sure things work properly for 1 stream before having multiple at the same time 2022-06-24 14:20:27 +03:00
AlexandruPopovici d29d2d464c #811 Started working on a debug API for filtering inside the viewer. This API will be used by the upcoming FilteringManager to do the visual work 2022-06-24 00:41: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 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