0ef0a13979
* 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>