@toolpath/viewer 2.3.3 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- import { P as PartModel, a as PartMeshRefs } from '../normalize-C4Wj4IGK.js';
2
- export { E as EnginePart, b as EnginePartProps, M as MIN_KERNEL_VERSION, c as assertSupportedKernelVersion, n as normalizePartReport, s as smoothRegionNormals } from '../normalize-C4Wj4IGK.js';
1
+ import { P as PartModel, a as PartMeshRefs, b as PartModelFeature, T as ThreadMark } from '../normalize-BBADLCmd.js';
2
+ export { E as EnginePart, c as EnginePartProps, M as MIN_KERNEL_VERSION, d as assertSupportedKernelVersion, n as normalizePartReport, s as smoothRegionNormals } from '../normalize-BBADLCmd.js';
3
3
  import { BufferGeometry } from 'three';
4
4
  import 'react';
5
5
 
@@ -115,4 +115,15 @@ declare function loadPartMesh(mesh: PartMeshRefs, options?: LoadPartGeometryOpti
115
115
  */
116
116
  declare function parsePartGeometry(data: ArrayBuffer, mesh: PartMeshExpectation, format?: MeshFormat): Promise<BufferGeometry>;
117
117
 
118
- export { type CacheablePart, type EngineGeometryCache, type EngineGeometryResource, type FetchLike, type LoadPartGeometryOptions, type MeshAsset, type MeshFormat, PartMeshError, type PartMeshExpectation, createEngineGeometryCache, engineGeometryCache, engineGeometryResourceKey, loadPartGeometry, loadPartMesh, parsePartGeometry, partMeshAssets };
118
+ /**
119
+ * The thread to draw in a hole, read from its Engine datasheet: a hole's
120
+ * `facts.threading.spec`, which the Engine fills for a modeled thread it
121
+ * took for a catalog thread (ISO 6H, ANSI 2B, straight pipe). `null` for a
122
+ * plain hole, any other feature, and a datasheet of an unexpected shape.
123
+ *
124
+ * Only what the Engine sends is drawn: a thread it did not report is not
125
+ * guessed at from the mesh.
126
+ */
127
+ declare function threadMark(feature: PartModelFeature, datasheet: unknown): ThreadMark | null;
128
+
129
+ export { type CacheablePart, type EngineGeometryCache, type EngineGeometryResource, type FetchLike, type LoadPartGeometryOptions, type MeshAsset, type MeshFormat, PartMeshError, type PartMeshExpectation, createEngineGeometryCache, engineGeometryCache, engineGeometryResourceKey, loadPartGeometry, loadPartMesh, parsePartGeometry, partMeshAssets, threadMark };
@@ -11,8 +11,9 @@ import {
11
11
  normalizePartReport,
12
12
  parsePartGeometry,
13
13
  partMeshAssets,
14
- smoothRegionNormals
15
- } from "../chunk-M2B3CQPQ.js";
14
+ smoothRegionNormals,
15
+ threadMark
16
+ } from "../chunk-ESPHWO5M.js";
16
17
  export {
17
18
  EnginePart,
18
19
  MIN_KERNEL_VERSION,
@@ -26,5 +27,6 @@ export {
26
27
  normalizePartReport,
27
28
  parsePartGeometry,
28
29
  partMeshAssets,
29
- smoothRegionNormals
30
+ smoothRegionNormals,
31
+ threadMark
30
32
  };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as PartModel, F as FeatureTag, d as PartPick, V as Vec3, R as RegionHighlight, e as ViewerTheme, S as SectionOptions, f as SectionState, g as ViewerCamera, h as ViewportSize, i as PartModelRegion, C as CameraLimits, j as ViewerView, k as Projection, T as TriangleRange, l as RegionIndex, m as PartModelFeature, o as FeatureType } from './normalize-C4Wj4IGK.js';
