@toolpath/viewer 2.5.0 → 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.
- package/README.md +113 -0
- package/dist/{chunk-LBG6GVGE.js → chunk-ESPHWO5M.js} +2 -0
- package/dist/engine/index.js +1 -1
- package/dist/index.d.ts +70 -3
- package/dist/index.js +1132 -371
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -306,6 +306,7 @@ the part opaque. For multiselection, update your own tag array and avoid duplica
|
|
|
306
306
|
| `Viewer` | Canvas, camera, lighting, controls, initial framing, and viewer-owned section state. |
|
|
307
307
|
| `EnginePart` | Validated Engine report plus cached mesh loading; imports from `/engine`. |
|
|
308
308
|
| `PartMesh` | Your normalized model and prepared geometry; selection, paint, picking, sections. |
|
|
309
|
+
| `ExplodedPart` | Supplied surface groups, translations, colors, and controlled explosion amount. |
|
|
309
310
|
| `ViewCube` | 26 orientation targets: faces, edges, and corners. |
|
|
310
311
|
| `Grid`, `Axes` | Reference geometry excluded from camera framing. |
|
|
311
312
|
| `DirectionArrows` | Candidate and optional named/preview machining directions. |
|
|
@@ -394,6 +395,118 @@ has `best === null`. `owners` still carries all owners. `directionHighlights(mod
|
|
|
394
395
|
index)` produces region paint matching `DirectionArrows`; it does not hide geometry
|
|
395
396
|
or establish that an unpainted face is impossible to machine.
|
|
396
397
|
|
|
398
|
+
### `<ExplodedPart>`
|
|
399
|
+
|
|
400
|
+
Renders application-defined surface pieces inside `<Viewer>` or an R3F canvas. Import
|
|
401
|
+
`ExplodedPart`, `ExplodedPartProps`, `ExplodeGroup`, `ExplodeGroupIds`, `ExplodeInput`,
|
|
402
|
+
`ExplodePick`, `ExplodeRegionColors`, `createExplodeAmount`, and `ExplodeAmount` from
|
|
403
|
+
`@toolpath/viewer`. Version 2.5.0 does not contain these exports.
|
|
404
|
+
|
|
405
|
+
The application supplies the pieces and their translations. The renderer neither selects
|
|
406
|
+
feature interpretations nor chooses machining directions, setups, or an ownership policy for
|
|
407
|
+
overlapping surfaces. It reads no planning data and makes no API requests.
|
|
408
|
+
|
|
409
|
+
```tsx
|
|
410
|
+
import { useMemo, useState } from 'react'
|
|
411
|
+
import { ExplodedPart, Viewer, type ExplodeGroup, type PartModel } from '@toolpath/viewer'
|
|
412
|
+
import type { BufferGeometry } from 'three'
|
|
413
|
+
|
|
414
|
+
const ExplodeView = ({
|
|
415
|
+
model,
|
|
416
|
+
geometry,
|
|
417
|
+
groups,
|
|
418
|
+
amount,
|
|
419
|
+
}: {
|
|
420
|
+
model: PartModel
|
|
421
|
+
geometry: BufferGeometry
|
|
422
|
+
groups: readonly ExplodeGroup[]
|
|
423
|
+
amount: number
|
|
424
|
+
}) => {
|
|
425
|
+
const [selected, select] = useState<string | null>(null)
|
|
426
|
+
const [hovered, hover] = useState<string | null>(null)
|
|
427
|
+
const explode = useMemo(() => ({ groups, amount }), [groups, amount])
|
|
428
|
+
return (
|
|
429
|
+
<Viewer>
|
|
430
|
+
<ExplodedPart
|
|
431
|
+
model={model}
|
|
432
|
+
geometry={geometry}
|
|
433
|
+
explode={explode}
|
|
434
|
+
selected={selected}
|
|
435
|
+
hovered={hovered}
|
|
436
|
+
onPick={(pick) => select(pick.explodeGroupId)}
|
|
437
|
+
onHover={(pick) => hover(pick?.explodeGroupId ?? null)}
|
|
438
|
+
/>
|
|
439
|
+
</Viewer>
|
|
440
|
+
)
|
|
441
|
+
}
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
Each `ExplodeGroup` contains a unique `id`, `regionIdxs`, an `offset: { x, y, z }` in
|
|
445
|
+
millimetres in the source geometry's frame, and a numeric RGB `color`. IDs belong to the
|
|
446
|
+
application and need not be feature tags. Groups may contain any region set, and different
|
|
447
|
+
groups can share the same surfaces without being merged. Region IDs must come from the same
|
|
448
|
+
model and mesh. Source geometry must be non-indexed and match `model.mesh.triangleCount`.
|
|
449
|
+
An empty `groups` array draws nothing. Invalid IDs, regions, or offsets throw before allocation.
|
|
450
|
+
|
|
451
|
+
`explode.amount` interpolates all supplied offsets from zero to their full translations;
|
|
452
|
+
values outside `[0, 1]` are clamped and nonfinite amounts use zero. The caller owns animation,
|
|
453
|
+
timing, and reduced-motion preferences. Pass a number for ordinary controlled React updates.
|
|
454
|
+
For frame-by-frame animation, create a stable controller with `createExplodeAmount(initial)`
|
|
455
|
+
and pass it as `explode.amount`:
|
|
456
|
+
|
|
457
|
+
```tsx
|
|
458
|
+
const [amount] = useState(() => createExplodeAmount(0))
|
|
459
|
+
const explode = useMemo(() => ({ groups, amount }), [groups, amount])
|
|
460
|
+
// From the application's animation loop, slider, or animation library:
|
|
461
|
+
amount.set(0.5)
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
The controller clamps its value to `[0, 1]`, exposes it as `amount.value`, and notifies
|
|
465
|
+
subscribers only when it changes. `ExplodedPart` subscribes and requests a frame automatically,
|
|
466
|
+
including on a demand-driven canvas, without React updates on every frame. Subscriptions are
|
|
467
|
+
removed on unmount or when the controller changes; one controller can drive multiple viewers.
|
|
468
|
+
The application owns scheduling and cancelling its animation loop. The renderer never moves
|
|
469
|
+
the camera. Fit and Reset remain explicit.
|
|
470
|
+
|
|
471
|
+
Keep the `groups` array stable across amount, selection, and color changes. An optional
|
|
472
|
+
`explode.colors: ReadonlyMap<string, number>` changes colors by group ID without rebuilding
|
|
473
|
+
the layout. Optional `explode.regionColors: ExplodeRegionColors` (a
|
|
474
|
+
`ReadonlyMap<string, ReadonlyMap<number, number>>`) sets colors by group ID and source region index, overriding that group's color. The same
|
|
475
|
+
source region may have different colors in different groups. Regions without an override use
|
|
476
|
+
`explode.colors` or the group's own color; selection and hover tint all of a group's surfaces.
|
|
477
|
+
Replace color maps when changing paint. Unknown group/region keys are ignored. Color changes
|
|
478
|
+
retain geometry buffers, pick identities, and shader programs; they do not require one group
|
|
479
|
+
per region. `visible={false}` retains its buffers while excluding it from rendering, picking,
|
|
480
|
+
and framing. Optional `onReady` runs after warming shaders and buffers for a layout; an app can
|
|
481
|
+
keep it hidden or disable its play control until then. Changing the source or group array
|
|
482
|
+
rebuilds the owned buffers; unmounting releases them without disposing the source geometry.
|
|
483
|
+
Batching uses per-instance colors where Three.js provides them and shared vertex colors on
|
|
484
|
+
earlier supported Three.js releases.
|
|
485
|
+
|
|
486
|
+
Pass `theme?: Partial<ViewerTheme>` to match the surrounding application. `part` colors
|
|
487
|
+
the source ghost, `partEmissive` sets emissive lighting, and `edge`/`edgeOpacity` control
|
|
488
|
+
the outlines (the ghost outline fades further with the explosion). `highlight` tints the
|
|
489
|
+
selected piece, `picked` colors its source surfaces, and `hover` tints the hovered piece. Group colors and
|
|
490
|
+
`explode.colors` remain application-owned. Omit the theme to retain the default explode
|
|
491
|
+
appearance. Theme changes update materials and colors in place without rebuilding geometry,
|
|
492
|
+
changing selection, warming shaders again, or moving the camera.
|
|
493
|
+
|
|
494
|
+
The source part is drawn as an unpickable ghost during explosion. Selecting a group highlights
|
|
495
|
+
its original surfaces and draws one connector. `selected` and `hovered` also accept arrays of
|
|
496
|
+
group IDs, so an application can interact with several render chunks as one logical piece.
|
|
497
|
+
Selection highlights all their source surfaces; one connector joins their combined source and
|
|
498
|
+
translated bounds. `onPick` and `onHover` return an `ExplodePick`:
|
|
499
|
+
the usual source `region` and `triangleIndex`, the application's `explodeGroupId`, the displayed
|
|
500
|
+
world-space `point`/`normal`, and `modelPoint` in the original geometry's frame. Region owners
|
|
501
|
+
and the default ranked feature remain available as `PartPick` fields; applications can use
|
|
502
|
+
the group ID to supply their own metadata. Pass `activeDirection`, as on `<PartMesh>`, to rank
|
|
503
|
+
those owners for one machining direction. Hidden groups and source overlays do not accept picks.
|
|
504
|
+
|
|
505
|
+
At stationary zero, the example gives rendering and picking back to its ordinary `PartMesh`.
|
|
506
|
+
That assembled/exploded mode switch and its toolbar are application UI. The example's candidate
|
|
507
|
+
grouping, colors, translation spacing, and rendering-budget policy stay in
|
|
508
|
+
`examples/react-viewer/src/explode/` and are not exported by the package.
|
|
509
|
+
|
|
397
510
|
### `<ViewCube>`, `<Grid>`, and `<Axes>`
|
|
398
511
|
|
|
399
512
|
`ViewCube` defaults to `alignment="top-right"` and `margin={[80, 80]}` (pixels).
|
|
@@ -2043,6 +2043,7 @@ var NO_MODIFIERS = {
|
|
|
2043
2043
|
shift: false,
|
|
2044
2044
|
secondary: false
|
|
2045
2045
|
};
|
|
2046
|
+
var ignoreRay = () => void 0;
|
|
2046
2047
|
function viewDirection(camera, target) {
|
|
2047
2048
|
const { x, y, z } = camera.position;
|
|
2048
2049
|
const dx = x - target.x;
|
|
@@ -5042,6 +5043,7 @@ export {
|
|
|
5042
5043
|
bestOwner,
|
|
5043
5044
|
cycleOwner,
|
|
5044
5045
|
NO_MODIFIERS,
|
|
5046
|
+
ignoreRay,
|
|
5045
5047
|
viewDirection,
|
|
5046
5048
|
buildPick,
|
|
5047
5049
|
focusForPick,
|
package/dist/engine/index.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as PartModel, F as FeatureTag,
|
|
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
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';
|
|
@@ -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
|
*
|
|
@@ -1231,7 +1298,7 @@ declare function bananaFrameBounds(part: Box3, banana: Box3, position: Vector3):
|
|
|
1231
1298
|
*
|
|
1232
1299
|
* The mesh must be non-indexed, which `parsePartGeometry` guarantees.
|
|
1233
1300
|
*/
|
|
1234
|
-
declare function regionEdgesGeometry(geometry: BufferGeometry, model: Pick<PartModel, 'regions'
|
|
1301
|
+
declare function regionEdgesGeometry(geometry: BufferGeometry, model: Pick<PartModel, 'regions'> & Partial<Pick<PartModel, 'regionIndex'>>): BufferGeometry;
|
|
1235
1302
|
|
|
1236
1303
|
/** Region index → the visual surface it belongs to. */
|
|
1237
1304
|
type SurfaceOf = ReadonlyMap<number, number>;
|
|
@@ -1789,4 +1856,4 @@ declare const ORBIT_TARGET_FADE_MS = 1000;
|
|
|
1789
1856
|
*/
|
|
1790
1857
|
declare function orbitTargetOpacity(sinceHold: number, fade?: number): number;
|
|
1791
1858
|
|
|
1792
|
-
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 };
|