* feat(viewer-lib): WIP on the new OrientedSectionTool * feat(viewer-lib): Added proper face pulling for the oriented section box * feat(viewer-lib): Several updates on the oriented sectioning tool - Implemented section planes calculation and propagation - Unified obb computation from all gizmos - Implemented proper setBox function - Updated the viewer-core to work with OBB instead of AABB for it's clipping volume - Updated the intersections to work with OBB for their intersting bounds - Added extension methods to Box3 and OBB * feat(viewer-lib): Better way of handling gizmo input events overlapping * fix(viewer-lib): Updated clippingVolume occurences to OBB * feat(viewer-lib): Section outlines now work with oriented section tool! * feat(viewer-lib): Integrated new section tool with the frontend and API - Defined an archtype for SectionTool which all section tools can derive from - The old section tool is renamed to AxisAlignedSectionTool - Replaced the old section tool with the oriented one in the frontend * fix(viewer-lib): Fixed compile errors * feat(viewer-lib): Some updates: - Section tool outline, the visible box, is now rendered as before however it's correctly being RTE'd. And we can also make it thinner/thicker now - Fixed the issue where the scale controls had 'exponential' growth. It's now linear like the translate one * feat(viewer-lib): Implemented highlghting the box face when clicking on it to extend/retract it * fix(viewer-lib): A bunch of fixes for the oriented section tool * feat(viewer-lib): Some updates: - Documented new OrientedSectionTool code - Fixed som issues related to section box reseting - Hid the translation and rotation gizmos that we aren't using - Tidied up a bit * feat(viewer-lib): Set the translate and rotate gizmos in local space so the rotation will affect them as wll * chore(viewer-lib): Purged the old section tool * chore(viewer-lib): Updated section box data type. Updated LegacyViewer section box data handling. Updated frontend to use new data type. Still not working doe * fix(viewer-lib): Fixed an issue where comments with section boxes did not enable section outlines at startup * chore(frontend): Fixed ci compiler error * fix(viewer-lib): Fixes WEB-1593
frontend-2 🏬
The replacement for our old Vue 2 Vue CLI frontend SPA app. This one's built with Vue 3, Nuxt 3, Tailwind and is server side rendered. Should be a faster and nicer experience both for our devs and our users!
Look at the nuxt 3 documentation to learn more.
Setup
Make sure to install the dependencies:
yarn install
And create an .env file from .env.example.
WSL2 on Windows
Remove the HOST env var from your .env file as its known to cause performance issues with the Nuxt dev server: https://github.com/nuxt/cli/issues/209
Development
Start the development server on http://localhost:8081
yarn dev
Typed GraphQL
Type your queries & fragments using the graphql() helper from ~~/lib/common/generated/gql and then run yarn gqlgen (or yarn gqlgen:watch to run it in watch mode) to generated TS typing information for these GQL documents.
More info: https://the-guild.dev/blog/unleash-the-power-of-fragments-with-graphql-codegen
Troubleshooting
ESLint results doesn't update after GQL type regeneration
Restart the ESLint plugin through VSCode's command palette, this is a bug with the ESLint plugin.
GraphQL codegen throws an error like "Unknown fragment XXX" or something else that doesn't make sense
Sometimes the codegen throws misleading errors and the issue is actually something completely different so I suggest removing the new graphql fragments/operations you've added one by one until the generation works again, to isolate the problematic graphql code. And then thoroughly investigate the fragments/operations you've added, because you might have a syntax error somewhere.
Production
Build the application for production:
yarn build
You can serve the production build locally by running yarn preview afterwards.
Checkout the deployment documentation for more information.