* 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>
@speckle/shared
This package holds code that otherwise would be duplicated across @speckle packages, things like helpers, constants and TS types.
Usage
Peer dependencies
Some dependencies are marked as peer dependencies, to ensure that package consumers can manage their versions themselves. If you use any code from this package that relies on a specific peer dependency, make sure its installed.
How to use
import { Roles, RichTextEditor } from '@speckle/shared'
There are also "heavy" imports, that are not exported by default, like @speckle/shared/environment. These are used to avoid importing the whole package when only a small part of it is needed.
If export maps don't work (due to a legacy TS configuration) you can always import from @speckle/shared/dist/** directly
Development
Do yarn build to build or yarn dev to build in watch mode
Code organization
Code should be organized according to areas of speckle, 'core' being the main one. Exports from areas other than "core" should be grouped under namespaces like "RichTextEditor".