2
- export { A as AXES_PLANE_OFFSET, p as AXES_PLANE_SCALE, q as AxesPlane, B as BuildPickInput, r as CAD_CAMERA_UP, t as CANDIDATE_WEIGHT, u as CAP_HATCH, D as DEFAULT_FIT_MARGIN, v as DEFAULT_SECTION_NORMAL, w as DEFAULT_THEME, x as DIRECTION_COLORS, y as DISABLED_SECTION, z as EXCLUDE_FROM_FRAME, E as EnginePart, G as FeatureHighlight, H as FocusOptions, I as HANDLE_PIXELS, J as HIGHLIGHT_COLORS, K as HIGHLIGHT_WEIGHT, L as HOVER_WEIGHT, N as HighlightLayers, O as KnownFeatureType, Q as KnownShapeKind, U as MAX_FRAME_RATIO, W as MIN_FRAME_RATIO, X as NO_MODIFIERS, Y as OUTLINE_SCALE, Z as PERSPECTIVE_FOV, _ as PICKED_SURFACE_LABEL, $ as PREVIEW_SCALE, a0 as PartDisplay, a1 as PartMesh, a2 as PartMeshProps, a as PartMeshRefs, a3 as PartObject, a4 as PickModifiers, a5 as PointerLocation, a6 as REGION_ATTRIBUTE, a7 as RegionPaint, a8 as SECTION_GIZMO_FRAME_SCALE, a9 as SECTION_RENDER_ORDER, aa as SceneBounds, ab as SectionAnchor, ac as SectionBounds, ad as SectionPlacement, ae as ShapeKind, af as SharpCorner, ag as SharpCornerOptions, ah as SurfaceCreases, ai as SurfaceHit, aj as adaptedUp, ak as applyHighlightLayers, al as applyProjection, am as aspectRatio, an as axesPlanes, ao as boundsFromBox, ap as buildPick, aq as buildRegionAttribute, ar as buildRegionTexels, as as cadViewDirections, at as cameraLimits, au as contentBounds, av as createPart, aw as currentViewDirection, ax as defaultBounds, ay as directionColor, az as dragPlane, aA as excludedFromFrame, aB as findSharpCorners, aC as fitDistance, aD as focusForPick, aE as hitUnderRay, n as normalizePartReport, aF as orthographicHalfHeight, aG as perspectiveFitDistance, aH as pickedStartDepth, aI as resolveTheme, aJ as screenLength, aK as sectionAnchor, aL as sectionBounds, aM as sectionConstant, aN as sectionDepth, aO as sectionDepthConstant, aP as sectionDepthRange, aQ as sectionFromPick, aR as sectionMeasurement, aS as sectionOffset, aT as sectionOptionsFromState, aU as sectionPlane, aV as sharpCornerPositions, s as smoothRegionNormals, aW as startPosition, aX as surfaceCreases, aY as surfaceUnderRay, aZ as targetBoundary, a_ as themesEqual, a$ as viewDirection } from './normalize-C4Wj4IGK.js';
1
+ import { P as PartModel, F as FeatureTag, V as Vec3, e as PartPick, f as ViewerTheme, R as RegionHighlight, S as SectionOptions, g as SectionState, h as ViewerCamera, i as ViewportSize, j as PartModelRegion, C as CameraLimits, k as ViewerView, l as Projection, m as TriangleRange, o as RegionIndex, b as PartModelFeature, p as FeatureType } from './normalize-BBADLCmd.js';
2
+ export { A as AXES_PLANE_OFFSET, q as AXES_PLANE_SCALE, r as AxesPlane, B as BuildPickInput, t as CAD_CAMERA_UP, u as CANDIDATE_WEIGHT, v as CAP_HATCH, D as DEFAULT_FIT_MARGIN, w as DEFAULT_SECTION_NORMAL, x as DEFAULT_THEME, y as DIRECTION_COLORS, z as DISABLED_SECTION, G as EXCLUDE_FROM_FRAME, E as EnginePart, H as FeatureHighlight, I as FocusOptions, J as HANDLE_PIXELS, K as HIGHLIGHT_COLORS, L as HIGHLIGHT_WEIGHT, N as HOVER_WEIGHT, O as HighlightLayers, Q as KnownFeatureType, U as KnownShapeKind, W as MAX_FRAME_RATIO, X as MIN_FRAME_RATIO, Y as NO_MODIFIERS, Z as OUTLINE_SCALE, _ as PERSPECTIVE_FOV, $ as PICKED_SURFACE_LABEL, a0 as PREVIEW_SCALE, a1 as PartDisplay, a2 as PartMesh, a3 as PartMeshProps, a as PartMeshRefs, a4 as PartObject, a5 as PickModifiers, a6 as PointerLocation, a7 as REGION_ATTRIBUTE, a8 as RegionPaint, a9 as SECTION_GIZMO_FRAME_SCALE, aa as SECTION_RENDER_ORDER, ab as SceneBounds, ac as SectionAnchor, ad as SectionBounds, ae as SectionPlacement, af as ShapeKind, ag as SharpCorner, ah as SharpCornerOptions, ai as SurfaceCreases, aj as SurfaceHit, T as ThreadMark, ak as ThreadOptions, al as adaptedUp, am as applyHighlightLayers, an as applyProjection, ao as aspectRatio, ap as axesPlanes, aq as boundsFromBox, ar as buildPick, as as buildRegionAttribute, at as buildRegionTexels, au as cadViewDirections, av as cameraLimits, aw as contentBounds, ax as createPart, ay as currentViewDirection, az as defaultBounds, aA as directionColor, aB as dragPlane, aC as excludedFromFrame, aD as findSharpCorners, aE as fitDistance, aF as focusForPick, aG as hitUnderRay, n as normalizePartReport, aH as orthographicHalfHeight, aI as perspectiveFitDistance, aJ as pickedStartDepth, aK as resolveTheme, aL as screenLength, aM as sectionAnchor, aN as sectionBounds, aO as sectionConstant, aP as sectionDepth, aQ as sectionDepthConstant, aR as sectionDepthRange, aS as sectionFromPick, aT as sectionMeasurement, aU as sectionOffset, aV as sectionOptionsFromState, aW as sectionPlane, aX as sharpCornerPositions, s as smoothRegionNormals, aY as startPosition, aZ as surfaceCreases, a_ as surfaceUnderRay, a$ as targetBoundary, b0 as themesEqual, b1 as viewDirection } from './normalize-BBADLCmd.js';
3
3
  import { BufferGeometry, Box3, CanvasTexture, Plane, Vector3, Matrix4, Vector2, Ray, ShaderMaterial, Texture, Color, MeshBasicMaterial, WebGLRenderTarget } from 'three';
