@metamesh/modeling 0.14.0 → 0.15.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/CHANGELOG.md +42 -0
- package/README.md +25 -10
- package/dist/api/engine.d.ts +11 -4
- package/dist/api/geometry.d.ts +345 -341
- package/dist/api/index.d.ts +262 -144
- package/dist/api/text.d.ts +3 -1
- package/dist/docs/guides/concepts.md +22 -7
- package/dist/docs/guides/fundamentals.md +8 -5
- package/dist/docs/guides/hosting.md +21 -11
- package/dist/docs/guides/recipes.md +42 -21
- package/dist/docs/manifest.json +710 -507
- package/dist/docs/reference/engine/Export3mfOptions.md +1 -1
- package/dist/docs/reference/engine/ExportMeshPart.md +1 -1
- package/dist/docs/reference/engine/GenerationOptions.md +1 -1
- package/dist/docs/reference/engine/GeometryResource.md +1 -1
- package/dist/docs/reference/engine/ModelDependencies.md +1 -1
- package/dist/docs/reference/engine/ModelEngine.md +1 -1
- package/dist/docs/reference/engine/ModelEngineOptions.md +4 -8
- package/dist/docs/reference/engine/ModelSession.md +1 -1
- package/dist/docs/reference/engine/ModelSnapshot.md +20 -9
- package/dist/docs/reference/engine/SessionOptions.md +1 -1
- package/dist/docs/reference/engine/SnapshotPart.md +2 -2
- package/dist/docs/reference/engine/categories/host-lifecycle.md +2 -2
- package/dist/docs/reference/engine/createModelEngine.md +3 -3
- package/dist/docs/reference/engine/defaultModelingLimits.md +1 -1
- package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
- package/dist/docs/reference/engine/validateModel.md +1 -1
- package/dist/docs/reference/engine.md +2 -2
- package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +4 -4
- package/dist/docs/reference/geometry/{Anchor3.md → Anchor3-type.md} +1 -1
- package/dist/docs/reference/geometry/ArcCurve2.md +5 -5
- package/dist/docs/reference/geometry/ArcCurve3.md +5 -5
- package/dist/docs/reference/geometry/{AttachTransformOptions.md → AttachOptions.md} +10 -5
- package/dist/docs/reference/geometry/AxisAngleRotation3.md +1 -1
- package/dist/docs/reference/geometry/Bounds2.md +1 -1
- package/dist/docs/reference/geometry/Bounds3.md +1 -1
- package/dist/docs/reference/geometry/BoundsFit2.md +1 -1
- package/dist/docs/reference/geometry/BoundsFit3.md +1 -1
- package/dist/docs/reference/geometry/BoundsFitOptions.md +1 -1
- package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +1 -1
- package/dist/docs/reference/geometry/BoxAnchorFace.md +1 -1
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +1 -1
- package/dist/docs/reference/geometry/BoxEdge.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/geometry/BoxOptions.md +8 -8
- package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +1 -1
- package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/CircleContourOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +7 -7
- package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +1 -1
- package/dist/docs/reference/geometry/ClearanceHoleFit.md +1 -1
- package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/Contour.md +1 -1
- package/dist/docs/reference/geometry/ContourCurve.md +1 -1
- package/dist/docs/reference/geometry/ContourPoint.md +1 -1
- package/dist/docs/reference/geometry/ContourSegment.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +1 -1
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +1 -1
- package/dist/docs/reference/geometry/Curve2.md +1 -1
- package/dist/docs/reference/geometry/Curve3.md +1 -1
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +5 -3
- package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +1 -1
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +3 -3
- package/dist/docs/reference/geometry/CylinderOptions.md +3 -3
- package/dist/docs/reference/geometry/CylindricalGearDimensions.md +3 -3
- package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +3 -3
- package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearSpec.md +6 -6
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
- package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/EllipseContourOptions.md +1 -1
- package/dist/docs/reference/geometry/EndTreatments.md +1 -1
- package/dist/docs/reference/geometry/ExtrudeOptions.md +6 -6
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +5 -5
- package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
- package/dist/docs/reference/geometry/Frame3.md +1 -1
- package/dist/docs/reference/geometry/GeometryError.md +1 -1
- package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
- package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
- package/dist/docs/reference/geometry/GeometryResolution.md +5 -5
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/geometry/GridPatternOptions.md +9 -3
- package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
- package/dist/docs/reference/geometry/HeightfieldOptions.md +1 -1
- package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
- package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +5 -5
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +6 -6
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +1 -1
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +1 -1
- package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +6 -6
- package/dist/docs/reference/geometry/LineCurve2.md +1 -1
- package/dist/docs/reference/geometry/LineCurve3.md +1 -1
- package/dist/docs/reference/geometry/LinearPatternOptions.md +12 -5
- package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/geometry/LoftMeshStation.md +4 -4
- package/dist/docs/reference/geometry/LoftOptions.md +1 -1
- package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
- package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
- package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
- package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
- package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
- package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
- package/dist/docs/reference/geometry/Path2-type.md +192 -0
- package/dist/docs/reference/geometry/Path2Data.md +14 -0
- package/dist/docs/reference/geometry/Path2Input.md +15 -0
- package/dist/docs/reference/geometry/Path3-type.md +192 -0
- package/dist/docs/reference/geometry/Path3Data.md +14 -0
- package/dist/docs/reference/geometry/Path3Input.md +15 -0
- package/dist/docs/reference/geometry/PathFrame.md +1 -1
- package/dist/docs/reference/geometry/PathLocation.md +65 -0
- package/dist/docs/reference/geometry/PathNormalGuide.md +4 -3
- package/dist/docs/reference/geometry/PathOptions.md +34 -0
- package/dist/docs/reference/geometry/PathPatternOptions.md +3 -3
- package/dist/docs/reference/geometry/PathPlacement.md +1 -1
- package/dist/docs/reference/geometry/PathResamplingOptions.md +80 -0
- package/dist/docs/reference/geometry/Pivot2Options.md +1 -1
- package/dist/docs/reference/geometry/Pivot3Options.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +22 -22
- package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
- package/dist/docs/reference/geometry/PlanarPatchQuality.md +1 -1
- package/dist/docs/reference/geometry/PolygonData.md +1 -1
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +4 -4
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +31 -0
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +104 -0
- package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
- package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/geometry/Profile.md +1 -1
- package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
- package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
- package/dist/docs/reference/geometry/ProfileSpan2.md +2 -2
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
- package/dist/docs/reference/geometry/RackPitchSpec.md +5 -5
- package/dist/docs/reference/geometry/RadialPatternOptions.md +17 -22
- package/dist/docs/reference/geometry/RadialSizing.md +1 -1
- package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/geometry/RectangleContourOptions.md +1 -1
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +1 -1
- package/dist/docs/reference/geometry/RegionData.md +1 -1
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +3 -3
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/RevolveOptions.md +9 -4
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleContourOptions.md +3 -3
- package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/SampledCurve2.md +1 -1
- package/dist/docs/reference/geometry/SampledCurve3.md +1 -1
- package/dist/docs/reference/geometry/SampledThreadHelices.md +3 -3
- package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
- package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
- package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +3 -3
- package/dist/docs/reference/geometry/SphereOptions.md +3 -3
- package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/StrokeCap.md +7 -0
- package/dist/docs/reference/geometry/StrokeJoin.md +7 -0
- package/dist/docs/reference/geometry/{StrokePathRegionOptions.md → StrokeOptions.md} +7 -7
- package/dist/docs/reference/geometry/SvgImportOptions.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +13 -13
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +11 -11
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +9 -9
- package/dist/docs/reference/geometry/SweepOptions.md +6 -6
- package/dist/docs/reference/geometry/SweepOrientation.md +7 -7
- package/dist/docs/reference/geometry/ThreadBevelOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +5 -5
- package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
- package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
- package/dist/docs/reference/geometry/ThreadHelixOptions.md +3 -3
- package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
- package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
- package/dist/docs/reference/geometry/{ThreadProfile.md → ThreadProfile-type.md} +1 -1
- package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
- package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/ThreadRole.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutBevel.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutOptions.md +6 -6
- package/dist/docs/reference/geometry/ThreadedNutPreflight.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
- package/dist/docs/reference/geometry/ThreadedRodOptions.md +6 -6
- package/dist/docs/reference/geometry/TorusOptions.md +8 -8
- package/dist/docs/reference/geometry/Transform2-type.md +1 -1
- package/dist/docs/reference/geometry/Transform2Input.md +1 -1
- package/dist/docs/reference/geometry/Transform2Matrix.md +1 -1
- package/dist/docs/reference/geometry/Transform3-type.md +1 -1
- package/dist/docs/reference/geometry/Transform3Input.md +1 -1
- package/dist/docs/reference/geometry/Transform3Matrix.md +1 -1
- package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +5 -4
- package/dist/docs/reference/geometry/TriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +2 -2
- package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +3 -3
- package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignature.md +2 -2
- package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +3 -3
- package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/TubeOptions.md +8 -8
- package/dist/docs/reference/geometry/Vector2-type.md +1 -1
- package/dist/docs/reference/geometry/Vector2Input.md +1 -1
- package/dist/docs/reference/geometry/Vector2Tuple.md +1 -1
- package/dist/docs/reference/geometry/Vector3-type.md +1 -1
- package/dist/docs/reference/geometry/Vector3Input.md +1 -1
- package/dist/docs/reference/geometry/Vector3Tuple.md +1 -1
- package/dist/docs/reference/geometry/VectorTextArcBaseline.md +3 -3
- package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
- package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +1 -1
- package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
- package/dist/docs/reference/geometry/add2.md +1 -1
- package/dist/docs/reference/geometry/add3.md +1 -1
- package/dist/docs/reference/geometry/analyzeTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +2 -2
- package/dist/docs/reference/geometry/{createAnchor3.md → anchor3.md} +9 -9
- package/dist/docs/reference/geometry/anchorFrame3.md +5 -5
- package/dist/docs/reference/geometry/applyTransformDirection3.md +1 -1
- package/dist/docs/reference/geometry/applyTransformPoint3.md +1 -1
- package/dist/docs/reference/geometry/{attachTransform.md → attachmentTransform3.md} +13 -13
- package/dist/docs/reference/geometry/boundsCenter.md +1 -1
- package/dist/docs/reference/geometry/boundsFromSize.md +1 -1
- package/dist/docs/reference/geometry/boundsSize.md +1 -1
- package/dist/docs/reference/geometry/boxAnchor3.md +4 -4
- package/dist/docs/reference/geometry/categories/bounds-layout.md +1 -1
- package/dist/docs/reference/geometry/categories/curves-paths.md +15 -13
- package/dist/docs/reference/geometry/categories/mechanical.md +6 -6
- package/dist/docs/reference/geometry/categories/meshes.md +3 -4
- package/dist/docs/reference/geometry/categories/pattern-placement.md +6 -6
- package/dist/docs/reference/geometry/categories/primitive-options.md +4 -4
- package/dist/docs/reference/geometry/categories/profiles-regions.md +2 -3
- package/dist/docs/reference/geometry/categories/resolution-errors.md +1 -1
- package/dist/docs/reference/geometry/categories/transforms-math.md +5 -5
- package/dist/docs/reference/geometry/categories/vector-import.md +5 -5
- package/dist/docs/reference/geometry/circleContour.md +1 -1
- package/dist/docs/reference/geometry/closeToAxis.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +5 -5
- package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +5 -5
- package/dist/docs/reference/geometry/composeTransform3.md +1 -1
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +10 -6
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +8 -7
- package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +1 -1
- package/dist/docs/reference/geometry/{createTriangleMeshSignature.md → computeTriangleMeshSignature.md} +4 -4
- package/dist/docs/reference/geometry/containsBounds.md +1 -1
- package/dist/docs/reference/geometry/contourContainsPoint.md +1 -1
- package/dist/docs/reference/geometry/cross2.md +1 -1
- package/dist/docs/reference/geometry/cross3.md +1 -1
- package/dist/docs/reference/geometry/cylinderAnchor3.md +5 -5
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/distance2.md +1 -1
- package/dist/docs/reference/geometry/distance3.md +1 -1
- package/dist/docs/reference/geometry/distributeAlongPath.md +8 -6
- package/dist/docs/reference/geometry/dot2.md +1 -1
- package/dist/docs/reference/geometry/dot3.md +1 -1
- package/dist/docs/reference/geometry/ellipseContour.md +1 -1
- package/dist/docs/reference/geometry/eulerTransform3.md +1 -1
- package/dist/docs/reference/geometry/extrudeMesh.md +8 -8
- package/dist/docs/reference/geometry/fitBounds.md +1 -1
- package/dist/docs/reference/geometry/fitTextLayout.md +1 -1
- package/dist/docs/reference/geometry/frameTransform3.md +1 -1
- package/dist/docs/reference/geometry/{getMetricClearanceHole.md → getMetricClearanceHoleDiameter.md} +3 -3
- package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/gridPatternTransforms.md +2 -2
- package/dist/docs/reference/geometry/heightfieldMesh.md +1 -1
- package/dist/docs/reference/geometry/{buildHelicalThreadRidgeMesh.md → helicalThreadRidgeMesh.md} +5 -5
- package/dist/docs/reference/geometry/{buildHelicalThreadSolidMesh.md → helicalThreadSolidMesh.md} +5 -5
- package/dist/docs/reference/geometry/inverseTransform3.md +1 -1
- package/dist/docs/reference/geometry/isGeometryError.md +1 -1
- package/dist/docs/reference/geometry/joinTriangleMeshes.md +1 -1
- package/dist/docs/reference/geometry/layoutRow.md +1 -1
- package/dist/docs/reference/geometry/length2.md +1 -1
- package/dist/docs/reference/geometry/length3.md +1 -1
- package/dist/docs/reference/geometry/lerp2.md +1 -1
- package/dist/docs/reference/geometry/lerp3.md +1 -1
- package/dist/docs/reference/geometry/linearPatternTransforms.md +2 -2
- package/dist/docs/reference/geometry/loftMesh.md +2 -1
- package/dist/docs/reference/geometry/matchProfiles.md +1 -1
- package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +1 -1
- package/dist/docs/reference/geometry/meshBounds.md +1 -1
- package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +3 -3
- package/dist/docs/reference/geometry/normalize2.md +1 -1
- package/dist/docs/reference/geometry/normalize3.md +1 -1
- package/dist/docs/reference/geometry/normalizeContour.md +1 -1
- package/dist/docs/reference/geometry/normalizePolygon.md +1 -1
- package/dist/docs/reference/geometry/normalizeRegion.md +1 -1
- package/dist/docs/reference/geometry/optimizePlanarPatches.md +11 -11
- package/dist/docs/reference/geometry/path2.md +42 -0
- package/dist/docs/reference/geometry/path3.md +42 -0
- package/dist/docs/reference/geometry/pathPatternTransforms.md +6 -6
- package/dist/docs/reference/geometry/preflightHeightfield.md +1 -1
- package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +3 -3
- package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +3 -3
- package/dist/docs/reference/geometry/preflightSvgRegion.md +1 -1
- package/dist/docs/reference/geometry/preflightThreadedNut.md +3 -3
- package/dist/docs/reference/geometry/preflightThreadedRod.md +3 -3
- package/dist/docs/reference/geometry/projectOntoPlane3.md +1 -1
- package/dist/docs/reference/geometry/radialPatternTransforms.md +1 -17
- package/dist/docs/reference/geometry/rectangleContour.md +1 -1
- package/dist/docs/reference/geometry/rectangleProfile.md +1 -1
- package/dist/docs/reference/geometry/regionArea.md +1 -1
- package/dist/docs/reference/geometry/regionBounds.md +1 -1
- package/dist/docs/reference/geometry/regularPolygonContour.md +2 -2
- package/dist/docs/reference/geometry/resamplePolyline2.md +2 -2
- package/dist/docs/reference/geometry/resamplePolyline3.md +2 -2
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +4 -4
- package/dist/docs/reference/geometry/resolveArcSegments.md +4 -4
- package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
- package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
- package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
- package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +3 -3
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
- package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +4 -4
- package/dist/docs/reference/geometry/reverseTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/revolveMesh.md +10 -10
- package/dist/docs/reference/geometry/rotate2.md +1 -1
- package/dist/docs/reference/geometry/rotationTransform3.md +1 -1
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +6 -4
- package/dist/docs/reference/geometry/sampleContour.md +3 -3
- package/dist/docs/reference/geometry/sampleCurve2.md +3 -3
- package/dist/docs/reference/geometry/sampleCurve3.md +2 -2
- package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleHelix.md +2 -2
- package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleRackToothPath.md +4 -4
- package/dist/docs/reference/geometry/sampleSideProfile.md +3 -3
- package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
- package/dist/docs/reference/geometry/sampleThreadHelices.md +2 -2
- package/dist/docs/reference/geometry/scale2.md +1 -1
- package/dist/docs/reference/geometry/scale3.md +1 -1
- package/dist/docs/reference/geometry/scaleTransform3.md +1 -1
- package/dist/docs/reference/geometry/signedContourArea.md +1 -1
- package/dist/docs/reference/geometry/starContour.md +1 -1
- package/dist/docs/reference/geometry/strokeRegionData.md +63 -0
- package/dist/docs/reference/geometry/subtract2.md +1 -1
- package/dist/docs/reference/geometry/subtract3.md +1 -1
- package/dist/docs/reference/geometry/sweepMesh.md +9 -9
- package/dist/docs/reference/geometry/{createThreadProfile.md → threadProfile.md} +6 -6
- package/dist/docs/reference/geometry/transform2.md +1 -1
- package/dist/docs/reference/geometry/transform3.md +1 -1
- package/dist/docs/reference/geometry/transformDeterminant3.md +1 -1
- package/dist/docs/reference/geometry/transformRegionData.md +1 -1
- package/dist/docs/reference/geometry/transformTriangleMesh.md +6 -6
- package/dist/docs/reference/geometry/translationTransform3.md +1 -1
- package/dist/docs/reference/geometry/triangulateContour.md +1 -1
- package/dist/docs/reference/geometry/validateSolidMesh.md +2 -2
- package/dist/docs/reference/geometry/validateTransform3.md +1 -1
- package/dist/docs/reference/geometry/validateTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/vector2.md +1 -1
- package/dist/docs/reference/geometry/vector3.md +1 -1
- package/dist/docs/reference/geometry.md +2 -2
- package/dist/docs/reference/model/Anchor3.md +1 -1
- package/dist/docs/reference/model/AttachOptions.md +10 -5
- package/dist/docs/reference/model/Bounds2.md +1 -1
- package/dist/docs/reference/model/Bounds3.md +1 -1
- package/dist/docs/reference/model/BoxEdge.md +1 -1
- package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/model/BoxOptions.md +8 -8
- package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/CircleContourOptions.md +1 -1
- package/dist/docs/reference/model/CircleOptions.md +3 -3
- package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
- package/dist/docs/reference/model/Computed.md +1 -1
- package/dist/docs/reference/model/ComputedValue.md +1 -1
- package/dist/docs/reference/model/Contour.md +1 -1
- package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
- package/dist/docs/reference/model/CorrespondingContour.md +1 -1
- package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
- package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
- package/dist/docs/reference/model/CylinderOptions.md +3 -3
- package/dist/docs/reference/model/DiagnosticOptions.md +1 -1
- package/dist/docs/reference/model/EdgeTreatment.md +1 -1
- package/dist/docs/reference/model/EllipseContourOptions.md +1 -1
- package/dist/docs/reference/model/EllipseOptions.md +3 -3
- package/dist/docs/reference/model/EndTreatments.md +1 -1
- package/dist/docs/reference/model/ExtrudeOptions.md +6 -6
- package/dist/docs/reference/model/FinalizedModel.md +18 -8
- package/dist/docs/reference/model/FinalizedPart.md +1 -1
- package/dist/docs/reference/model/Frame3.md +1 -1
- package/dist/docs/reference/model/GenerateCallback.md +1 -1
- package/dist/docs/reference/model/GenerateContext.md +1 -1
- package/dist/docs/reference/model/GeneratedPart.md +1 -1
- package/dist/docs/reference/model/GenerationDiagnostic.md +1 -1
- package/dist/docs/reference/model/GenerationError.md +1 -1
- package/dist/docs/reference/model/GeometryResolution.md +5 -5
- package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/model/GridPatternOptions.md +9 -3
- package/dist/docs/reference/model/HeightfieldOptions.md +1 -1
- package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +3 -3
- package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +1 -1
- package/dist/docs/reference/model/HullOptions.md +5 -5
- package/dist/docs/reference/model/ImmutableBuffer-type.md +1 -1
- package/dist/docs/reference/model/ImmutableTriangleMesh.md +1 -1
- package/dist/docs/reference/model/ImplicitOptions.md +1 -1
- package/dist/docs/reference/model/InternalThreadCutterOptions.md +4 -4
- package/dist/docs/reference/model/LinearPatternOptions.md +12 -5
- package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/model/LoftOptions.md +1 -1
- package/dist/docs/reference/model/LoftPlacement.md +1 -1
- package/dist/docs/reference/model/LoftStation.md +3 -3
- package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/model/ModelProgram.md +1 -1
- package/dist/docs/reference/model/ModelingLimits.md +1 -1
- package/dist/docs/reference/model/NumericArray.md +1 -1
- package/dist/docs/reference/model/PartGeometry.md +1 -1
- package/dist/docs/reference/model/PartOptions.md +1 -1
- package/dist/docs/reference/model/Path2-type.md +192 -0
- package/dist/docs/reference/model/Path2Data.md +14 -0
- package/dist/docs/reference/model/Path2Input.md +15 -0
- package/dist/docs/reference/model/Path3-type.md +192 -0
- package/dist/docs/reference/model/Path3Data.md +14 -0
- package/dist/docs/reference/model/Path3Input.md +15 -0
- package/dist/docs/reference/model/PathLocation.md +65 -0
- package/dist/docs/reference/model/PathNormalGuide.md +4 -3
- package/dist/docs/reference/model/PathOptions.md +34 -0
- package/dist/docs/reference/model/PathPatternOptions.md +3 -3
- package/dist/docs/reference/model/PathResamplingOptions.md +79 -0
- package/dist/docs/reference/model/PatternSource.md +1 -1
- package/dist/docs/reference/model/Pivot2Options.md +1 -1
- package/dist/docs/reference/model/Pivot3Options.md +1 -1
- package/dist/docs/reference/model/PlaneOptions.md +3 -3
- package/dist/docs/reference/model/PolygonData.md +1 -1
- package/dist/docs/reference/model/PolygonOptions.md +8 -8
- package/dist/docs/reference/model/{PrimitivePlacement.md → PrimitiveAttachment.md} +7 -7
- package/dist/docs/reference/model/{PrimitivePlacementOptions.md → PrimitiveAttachmentOptions.md} +41 -20
- package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
- package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/model/Profile.md +1 -1
- package/dist/docs/reference/model/ProfileComponent2.md +1 -1
- package/dist/docs/reference/model/ProfileContour2.md +1 -1
- package/dist/docs/reference/model/ProfileSpan2.md +2 -2
- package/dist/docs/reference/model/ProfiledEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/RadialPatternOptions.md +17 -22
- package/dist/docs/reference/model/RadialSizing.md +1 -1
- package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/model/RectangleContourOptions.md +1 -1
- package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
- package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
- package/dist/docs/reference/model/RectangleOptions.md +8 -8
- package/dist/docs/reference/model/RegionData.md +1 -1
- package/dist/docs/reference/model/RegularPolygonOptions.md +5 -5
- package/dist/docs/reference/model/RevolveOptions.md +9 -4
- package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Section.md +12 -11
- package/dist/docs/reference/model/SectionHullOptions.md +5 -5
- package/dist/docs/reference/model/SectionInspection.md +7 -7
- package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
- package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
- package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Solid.md +23 -6
- package/dist/docs/reference/model/SolidInspection.md +4 -4
- package/dist/docs/reference/model/{SolidRayHit.md → SolidSegmentHit.md} +3 -3
- package/dist/docs/reference/model/SphereOptions.md +3 -3
- package/dist/docs/reference/model/StarOptions.md +10 -10
- package/dist/docs/reference/model/{StrokePathCap.md → StrokeCap.md} +3 -3
- package/dist/docs/reference/model/{StrokePathJoin.md → StrokeJoin.md} +3 -3
- package/dist/docs/reference/model/StrokeOptions.md +6 -6
- package/dist/docs/reference/model/SvgOrigin.md +1 -1
- package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
- package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
- package/dist/docs/reference/model/SweepOptions.md +6 -6
- package/dist/docs/reference/model/SweepOrientation.md +7 -7
- package/dist/docs/reference/model/TextSectionOptions.md +1 -1
- package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
- package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
- package/dist/docs/reference/model/ThreadHandedness.md +1 -1
- package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
- package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
- package/dist/docs/reference/model/ThreadProfile.md +1 -1
- package/dist/docs/reference/model/ThreadRidgeOptions.md +1 -1
- package/dist/docs/reference/model/ThreadedNutBevel.md +1 -1
- package/dist/docs/reference/model/ThreadedNutOptions.md +4 -4
- package/dist/docs/reference/model/ThreadedNutPreflight.md +1 -1
- package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
- package/dist/docs/reference/model/ThreadedRodOptions.md +4 -4
- package/dist/docs/reference/model/TorusOptions.md +8 -8
- package/dist/docs/reference/model/Transform2-type.md +1 -1
- package/dist/docs/reference/model/Transform2Input.md +1 -1
- package/dist/docs/reference/model/Transform2Matrix.md +1 -1
- package/dist/docs/reference/model/Transform3-type.md +1 -1
- package/dist/docs/reference/model/Transform3Input.md +1 -1
- package/dist/docs/reference/model/Transform3Matrix.md +1 -1
- package/dist/docs/reference/model/TriangleMesh.md +1 -1
- package/dist/docs/reference/model/TriangleMeshAnalysis.md +2 -2
- package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/model/TubeOptions.md +8 -8
- package/dist/docs/reference/model/Vector2-type.md +1 -1
- package/dist/docs/reference/model/Vector2Input.md +1 -1
- package/dist/docs/reference/model/Vector2Tuple.md +1 -1
- package/dist/docs/reference/model/Vector3-type.md +1 -1
- package/dist/docs/reference/model/Vector3Input.md +1 -1
- package/dist/docs/reference/model/Vector3Tuple.md +1 -1
- package/dist/docs/reference/model/VectorTextLayout.md +1 -1
- package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/model/anchor.md +1 -1
- package/dist/docs/reference/model/box.md +3 -3
- package/dist/docs/reference/model/castSegment.md +40 -0
- package/dist/docs/reference/model/categories/boolean-operations.md +1 -1
- package/dist/docs/reference/model/categories/bounded-surfaces.md +1 -1
- package/dist/docs/reference/model/categories/contracts.md +2 -2
- package/dist/docs/reference/model/categories/core-values-errors.md +1 -1
- package/dist/docs/reference/model/categories/explicit-profiles.md +2 -2
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +2 -2
- package/dist/docs/reference/model/categories/generation.md +1 -1
- package/dist/docs/reference/model/categories/inspection.md +4 -5
- package/dist/docs/reference/model/categories/mesh-inspection.md +2 -2
- package/dist/docs/reference/model/categories/paths.md +33 -0
- package/dist/docs/reference/model/categories/primitives.md +2 -2
- package/dist/docs/reference/model/categories/resolution.md +2 -2
- package/dist/docs/reference/model/categories/sections.md +3 -4
- package/dist/docs/reference/model/categories/threads.md +5 -5
- package/dist/docs/reference/model/categories/transforms-placement.md +8 -8
- package/dist/docs/reference/model/circle.md +1 -1
- package/dist/docs/reference/model/components.md +6 -6
- package/dist/docs/reference/model/compose.md +1 -1
- package/dist/docs/reference/model/cylinder.md +1 -1
- package/dist/docs/reference/model/distance.md +1 -1
- package/dist/docs/reference/model/ellipse.md +1 -1
- package/dist/docs/reference/model/extrude.md +3 -3
- package/dist/docs/reference/model/generate.md +1 -1
- package/dist/docs/reference/model/gridPattern.md +4 -4
- package/dist/docs/reference/model/heightfield.md +1 -1
- package/dist/docs/reference/model/hull.md +1 -1
- package/dist/docs/reference/model/immutableBuffer.md +1 -1
- package/dist/docs/reference/model/immutableMesh.md +1 -1
- package/dist/docs/reference/model/implicit.md +1 -1
- package/dist/docs/reference/model/inspectSection.md +1 -1
- package/dist/docs/reference/model/inspectSolid.md +1 -1
- package/dist/docs/reference/model/internalThreadCutter.md +4 -4
- package/dist/docs/reference/model/intersect.md +1 -1
- package/dist/docs/reference/model/isEmpty.md +1 -1
- package/dist/docs/reference/model/linearPattern.md +4 -4
- package/dist/docs/reference/model/loft.md +1 -1
- package/dist/docs/reference/model/matchProfiles.md +2 -2
- package/dist/docs/reference/model/minkowskiSum.md +1 -1
- package/dist/docs/reference/model/path2.md +42 -0
- package/dist/docs/reference/model/path3.md +42 -0
- package/dist/docs/reference/model/pathPattern.md +13 -12
- package/dist/docs/reference/model/polygon.md +4 -4
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +3 -3
- package/dist/docs/reference/model/preflightThreadedNut.md +3 -3
- package/dist/docs/reference/model/preflightThreadedRod.md +3 -3
- package/dist/docs/reference/model/radialPattern.md +5 -37
- package/dist/docs/reference/model/rectangle.md +3 -3
- package/dist/docs/reference/model/regularPolygon.md +1 -1
- package/dist/docs/reference/model/revolve.md +5 -4
- package/dist/docs/reference/model/solidFromMesh.md +1 -1
- package/dist/docs/reference/model/sphere.md +1 -1
- package/dist/docs/reference/model/split.md +1 -1
- package/dist/docs/reference/model/splitByPlane.md +1 -1
- package/dist/docs/reference/model/star.md +4 -4
- package/dist/docs/reference/model/stroke.md +8 -8
- package/dist/docs/reference/model/svgPathSection.md +1 -1
- package/dist/docs/reference/model/svgSection.md +1 -1
- package/dist/docs/reference/model/sweep.md +7 -7
- package/dist/docs/reference/model/textSection.md +1 -1
- package/dist/docs/reference/model/threadRidge.md +2 -2
- package/dist/docs/reference/model/threadedNut.md +4 -4
- package/dist/docs/reference/model/threadedRod.md +4 -4
- package/dist/docs/reference/model/torus.md +3 -3
- package/dist/docs/reference/model/transform2.md +1 -1
- package/dist/docs/reference/model/transform3.md +1 -1
- package/dist/docs/reference/model/tube.md +3 -3
- package/dist/docs/reference/model/union.md +1 -1
- package/dist/docs/reference/model/vector2.md +1 -1
- package/dist/docs/reference/model/vector3.md +1 -1
- package/dist/docs/reference/model.md +3 -2
- package/dist/docs/reference/text/Bounds2.md +1 -1
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
- package/dist/docs/reference/text/Vector2Tuple.md +1 -1
- package/dist/docs/reference/text/VectorFont.md +2 -2
- package/dist/docs/reference/text/VectorFontOptions.md +1 -1
- package/dist/docs/reference/text/VectorTextArcBaseline.md +3 -3
- package/dist/docs/reference/text/VectorTextLayout.md +1 -1
- package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
- package/dist/docs/reference/text/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/text/VectorTextOptions.md +1 -1
- package/dist/docs/reference/text/categories/font-preparation.md +3 -3
- package/dist/docs/reference/text/prepareVectorFont.md +2 -2
- package/dist/docs/reference/text.md +1 -1
- package/dist/engine/construction-operations.js +31 -14
- package/dist/engine/execution.js +39 -8
- package/dist/engine/extrusion-finishing.js +1 -1
- package/dist/engine/index.js +6 -1
- package/dist/engine/inspection-operations.js +13 -11
- package/dist/engine/loft-operations.js +35 -14
- package/dist/engine/model-summary.js +8 -5
- package/dist/engine/native/material-components.js +305 -0
- package/dist/engine/native/regions.js +2 -1
- package/dist/engine/native/threads.js +3 -3
- package/dist/engine/native/transforms.js +5 -7
- package/dist/engine/operation-environment.js +2 -2
- package/dist/engine/pattern-operations.js +1 -1
- package/dist/engine/placement.js +2 -2
- package/dist/engine/primitive-anchors.js +17 -17
- package/dist/engine/primitive-operations.js +1 -1
- package/dist/engine/primitive-profiles.js +7 -7
- package/dist/engine/profile-mesh.js +7 -7
- package/dist/engine/recipe-realization.js +6 -0
- package/dist/engine/section-operations.js +33 -8
- package/dist/engine/session-snapshot.js +14 -4
- package/dist/engine/session.js +10 -5
- package/dist/engine/shape-anchors.js +3 -3
- package/dist/engine/transform-operations.js +24 -24
- package/dist/geometry/anchors.js +40 -33
- package/dist/geometry/curves/sampling.js +14 -14
- package/dist/geometry/edge-finishing.js +1 -1
- package/dist/geometry/extrusion.js +13 -16
- package/dist/geometry/index.js +9 -10
- package/dist/geometry/loft/loft-simple-mesh.js +6 -6
- package/dist/geometry/loft/loft.js +22 -13
- package/dist/geometry/math/immutable-value.js +1 -1
- package/dist/geometry/mechanical/gear-motion.js +3 -3
- package/dist/geometry/mechanical/gears.js +38 -38
- package/dist/geometry/mechanical/index.js +3 -3
- package/dist/geometry/mechanical/standards.js +1 -1
- package/dist/geometry/mechanical/thread-helices.js +2 -3
- package/dist/geometry/mechanical/thread-mesh-plan.js +4 -5
- package/dist/geometry/mechanical/thread-mesh.js +7 -7
- package/dist/geometry/mechanical/thread-profiles.js +5 -5
- package/dist/geometry/mechanical/thread-solids.js +2 -2
- package/dist/geometry/mechanical/thread-surface.js +1 -1
- package/dist/geometry/mechanical/threads.js +8 -8
- package/dist/geometry/mesh/mesh-planar.js +25 -27
- package/dist/geometry/mesh/mesh-quality.js +5 -5
- package/dist/geometry/mesh/mesh-signature.js +13 -13
- package/dist/geometry/mesh/mesh-solid.js +7 -7
- package/dist/geometry/mesh/mesh.js +4 -15
- package/dist/geometry/paths/closest-point.js +8 -19
- package/dist/geometry/paths/frames.js +41 -11
- package/dist/geometry/paths/helix.js +16 -6
- package/dist/geometry/paths/path-value.js +252 -0
- package/dist/geometry/paths/planar.js +36 -23
- package/dist/geometry/paths/resampling.js +27 -5
- package/dist/geometry/patterns/placements.js +100 -27
- package/dist/geometry/patterns.js +2 -2
- package/dist/geometry/polygon-clipping.js +17 -0
- package/dist/geometry/profiles/contour.js +6 -6
- package/dist/geometry/profiles/matched.js +4 -4
- package/dist/geometry/profiles/profiles.js +4 -4
- package/dist/geometry/profiles/rectangle.js +4 -4
- package/dist/geometry/profiles/side-profile.js +7 -7
- package/dist/geometry/profiles/span-sampling.js +1 -1
- package/dist/geometry/resolution.js +34 -34
- package/dist/geometry/revolve/revolve-mesh.js +12 -7
- package/dist/geometry/stroke-path.js +12 -27
- package/dist/geometry/svg/fill.js +7 -21
- package/dist/geometry/svg-import.js +23 -23
- package/dist/geometry/sweeps/options.js +5 -4
- package/dist/geometry/sweeps/orientation.js +5 -5
- package/dist/geometry/sweeps/stations.js +10 -10
- package/dist/geometry/sweeps/sweep-closed.js +2 -2
- package/dist/geometry/sweeps/sweep-mesh.js +9 -3
- package/dist/geometry/sweeps/sweep-open.js +1 -1
- package/dist/geometry/sweeps/validation.js +4 -7
- package/dist/geometry/transform-geometry.js +7 -14
- package/dist/index.js +1 -0
- package/dist/model/execution-binding.js +3 -3
- package/dist/model/geometry-recipes.js +1 -1
- package/dist/model/immutable-generation-data.js +66 -6
- package/dist/model/operations.js +25 -26
- package/dist/model/recipe-declaration.js +13 -7
- package/dist/model/shape-handles.js +2 -1
- package/dist/text/index.js +15 -9
- package/dist/text/vector-text-layout.js +31 -26
- package/package.json +1 -1
- package/dist/docs/reference/geometry/ClosestPointOnPathOptions.md +0 -34
- package/dist/docs/reference/geometry/ClosestPointOnPathResult.md +0 -65
- package/dist/docs/reference/geometry/Path2.md +0 -14
- package/dist/docs/reference/geometry/Path3.md +0 -14
- package/dist/docs/reference/geometry/PrimitivePlacement.md +0 -31
- package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +0 -83
- package/dist/docs/reference/geometry/StrokePathCap.md +0 -7
- package/dist/docs/reference/geometry/StrokePathJoin.md +0 -7
- package/dist/docs/reference/geometry/closestPointOnPath.md +0 -110
- package/dist/docs/reference/geometry/cumulativePathLengths.md +0 -33
- package/dist/docs/reference/geometry/measureTriangleMesh.md +0 -55
- package/dist/docs/reference/geometry/pathLength.md +0 -33
- package/dist/docs/reference/geometry/strokePathRegion.md +0 -63
- package/dist/docs/reference/geometry/transformContour.md +0 -42
- package/dist/docs/reference/geometry/transformPath2.md +0 -40
- package/dist/docs/reference/geometry/transformPath3.md +0 -33
- package/dist/docs/reference/model/Path2.md +0 -20
- package/dist/docs/reference/model/rayCast.md +0 -40
- package/dist/docs/reference/model/toTriangleMesh.md +0 -27
- package/dist/geometry/paths/path.js +0 -32
package/dist/api/geometry.d.ts
CHANGED
|
@@ -38,12 +38,12 @@ export declare interface AlignedCircularSegmentsOptions {
|
|
|
38
38
|
* Additional full-circle segment floor, as a safe integer of at least three.
|
|
39
39
|
* @defaultValue `3`
|
|
40
40
|
*/
|
|
41
|
-
readonly
|
|
41
|
+
readonly minSegments?: number;
|
|
42
42
|
/**
|
|
43
43
|
* Exact full-circle segment count.
|
|
44
44
|
*
|
|
45
45
|
* This takes precedence over `resolution.circularSegments` and adaptive sampling, and must
|
|
46
|
-
* already satisfy every alignment factor and `
|
|
46
|
+
* already satisfy every alignment factor and `minSegments`.
|
|
47
47
|
*/
|
|
48
48
|
readonly segments?: number;
|
|
49
49
|
/** Operation-level physical tessellation policy over the active model-wide policy. */
|
|
@@ -96,10 +96,30 @@ export declare interface Anchor3 {
|
|
|
96
96
|
readonly up: Vector3Tuple;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Constructs a normalized immutable attachment anchor.
|
|
101
|
+
*
|
|
102
|
+
* `up` is projected onto the plane perpendicular to `direction`, removing small
|
|
103
|
+
* input drift while preserving its roll intent.
|
|
104
|
+
*
|
|
105
|
+
* @param position - Finite anchor point in model coordinates.
|
|
106
|
+
* @param direction - Non-zero outward attachment normal.
|
|
107
|
+
* @param up - Non-parallel roll reference; defaults to +Y.
|
|
108
|
+
* @param tolerance - Optional comparison overrides.
|
|
109
|
+
* @returns A frozen anchor with unit, orthogonal direction and up vectors.
|
|
110
|
+
* @throws {@link GeometryError} For non-finite or degenerate inputs.
|
|
111
|
+
*/
|
|
112
|
+
export declare function anchor3(
|
|
113
|
+
position: Vector3Input,
|
|
114
|
+
direction: Vector3Input,
|
|
115
|
+
up?: Vector3Input,
|
|
116
|
+
tolerance?: GeometryToleranceOptions,
|
|
117
|
+
): Anchor3;
|
|
118
|
+
|
|
99
119
|
/**
|
|
100
120
|
* Converts an anchor into a right-handed frame with direction as local +Z.
|
|
101
121
|
*
|
|
102
|
-
* @param anchor - Anchor created by {@link
|
|
122
|
+
* @param anchor - Anchor created by {@link anchor3} or equivalent valid data.
|
|
103
123
|
* @param tolerance - Optional comparison overrides.
|
|
104
124
|
* @returns A normalized right-handed frame at the anchor position.
|
|
105
125
|
*/
|
|
@@ -143,9 +163,9 @@ export declare interface ArcCurve2 {
|
|
|
143
163
|
/** Positive circular radius in millimetres. */
|
|
144
164
|
readonly radius: number;
|
|
145
165
|
/** Initial angle in degrees; defaults to zero. */
|
|
146
|
-
readonly
|
|
166
|
+
readonly startAngle?: number;
|
|
147
167
|
/** Nonzero signed sweep in degrees, bounded to one complete turn. */
|
|
148
|
-
readonly
|
|
168
|
+
readonly sweepAngle: number;
|
|
149
169
|
}
|
|
150
170
|
|
|
151
171
|
/** Spatial circular arc in the plane of two orthogonal unit directions. */
|
|
@@ -161,9 +181,9 @@ export declare interface ArcCurve3 {
|
|
|
161
181
|
/** Orthogonal unit direction at positive ninety degrees. */
|
|
162
182
|
readonly yAxis: Vector3Tuple;
|
|
163
183
|
/** Initial angle in degrees; defaults to zero. */
|
|
164
|
-
readonly
|
|
184
|
+
readonly startAngle?: number;
|
|
165
185
|
/** Nonzero signed sweep in degrees, bounded to one complete turn. */
|
|
166
|
-
readonly
|
|
186
|
+
readonly sweepAngle: number;
|
|
167
187
|
}
|
|
168
188
|
|
|
169
189
|
/**
|
|
@@ -180,20 +200,20 @@ export declare interface ArcCurve3 {
|
|
|
180
200
|
* @returns A frozen affine transform for the moving object.
|
|
181
201
|
* @throws {@link GeometryError} For invalid anchors or non-finite options.
|
|
182
202
|
*/
|
|
183
|
-
export declare function
|
|
203
|
+
export declare function attachmentTransform3(
|
|
184
204
|
source: Anchor3,
|
|
185
205
|
target: Anchor3,
|
|
186
|
-
options?:
|
|
206
|
+
options?: AttachOptions,
|
|
187
207
|
): Transform3Matrix;
|
|
188
208
|
|
|
189
209
|
/** Options controlling how one anchor is attached to another. */
|
|
190
|
-
export declare interface
|
|
210
|
+
export declare interface AttachOptions {
|
|
191
211
|
/** Align outward directions face-to-face (`opposed`) or in parallel (`same`). */
|
|
192
212
|
readonly alignment?: "opposed" | "same";
|
|
193
213
|
/** Separation along the target anchor's outward direction in model units. */
|
|
194
214
|
readonly gap?: number;
|
|
195
|
-
/** Additional right-handed roll about the attached direction, in
|
|
196
|
-
readonly
|
|
215
|
+
/** Additional right-handed roll about the attached direction, in degrees. */
|
|
216
|
+
readonly spin?: number;
|
|
197
217
|
/** Optional numeric comparison overrides. */
|
|
198
218
|
readonly tolerance?: GeometryToleranceOptions;
|
|
199
219
|
}
|
|
@@ -335,7 +355,7 @@ export declare type BoxEdgeTreatments = Readonly<
|
|
|
335
355
|
/**
|
|
336
356
|
* Dimensions, placement, and uniform or independently selected finishing for an axis-aligned box.
|
|
337
357
|
*/
|
|
338
|
-
export declare interface BoxOptions extends
|
|
358
|
+
export declare interface BoxOptions extends PrimitiveAttachment {
|
|
339
359
|
/** Explicit sampling ceilings for edge treatments, bounded by the host policy. */
|
|
340
360
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
341
361
|
/**
|
|
@@ -349,28 +369,6 @@ export declare interface BoxOptions extends PrimitivePlacement {
|
|
|
349
369
|
readonly treatment?: EdgeTreatment | BoxEdgeTreatments;
|
|
350
370
|
}
|
|
351
371
|
|
|
352
|
-
/**
|
|
353
|
-
* Builds closed thread-ridge components with every profile locked to the
|
|
354
|
-
* shaft's radial/axial frame. The mesh is intended for union with its
|
|
355
|
-
* minor-envelope cylinder and never owns WASM objects.
|
|
356
|
-
*/
|
|
357
|
-
export declare function buildHelicalThreadRidgeMesh(
|
|
358
|
-
options: HelicalThreadRidgeMeshOptions,
|
|
359
|
-
): TriangleMesh;
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* Builds one closed threaded cylinder without a ridge/core Boolean seam.
|
|
363
|
-
*
|
|
364
|
-
* Each circular facet includes its exact phase-shifted profile breakpoints, including duplicate-Z
|
|
365
|
-
* samples for vertical flanks and blunt transitions. Adjacent variable grids are stitched as a
|
|
366
|
-
* monotone strip, with optional intermediate rows bounded by physical `maxSegmentLength`. A
|
|
367
|
-
* conservative pre-allocation estimate rejects excessive meshes before constructing position
|
|
368
|
-
* arrays.
|
|
369
|
-
*/
|
|
370
|
-
export declare function buildHelicalThreadSolidMesh(
|
|
371
|
-
options: HelicalThreadSolidMeshOptions,
|
|
372
|
-
): TriangleMesh;
|
|
373
|
-
|
|
374
372
|
/** Axial side carrying the near-normal pressure flank of a buttress thread. */
|
|
375
373
|
export declare type ButtressPressureFlankSide = "negative" | "positive";
|
|
376
374
|
|
|
@@ -467,54 +465,6 @@ export declare interface ClearanceHoleDimensions {
|
|
|
467
465
|
/** Common clearance-hole fit categories, ordered from smallest to largest. */
|
|
468
466
|
export declare type ClearanceHoleFit = "close" | "normal" | "loose";
|
|
469
467
|
|
|
470
|
-
/**
|
|
471
|
-
* Finds the closest position anywhere on an open XY path or closed contour.
|
|
472
|
-
*
|
|
473
|
-
* Open paths need two points; closed paths need three and omit the duplicated seam.
|
|
474
|
-
* Repeated vertices are treated as zero-length edges. Inputs and derived distances must be
|
|
475
|
-
* finite. Only the final result is allocated, so scanning a dense boundary creates no per-edge objects.
|
|
476
|
-
* This measures the sampled boundary, not its filled interior or an underlying analytic curve.
|
|
477
|
-
*
|
|
478
|
-
* @example Find a point on a closed boundary
|
|
479
|
-
* ```ts
|
|
480
|
-
* closestPointOnPath([[0, 0], [10, 0], [10, 10]], [4, -2], { closed: true });
|
|
481
|
-
* ```
|
|
482
|
-
*/
|
|
483
|
-
export declare function closestPointOnPath(
|
|
484
|
-
path: Path2,
|
|
485
|
-
point: Vector2Tuple,
|
|
486
|
-
options?: ClosestPointOnPathOptions,
|
|
487
|
-
): ClosestPointOnPathResult<Vector2Tuple>;
|
|
488
|
-
|
|
489
|
-
/** Finds the closest position on an open XYZ path or explicitly closed spatial loop. */
|
|
490
|
-
export declare function closestPointOnPath(
|
|
491
|
-
path: Path3,
|
|
492
|
-
point: Vector3Tuple,
|
|
493
|
-
options?: ClosestPointOnPathOptions,
|
|
494
|
-
): ClosestPointOnPathResult<Vector3Tuple>;
|
|
495
|
-
|
|
496
|
-
/** Topology and work ceiling for a closest-point query on a sampled path. */
|
|
497
|
-
export declare interface ClosestPointOnPathOptions {
|
|
498
|
-
/** Include the last-to-first edge without duplicating the seam point. Defaults to false. */
|
|
499
|
-
readonly closed?: boolean;
|
|
500
|
-
/** Explicit path point ceiling; defaults to the package sampling limits. */
|
|
501
|
-
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
/** Closest position on a sampled path, measured in millimetres. */
|
|
505
|
-
export declare interface ClosestPointOnPathResult<
|
|
506
|
-
Point extends Vector2Tuple | Vector3Tuple,
|
|
507
|
-
> {
|
|
508
|
-
/** Copied position on the selected edge. */
|
|
509
|
-
readonly point: Point;
|
|
510
|
-
/** Euclidean distance from the query point to the path. */
|
|
511
|
-
readonly distance: number;
|
|
512
|
-
/** Zero-based starting vertex of the selected edge. Equal distances keep the first edge. */
|
|
513
|
-
readonly edgeIndex: number;
|
|
514
|
-
/** Clamped interpolation fraction from the edge's start to its end. */
|
|
515
|
-
readonly fraction: number;
|
|
516
|
-
}
|
|
517
|
-
|
|
518
468
|
/**
|
|
519
469
|
* Closes an open, strictly upward [radius, height] side outline to the radius-zero axis.
|
|
520
470
|
* Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once.
|
|
@@ -601,10 +551,13 @@ export declare function composeTransform3(
|
|
|
601
551
|
* normal back to the first tangent measures seam holonomy; distributing that residual rotation
|
|
602
552
|
* uniformly over all path intervals avoids a visible seam or accumulated frame flip.
|
|
603
553
|
* The maxPathPoints ceiling (default 100000) bounds path points and frames.
|
|
554
|
+
* Requires closed path values; raw tuples are interpreted as closed and must omit their seam point.
|
|
555
|
+
* Invalid paths throw GeometryError.
|
|
556
|
+
* Nonfinite initial normals reject; finite parallel preferences select a canonical fallback.
|
|
604
557
|
*/
|
|
605
558
|
export declare const computeClosedParallelTransportFrames: (
|
|
606
|
-
|
|
607
|
-
initialNormal?:
|
|
559
|
+
input: Path3Input,
|
|
560
|
+
initialNormal?: Vector3Input,
|
|
608
561
|
limits?: Partial<GeometrySamplingLimits>,
|
|
609
562
|
) => readonly PathFrame[];
|
|
610
563
|
|
|
@@ -612,10 +565,12 @@ export declare const computeClosedParallelTransportFrames: (
|
|
|
612
565
|
* Builds rotation-minimizing frames by parallel-transporting the previous normal.
|
|
613
566
|
* This avoids the sudden profile flips produced by picking a fresh up-vector per ring.
|
|
614
567
|
* Paths exceeding maxPathPoints (default 100000) reject before frame allocation or guide evaluation.
|
|
568
|
+
* Requires open path values; raw tuples are interpreted as an open path. Invalid paths throw GeometryError.
|
|
569
|
+
* Nonfinite normals and guide results reject. A finite initial guide parallel to the tangent selects a canonical fallback.
|
|
615
570
|
*/
|
|
616
571
|
export declare const computeParallelTransportFrames: (
|
|
617
|
-
|
|
618
|
-
initialNormal?:
|
|
572
|
+
input: Path3Input,
|
|
573
|
+
initialNormal?: Vector3Input,
|
|
619
574
|
normalGuide?: PathNormalGuide,
|
|
620
575
|
limits?: Partial<GeometrySamplingLimits>,
|
|
621
576
|
) => readonly PathFrame[];
|
|
@@ -633,6 +588,23 @@ export declare function computeTriangleMeshCentroid(
|
|
|
633
588
|
mesh: TriangleMesh,
|
|
634
589
|
): Vector3Tuple;
|
|
635
590
|
|
|
591
|
+
/**
|
|
592
|
+
* Creates an order-independent regression signature for a manufacturing mesh.
|
|
593
|
+
*
|
|
594
|
+
* The input must be non-empty, closed, consistently wound, and have no unreferenced vertices.
|
|
595
|
+
* Vertex and triangle order do not affect the fingerprint; winding, quantized geometry, and
|
|
596
|
+
* connectivity metrics do. The fingerprint is a regression aid, not a cryptographic digest.
|
|
597
|
+
*
|
|
598
|
+
* @param mesh - Closed oriented mesh to measure without mutation.
|
|
599
|
+
* @param options - Absolute quantization and complexity limits.
|
|
600
|
+
* @returns Compact counts, bounds, volume, topology, tolerances, and canonical fingerprint.
|
|
601
|
+
* @throws {@link GeometryError} When validation, topology, tolerance, or complexity checks fail.
|
|
602
|
+
*/
|
|
603
|
+
export declare function computeTriangleMeshSignature(
|
|
604
|
+
mesh: TriangleMesh,
|
|
605
|
+
options?: TriangleMeshSignatureOptions,
|
|
606
|
+
): TriangleMeshSignature;
|
|
607
|
+
|
|
636
608
|
/** Tests actual XY containment, including touching boundaries; dimensions must match. */
|
|
637
609
|
export declare function containsBounds(outer: Bounds2, inner: Bounds2): boolean;
|
|
638
610
|
|
|
@@ -720,59 +692,6 @@ export declare type CorrespondingProfileStation = LoftPlacement & {
|
|
|
720
692
|
readonly profile: CorrespondingProfile;
|
|
721
693
|
};
|
|
722
694
|
|
|
723
|
-
/**
|
|
724
|
-
* Constructs a normalized immutable attachment anchor.
|
|
725
|
-
*
|
|
726
|
-
* `up` is projected onto the plane perpendicular to `direction`, removing small
|
|
727
|
-
* input drift while preserving its roll intent.
|
|
728
|
-
*
|
|
729
|
-
* @param position - Finite anchor point in model coordinates.
|
|
730
|
-
* @param direction - Non-zero outward attachment normal.
|
|
731
|
-
* @param up - Non-parallel roll reference; defaults to +Y.
|
|
732
|
-
* @param tolerance - Optional comparison overrides.
|
|
733
|
-
* @returns A frozen anchor with unit, orthogonal direction and up vectors.
|
|
734
|
-
* @throws {@link GeometryError} For non-finite or degenerate inputs.
|
|
735
|
-
*/
|
|
736
|
-
export declare function createAnchor3(
|
|
737
|
-
position: Vector3Tuple,
|
|
738
|
-
direction: Vector3Tuple,
|
|
739
|
-
up?: Vector3Tuple,
|
|
740
|
-
tolerance?: GeometryToleranceOptions,
|
|
741
|
-
): Anchor3;
|
|
742
|
-
|
|
743
|
-
/**
|
|
744
|
-
* Creates a periodic thread profile for the shaft-locked helical mesher.
|
|
745
|
-
*
|
|
746
|
-
* The open path spans one pitch. Radial zero is the major envelope; negative
|
|
747
|
-
* values point toward the shaft. Custom paths must be finite, axially
|
|
748
|
-
* non-decreasing, periodic at their endpoints, and reach radial zero.
|
|
749
|
-
*
|
|
750
|
-
* @example Printable triangular thread profile
|
|
751
|
-
* ```ts
|
|
752
|
-
* createThreadProfile({ kind: "triangular", pitch: 1.75 });
|
|
753
|
-
* ```
|
|
754
|
-
*/
|
|
755
|
-
export declare function createThreadProfile(
|
|
756
|
-
spec: ThreadProfileSpec,
|
|
757
|
-
): ThreadProfile;
|
|
758
|
-
|
|
759
|
-
/**
|
|
760
|
-
* Creates an order-independent regression signature for a manufacturing mesh.
|
|
761
|
-
*
|
|
762
|
-
* The input must be non-empty, closed, consistently wound, and have no unreferenced vertices.
|
|
763
|
-
* Vertex and triangle order do not affect the fingerprint; winding, quantized geometry, and
|
|
764
|
-
* connectivity metrics do. The fingerprint is a regression aid, not a cryptographic digest.
|
|
765
|
-
*
|
|
766
|
-
* @param mesh - Closed oriented mesh to measure without mutation.
|
|
767
|
-
* @param options - Absolute quantization and complexity limits.
|
|
768
|
-
* @returns Compact counts, bounds, volume, topology, tolerances, and canonical fingerprint.
|
|
769
|
-
* @throws {@link GeometryError} When validation, topology, tolerance, or complexity checks fail.
|
|
770
|
-
*/
|
|
771
|
-
export declare function createTriangleMeshSignature(
|
|
772
|
-
mesh: TriangleMesh,
|
|
773
|
-
options?: TriangleMeshSignatureOptions,
|
|
774
|
-
): TriangleMeshSignature;
|
|
775
|
-
|
|
776
695
|
/** Returns the signed scalar cross product; positive means `b` is counter-clockwise from `a`. */
|
|
777
696
|
export declare const cross2: (a: Vector2Tuple, b: Vector2Tuple) => number;
|
|
778
697
|
|
|
@@ -815,12 +734,6 @@ export declare interface CubicBezierCurve3 {
|
|
|
815
734
|
readonly end: Vector3Tuple;
|
|
816
735
|
}
|
|
817
736
|
|
|
818
|
-
/** Returns cumulative arc length for finite points under maxPathPoints (default 100000); rejects overflowing length. */
|
|
819
|
-
export declare const cumulativePathLengths: (
|
|
820
|
-
path: readonly Vector3Tuple[],
|
|
821
|
-
limits?: Partial<GeometrySamplingLimits>,
|
|
822
|
-
) => readonly number[];
|
|
823
|
-
|
|
824
737
|
/** Reusable planar curve definition. */
|
|
825
738
|
export declare type Curve2 = LineCurve2 | ArcCurve2 | CubicBezierCurve2;
|
|
826
739
|
|
|
@@ -838,7 +751,7 @@ export declare interface CurveSamplingOptions {
|
|
|
838
751
|
/** Millimetre sampling policy; circularSegments applies only to arcs. */
|
|
839
752
|
readonly resolution?: GeometryResolution;
|
|
840
753
|
/** Output vertex ceiling of at least two; may only lower limits.maxPathPoints. */
|
|
841
|
-
readonly
|
|
754
|
+
readonly maxVertices?: number;
|
|
842
755
|
/** Explicit sampling ceilings; omitted values use package defaults without ambient state. */
|
|
843
756
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
844
757
|
}
|
|
@@ -874,7 +787,7 @@ export declare interface CylinderAnchorOptions {
|
|
|
874
787
|
/** Named outward face; side anchors lie halfway up the cylinder. */
|
|
875
788
|
readonly face: CylinderAnchorFace;
|
|
876
789
|
/** Side angle counter-clockwise from +X, in degrees; defaults to zero. */
|
|
877
|
-
readonly
|
|
790
|
+
readonly angle?: number;
|
|
878
791
|
/** Centers the cylinder along Z; defaults to true, matching cylinder(). */
|
|
879
792
|
readonly center?: boolean;
|
|
880
793
|
/** Construction origin; centered-axis midpoint or noncentered bottom axis. Defaults to zero. */
|
|
@@ -886,7 +799,7 @@ export declare interface CylinderAnchorOptions {
|
|
|
886
799
|
*/
|
|
887
800
|
export declare type CylinderOptions = CircularPrimitiveOptions &
|
|
888
801
|
RadialSizingOptions &
|
|
889
|
-
|
|
802
|
+
PrimitiveAttachment & {
|
|
890
803
|
/**
|
|
891
804
|
* Centers the solid on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
|
|
892
805
|
* @defaultValue `true`
|
|
@@ -918,7 +831,7 @@ export declare interface CylindricalGearDimensions {
|
|
|
918
831
|
/** Addendum above the pitch circle, in millimetres. */
|
|
919
832
|
readonly addendum: number;
|
|
920
833
|
/** Angular pitch between adjacent teeth, in radians. */
|
|
921
|
-
readonly
|
|
834
|
+
readonly angularPitchRadians: number;
|
|
922
835
|
/** Tangential backlash applied to this gear, in millimetres. */
|
|
923
836
|
readonly backlash: number;
|
|
924
837
|
/** Base-circle radius used by the involute, in millimetres. */
|
|
@@ -985,7 +898,7 @@ export declare interface CylindricalGearPairDimensions {
|
|
|
985
898
|
/** Absolute driven-to-driver tooth-count ratio. */
|
|
986
899
|
readonly ratio: number;
|
|
987
900
|
/** Helix angle required on the driven member for conjugate teeth, in degrees. */
|
|
988
|
-
readonly
|
|
901
|
+
readonly requiredDrivenHelixAngle: number;
|
|
989
902
|
}
|
|
990
903
|
|
|
991
904
|
/** Sampling controls for one coupled internal-gear tooth cycle. */
|
|
@@ -1021,7 +934,7 @@ export declare interface CylindricalGearPairSpec {
|
|
|
1021
934
|
/**
|
|
1022
935
|
* Nominal dimensions for a standard full-depth cylindrical involute gear.
|
|
1023
936
|
*
|
|
1024
|
-
* Lengths use millimetres. `module` and `
|
|
937
|
+
* Lengths use millimetres. `module` and `pressureAngle` are measured in
|
|
1025
938
|
* the normal plane; a non-zero signed helix angle is converted to transverse
|
|
1026
939
|
* pitch-plane dimensions. Positive and negative helix angles identify
|
|
1027
940
|
* opposite hands but produce the same 2D pitch geometry.
|
|
@@ -1032,11 +945,11 @@ export declare interface CylindricalGearSpec {
|
|
|
1032
945
|
/** Dedendum clearance as a multiple of normal module; defaults to `0.25`. */
|
|
1033
946
|
readonly clearanceFactor?: number;
|
|
1034
947
|
/** Signed helix angle in degrees; zero creates a spur pitch system. */
|
|
1035
|
-
readonly
|
|
948
|
+
readonly helixAngle?: number;
|
|
1036
949
|
/** Normal module in millimetres per tooth. */
|
|
1037
950
|
readonly module: number;
|
|
1038
951
|
/** Normal pressure angle in degrees; defaults to 20 degrees. */
|
|
1039
|
-
readonly
|
|
952
|
+
readonly pressureAngle?: number;
|
|
1040
953
|
/** Integer tooth count from 6 through 1,000; external profiles also enforce the no-undercut limit. */
|
|
1041
954
|
readonly toothCount: number;
|
|
1042
955
|
}
|
|
@@ -1067,11 +980,13 @@ export declare const distance3: (a: Vector3Tuple, b: Vector3Tuple) => number;
|
|
|
1067
980
|
* open paths include both endpoints when `count` is greater than one.
|
|
1068
981
|
* Coordinates and total length must be finite. Input points and output placements are each
|
|
1069
982
|
* limited by maxPathPoints (default 100000); exact counts exceeding that ceiling reject before length calculation.
|
|
983
|
+
* Closure defaults to the path value's metadata, or false for tuples. An explicit conflicting closure rejects.
|
|
984
|
+
* Invalid arguments and degenerate paths throw GeometryError.
|
|
1070
985
|
*/
|
|
1071
986
|
export declare const distributeAlongPath: (
|
|
1072
|
-
|
|
987
|
+
input: Path3Input,
|
|
1073
988
|
count: number,
|
|
1074
|
-
closed
|
|
989
|
+
closed?: boolean,
|
|
1075
990
|
limits?: Partial<GeometrySamplingLimits>,
|
|
1076
991
|
) => readonly PathPlacement[];
|
|
1077
992
|
|
|
@@ -1152,6 +1067,7 @@ export declare function eulerTransform3(
|
|
|
1152
1067
|
|
|
1153
1068
|
/**
|
|
1154
1069
|
* Linearly extrudes one simple profile along +Z with robust ear-clipped caps.
|
|
1070
|
+
* Path2 profiles must be closed; raw point collections have an implicit closing edge.
|
|
1155
1071
|
*
|
|
1156
1072
|
* @example Extrude point data without an engine
|
|
1157
1073
|
* ```ts
|
|
@@ -1160,7 +1076,7 @@ export declare function eulerTransform3(
|
|
|
1160
1076
|
* ```
|
|
1161
1077
|
*/
|
|
1162
1078
|
export declare function extrudeMesh(
|
|
1163
|
-
|
|
1079
|
+
input: Path2Input,
|
|
1164
1080
|
options: ExtrudeOptions,
|
|
1165
1081
|
): TriangleMesh;
|
|
1166
1082
|
|
|
@@ -1185,9 +1101,9 @@ export declare interface ExtrusionSamplingOptions {
|
|
|
1185
1101
|
/** Operation-level physical policy over the nearest model scope. */
|
|
1186
1102
|
readonly resolution?: GeometryResolution;
|
|
1187
1103
|
/** Finite uniform or XY scale of the top profile; defaults to one. */
|
|
1188
|
-
readonly scaleTop?: number |
|
|
1104
|
+
readonly scaleTop?: number | Vector2Input;
|
|
1189
1105
|
/** Finite rotation of the top profile about +Z, in degrees; defaults to zero. */
|
|
1190
|
-
readonly
|
|
1106
|
+
readonly twist?: number;
|
|
1191
1107
|
}
|
|
1192
1108
|
|
|
1193
1109
|
/** Fits XY bounds uniformly and centers them in the target; zero source axes do not constrain scale. */
|
|
@@ -1321,9 +1237,9 @@ export declare interface GeometryResolution {
|
|
|
1321
1237
|
/** Optional maximum sampled edge length in millimetres. */
|
|
1322
1238
|
readonly maxSegmentLength?: number;
|
|
1323
1239
|
/** Upper safety bound for a full circle; defaults to the selected maxCircularSegments (512 by default). */
|
|
1324
|
-
readonly
|
|
1240
|
+
readonly maxSegments?: number;
|
|
1325
1241
|
/** Lower full-circle segment count; defaults to 16 or a lower selected circular ceiling. */
|
|
1326
|
-
readonly
|
|
1242
|
+
readonly minSegments?: number;
|
|
1327
1243
|
}
|
|
1328
1244
|
|
|
1329
1245
|
/** Explicit allocation ceilings for pure sampling and host-owned modeling operations. */
|
|
@@ -1349,7 +1265,7 @@ export declare interface GeometryToleranceOptions {
|
|
|
1349
1265
|
}
|
|
1350
1266
|
|
|
1351
1267
|
/** Returns one recommended metric clearance-hole diameter in millimetres. */
|
|
1352
|
-
export declare function
|
|
1268
|
+
export declare function getMetricClearanceHoleDiameter(
|
|
1353
1269
|
size: MetricFastenerSize,
|
|
1354
1270
|
fit?: ClearanceHoleFit,
|
|
1355
1271
|
): number;
|
|
@@ -1361,8 +1277,9 @@ export declare function getMetricFastenerStandard(
|
|
|
1361
1277
|
|
|
1362
1278
|
/**
|
|
1363
1279
|
* XY or XYZ grid with X varying fastest. The first item starts at the local origin.
|
|
1280
|
+
* Dimension 2 restricts counts and spacing to XY; any frame must preserve the XY plane.
|
|
1364
1281
|
*/
|
|
1365
|
-
export declare type GridPatternOptions = {
|
|
1282
|
+
export declare type GridPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
1366
1283
|
/** Center the complete distribution around its local origin; defaults to false. */
|
|
1367
1284
|
readonly center?: boolean;
|
|
1368
1285
|
/** Optional right-handed local axes and origin for the grid. */
|
|
@@ -1374,15 +1291,17 @@ export declare type GridPatternOptions = {
|
|
|
1374
1291
|
/** Signed millimetres between adjacent copies on X and Y. */
|
|
1375
1292
|
readonly spacing: Vector2Tuple;
|
|
1376
1293
|
}
|
|
1377
|
-
|
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1294
|
+
| (Dimension extends 3
|
|
1295
|
+
? {
|
|
1296
|
+
/** Positive integer counts on X, Y and Z. */
|
|
1297
|
+
readonly count: Vector3Tuple;
|
|
1298
|
+
/** Signed millimetres between adjacent copies on X, Y and Z. */
|
|
1299
|
+
readonly spacing: Vector3Tuple;
|
|
1300
|
+
}
|
|
1301
|
+
: never)
|
|
1383
1302
|
);
|
|
1384
1303
|
|
|
1385
|
-
/** XY or XYZ grid
|
|
1304
|
+
/** Spatial XYZ matrices for an XY or XYZ grid, in X-fastest order. */
|
|
1386
1305
|
export declare function gridPatternTransforms(
|
|
1387
1306
|
options: GridPatternOptions,
|
|
1388
1307
|
): readonly Transform3Matrix[];
|
|
@@ -1475,6 +1394,15 @@ export declare interface HeightfieldPreflight {
|
|
|
1475
1394
|
readonly byteCount: number;
|
|
1476
1395
|
}
|
|
1477
1396
|
|
|
1397
|
+
/**
|
|
1398
|
+
* Builds closed thread-ridge components with every profile locked to the
|
|
1399
|
+
* shaft's radial/axial frame. The mesh is intended for union with its
|
|
1400
|
+
* minor-envelope cylinder and never owns WASM objects.
|
|
1401
|
+
*/
|
|
1402
|
+
export declare function helicalThreadRidgeMesh(
|
|
1403
|
+
options: HelicalThreadRidgeMeshOptions,
|
|
1404
|
+
): TriangleMesh;
|
|
1405
|
+
|
|
1478
1406
|
/** Runtime-neutral options for the dedicated helical ridge mesher. */
|
|
1479
1407
|
export declare interface HelicalThreadRidgeMeshOptions {
|
|
1480
1408
|
/**
|
|
@@ -1491,7 +1419,7 @@ export declare interface HelicalThreadRidgeMeshOptions {
|
|
|
1491
1419
|
/** Nominal major diameter before any caller-owned fit compensation. */
|
|
1492
1420
|
readonly majorDiameter: number;
|
|
1493
1421
|
/** Angular offset of the first start in degrees. Default: `0`. */
|
|
1494
|
-
readonly
|
|
1422
|
+
readonly phase?: number;
|
|
1495
1423
|
/** Validated periodic profile repeated around the shaft. */
|
|
1496
1424
|
readonly profile: ThreadProfile;
|
|
1497
1425
|
/** Optional circular-resolution policy. */
|
|
@@ -1502,6 +1430,19 @@ export declare interface HelicalThreadRidgeMeshOptions {
|
|
|
1502
1430
|
readonly tolerance?: GeometryToleranceOptions;
|
|
1503
1431
|
}
|
|
1504
1432
|
|
|
1433
|
+
/**
|
|
1434
|
+
* Builds one closed threaded cylinder without a ridge/core Boolean seam.
|
|
1435
|
+
*
|
|
1436
|
+
* Each circular facet includes its exact phase-shifted profile breakpoints, including duplicate-Z
|
|
1437
|
+
* samples for vertical flanks and blunt transitions. Adjacent variable grids are stitched as a
|
|
1438
|
+
* monotone strip, with optional intermediate rows bounded by physical `maxSegmentLength`. A
|
|
1439
|
+
* conservative pre-allocation estimate rejects excessive meshes before constructing position
|
|
1440
|
+
* arrays.
|
|
1441
|
+
*/
|
|
1442
|
+
export declare function helicalThreadSolidMesh(
|
|
1443
|
+
options: HelicalThreadSolidMeshOptions,
|
|
1444
|
+
): TriangleMesh;
|
|
1445
|
+
|
|
1505
1446
|
/** Options for a complete threaded-cylinder mesh; base semantics match the ridge builder. */
|
|
1506
1447
|
export declare interface HelicalThreadSolidMeshOptions extends HelicalThreadRidgeMeshOptions {
|
|
1507
1448
|
/** Apply a 45-degree radial bevel at the lower target face. */
|
|
@@ -1608,10 +1549,11 @@ export declare const lerp3: (
|
|
|
1608
1549
|
|
|
1609
1550
|
/**
|
|
1610
1551
|
* Equal linear intervals determined by exactly two of count, spacing and total length.
|
|
1552
|
+
* Dimension defaults to 3; Section patterns use 2 and accept XY vector directions.
|
|
1611
1553
|
*/
|
|
1612
|
-
export declare type LinearPatternOptions = {
|
|
1554
|
+
export declare type LinearPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
1613
1555
|
/** Direction of repetition; magnitude is ignored. Defaults to +X. */
|
|
1614
|
-
readonly direction?:
|
|
1556
|
+
readonly direction?: Dimension extends 2 ? Vector2Input : Vector3Input;
|
|
1615
1557
|
} & (
|
|
1616
1558
|
| {
|
|
1617
1559
|
/** Positive copy count, including the original. */
|
|
@@ -1639,7 +1581,7 @@ export declare type LinearPatternOptions = {
|
|
|
1639
1581
|
}
|
|
1640
1582
|
);
|
|
1641
1583
|
|
|
1642
|
-
/**
|
|
1584
|
+
/** Spatial XYZ matrix placements in millimetres, including the original at the origin. */
|
|
1643
1585
|
export declare function linearPatternTransforms(
|
|
1644
1586
|
options: LinearPatternOptions,
|
|
1645
1587
|
): readonly Transform3Matrix[];
|
|
@@ -1688,6 +1630,7 @@ export declare type LoftCorrespondence =
|
|
|
1688
1630
|
* Both ends use ear-clipped caps, supporting concave profiles without center fans.
|
|
1689
1631
|
* Intermediate slices interpolate placed world vertices, never frame axes.
|
|
1690
1632
|
* Transformed coordinates must fit finite Float32 mesh storage.
|
|
1633
|
+
* Path2 profiles must be closed; raw point collections are interpreted as closed.
|
|
1691
1634
|
*
|
|
1692
1635
|
* @example Loft with explicit point correspondence
|
|
1693
1636
|
* ```ts
|
|
@@ -1703,8 +1646,8 @@ export declare function loftMesh(
|
|
|
1703
1646
|
|
|
1704
1647
|
/** One point-data profile at a height or explicit right-handed spatial frame. */
|
|
1705
1648
|
export declare type LoftMeshStation = LoftPlacement & {
|
|
1706
|
-
/**
|
|
1707
|
-
readonly profile:
|
|
1649
|
+
/** Closed Path2 or ordered finite XY boundary points with an implicit closing edge. */
|
|
1650
|
+
readonly profile: Path2Input;
|
|
1708
1651
|
};
|
|
1709
1652
|
|
|
1710
1653
|
/**
|
|
@@ -1784,21 +1727,6 @@ export declare function measureInternalCylindricalGearPairMotion(
|
|
|
1784
1727
|
options?: CylindricalGearPairMotionOptions,
|
|
1785
1728
|
): CylindricalGearPairMotionReport;
|
|
1786
1729
|
|
|
1787
|
-
/**
|
|
1788
|
-
* Measures bounds, surface area, and signed volume without changing the mesh.
|
|
1789
|
-
*
|
|
1790
|
-
* Signed volume is meaningful for a consistently wound closed mesh. Set
|
|
1791
|
-
* `requireClosed` when measurements will be used as manufacturing assertions.
|
|
1792
|
-
*
|
|
1793
|
-
* @param mesh - Mesh to validate and measure.
|
|
1794
|
-
* @param options - Validation policy applied before measurement.
|
|
1795
|
-
* @returns Immutable deterministic scalar and bounds measurements.
|
|
1796
|
-
*/
|
|
1797
|
-
export declare function measureTriangleMesh(
|
|
1798
|
-
mesh: TriangleMesh,
|
|
1799
|
-
options?: TriangleMeshValidationOptions,
|
|
1800
|
-
): TriangleMeshMeasurements;
|
|
1801
|
-
|
|
1802
1730
|
/**
|
|
1803
1731
|
* Computes axis-aligned bounds for a non-empty mesh.
|
|
1804
1732
|
*
|
|
@@ -1880,9 +1808,7 @@ export declare interface MetricSocketCapHeadDimensions {
|
|
|
1880
1808
|
* count `z_v = z / cos³(beta)`, so increasing helix angle can reduce the physical tooth count.
|
|
1881
1809
|
*/
|
|
1882
1810
|
export declare function minimumCylindricalGearToothCountWithoutUndercut(
|
|
1883
|
-
spec?: Readonly<
|
|
1884
|
-
Pick<CylindricalGearSpec, "helixAngleDegrees" | "pressureAngleDegrees">
|
|
1885
|
-
>,
|
|
1811
|
+
spec?: Readonly<Pick<CylindricalGearSpec, "helixAngle" | "pressureAngle">>,
|
|
1886
1812
|
): number;
|
|
1887
1813
|
|
|
1888
1814
|
/** Aggregate manufacturing output ceilings selected by a trusted host. */
|
|
@@ -1970,13 +1896,79 @@ export declare function optimizePlanarPatches(
|
|
|
1970
1896
|
options?: PlanarMeshOptimizationOptions,
|
|
1971
1897
|
): PlanarMeshOptimizationResult;
|
|
1972
1898
|
|
|
1973
|
-
/**
|
|
1974
|
-
export declare
|
|
1899
|
+
/** Immutable directed XY polyline. Closure is explicit and does not imply a filled Section. */
|
|
1900
|
+
export declare interface Path2 {
|
|
1901
|
+
/** Coordinate dimension; identifies planar paths even when empty. */
|
|
1902
|
+
readonly dimension: 2;
|
|
1903
|
+
/** Whether traversal includes the last-to-first edge. */
|
|
1904
|
+
readonly closed: boolean;
|
|
1905
|
+
/** Returns frozen tuple coordinates; closure remains separate metadata. Repeated calls do not allocate. */
|
|
1906
|
+
toArray(): Path2Data;
|
|
1907
|
+
/** Total sampled edge length in model units, including the closing edge when closed. */
|
|
1908
|
+
length(): number;
|
|
1909
|
+
/** Axis-aligned bounds, or undefined for an empty path. */
|
|
1910
|
+
bounds(): Bounds2 | undefined;
|
|
1911
|
+
/** Finds the nearest edge location; requires at least two vertices. */
|
|
1912
|
+
closestPoint(point: Vector2Input): PathLocation<Vector2>;
|
|
1913
|
+
/** Applies an XY placement without reordering traversal, including after reflection. */
|
|
1914
|
+
transform(placement: Transform2Input): Path2;
|
|
1915
|
+
/** Reverses vertex order and traversal; neither the source nor its coordinates are mutated. */
|
|
1916
|
+
reverse(): Path2;
|
|
1917
|
+
/** Returns a path sampled at equal arc lengths. Corners may be bridged; closure is preserved. */
|
|
1918
|
+
resample(options?: PathResamplingOptions): Path2;
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
/**
|
|
1922
|
+
* Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization.
|
|
1923
|
+
* Open paths may be empty or have one point; closed paths need three vertices and omit a duplicated
|
|
1924
|
+
* seam. Repeated adjacent vertices are retained. No winding normalization or filling is performed.
|
|
1925
|
+
* Malformed dimensions or topology throw INVALID_ARGUMENT; nonfinite coordinates or measurement
|
|
1926
|
+
* overflow throw NON_FINITE_VALUE; exhausted allocation ceilings throw COMPLEXITY_LIMIT GeometryError.
|
|
1927
|
+
* A path input retains its closure. Limits bound construction only; resampling takes its own limits.
|
|
1928
|
+
*/
|
|
1929
|
+
export declare function path2(input: Path2Input, options?: PathOptions): Path2;
|
|
1930
|
+
|
|
1931
|
+
/** XY point tuples for interchange; closure is supplied by the consuming operation or Path2 value. */
|
|
1932
|
+
export declare type Path2Data = readonly Vector2Tuple[];
|
|
1933
|
+
|
|
1934
|
+
/** An immutable XY sampled path or a collection of XY tuples and fluent vectors. */
|
|
1935
|
+
export declare type Path2Input = Path2 | readonly Vector2Input[];
|
|
1936
|
+
|
|
1937
|
+
/** Immutable directed XYZ polyline; it represents sampled edges, not an analytic curve. */
|
|
1938
|
+
export declare interface Path3 {
|
|
1939
|
+
/** Coordinate dimension; identifies spatial paths even when empty. */
|
|
1940
|
+
readonly dimension: 3;
|
|
1941
|
+
/** Whether traversal includes the last-to-first edge. */
|
|
1942
|
+
readonly closed: boolean;
|
|
1943
|
+
/** Returns frozen tuple coordinates; closure remains separate metadata. Repeated calls do not allocate. */
|
|
1944
|
+
toArray(): Path3Data;
|
|
1945
|
+
/** Total sampled edge length in model units, including the closing edge when closed. */
|
|
1946
|
+
length(): number;
|
|
1947
|
+
/** Axis-aligned bounds, or undefined for an empty path. */
|
|
1948
|
+
bounds(): Bounds3 | undefined;
|
|
1949
|
+
/** Finds the nearest edge location; requires at least two vertices. */
|
|
1950
|
+
closestPoint(point: Vector3Input): PathLocation<Vector3>;
|
|
1951
|
+
/** Applies an XYZ placement without changing traversal order or closure. */
|
|
1952
|
+
transform(placement: Transform3Input): Path3;
|
|
1953
|
+
/** Reverses vertex order and traversal without mutating the source. */
|
|
1954
|
+
reverse(): Path3;
|
|
1955
|
+
/** Returns a path sampled at equal arc lengths. Corners may be bridged; closure is preserved. */
|
|
1956
|
+
resample(options?: PathResamplingOptions): Path3;
|
|
1957
|
+
}
|
|
1975
1958
|
|
|
1976
1959
|
/**
|
|
1977
|
-
*
|
|
1960
|
+
* Snapshots finite XYZ coordinates as an immutable sampled path with the same closure, seam,
|
|
1961
|
+
* allocation and error rules as path2. Analytic curves must be sampled explicitly first.
|
|
1978
1962
|
*/
|
|
1979
|
-
export declare
|
|
1963
|
+
export declare function path3(input: Path3Input, options?: PathOptions): Path3;
|
|
1964
|
+
|
|
1965
|
+
/**
|
|
1966
|
+
* XYZ point tuples for interchange; closure is supplied by the consuming operation or Path3 value.
|
|
1967
|
+
*/
|
|
1968
|
+
export declare type Path3Data = readonly Vector3Tuple[];
|
|
1969
|
+
|
|
1970
|
+
/** An immutable XYZ sampled path or a collection of XYZ tuples and fluent vectors. */
|
|
1971
|
+
export declare type Path3Input = Path3 | readonly Vector3Input[];
|
|
1980
1972
|
|
|
1981
1973
|
/** Orthonormal right-handed frame sampled along a path. */
|
|
1982
1974
|
export declare interface PathFrame {
|
|
@@ -1988,13 +1980,17 @@ export declare interface PathFrame {
|
|
|
1988
1980
|
readonly binormal: Vector3Tuple;
|
|
1989
1981
|
}
|
|
1990
1982
|
|
|
1991
|
-
/**
|
|
1992
|
-
|
|
1993
|
-
*/
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1983
|
+
/** Nearest location on a sampled boundary, rather than inside a filled shape or on an analytic curve. */
|
|
1984
|
+
export declare interface PathLocation<Point extends Vector2 | Vector3> {
|
|
1985
|
+
/** Immutable position on the selected edge. */
|
|
1986
|
+
readonly point: Point;
|
|
1987
|
+
/** Euclidean distance from the query in model units. */
|
|
1988
|
+
readonly distance: number;
|
|
1989
|
+
/** Starting vertex of the selected edge; ties keep the first edge in traversal order. */
|
|
1990
|
+
readonly edgeIndex: number;
|
|
1991
|
+
/** Clamped fraction along that edge, not the whole path's normalized arc length. */
|
|
1992
|
+
readonly fraction: number;
|
|
1993
|
+
}
|
|
1998
1994
|
|
|
1999
1995
|
/**
|
|
2000
1996
|
* Supplies a profile-X orientation guide for each original normalized sweep station.
|
|
@@ -2006,15 +2002,23 @@ export declare const pathLength: (
|
|
|
2006
2002
|
export declare type PathNormalGuide = (
|
|
2007
2003
|
point: Vector3Tuple,
|
|
2008
2004
|
index: number,
|
|
2009
|
-
) =>
|
|
2005
|
+
) => Vector3Input;
|
|
2006
|
+
|
|
2007
|
+
/** Topology and allocation ceiling for an immutable sampled path. */
|
|
2008
|
+
export declare interface PathOptions {
|
|
2009
|
+
/** Connects the last vertex to the first; closed paths omit the repeated seam. Defaults to false. */
|
|
2010
|
+
readonly closed?: boolean;
|
|
2011
|
+
/** Construction point ceiling; defaults to package sampling limits. Later sampling has its own options. */
|
|
2012
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
2013
|
+
}
|
|
2010
2014
|
|
|
2011
2015
|
/** Equal physical arc-length placements along an open or implicitly closed sampled path. */
|
|
2012
2016
|
export declare interface PathPatternOptions {
|
|
2013
2017
|
/** Positive number of copies; open paths include both endpoints when greater than one. */
|
|
2014
2018
|
readonly count: number;
|
|
2015
|
-
/**
|
|
2019
|
+
/** Raw point closure defaults to false; a path value supplies closure and rejects conflicts. */
|
|
2016
2020
|
readonly closed?: boolean;
|
|
2017
|
-
/** Preserve
|
|
2021
|
+
/** Preserve orientation, or align local +X for Sections / +Z for Solids to the tangent. Defaults to fixed. */
|
|
2018
2022
|
readonly orientation?: "fixed" | "tangent";
|
|
2019
2023
|
}
|
|
2020
2024
|
|
|
@@ -2024,7 +2028,7 @@ export declare interface PathPatternOptions {
|
|
|
2024
2028
|
* Explicit sampling ceilings bound both input points and output placements.
|
|
2025
2029
|
*/
|
|
2026
2030
|
export declare function pathPatternTransforms(
|
|
2027
|
-
path:
|
|
2031
|
+
path: Path3Input,
|
|
2028
2032
|
options: PathPatternOptions,
|
|
2029
2033
|
limits?: Partial<GeometrySamplingLimits>,
|
|
2030
2034
|
): readonly Transform3Matrix[];
|
|
@@ -2037,6 +2041,12 @@ export declare interface PathPlacement {
|
|
|
2037
2041
|
readonly tangent: Vector3Tuple;
|
|
2038
2042
|
}
|
|
2039
2043
|
|
|
2044
|
+
/** Equal arc-length sampling; the path itself owns whether its closing edge is included. */
|
|
2045
|
+
export declare interface PathResamplingOptions extends CurveSamplingOptions {
|
|
2046
|
+
/** Exact arc-length intervals; closed paths need at least three. Otherwise physical resolution or the effective source edge count controls sampling. */
|
|
2047
|
+
readonly segments?: number;
|
|
2048
|
+
}
|
|
2049
|
+
|
|
2040
2050
|
/** A fixed XY point in world coordinates; omitted pivots use the coordinate origin. */
|
|
2041
2051
|
export declare interface Pivot2Options {
|
|
2042
2052
|
/** World-space point left fixed by rotation or scaling. */
|
|
@@ -2063,23 +2073,23 @@ export declare interface PlanarMeshOptimizationOptions extends TriangleMeshQuali
|
|
|
2063
2073
|
* Maximum attempted edge evaluations. By default this is twenty times the initial candidate
|
|
2064
2074
|
* edge count, capped at `1000000`.
|
|
2065
2075
|
*/
|
|
2066
|
-
readonly
|
|
2076
|
+
readonly maxFlipAttempts?: number;
|
|
2067
2077
|
/** Maximum times one edge may be reconsidered after neighbouring flips. Defaults to `12`. */
|
|
2068
|
-
readonly
|
|
2078
|
+
readonly maxEdgeRevisits?: number;
|
|
2069
2079
|
/** Maximum triangles allowed in one selected patch. Defaults to `50000`. */
|
|
2070
|
-
readonly
|
|
2080
|
+
readonly maxPatchTriangles?: number;
|
|
2071
2081
|
/** Maximum cumulative triangles across selected patches. Defaults to `200000`. */
|
|
2072
|
-
readonly
|
|
2082
|
+
readonly maxProcessedTriangles?: number;
|
|
2073
2083
|
/** Minimum triangles required before a planar patch is eligible. Defaults to `8`. */
|
|
2074
|
-
readonly
|
|
2084
|
+
readonly minPatchTriangles?: number;
|
|
2075
2085
|
/** Select patches whose worst normalized aspect ratio exceeds this value. Defaults to `12`. */
|
|
2076
|
-
readonly
|
|
2086
|
+
readonly triggerMaxAspectRatio?: number;
|
|
2077
2087
|
/** Select patches whose largest per-vertex triangle share exceeds this ratio. Defaults to `0.2`. */
|
|
2078
|
-
readonly
|
|
2088
|
+
readonly triggerMaxFanRatio?: number;
|
|
2079
2089
|
/** Select patches whose largest vertex triangle incidence exceeds this value. Defaults to `16`. */
|
|
2080
|
-
readonly
|
|
2090
|
+
readonly triggerMaxVertexTriangleIncidence?: number;
|
|
2081
2091
|
/** Select patches whose smallest interior angle is below this many degrees. Defaults to `8`. */
|
|
2082
|
-
readonly
|
|
2092
|
+
readonly triggerMinAngleDegrees?: number;
|
|
2083
2093
|
}
|
|
2084
2094
|
|
|
2085
2095
|
/** Outcome of bounded planar-patch optimization, including before/after diagnostics. */
|
|
@@ -2206,26 +2216,18 @@ export declare function preflightThreadedRod(
|
|
|
2206
2216
|
options: ThreadedRodOptions,
|
|
2207
2217
|
): HelicalThreadSolidMeshPreflight;
|
|
2208
2218
|
|
|
2209
|
-
/**
|
|
2210
|
-
export declare interface
|
|
2211
|
-
/** Applied after local construction; Section
|
|
2212
|
-
readonly
|
|
2219
|
+
/** Anchor attachment shared by solid and filled-section factories. */
|
|
2220
|
+
export declare interface PrimitiveAttachment {
|
|
2221
|
+
/** Applied after local construction; Section attachment must preserve the XY plane. */
|
|
2222
|
+
readonly attachment?: PrimitiveAttachmentOptions;
|
|
2213
2223
|
}
|
|
2214
2224
|
|
|
2215
2225
|
/** Maps an explicit or named shape-local attachment anchor onto a world-space anchor. */
|
|
2216
|
-
export declare interface
|
|
2226
|
+
export declare interface PrimitiveAttachmentOptions extends AttachOptions {
|
|
2217
2227
|
/** Shape-local source frame or a named primitive anchor such as bottom. */
|
|
2218
2228
|
readonly source: Anchor3 | string;
|
|
2219
2229
|
/** World-space target frame in millimetres. */
|
|
2220
2230
|
readonly target: Anchor3;
|
|
2221
|
-
/** Align outward directions face-to-face or in parallel. Defaults to opposed. */
|
|
2222
|
-
readonly alignment?: "opposed" | "same";
|
|
2223
|
-
/** Finite separation along the target direction in millimetres. Defaults to zero. */
|
|
2224
|
-
readonly gap?: number;
|
|
2225
|
-
/** Finite additional roll around the attached direction in degrees. Defaults to zero. */
|
|
2226
|
-
readonly spinDegrees?: number;
|
|
2227
|
-
/** Explicit numeric comparison overrides for anchor normalization. */
|
|
2228
|
-
readonly tolerance?: GeometryToleranceOptions;
|
|
2229
2231
|
}
|
|
2230
2232
|
|
|
2231
2233
|
/**
|
|
@@ -2325,9 +2327,9 @@ export declare type ProfileSpan2 = {
|
|
|
2325
2327
|
/** Circular radius in millimetres. */
|
|
2326
2328
|
readonly radius: number;
|
|
2327
2329
|
/** Initial counterclockwise angle in degrees. */
|
|
2328
|
-
readonly
|
|
2330
|
+
readonly startAngle: number;
|
|
2329
2331
|
/** Signed counterclockwise angular sweep in degrees. */
|
|
2330
|
-
readonly
|
|
2332
|
+
readonly sweepAngle: number;
|
|
2331
2333
|
}
|
|
2332
2334
|
| {
|
|
2333
2335
|
/** Selects a cubic Bézier span with the same coordinates as CubicBezierCurve2. */
|
|
@@ -2378,28 +2380,34 @@ export declare interface RackPitchSpec {
|
|
|
2378
2380
|
/** Dedendum clearance as a multiple of normal module; defaults to `0.25`. */
|
|
2379
2381
|
readonly clearanceFactor?: number;
|
|
2380
2382
|
/** Signed helix angle in degrees; zero creates a straight rack. */
|
|
2381
|
-
readonly
|
|
2383
|
+
readonly helixAngle?: number;
|
|
2382
2384
|
/** Normal module in millimetres per tooth. */
|
|
2383
2385
|
readonly module: number;
|
|
2384
2386
|
/** Normal pressure angle in degrees; defaults to 20 degrees. */
|
|
2385
|
-
readonly
|
|
2387
|
+
readonly pressureAngle?: number;
|
|
2386
2388
|
/** Number of complete rack teeth represented by the segment. */
|
|
2387
2389
|
readonly toothCount: number;
|
|
2388
2390
|
}
|
|
2389
2391
|
|
|
2390
2392
|
/**
|
|
2391
|
-
*
|
|
2393
|
+
* Degree rotations about a fixed world-space pivot; XY patterns use the implicit +Z axis.
|
|
2392
2394
|
*/
|
|
2393
|
-
export declare
|
|
2394
|
-
/** Number of
|
|
2395
|
+
export declare type RadialPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
2396
|
+
/** Number of shapes to return, including the original. */
|
|
2395
2397
|
readonly count: number;
|
|
2396
|
-
/** Axis of the right-handed rotation. Its magnitude is ignored. */
|
|
2397
|
-
readonly axis: Vector3Tuple;
|
|
2398
2398
|
/** Signed rotation from one copy to the next, in degrees. */
|
|
2399
|
-
readonly
|
|
2400
|
-
/**
|
|
2401
|
-
readonly
|
|
2402
|
-
}
|
|
2399
|
+
readonly angle: number;
|
|
2400
|
+
/** Fixed world-space rotation pivot; defaults to the coordinate origin. */
|
|
2401
|
+
readonly pivot?: Dimension extends 2 ? Vector2Input : Vector3Input;
|
|
2402
|
+
} & (Dimension extends 2
|
|
2403
|
+
? {
|
|
2404
|
+
/** XY rotation uses +Z; an explicit spatial axis is unavailable. */
|
|
2405
|
+
readonly axis?: never;
|
|
2406
|
+
}
|
|
2407
|
+
: {
|
|
2408
|
+
/** Axis of the right-handed rotation. Its nonzero magnitude is ignored. */
|
|
2409
|
+
readonly axis: Vector3Input;
|
|
2410
|
+
});
|
|
2403
2411
|
|
|
2404
2412
|
/** Rotations about an explicit axis; angles use degrees and the first placement is identity. */
|
|
2405
2413
|
export declare function radialPatternTransforms(
|
|
@@ -2516,7 +2524,7 @@ export declare interface RegularPolygonContourOptions extends RadialSizingOption
|
|
|
2516
2524
|
/** Exact side count from three through the selected profile sampling ceiling. */
|
|
2517
2525
|
readonly sides: number;
|
|
2518
2526
|
/** Counterclockwise rotation in degrees; defaults to zero with a vertex on +X. */
|
|
2519
|
-
readonly
|
|
2527
|
+
readonly rotation?: number;
|
|
2520
2528
|
}
|
|
2521
2529
|
|
|
2522
2530
|
/** Resamples a planar polyline with the same point, tangent, seam and budget guarantees as 3D.
|
|
@@ -2553,7 +2561,7 @@ export declare function resamplePolyline3(
|
|
|
2553
2561
|
* `alignTo` must be non-empty and contain only positive safe integers. Its checked least common
|
|
2554
2562
|
* multiple defines the alignment grid. An exact `segments` value wins over
|
|
2555
2563
|
* `resolution.circularSegments` and adaptive sampling, but is never rounded: it must already be
|
|
2556
|
-
* aligned and meet `
|
|
2564
|
+
* aligned and meet `minSegments`. Adaptive counts are rounded upward and fail with
|
|
2557
2565
|
* `COMPLEXITY_LIMIT` when the aligned result exceeds the configured safety cap.
|
|
2558
2566
|
*
|
|
2559
2567
|
* @param radius - Positive circle radius in millimetres used for adaptive physical sampling.
|
|
@@ -2580,7 +2588,7 @@ export declare function resolveAlignedCircularSegments(
|
|
|
2580
2588
|
* the reusable BOSL2-style convention while retaining at least one segment.
|
|
2581
2589
|
*
|
|
2582
2590
|
* @param radius - Arc radius in millimetres.
|
|
2583
|
-
* @param
|
|
2591
|
+
* @param angle - Non-zero signed sweep angle no greater than 360 degrees in magnitude.
|
|
2584
2592
|
* @param policy - Optional operation-level policy over the active model scope.
|
|
2585
2593
|
* @returns Segment count for the requested arc span.
|
|
2586
2594
|
* @throws {@link GeometryError} when radius, angle, or resolution policy is invalid, or the
|
|
@@ -2594,7 +2602,7 @@ export declare function resolveAlignedCircularSegments(
|
|
|
2594
2602
|
*/
|
|
2595
2603
|
export declare function resolveArcSegments(
|
|
2596
2604
|
radius: number,
|
|
2597
|
-
|
|
2605
|
+
angle: number,
|
|
2598
2606
|
policy?: CircularResolutionOptions,
|
|
2599
2607
|
limits?: Partial<GeometrySamplingLimits>,
|
|
2600
2608
|
): number;
|
|
@@ -2718,7 +2726,7 @@ export declare function resolveRackPitch(
|
|
|
2718
2726
|
* Resolves a role-independent, start-aligned facet count from the larger female mating envelope.
|
|
2719
2727
|
*
|
|
2720
2728
|
* An exact `circularSegments` value must already be divisible by `starts`; it is never silently
|
|
2721
|
-
* raised. Adaptive policies align upward and fail if that would exceed `
|
|
2729
|
+
* raised. Adaptive policies align upward and fail if that would exceed `maxSegments`.
|
|
2722
2730
|
*/
|
|
2723
2731
|
export declare function resolveThreadCircularSegments(
|
|
2724
2732
|
options: ThreadCircularSegmentsOptions,
|
|
@@ -2741,6 +2749,7 @@ export declare function reverseTriangleMesh(mesh: TriangleMesh): TriangleMesh;
|
|
|
2741
2749
|
* vertices and zero-area quads. Profile edges that lie entirely on the axis
|
|
2742
2750
|
* collapse to the solid's interior and are intentionally omitted.
|
|
2743
2751
|
* Profile coordinates must fit finite Float32 mesh storage.
|
|
2752
|
+
* Path2 profiles must be closed; raw point collections have an implicit closing edge.
|
|
2744
2753
|
*
|
|
2745
2754
|
* @param profile - Closed CCW `[radius, z]` profile without a duplicated seam point.
|
|
2746
2755
|
* @param options - Optional physical or exact circumferential sampling controls. Defaults to `{}`.
|
|
@@ -2749,11 +2758,11 @@ export declare function reverseTriangleMesh(mesh: TriangleMesh): TriangleMesh;
|
|
|
2749
2758
|
* @example Partial revolution with end caps
|
|
2750
2759
|
* ```ts
|
|
2751
2760
|
* // Each point is [radius, Z]; the profile seam is implicit.
|
|
2752
|
-
* revolveMesh([[0, 0], [12, 0], [8, 20], [0, 20]], {
|
|
2761
|
+
* revolveMesh([[0, 0], [12, 0], [8, 20], [0, 20]], { degrees: 270 });
|
|
2753
2762
|
* ```
|
|
2754
2763
|
*/
|
|
2755
2764
|
export declare const revolveMesh: (
|
|
2756
|
-
|
|
2765
|
+
input: Path2Input,
|
|
2757
2766
|
options?: RevolveOptions,
|
|
2758
2767
|
) => TriangleMesh;
|
|
2759
2768
|
|
|
@@ -2762,12 +2771,14 @@ export declare const revolveMesh: (
|
|
|
2762
2771
|
*/
|
|
2763
2772
|
export declare interface RevolveOptions extends CircularPrimitiveOptions {
|
|
2764
2773
|
/**
|
|
2765
|
-
* Positive
|
|
2774
|
+
* Positive sweep in degrees, no greater than 360. Defaults to a full revolution;
|
|
2775
|
+
* smaller sweeps form partial revolutions with end caps.
|
|
2766
2776
|
* Segment counts describe a complete circle and scale to this angular span. Native filled
|
|
2767
2777
|
* revolutions require at least three sweep intervals: adaptive sampling refines to that floor,
|
|
2768
2778
|
* while exact counts that imply fewer intervals reject. Pure revolveMesh supports one interval.
|
|
2779
|
+
* @defaultValue `360`
|
|
2769
2780
|
*/
|
|
2770
|
-
readonly
|
|
2781
|
+
readonly degrees?: number;
|
|
2771
2782
|
/** Explicit output and sampling allocation ceilings. */
|
|
2772
2783
|
readonly limits?: Partial<ModelingLimits>;
|
|
2773
2784
|
}
|
|
@@ -2803,9 +2814,10 @@ export declare function rotationTransform3(
|
|
|
2803
2814
|
* 45% of adjacent segment lengths to prevent neighboring corners from crossing.
|
|
2804
2815
|
* The returned path does not duplicate its closing point.
|
|
2805
2816
|
* Coordinates and radius must be finite; input and output are each limited by maxPathPoints (default 100000).
|
|
2817
|
+
* Requires a closed path value; raw tuples are interpreted as closed. Invalid inputs throw GeometryError.
|
|
2806
2818
|
*/
|
|
2807
2819
|
export declare const roundClosedPolylinePath: (
|
|
2808
|
-
|
|
2820
|
+
input: Path3Input,
|
|
2809
2821
|
radius: number,
|
|
2810
2822
|
segmentsPerCorner: number,
|
|
2811
2823
|
limits?: Partial<GeometrySamplingLimits>,
|
|
@@ -2836,7 +2848,7 @@ export declare interface RowLayoutOptions {
|
|
|
2836
2848
|
* coordinate range are required. No native engine, SDK, or ambient resolution is used.
|
|
2837
2849
|
*
|
|
2838
2850
|
* @param curve - Closed contour in millimetres unless positive scales convert its coordinates.
|
|
2839
|
-
* @param options - Physical resolution and unique vertex budget; defaults to 4096
|
|
2851
|
+
* @param options - Physical resolution and unique vertex budget; defaults to min(4096, maxProfilePoints).
|
|
2840
2852
|
* @returns Frozen counterclockwise loop in millimetres, without a repeated seam endpoint.
|
|
2841
2853
|
* @throws {@link GeometryError} for invalid data, topology, scale, or exceeded sampling budgets.
|
|
2842
2854
|
*
|
|
@@ -2866,7 +2878,7 @@ export declare interface SampleContourOptions {
|
|
|
2866
2878
|
/** Physical policy evaluated after scaling, using the shared curve sampler. */
|
|
2867
2879
|
readonly resolution?: GeometryResolution;
|
|
2868
2880
|
/** Unique output vertex ceiling, at least three, within maxProfilePoints. Defaults to min(4096, maxProfilePoints). */
|
|
2869
|
-
readonly
|
|
2881
|
+
readonly maxVertices?: number;
|
|
2870
2882
|
/** Selected profile and per-segment path ceilings; omitted values use package defaults. */
|
|
2871
2883
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
2872
2884
|
}
|
|
@@ -2876,7 +2888,7 @@ export declare interface SampleContourOptions {
|
|
|
2876
2888
|
* frozen. At stationary tangents, outgoing secants are preferred and endpoints use a backward fallback.
|
|
2877
2889
|
* @example
|
|
2878
2890
|
* ```ts
|
|
2879
|
-
* const turn = sampleCurve2({kind: "arc", center: [0,0], radius: 10,
|
|
2891
|
+
* const turn = sampleCurve2({kind: "arc", center: [0,0], radius: 10, sweepAngle: 90});
|
|
2880
2892
|
* ```
|
|
2881
2893
|
*/
|
|
2882
2894
|
export declare function sampleCurve2(
|
|
@@ -2933,7 +2945,7 @@ export declare interface SampledThreadHelices {
|
|
|
2933
2945
|
/** Axial advance over one revolution, equal to `pitch * starts`. */
|
|
2934
2946
|
readonly lead: number;
|
|
2935
2947
|
/** One immutable sampled path for each thread start. */
|
|
2936
|
-
readonly paths: readonly
|
|
2948
|
+
readonly paths: readonly Path3Data[];
|
|
2937
2949
|
/** Adjacent axial thread spacing in millimetres. */
|
|
2938
2950
|
readonly pitch: number;
|
|
2939
2951
|
/** Number of revolutions represented by each path. */
|
|
@@ -2944,6 +2956,7 @@ export declare interface SampledThreadHelices {
|
|
|
2944
2956
|
* Creates `segments + 1` points including exact helix endpoints from finite positive dimensions.
|
|
2945
2957
|
* Integrated weights must remain finite. The maxPathPoints ceiling defaults to 100000; excessive
|
|
2946
2958
|
* exact counts reject before evaluating axial weights or allocating sample arrays.
|
|
2959
|
+
* Invalid inputs use GeometryError; exceptions thrown by axialWeight propagate unchanged.
|
|
2947
2960
|
*/
|
|
2948
2961
|
export declare const sampleHelix: ({
|
|
2949
2962
|
turns,
|
|
@@ -2997,7 +3010,7 @@ export declare function sampleInternalCylindricalGearSpaceOutline(
|
|
|
2997
3010
|
export declare function sampleRackToothPath(
|
|
2998
3011
|
spec: RackPitchSpec,
|
|
2999
3012
|
limits?: Partial<GeometrySamplingLimits>,
|
|
3000
|
-
):
|
|
3013
|
+
): Path2Data;
|
|
3001
3014
|
|
|
3002
3015
|
/**
|
|
3003
3016
|
* Samples 1–31 line/cubic segments into a deeply immutable open [radius,height] polyline.
|
|
@@ -3008,7 +3021,7 @@ export declare function sampleRackToothPath(
|
|
|
3008
3021
|
* no axis closure, winding normalization, or manufacturing repair is performed.
|
|
3009
3022
|
*
|
|
3010
3023
|
* @param curve - Open outline in millimetres unless the positive scales convert its coordinates.
|
|
3011
|
-
* @param options - Physical resolution and output budget; defaults to 4096
|
|
3024
|
+
* @param options - Physical resolution and output budget; defaults to min(4096, maxProfilePoints).
|
|
3012
3025
|
* @returns Frozen open polyline in millimetres, ordered from lowest to highest anchor.
|
|
3013
3026
|
* @throws {@link GeometryError} for invalid coordinates, order, scale, or exceeded subdivision budget.
|
|
3014
3027
|
*
|
|
@@ -3034,7 +3047,7 @@ export declare interface SampleSideProfileOptions {
|
|
|
3034
3047
|
/** Shared physical policy, evaluated after scaling; exact circular counts do not affect curves. */
|
|
3035
3048
|
readonly resolution?: GeometryResolution;
|
|
3036
3049
|
/** Maximum output vertex count within maxProfilePoints. Defaults to the smaller of 4096 and that ceiling. */
|
|
3037
|
-
readonly
|
|
3050
|
+
readonly maxVertices?: number;
|
|
3038
3051
|
/** Explicit profile and circular allocation ceilings. */
|
|
3039
3052
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
3040
3053
|
}
|
|
@@ -3148,7 +3161,7 @@ export declare interface SmoothEdgeTreatment {
|
|
|
3148
3161
|
/** Bounded floating-point intersection and shell-orientation validation settings. */
|
|
3149
3162
|
export declare interface SolidMeshValidationOptions {
|
|
3150
3163
|
/** Work ceiling for spatial comparisons and containment tests; defaults to 2,000,000 and may only lower it. */
|
|
3151
|
-
readonly
|
|
3164
|
+
readonly maxTests?: number;
|
|
3152
3165
|
/** Distance comparison policy in millimetres; near contacts reject conservatively. */
|
|
3153
3166
|
readonly tolerance?: GeometryToleranceOptions;
|
|
3154
3167
|
}
|
|
@@ -3157,7 +3170,7 @@ export declare interface SolidMeshValidationOptions {
|
|
|
3157
3170
|
* Exactly one radius or diameter, placement, and tessellation for an origin-centered sphere.
|
|
3158
3171
|
*/
|
|
3159
3172
|
export declare type SphereOptions = CircularPrimitiveOptions &
|
|
3160
|
-
|
|
3173
|
+
PrimitiveAttachment &
|
|
3161
3174
|
(
|
|
3162
3175
|
| {
|
|
3163
3176
|
/** Positive radius in millimetres; mutually exclusive with diameter. */
|
|
@@ -3200,40 +3213,40 @@ export declare const starContour: (
|
|
|
3200
3213
|
) => readonly Vector2Tuple[];
|
|
3201
3214
|
|
|
3202
3215
|
/** End-cap treatment for an open stroked path. */
|
|
3203
|
-
export declare type
|
|
3216
|
+
export declare type StrokeCap = "butt" | "round" | "square";
|
|
3204
3217
|
|
|
3205
3218
|
/** Join treatment where adjacent stroked path segments meet. */
|
|
3206
|
-
export declare type
|
|
3207
|
-
|
|
3208
|
-
/**
|
|
3209
|
-
* Converts a sampled millimetre path into the filled region covered by a centered stroke.
|
|
3210
|
-
*
|
|
3211
|
-
* Closed paths omit a duplicated seam point. Zero-length sampled segments are ignored, while the
|
|
3212
|
-
* effective path must still contain visible length. Round caps and joins use deterministic physical
|
|
3213
|
-
* resolution. Bevels fill the outer corner triangle; miters extend the outer edges to their
|
|
3214
|
-
* intersection, falling back to bevels above SVG's default miter limit of 4.
|
|
3215
|
-
*/
|
|
3216
|
-
export declare function strokePathRegion(
|
|
3217
|
-
path: Path2,
|
|
3218
|
-
options: StrokePathRegionOptions,
|
|
3219
|
-
): RegionData;
|
|
3219
|
+
export declare type StrokeJoin = "bevel" | "miter" | "round";
|
|
3220
3220
|
|
|
3221
3221
|
/** Physical stroke and topology controls shared by pure regions and native Sections. */
|
|
3222
|
-
export declare interface
|
|
3222
|
+
export declare interface StrokeOptions {
|
|
3223
3223
|
/** Explicit path, circular and expanded-profile allocation ceilings. */
|
|
3224
3224
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
3225
|
-
/**
|
|
3225
|
+
/** Raw point closure defaults to false; a Path2 supplies its closure and rejects conflicts. */
|
|
3226
3226
|
readonly closed?: boolean;
|
|
3227
3227
|
/** End-cap treatment for an open path. Ignored for closed paths. Default: `butt`. */
|
|
3228
|
-
readonly cap?:
|
|
3228
|
+
readonly cap?: StrokeCap;
|
|
3229
3229
|
/** Corner treatment; miters exceeding SVG's default limit of 4 become bevels. Default: `miter`. */
|
|
3230
|
-
readonly join?:
|
|
3230
|
+
readonly join?: StrokeJoin;
|
|
3231
3231
|
/** Physical tessellation policy for round caps and joins. */
|
|
3232
3232
|
readonly resolution?: GeometryResolution;
|
|
3233
3233
|
/** Positive total stroke width in millimetres, centered on the sampled path. */
|
|
3234
3234
|
readonly width: number;
|
|
3235
3235
|
}
|
|
3236
3236
|
|
|
3237
|
+
/**
|
|
3238
|
+
* Converts a sampled millimetre path into the filled region covered by a centered stroke.
|
|
3239
|
+
*
|
|
3240
|
+
* Closed paths omit a duplicated seam point. Zero-length sampled segments are ignored, while the
|
|
3241
|
+
* effective path must still contain visible length. Round caps and joins use deterministic physical
|
|
3242
|
+
* resolution. Bevels fill the outer corner triangle; miters extend the outer edges to their
|
|
3243
|
+
* intersection, falling back to bevels above SVG's default miter limit of 4.
|
|
3244
|
+
*/
|
|
3245
|
+
export declare function strokeRegionData(
|
|
3246
|
+
path: Path2Input,
|
|
3247
|
+
options: StrokeOptions,
|
|
3248
|
+
): RegionData;
|
|
3249
|
+
|
|
3237
3250
|
/** Subtracts `b` from `a` component-wise. */
|
|
3238
3251
|
export declare const subtract2: (
|
|
3239
3252
|
a: Vector2Tuple,
|
|
@@ -3286,45 +3299,45 @@ export declare interface SvgRegionPreflightGeometryMetrics {
|
|
|
3286
3299
|
/** Millimetre bounds, or `null` when no painted region remains. */
|
|
3287
3300
|
readonly bounds: Bounds2 | null;
|
|
3288
3301
|
/** Disconnected filled polygons in the final region. */
|
|
3289
|
-
readonly
|
|
3302
|
+
readonly componentCount: number;
|
|
3290
3303
|
/** Exterior and hole boundary count in the final region. */
|
|
3291
|
-
readonly
|
|
3304
|
+
readonly contourCount: number;
|
|
3292
3305
|
/** Interior boundary count in the final region. */
|
|
3293
|
-
readonly
|
|
3306
|
+
readonly holeCount: number;
|
|
3294
3307
|
/** Shortest final boundary edge in millimetres, or `null` for an empty region. */
|
|
3295
3308
|
readonly minEdgeLength: number | null;
|
|
3296
3309
|
/** Final boundary edges shorter than the conservative 0.01 mm indicator. */
|
|
3297
|
-
readonly
|
|
3310
|
+
readonly shortEdgeCount: number;
|
|
3298
3311
|
/** Components with less than 0.01 square millimetres of filled area. */
|
|
3299
|
-
readonly
|
|
3312
|
+
readonly tinyIslandCount: number;
|
|
3300
3313
|
/** Non-duplicated boundary vertices in the final normalized region. */
|
|
3301
|
-
readonly
|
|
3314
|
+
readonly vertexCount: number;
|
|
3302
3315
|
}
|
|
3303
3316
|
|
|
3304
3317
|
/** Visible, appearance-preserving cleanup counters from bounded SVG import. */
|
|
3305
3318
|
export declare interface SvgRegionPreflightRepairs {
|
|
3306
3319
|
/** Graphics elements with neither a visible fill nor a positive-width visible stroke. */
|
|
3307
|
-
readonly
|
|
3320
|
+
readonly invisibleElementCount: number;
|
|
3308
3321
|
/** Open filled subpaths closed by SVG fill semantics without closing their strokes. */
|
|
3309
|
-
readonly
|
|
3322
|
+
readonly implicitFilledClosureCount: number;
|
|
3310
3323
|
/** Visibly painted elements whose fill and stroke both resolved to empty geometry. */
|
|
3311
|
-
readonly
|
|
3324
|
+
readonly emptyElementCount: number;
|
|
3312
3325
|
/** Consecutive repeated flattened vertices discarded before topology resolution. */
|
|
3313
|
-
readonly
|
|
3326
|
+
readonly removedDuplicateVertexCount: number;
|
|
3314
3327
|
/** Explicit repeated seam vertices removed from otherwise closed contours. */
|
|
3315
|
-
readonly
|
|
3328
|
+
readonly removedSeamVertexCount: number;
|
|
3316
3329
|
}
|
|
3317
3330
|
|
|
3318
3331
|
/** Bounded source-complexity facts collected while parsing one SVG document. */
|
|
3319
3332
|
export declare interface SvgRegionPreflightSourceMetrics {
|
|
3320
3333
|
/** UTF-8 source size, capped at 256 KiB before parsing. */
|
|
3321
|
-
readonly
|
|
3334
|
+
readonly byteCount: number;
|
|
3322
3335
|
/** Renderable shape elements, capped at 500; containers and metadata are excluded. */
|
|
3323
|
-
readonly
|
|
3336
|
+
readonly elementCount: number;
|
|
3324
3337
|
/** Flattened vertices emitted before fill, stroke, and clipping operations. */
|
|
3325
|
-
readonly
|
|
3338
|
+
readonly emittedVertexCount: number;
|
|
3326
3339
|
/** Path endpoints and control vertices parsed before adaptive flattening. */
|
|
3327
|
-
readonly
|
|
3340
|
+
readonly parsedVertexCount: number;
|
|
3328
3341
|
}
|
|
3329
3342
|
|
|
3330
3343
|
/**
|
|
@@ -3339,8 +3352,8 @@ export declare interface SvgRegionPreflightSourceMetrics {
|
|
|
3339
3352
|
* ```
|
|
3340
3353
|
*/
|
|
3341
3354
|
export declare function sweepMesh(
|
|
3342
|
-
profile:
|
|
3343
|
-
path:
|
|
3355
|
+
profile: Path2Input,
|
|
3356
|
+
path: Path3Input,
|
|
3344
3357
|
options?: SweepOptions,
|
|
3345
3358
|
): TriangleMesh;
|
|
3346
3359
|
|
|
@@ -3348,7 +3361,7 @@ export declare function sweepMesh(
|
|
|
3348
3361
|
* Controls shared by pure mesh construction and filled modeling sweeps.
|
|
3349
3362
|
*/
|
|
3350
3363
|
export declare interface SweepOptions {
|
|
3351
|
-
/**
|
|
3364
|
+
/** Raw point closure defaults to false; a Path3 supplies its closure and rejects conflicts. */
|
|
3352
3365
|
readonly closed?: boolean;
|
|
3353
3366
|
/** Explicit output and sampling allocation ceilings. */
|
|
3354
3367
|
readonly limits?: Partial<ModelingLimits>;
|
|
@@ -3357,11 +3370,11 @@ export declare interface SweepOptions {
|
|
|
3357
3370
|
/** Physical sampling of nonzero twist; inserted stations retain authored station controls. */
|
|
3358
3371
|
readonly resolution?: GeometryResolution;
|
|
3359
3372
|
/** Total additional profile rotation in degrees, with progression selected by twistBy. */
|
|
3360
|
-
readonly
|
|
3373
|
+
readonly twist?: number;
|
|
3361
3374
|
/** Twist advances by physical path length (default), or normalized authored station position, including a closed seam gap. */
|
|
3362
3375
|
readonly twistBy?: "length" | "stations";
|
|
3363
3376
|
/** Positive uniform/XY scale, or one XY pair per path station. Defaults to one. */
|
|
3364
|
-
readonly scale?: number |
|
|
3377
|
+
readonly scale?: number | Vector2Input | readonly Vector2Input[];
|
|
3365
3378
|
/** Corresponding point-index advance at a rotationally equivalent closed seam. */
|
|
3366
3379
|
readonly seamProfileOffset?: number;
|
|
3367
3380
|
}
|
|
@@ -3374,13 +3387,13 @@ export declare type SweepOrientation =
|
|
|
3374
3387
|
/** Minimizes frame rotation by parallel transport. */
|
|
3375
3388
|
readonly kind: "transport";
|
|
3376
3389
|
/** Initial profile +X guide, projected perpendicular to the first tangent. */
|
|
3377
|
-
readonly initialNormal?:
|
|
3390
|
+
readonly initialNormal?: Vector3Input;
|
|
3378
3391
|
}
|
|
3379
3392
|
| {
|
|
3380
3393
|
/** Projects one fixed world-space normal at every path station. */
|
|
3381
3394
|
readonly kind: "fixed-normal";
|
|
3382
3395
|
/** Directed profile +X guide; must not be parallel to any local tangent. */
|
|
3383
|
-
readonly normal:
|
|
3396
|
+
readonly normal: Vector3Input;
|
|
3384
3397
|
}
|
|
3385
3398
|
| {
|
|
3386
3399
|
/** Uses an explicitly directed normal callback at each original normalized station. */
|
|
@@ -3419,7 +3432,7 @@ export declare interface ThreadCircularSegmentsOptions {
|
|
|
3419
3432
|
* This keeps a compensated male/female pair on one role-independent grid when an internal
|
|
3420
3433
|
* cutter has an enlarged entrance bevel. Default: `0`.
|
|
3421
3434
|
*/
|
|
3422
|
-
readonly
|
|
3435
|
+
readonly maxRadialOutset?: number;
|
|
3423
3436
|
/** Validated mating profile whose pitch and flank capacities govern tessellation. */
|
|
3424
3437
|
readonly profile: ThreadProfile;
|
|
3425
3438
|
/** Physical or exact circular resolution policy. */
|
|
@@ -3559,7 +3572,7 @@ export declare interface ThreadHelixOptions {
|
|
|
3559
3572
|
/** Total sampled axial length in millimetres. */
|
|
3560
3573
|
readonly length: number;
|
|
3561
3574
|
/** Angular offset of the first start in degrees. Default: `0`. */
|
|
3562
|
-
readonly
|
|
3575
|
+
readonly phase?: number;
|
|
3563
3576
|
/** Adjacent axial thread spacing in millimetres. */
|
|
3564
3577
|
readonly pitch: number;
|
|
3565
3578
|
/** Radial distance from the +Z axis in millimetres. */
|
|
@@ -3596,6 +3609,20 @@ export declare interface ThreadProfile {
|
|
|
3596
3609
|
readonly rootFlatWidth: number;
|
|
3597
3610
|
}
|
|
3598
3611
|
|
|
3612
|
+
/**
|
|
3613
|
+
* Creates a periodic thread profile for the shaft-locked helical mesher.
|
|
3614
|
+
*
|
|
3615
|
+
* The open path spans one pitch. Radial zero is the major envelope; negative
|
|
3616
|
+
* values point toward the shaft. Custom paths must be finite, axially
|
|
3617
|
+
* non-decreasing, periodic at their endpoints, and reach radial zero.
|
|
3618
|
+
*
|
|
3619
|
+
* @example Printable triangular thread profile
|
|
3620
|
+
* ```ts
|
|
3621
|
+
* threadProfile({ kind: "triangular", pitch: 1.75 });
|
|
3622
|
+
* ```
|
|
3623
|
+
*/
|
|
3624
|
+
export declare function threadProfile(spec: ThreadProfileSpec): ThreadProfile;
|
|
3625
|
+
|
|
3599
3626
|
/** Fields shared by all thread profile specifications. */
|
|
3600
3627
|
export declare interface ThreadProfileBaseSpec {
|
|
3601
3628
|
/** Adjacent axial thread spacing in millimetres. */
|
|
@@ -3621,7 +3648,7 @@ export declare type ThreadRole = "male" | "female";
|
|
|
3621
3648
|
/**
|
|
3622
3649
|
* Dimensions and independent ring/profile tessellation for a torus around the Z axis.
|
|
3623
3650
|
*/
|
|
3624
|
-
export declare interface TorusOptions extends
|
|
3651
|
+
export declare interface TorusOptions extends PrimitiveAttachment {
|
|
3625
3652
|
/** Explicit sampling ceilings, bounded by the host policy. */
|
|
3626
3653
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
3627
3654
|
/** Radius from the Z axis to the profile center, in millimetres; greater than `minorRadius`. */
|
|
@@ -3764,17 +3791,6 @@ export declare type Transform3Matrix = readonly [
|
|
|
3764
3791
|
m33: number,
|
|
3765
3792
|
];
|
|
3766
3793
|
|
|
3767
|
-
/**
|
|
3768
|
-
* Applies a canonical affine XY transform to a closed loop and preserves its original winding.
|
|
3769
|
-
*
|
|
3770
|
-
* Reflections reverse the point order automatically through normalization.
|
|
3771
|
-
*/
|
|
3772
|
-
export declare function transformContour(
|
|
3773
|
-
loop: Contour,
|
|
3774
|
-
transform: Transform2Input,
|
|
3775
|
-
tolerance?: GeometryToleranceOptions,
|
|
3776
|
-
): Contour;
|
|
3777
|
-
|
|
3778
3794
|
/**
|
|
3779
3795
|
* Returns the determinant of a transform's linear 3x3 component.
|
|
3780
3796
|
*
|
|
@@ -3787,19 +3803,6 @@ export declare function transformDeterminant3(
|
|
|
3787
3803
|
transform: Transform3Matrix,
|
|
3788
3804
|
): number;
|
|
3789
3805
|
|
|
3790
|
-
/** Applies a canonical affine XY transform to a 2D path without changing point order. */
|
|
3791
|
-
export declare function transformPath2(
|
|
3792
|
-
path: Path2,
|
|
3793
|
-
transform: Transform2Input,
|
|
3794
|
-
tolerance?: GeometryToleranceOptions,
|
|
3795
|
-
): Path2;
|
|
3796
|
-
|
|
3797
|
-
/** Applies an affine transform to a 3D path without mutating its points. */
|
|
3798
|
-
export declare function transformPath3(
|
|
3799
|
-
path: Path3,
|
|
3800
|
-
placement: Transform3Input,
|
|
3801
|
-
): Path3;
|
|
3802
|
-
|
|
3803
3806
|
/**
|
|
3804
3807
|
* Transforms serialized polygon data with reflection-safe winding, without an engine.
|
|
3805
3808
|
* Use Section.transform(placement) when authoring filled geometry; this utility serves pure data preparation.
|
|
@@ -3817,12 +3820,12 @@ export declare function transformRegionData(
|
|
|
3817
3820
|
* automatically reverses every triangle. Singular transforms are rejected.
|
|
3818
3821
|
*
|
|
3819
3822
|
* @param mesh - Mesh to transform without mutation.
|
|
3820
|
-
* @param
|
|
3823
|
+
* @param placement - Immutable spatial placement or canonical row-major affine matrix.
|
|
3821
3824
|
* @returns A mesh with fresh transformed positions and copied or reversed indices.
|
|
3822
3825
|
*/
|
|
3823
3826
|
export declare function transformTriangleMesh(
|
|
3824
3827
|
mesh: TriangleMesh,
|
|
3825
|
-
|
|
3828
|
+
placement: Transform3Input,
|
|
3826
3829
|
): TriangleMesh;
|
|
3827
3830
|
|
|
3828
3831
|
/**
|
|
@@ -3845,10 +3848,11 @@ export declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseS
|
|
|
3845
3848
|
*/
|
|
3846
3849
|
readonly depth?: number;
|
|
3847
3850
|
/**
|
|
3848
|
-
*
|
|
3851
|
+
* Full angle between the flanks in degrees, from `0` inclusive to `180` exclusive.
|
|
3852
|
+
* Each flank uses half this angle from the radial direction; `90` gives 45-degree slopes.
|
|
3849
3853
|
* @defaultValue `30`
|
|
3850
3854
|
*/
|
|
3851
|
-
readonly
|
|
3855
|
+
readonly includedAngle?: number;
|
|
3852
3856
|
}
|
|
3853
3857
|
|
|
3854
3858
|
/**
|
|
@@ -3865,7 +3869,7 @@ export declare interface TriangleMesh {
|
|
|
3865
3869
|
* Measurements and optional edge-connected topology from one validated mesh traversal.
|
|
3866
3870
|
*/
|
|
3867
3871
|
export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
|
|
3868
|
-
/** Number of referenced edge-connected
|
|
3872
|
+
/** Number of referenced edge-connected boundary shells when `includeTopology` is requested; cavities count separately. */
|
|
3869
3873
|
readonly connectedComponentCount?: number;
|
|
3870
3874
|
/** Number of distinct indexed undirected edges when `includeTopology` is requested. */
|
|
3871
3875
|
readonly edgeCount?: number;
|
|
@@ -3898,7 +3902,7 @@ export declare interface TriangleMeshMeasurements {
|
|
|
3898
3902
|
/** Options controlling bounded triangle-mesh quality analysis. */
|
|
3899
3903
|
export declare interface TriangleMeshQualityOptions {
|
|
3900
3904
|
/** Maximum number of triangles inspected. Defaults to `200000`. */
|
|
3901
|
-
readonly
|
|
3905
|
+
readonly maxTriangles?: number;
|
|
3902
3906
|
/** Numeric comparison overrides; model coordinates are interpreted in their existing units. */
|
|
3903
3907
|
readonly tolerance?: GeometryToleranceOptions;
|
|
3904
3908
|
}
|
|
@@ -3941,7 +3945,7 @@ export declare interface TriangleMeshQualityReport {
|
|
|
3941
3945
|
export declare interface TriangleMeshSignature {
|
|
3942
3946
|
/** Axis-aligned bounds quantized by `tolerances.position`. */
|
|
3943
3947
|
readonly bounds: Bounds3;
|
|
3944
|
-
/** Number of edge-connected closed
|
|
3948
|
+
/** Number of edge-connected closed boundary shells; cavities count separately. */
|
|
3945
3949
|
readonly connectedComponentCount: number;
|
|
3946
3950
|
/** Total orientable genus across all connected components. */
|
|
3947
3951
|
readonly genus: number;
|
|
@@ -3960,7 +3964,7 @@ export declare interface TriangleMeshSignature {
|
|
|
3960
3964
|
/** Options controlling deterministic triangle-mesh regression signatures. */
|
|
3961
3965
|
export declare interface TriangleMeshSignatureOptions {
|
|
3962
3966
|
/** Maximum accepted triangle count. Defaults to 200,000. */
|
|
3963
|
-
readonly
|
|
3967
|
+
readonly maxTriangles?: number;
|
|
3964
3968
|
/** Position and bounds quantization in model units. Defaults to `1e-5`. */
|
|
3965
3969
|
readonly positionTolerance?: number;
|
|
3966
3970
|
/** Signed-volume quantization in cubic model units. Defaults to `1e-4`. */
|
|
@@ -4010,7 +4014,7 @@ export declare function triangulateContour(loop: Contour): Uint32Array;
|
|
|
4010
4014
|
* Dimensions, placement, and tessellation for a hollow Z-axis tube.
|
|
4011
4015
|
*/
|
|
4012
4016
|
export declare interface TubeOptions
|
|
4013
|
-
extends CircularPrimitiveOptions,
|
|
4017
|
+
extends CircularPrimitiveOptions, PrimitiveAttachment {
|
|
4014
4018
|
/**
|
|
4015
4019
|
* Centers the tube on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
|
|
4016
4020
|
* @defaultValue `true`
|
|
@@ -4172,7 +4176,7 @@ export declare interface VectorTextArcBaseline {
|
|
|
4172
4176
|
/** Baseline radius in millimetres, greater than zero and at most 10000. */
|
|
4173
4177
|
readonly radius: number;
|
|
4174
4178
|
/** Alignment datum in degrees counterclockwise from +X; defaults to 90. */
|
|
4175
|
-
readonly
|
|
4179
|
+
readonly centerAngle?: number;
|
|
4176
4180
|
/** Reading direction around the circle; defaults to clockwise. */
|
|
4177
4181
|
readonly direction?: "clockwise" | "counterclockwise";
|
|
4178
4182
|
}
|