## BeeGraphy Editor Dimensions Package
Dimension nodes for the BeeGraphy Editor. This package provides tools to measure and render dimension graphics (with labels and arrows) directly in the editor viewport.
### Usage
The nodes in this package help you visualize measurements (e.g., distances, angles, bounding boxes) between points and geometry. You can find them under the **Dimensions** group in the node palette or via search.
### Available Nodes
#### 1. Distance Dimension
Measures the distance between two 3D points and renders a labeled dimension graphic (extension lines, main line, optional arrows, and a text label).
* **Inputs:** `start`, `end`, `direction` (optional), `labelOffset` (0.2), `decimalPlaces` (2), `labelSuffix` ("mm"), `labelOverwrite`, `style`.
* **Outputs:** `curve` (ThreeCurve), `distance` (Number).
#### 2. Angular Dimension
Measures and visualizes the angle defined by a center point and two direction vectors. Draws an arc, arrowheads, and a text label.
* **Inputs:** `centerPoint`, `direction1`, `direction2`, `radius` (0.5), `labelOffset` (0.1), `decimalPlaces` (1), `labelSuffix` ("°"), `labelOverwrite`, `radians` (false), `style`.
* **Outputs:** `curve` (ThreeCurve), `angle` (Number).
#### 3. Radial Dimension
Measures radius or diameter from a center point to a radius point. Displays value with leader line, arrowhead, and optional center mark.
* **Inputs:** `centerPoint`, `radiusPoint`, `labelOffset` (0.2), `decimalPlaces` (2), `labelSuffix` ("mm"), `labelOverwrite`, `showDiameter` (false), `showCenterMark` (true), `style`.
* **Outputs:** `curve` (ThreeCurve), `radius`, `diameter`.
#### 4. Diametrical Dimension
Measures and visualizes a diameter with a specified direction. Draws diameter line with optional arrowheads and center mark.
* **Inputs:** `centerPoint`, `direction`, `diameter`, `labelOffset` (0.2), `decimalPlaces` (2), `labelSuffix` ("mm"), `labelOverwrite`, `showCenterMark` (true), `style`.
* **Outputs:** `curve` (ThreeCurve), `diameter`, `radius`.
#### 5. Dimension 2D
Measures and visualizes 2D bounding box dimensions of geometry. Shows width (X), height (Y), and optional diagonal.
* **Inputs:** `geometry`, `showWidth`, `showHeight`, `showDiagonal`, `labelOffset` (0.2), `decimalPlaces` (2), `labelSuffix` ("mm"), `labelOverwriteX/Y/Diag`, `style`.
* **Outputs:** `curve` (ThreeCurve), `width`, `height`, `diagonal`, `minPoint`, `maxPoint`.
#### 6. Dimension 3D
Measures and visualizes 3D bounding box dimensions of geometry. Shows width (X), length (Y), height (Z), and optional diagonal.
* **Inputs:** `geometry`, `showWidth`, `showLength`, `showHeight`, `showDiagonal`, `labelOffset` (0.2), `decimalPlaces` (2), `labelSuffix` ("mm"), `labelOverwriteX/Y/Z/Diag`, `style`.
* **Outputs:** `curve` (ThreeCurve), `width`, `length`, `height`, `diagonal`.
#### 7. Dimension Style
Produces a reusable style object to control the appearance of dimension graphics.
* **Inputs:** `lineColor`, `lineThickness` (0.01), `extensionLineLength` (0.1), `arrowTailLength` (0.2), `textColor`, `textSize` (16), `textBackgroundColor` (#000000), `textBackgroundOpacity` (0.9), `arrowSize` (0.05), `showArrows` (true).
* **Output:** `style` (Meta).
### Notes:
* **Distance Dimension** will automatically compute a perpendicular direction if `direction` is not provided.
* Label text can be fully overridden via `labelOverwrite`; include `{val}` to embed the computed value.