4
4
  import * as react from 'react';
5
5
  import { ReactNode, PropsWithChildren, RefObject, CSSProperties } from 'react';
@@ -38,6 +38,73 @@ interface FeatureTriangles {
38
38
  */
39
39
  declare function featureTriangles(model: Pick<PartModel, 'regionIndex'>, geometry: BufferGeometry, tag: FeatureTag): FeatureTriangles;
40
40
 
41
+ /** An application-controlled amount with subscriptions for demand-driven canvases. */
42
+ interface ExplodeAmount {
43
+ readonly value: number;
44
+ set: (value: number) => void;
45
+ subscribe: (listener: () => void) => () => void;
46
+ }
47
+ /** Owns no clock or easing. Setting a changed value requests a frame from attached viewers. */
48
+ declare const createExplodeAmount: (initial?: number) => ExplodeAmount;
49
+
50
+ /** Rendering input only. Apps choose groups, approaches, names, and any planning policy. */
51
+ interface ExplodeGroup {
52
+ /** Unique within this layout. May name anything in the consuming application. */
53
+ readonly id: string;
54
+ /** Regions of the supplied source model. Different groups may repeat or overlap them. */
55
+ readonly regionIdxs: readonly number[];
56
+ /** Full translation in millimetres, in the supplied geometry's coordinate frame. */
57
+ readonly offset: Vec3;
58
+ readonly color: number;
59
+ }
60
+ /** One group ID, several treated as one piece, or `null` for none. */
61
+ type ExplodeGroupIds = string | ReadonlyArray<string> | null;
62
+ /** Colors by group ID, then by source region index. */
63
+ type ExplodeRegionColors = ReadonlyMap<string, ReadonlyMap<number, number>>;
64
+ interface ExplodeInput {
65
+ /** Fraction of each group's offset, clamped to [0, 1]. Read each rendered frame. */
66
+ readonly amount: number | ExplodeAmount;
67
+ /** Stable layout; changing colors does not replace this array. */
68
+ readonly groups: readonly ExplodeGroup[];
69
+ /** Optional color overrides by group ID; preserves layout buffers when recoloring. */
70
+ readonly colors?: ReadonlyMap<string, number>;
71
+ /** Per-group source-region colors, overriding the group color without splitting its identity.
72
+ * Replace maps to update paint. Unknown groups/regions are ignored.
73
+ */
74
+ readonly regionColors?: ExplodeRegionColors;
75
+ }
76
+ /** World coordinates describe the displayed hit; modelPoint names its original location. */
77
+ interface ExplodePick extends PartPick {
78
+ readonly explodeGroupId: string;
79
+ readonly modelPoint: readonly [number, number, number];
80
+ }
81
+
82
+ interface ExplodedPartProps {
83
+ /** Source report geometry. All region indices must refer to this model. */
84
+ model: PartModel;
85
+ geometry: BufferGeometry;
86
+ /** Controlled layout and appearance; application metadata stays outside the renderer. */
87
+ explode: ExplodeInput;
88
+ /** Application-owned group IDs; independent of feature tags and API feature IDs. */
89
+ selected?: ExplodeGroupIds;
90
+ hovered?: ExplodeGroupIds;
91
+ /**
92
+ * Scopes a pick's ranked owners to one machining direction, as an index into
93
+ * the model's `candidateDirections`, as `<PartMesh activeDirection>` does.
94
+ */
95
+ activeDirection?: number | null;
96
+ /** Part/edge colors, emissive, edge opacity, selection/hover tints, and `picked` source surfaces. */
97
+ theme?: Partial<ViewerTheme>;
98
+ /** False hides rendering, picking, and framing while retaining prepared buffers. Default true. */
99
+ visible?: boolean;
100
+ /** Programs and buffers have been warmed for this layout. Optional; no camera change occurs. */
101
+ onReady?: () => void;
102
+ onPick?: (pick: ExplodePick) => void;
103
+ onHover?: (pick: ExplodePick | null) => void;
104
+ }
105
+ /** GPU batching preserves each piece's pick map, source highlight, and connector. */
106
+ declare const ExplodedPart: (props: ExplodedPartProps) => react.JSX.Element | null;
107
+
41
108
  /**
42
109
  * The part an overlay is drawn on: its model and the mesh `<PartMesh>` draws.
43
110
  *
@@ -93,6 +160,8 @@ interface ViewerToolbarControls {
93
160
  dfm?: ViewerToolbarControl;
94
161
  /** The DFM rules' sharp corners, drawn on the part: see `sharpCorners` on `<PartMesh>`. */
95
162
  sharpCorners?: ViewerToolbarControl;
163
+ /** Threads drawn in their holes: see `threads` on `<PartMesh>`. */
164
+ threads?: ViewerToolbarControl;
96
165
  hover?: ViewerToolbarControl;
97
166
  focus?: ViewerToolbarControl;
98
167
  wireframe?: ViewerToolbarControl;
@@ -136,6 +205,7 @@ declare const ViewerToolbar: (({ className, children }: ViewerToolbarProps) => r
136
205
  DirectionsButton: () => react.JSX.Element;
137
206
  DfmButton: () => react.JSX.Element;
138
207
  SharpCornersButton: () => react.JSX.Element;
208
+ ThreadsButton: () => react.JSX.Element;
139
209
  HoverButton: () => react.JSX.Element;
140
210
  FocusButton: () => react.JSX.Element;
141
211
  WireframeButton: () => react.JSX.Element;
@@ -1228,7 +1298,7 @@ declare function bananaFrameBounds(part: Box3, banana: Box3, position: Vector3):
1228
1298
  *
1229
1299
  * The mesh must be non-indexed, which `parsePartGeometry` guarantees.
1230
1300
  */
1231
- declare function regionEdgesGeometry(geometry: BufferGeometry, model: Pick<PartModel, 'regions' | 'regionIndex'>): BufferGeometry;
1301
+ declare function regionEdgesGeometry(geometry: BufferGeometry, model: Pick<PartModel, 'regions'> & Partial<Pick<PartModel, 'regionIndex'>>): BufferGeometry;
1232
1302
 
1233
1303
  /** Region index → the visual surface it belongs to. */
1234
1304
  type SurfaceOf = ReadonlyMap<number, number>;
@@ -1501,6 +1571,13 @@ interface ViewerProps {
1501
1571
  * section handle. The usual meaning is "put the selection down".
1502
1572
  */
1503
1573
  onPointerMissed?: () => void;
1574
+ /**
1575
+ * What to show in place of the canvas when the browser will not create a
1576
+ * WebGL context — hardware acceleration off, or the GPU blocklisted. It goes
1577
+ * inside a `role="alert"` element (`viewer-webgl-unavailable`), and replaces
1578
+ * the default message asking the user to turn acceleration on.
1579
+ */
1580
+ webglUnavailable?: ReactNode;
1504
1581
  }
1505
1582
  declare const Viewer: react.ForwardRefExoticComponent<ViewerProps & react.RefAttributes<ViewerHandle>>;
1506
1583
 
@@ -1779,4 +1856,4 @@ declare const ORBIT_TARGET_FADE_MS = 1000;
1779
1856
  */
1780
1857
  declare function orbitTargetOpacity(sinceHold: number, fade?: number): number;
1781
1858
 
1782
- export { ANGLE_ARC_FRACTION, ANGLE_ARC_SEGMENTS, AXIS_COLORS, type AngleMeasurement, type ArrowPlacement, Axes, type AxesProps, type Axis, type AxisLock, BANANA_GAP, BANANA_MODEL_URL, Banana, type BananaProps, type BoxStockFigure, type BoxStockInput, type BoxStockPreview, CHAMFER, CONTROL_SCHEME_OPTIONS, CadCameraControls, type CadCameraControlsProps, CameraLimits, type CapMaterial, type CapUniforms, type ControlScheme, type ControlSchemeOption, type CubeZone, type CylinderStockFigure, type CylinderStockInput, type CylinderStockPreview, DELTA_DASH_PIXELS, DOUBLE_TAP_MS, type DeltaLeg, DirectionArrows, type DirectionArrowsProps, type DirectionGroup, type DistanceMeasurement, type DoubleTapPoint, type DoubleTapTracker, ExtendedCameraControls, type ExtendedCameraControlsOptions, FEATURE_TYPE_RANKS, FeatureTag, type FeatureTriangles, FeatureType, Grid, type GridProps, type GridSpec, HoverCard, type HoverCardProps, MEASURE_LABEL_CLASS, MEASURE_LINE_PIXELS, MEASURE_MARKER_PIXELS, MEASURE_RENDER_ORDER, type MeasureLabelKind, type MeasureMode, MeasureTool, type MeasureToolProps, type Measurement, type NamedDirection, ORBIT_TARGET_COLOR, ORBIT_TARGET_FADE_MS, ORBIT_TARGET_FLASH_MS, ORBIT_TARGET_PIXELS, ORBIT_TARGET_RING_COLOR, ORBIT_TARGET_RING_OPACITY, ORBIT_TARGET_RING_PIXELS, ORBIT_TARGET_RING_WIDTH, POINTS_PER_MEASUREMENT, type PartContextValue, PartModel, PartModelFeature, PartModelRegion, PartPick, PartReportFormatError, Projection, type RankingContext, RegionHighlight, RegionIndex, type Retarget, type RetargetPose, SNAP_MARKER_PIXELS, SNAP_PIXELS, SectionOptions, type SectionSample, SectionState, type SectionStore, SectionTool, type SectionToolProps, SectionView, type Snap, type SnapEdges, type SnapHit, type SnapKind, Stock, type StockAllowance, type StockAppearanceProps, type StockPosition, type StockProps, type StockSource, type SurfaceOf, TAP_SLOP, type TapPoint, type TapTracker, type ToolMark, ToolMarks, type ToolMarksProps, type ToolProfilePoint, TriangleRange, UnsupportedKernelVersionError, VIEW_NAMES, VIEW_SIGNS, Vec3, ViewCube, type ViewCubeProps, type ViewKind, type ViewName, Viewer, ViewerCamera, type ViewerControls, type ViewerHandle, type ViewerProps, ViewerTheme, ViewerToolbar, type ViewerToolbarControl, type ViewerToolbarControls, type ViewerToolbarControlsProps, type ViewerToolbarProps, ViewerToolbarProvider, ViewerView, ViewportSize, angleArc, angleArcRadius, angleAt, applyCapTheme, arrowPlacement, bananaFrameBounds, bananaPosition, bestOwner, boxStockBounds, buildRegionIndex, capHit, clipSegments, createCapMaterial, createMaskMaterial, createMaskTarget, createSectionStore, createStencilMaterials, cubeOutlineGeometry, cubeZones, cycleOwner, deltaBetween, deltaLegs, directionHighlights, directionIndexOf, directionLabel, distanceBetween, featureTriangles, featureTypeRank, fixedBoxStockBounds, formatDegrees, formatMillimetres, gridGeometry, gridSpec, groupByDirection, labelGeometry, labelTexture, lockToAxis, measurementFromPoints, measurementLabel, measurementLabelAnchor, midpoint, movedFar, nextMeasurementId, orbitTargetOpacity, panelGeometry, pointInContour, rankOwners, regionAdjacency, regionEdgesGeometry, regionNormals, resolveSectionPlane, retargetPose, sameDirection, sampleSection, screenPoint, sectionContour, snapAt, squaredUp, trackDoubleTaps, trackTaps, useContentBox, usePartContext, useRetarget, useSectionStore, useTapGuard, useViewerControls, useViewerToolbar, viewKind, viewUp, viewVector, visualSurfaces };
1859
+ export { ANGLE_ARC_FRACTION, ANGLE_ARC_SEGMENTS, AXIS_COLORS, type AngleMeasurement, type ArrowPlacement, Axes, type AxesProps, type Axis, type AxisLock, BANANA_GAP, BANANA_MODEL_URL, Banana, type BananaProps, type BoxStockFigure, type BoxStockInput, type BoxStockPreview, CHAMFER, CONTROL_SCHEME_OPTIONS, CadCameraControls, type CadCameraControlsProps, CameraLimits, type CapMaterial, type CapUniforms, type ControlScheme, type ControlSchemeOption, type CubeZone, type CylinderStockFigure, type CylinderStockInput, type CylinderStockPreview, DELTA_DASH_PIXELS, DOUBLE_TAP_MS, type DeltaLeg, DirectionArrows, type DirectionArrowsProps, type DirectionGroup, type DistanceMeasurement, type DoubleTapPoint, type DoubleTapTracker, type ExplodeAmount, type ExplodeGroup, type ExplodeGroupIds, type ExplodeInput, type ExplodePick, type ExplodeRegionColors, ExplodedPart, type ExplodedPartProps, ExtendedCameraControls, type ExtendedCameraControlsOptions, FEATURE_TYPE_RANKS, FeatureTag, type FeatureTriangles, FeatureType, Grid, type GridProps, type GridSpec, HoverCard, type HoverCardProps, MEASURE_LABEL_CLASS, MEASURE_LINE_PIXELS, MEASURE_MARKER_PIXELS, MEASURE_RENDER_ORDER, type MeasureLabelKind, type MeasureMode, MeasureTool, type MeasureToolProps, type Measurement, type NamedDirection, ORBIT_TARGET_COLOR, ORBIT_TARGET_FADE_MS, ORBIT_TARGET_FLASH_MS, ORBIT_TARGET_PIXELS, ORBIT_TARGET_RING_COLOR, ORBIT_TARGET_RING_OPACITY, ORBIT_TARGET_RING_PIXELS, ORBIT_TARGET_RING_WIDTH, POINTS_PER_MEASUREMENT, type PartContextValue, PartModel, PartModelFeature, PartModelRegion, PartPick, PartReportFormatError, Projection, type RankingContext, RegionHighlight, RegionIndex, type Retarget, type RetargetPose, SNAP_MARKER_PIXELS, SNAP_PIXELS, SectionOptions, type SectionSample, SectionState, type SectionStore, SectionTool, type SectionToolProps, SectionView, type Snap, type SnapEdges, type SnapHit, type SnapKind, Stock, type StockAllowance, type StockAppearanceProps, type StockPosition, type StockProps, type StockSource, type SurfaceOf, TAP_SLOP, type TapPoint, type TapTracker, type ToolMark, ToolMarks, type ToolMarksProps, type ToolProfilePoint, TriangleRange, UnsupportedKernelVersionError, VIEW_NAMES, VIEW_SIGNS, Vec3, ViewCube, type ViewCubeProps, type ViewKind, type ViewName, Viewer, ViewerCamera, type ViewerControls, type ViewerHandle, type ViewerProps, ViewerTheme, ViewerToolbar, type ViewerToolbarControl, type ViewerToolbarControls, type ViewerToolbarControlsProps, type ViewerToolbarProps, ViewerToolbarProvider, ViewerView, ViewportSize, angleArc, angleArcRadius, angleAt, applyCapTheme, arrowPlacement, bananaFrameBounds, bananaPosition, bestOwner, boxStockBounds, buildRegionIndex, capHit, clipSegments, createCapMaterial, createExplodeAmount, createMaskMaterial, createMaskTarget, createSectionStore, createStencilMaterials, cubeOutlineGeometry, cubeZones, cycleOwner, deltaBetween, deltaLegs, directionHighlights, directionIndexOf, directionLabel, distanceBetween, featureTriangles, featureTypeRank, fixedBoxStockBounds, formatDegrees, formatMillimetres, gridGeometry, gridSpec, groupByDirection, labelGeometry, labelTexture, lockToAxis, measurementFromPoints, measurementLabel, measurementLabelAnchor, midpoint, movedFar, nextMeasurementId, orbitTargetOpacity, panelGeometry, pointInContour, rankOwners, regionAdjacency, regionEdgesGeometry, regionNormals, resolveSectionPlane, retargetPose, sameDirection, sampleSection, screenPoint, sectionContour, snapAt, squaredUp, trackDoubleTaps, trackTaps, useContentBox, usePartContext, useRetarget, useSectionStore, useTapGuard, useViewerControls, useViewerToolbar, viewKind, viewUp, viewVector, visualSurfaces };