@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/index.d.ts
CHANGED
|
@@ -37,16 +37,14 @@ export declare interface Anchor3 {
|
|
|
37
37
|
readonly up: Vector3Tuple;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
/**
|
|
41
|
-
* Degree-based anchor attachment controls for a scoped solid.
|
|
42
|
-
*/
|
|
40
|
+
/** Options controlling how one anchor is attached to another. */
|
|
43
41
|
export declare interface AttachOptions {
|
|
44
42
|
/** Align outward directions face-to-face (`opposed`) or in parallel (`same`). */
|
|
45
43
|
readonly alignment?: "opposed" | "same";
|
|
46
|
-
/** Separation along the target anchor's outward direction in
|
|
44
|
+
/** Separation along the target anchor's outward direction in model units. */
|
|
47
45
|
readonly gap?: number;
|
|
48
46
|
/** Additional right-handed roll about the attached direction, in degrees. */
|
|
49
|
-
readonly
|
|
47
|
+
readonly spin?: number;
|
|
50
48
|
/** Optional numeric comparison overrides. */
|
|
51
49
|
readonly tolerance?: GeometryToleranceOptions;
|
|
52
50
|
}
|
|
@@ -103,7 +101,7 @@ export declare type BoxEdgeTreatments = Readonly<
|
|
|
103
101
|
/**
|
|
104
102
|
* Dimensions, placement, and uniform or independently selected finishing for an axis-aligned box.
|
|
105
103
|
*/
|
|
106
|
-
export declare interface BoxOptions extends
|
|
104
|
+
export declare interface BoxOptions extends PrimitiveAttachment {
|
|
107
105
|
/** Explicit sampling ceilings for edge treatments, bounded by the host policy. */
|
|
108
106
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
109
107
|
/**
|
|
@@ -137,6 +135,13 @@ declare interface ButtressThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
137
135
|
readonly pressureFlankSide?: ButtressPressureFlankSide;
|
|
138
136
|
}
|
|
139
137
|
|
|
138
|
+
/** Copies intersections along the finite directed origin-to-endpoint segment. */
|
|
139
|
+
export declare function castSegment(
|
|
140
|
+
solid: Solid,
|
|
141
|
+
origin: Vector3Input,
|
|
142
|
+
endpoint: Vector3Input,
|
|
143
|
+
): readonly SolidSegmentHit[];
|
|
144
|
+
|
|
140
145
|
/**
|
|
141
146
|
* A planar edge or corner chamfer with equal or independent surface setbacks.
|
|
142
147
|
*/
|
|
@@ -180,7 +185,7 @@ export declare type CircleContourOptions = CircularPrimitiveOptions &
|
|
|
180
185
|
/**
|
|
181
186
|
* Circular dimensions with exactly one nominal radius or diameter.
|
|
182
187
|
*/
|
|
183
|
-
export declare type CircleOptions = CircleContourOptions &
|
|
188
|
+
export declare type CircleOptions = CircleContourOptions & PrimitiveAttachment;
|
|
184
189
|
|
|
185
190
|
/**
|
|
186
191
|
* Tessellation controls shared by circular primitives across Geometry entry points.
|
|
@@ -200,11 +205,11 @@ export declare interface CircularPrimitiveOptions {
|
|
|
200
205
|
}
|
|
201
206
|
|
|
202
207
|
/**
|
|
203
|
-
* Observes
|
|
208
|
+
* Observes disconnected material pieces as session-restricted solid selections.
|
|
204
209
|
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
210
|
+
* Each piece retains its enclosed cavities. A sealed hollow box is one component; adding a loose
|
|
211
|
+
* ball inside its cavity produces two. Recombining the pieces preserves the original material.
|
|
212
|
+
* This does not cut connected geometry. Containment is bounded to 2,000,000 comparisons.
|
|
208
213
|
* Selection order and cardinality depend on evaluated topology. Results and recipes using them
|
|
209
214
|
* can only be evaluated in this session; composition itself requires no engine.
|
|
210
215
|
*
|
|
@@ -280,6 +285,20 @@ export declare type CorrespondingProfileStation = LoftPlacement & {
|
|
|
280
285
|
readonly profile: CorrespondingProfile;
|
|
281
286
|
};
|
|
282
287
|
|
|
288
|
+
/**
|
|
289
|
+
* Explicit physical sampling and allocation policy for reusable curves.
|
|
290
|
+
*/
|
|
291
|
+
declare interface CurveSamplingOptions {
|
|
292
|
+
/** Exact segment count overrides physical criteria; curve parameters are spaced uniformly. */
|
|
293
|
+
readonly segments?: number;
|
|
294
|
+
/** Millimetre sampling policy; circularSegments applies only to arcs. */
|
|
295
|
+
readonly resolution?: GeometryResolution;
|
|
296
|
+
/** Output vertex ceiling of at least two; may only lower limits.maxPathPoints. */
|
|
297
|
+
readonly maxVertices?: number;
|
|
298
|
+
/** Explicit sampling ceilings; omitted values use package defaults without ambient state. */
|
|
299
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
300
|
+
}
|
|
301
|
+
|
|
283
302
|
/** Caller-defined periodic axial/radial profile in millimetres. */
|
|
284
303
|
declare interface CustomThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
285
304
|
/** Selects a caller-defined periodic profile. */
|
|
@@ -311,7 +330,7 @@ export declare function cylinder(options: CylinderOptions): Solid;
|
|
|
311
330
|
*/
|
|
312
331
|
export declare type CylinderOptions = CircularPrimitiveOptions &
|
|
313
332
|
RadialSizingOptions &
|
|
314
|
-
|
|
333
|
+
PrimitiveAttachment & {
|
|
315
334
|
/**
|
|
316
335
|
* Centers the solid on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
|
|
317
336
|
* @defaultValue `true`
|
|
@@ -400,7 +419,8 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
|
|
|
400
419
|
/**
|
|
401
420
|
* Ellipse dimensions in local XY, with exactly one radii or full-size tuple.
|
|
402
421
|
*/
|
|
403
|
-
export declare type EllipseOptions = EllipseContourOptions &
|
|
422
|
+
export declare type EllipseOptions = EllipseContourOptions &
|
|
423
|
+
PrimitiveAttachment;
|
|
404
424
|
|
|
405
425
|
/**
|
|
406
426
|
* Independent inward finishing on primitive or straight convex extrusion ends.
|
|
@@ -452,9 +472,9 @@ declare interface ExtrusionSamplingOptions {
|
|
|
452
472
|
/** Operation-level physical policy over the nearest model scope. */
|
|
453
473
|
readonly resolution?: GeometryResolution;
|
|
454
474
|
/** Finite uniform or XY scale of the top profile; defaults to one. */
|
|
455
|
-
readonly scaleTop?: number |
|
|
475
|
+
readonly scaleTop?: number | Vector2Input;
|
|
456
476
|
/** Finite rotation of the top profile about +Z, in degrees; defaults to zero. */
|
|
457
|
-
readonly
|
|
477
|
+
readonly twist?: number;
|
|
458
478
|
}
|
|
459
479
|
|
|
460
480
|
/** Finalized manufacturing snapshot. Its arrays are independent of all native values. */
|
|
@@ -465,19 +485,21 @@ export declare interface FinalizedModel {
|
|
|
465
485
|
readonly bounds: Bounds3;
|
|
466
486
|
/** Aggregate counts, unique backing storage, volume, and execution timings. */
|
|
467
487
|
readonly stats: {
|
|
488
|
+
/** Number of declared output parts, including repeated geometry instances. */
|
|
489
|
+
readonly partCount: number;
|
|
468
490
|
/** Aggregate position-buffer vertex count. */
|
|
469
|
-
readonly
|
|
491
|
+
readonly vertexCount: number;
|
|
470
492
|
/** Aggregate indexed triangle count. */
|
|
471
|
-
readonly
|
|
493
|
+
readonly triangleCount: number;
|
|
472
494
|
/** Signed enclosed volume of all selected parts in cubic millimetres. */
|
|
473
495
|
readonly volumeMm3: number;
|
|
474
496
|
/** Unique transferable backing-buffer bytes, counted once across all parts. */
|
|
475
|
-
readonly
|
|
497
|
+
readonly byteCount: number;
|
|
476
498
|
/** Synchronous callback duration in milliseconds. */
|
|
477
499
|
readonly buildMs: number;
|
|
478
500
|
/** Manufacturing validation and buffer finalization duration in milliseconds. */
|
|
479
501
|
readonly finalizationMs: number;
|
|
480
|
-
/** Total
|
|
502
|
+
/** Total generation duration, including cache retention and native cleanup, in milliseconds. */
|
|
481
503
|
readonly generationMs: number;
|
|
482
504
|
};
|
|
483
505
|
}
|
|
@@ -589,9 +611,9 @@ export declare interface GeometryResolution {
|
|
|
589
611
|
/** Optional maximum sampled edge length in millimetres. */
|
|
590
612
|
readonly maxSegmentLength?: number;
|
|
591
613
|
/** Upper safety bound for a full circle; defaults to the selected maxCircularSegments (512 by default). */
|
|
592
|
-
readonly
|
|
614
|
+
readonly maxSegments?: number;
|
|
593
615
|
/** Lower full-circle segment count; defaults to 16 or a lower selected circular ceiling. */
|
|
594
|
-
readonly
|
|
616
|
+
readonly minSegments?: number;
|
|
595
617
|
}
|
|
596
618
|
|
|
597
619
|
/** Explicit allocation ceilings for pure sampling and host-owned modeling operations. */
|
|
@@ -629,16 +651,17 @@ export declare function gridPattern(
|
|
|
629
651
|
options: GridPatternOptions,
|
|
630
652
|
): readonly Solid[];
|
|
631
653
|
|
|
632
|
-
/** Repeats a filled Section on
|
|
654
|
+
/** Repeats a filled Section on an XY grid; any explicit frame must preserve the XY plane. */
|
|
633
655
|
export declare function gridPattern(
|
|
634
656
|
source: PatternSource<Section>,
|
|
635
|
-
options: GridPatternOptions
|
|
657
|
+
options: GridPatternOptions<2>,
|
|
636
658
|
): readonly Section[];
|
|
637
659
|
|
|
638
660
|
/**
|
|
639
661
|
* XY or XYZ grid with X varying fastest. The first item starts at the local origin.
|
|
662
|
+
* Dimension 2 restricts counts and spacing to XY; any frame must preserve the XY plane.
|
|
640
663
|
*/
|
|
641
|
-
export declare type GridPatternOptions = {
|
|
664
|
+
export declare type GridPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
642
665
|
/** Center the complete distribution around its local origin; defaults to false. */
|
|
643
666
|
readonly center?: boolean;
|
|
644
667
|
/** Optional right-handed local axes and origin for the grid. */
|
|
@@ -650,12 +673,14 @@ export declare type GridPatternOptions = {
|
|
|
650
673
|
/** Signed millimetres between adjacent copies on X and Y. */
|
|
651
674
|
readonly spacing: Vector2Tuple;
|
|
652
675
|
}
|
|
653
|
-
|
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
676
|
+
| (Dimension extends 3
|
|
677
|
+
? {
|
|
678
|
+
/** Positive integer counts on X, Y and Z. */
|
|
679
|
+
readonly count: Vector3Tuple;
|
|
680
|
+
/** Signed millimetres between adjacent copies on X, Y and Z. */
|
|
681
|
+
readonly spacing: Vector3Tuple;
|
|
682
|
+
}
|
|
683
|
+
: never)
|
|
659
684
|
);
|
|
660
685
|
|
|
661
686
|
/**
|
|
@@ -741,7 +766,7 @@ export declare interface HelicalThreadRidgeMeshOptions {
|
|
|
741
766
|
/** Nominal major diameter before any caller-owned fit compensation. */
|
|
742
767
|
readonly majorDiameter: number;
|
|
743
768
|
/** Angular offset of the first start in degrees. Default: `0`. */
|
|
744
|
-
readonly
|
|
769
|
+
readonly phase?: number;
|
|
745
770
|
/** Validated periodic profile repeated around the shaft. */
|
|
746
771
|
readonly profile: ThreadProfile;
|
|
747
772
|
/** Optional circular-resolution policy. */
|
|
@@ -783,7 +808,7 @@ export declare function hull(options: SectionHullOptions): Section;
|
|
|
783
808
|
export declare type HullOptions =
|
|
784
809
|
| {
|
|
785
810
|
/** Finite millimetre XYZ points to include in the convex hull. */
|
|
786
|
-
readonly points: readonly
|
|
811
|
+
readonly points: readonly Vector3Input[];
|
|
787
812
|
/** Point input excludes solid input. */
|
|
788
813
|
readonly solids?: never;
|
|
789
814
|
}
|
|
@@ -898,8 +923,8 @@ export declare function inspectSolid(solid: Solid): SolidInspection;
|
|
|
898
923
|
* @example Internal thread
|
|
899
924
|
* ```ts
|
|
900
925
|
* import { cylinder, internalThreadCutter } from "@metamesh/modeling";
|
|
901
|
-
* import {
|
|
902
|
-
* const profile =
|
|
926
|
+
* import { threadProfile } from "@metamesh/modeling/geometry";
|
|
927
|
+
* const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
|
|
903
928
|
* const body = cylinder({ diameter: 20, height: 12, center: false });
|
|
904
929
|
* const cutter = internalThreadCutter({ nominalMajorDiameter: 12, length: 12, profile });
|
|
905
930
|
* body.subtract([cutter]);
|
|
@@ -962,18 +987,19 @@ export declare function linearPattern(
|
|
|
962
987
|
options: LinearPatternOptions,
|
|
963
988
|
): readonly Solid[];
|
|
964
989
|
|
|
965
|
-
/** Repeats a filled Section
|
|
990
|
+
/** Repeats a filled Section along an XY direction, defaulting to +X. */
|
|
966
991
|
export declare function linearPattern(
|
|
967
992
|
source: PatternSource<Section>,
|
|
968
|
-
options: LinearPatternOptions
|
|
993
|
+
options: LinearPatternOptions<2>,
|
|
969
994
|
): readonly Section[];
|
|
970
995
|
|
|
971
996
|
/**
|
|
972
997
|
* Equal linear intervals determined by exactly two of count, spacing and total length.
|
|
998
|
+
* Dimension defaults to 3; Section patterns use 2 and accept XY vector directions.
|
|
973
999
|
*/
|
|
974
|
-
export declare type LinearPatternOptions = {
|
|
1000
|
+
export declare type LinearPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
975
1001
|
/** Direction of repetition; magnitude is ignored. Defaults to +X. */
|
|
976
|
-
readonly direction?:
|
|
1002
|
+
readonly direction?: Dimension extends 2 ? Vector2Input : Vector3Input;
|
|
977
1003
|
} & (
|
|
978
1004
|
| {
|
|
979
1005
|
/** Positive copy count, including the original. */
|
|
@@ -1079,10 +1105,13 @@ export declare type LoftPlacement =
|
|
|
1079
1105
|
*/
|
|
1080
1106
|
export declare type LoftStation = LoftPlacement & {
|
|
1081
1107
|
/** Filled Section recipe or ordered XY boundary point data. */
|
|
1082
|
-
readonly profile: Section |
|
|
1108
|
+
readonly profile: Section | Path2Input;
|
|
1083
1109
|
};
|
|
1084
1110
|
|
|
1085
|
-
/**
|
|
1111
|
+
/**
|
|
1112
|
+
* Matches a profile family using operation settings over host resolution and limits.
|
|
1113
|
+
* Requires active synchronous model execution. Use Geometry's matchProfiles for standalone preparation.
|
|
1114
|
+
*/
|
|
1086
1115
|
export declare function matchProfiles(
|
|
1087
1116
|
profiles: readonly Profile[],
|
|
1088
1117
|
options?: MatchProfilesOptions,
|
|
@@ -1138,8 +1167,91 @@ export declare interface PartOptions {
|
|
|
1138
1167
|
readonly color?: string;
|
|
1139
1168
|
}
|
|
1140
1169
|
|
|
1141
|
-
/**
|
|
1142
|
-
export declare
|
|
1170
|
+
/** Immutable directed XY polyline. Closure is explicit and does not imply a filled Section. */
|
|
1171
|
+
export declare interface Path2 {
|
|
1172
|
+
/** Coordinate dimension; identifies planar paths even when empty. */
|
|
1173
|
+
readonly dimension: 2;
|
|
1174
|
+
/** Whether traversal includes the last-to-first edge. */
|
|
1175
|
+
readonly closed: boolean;
|
|
1176
|
+
/** Returns frozen tuple coordinates; closure remains separate metadata. Repeated calls do not allocate. */
|
|
1177
|
+
toArray(): Path2Data;
|
|
1178
|
+
/** Total sampled edge length in model units, including the closing edge when closed. */
|
|
1179
|
+
length(): number;
|
|
1180
|
+
/** Axis-aligned bounds, or undefined for an empty path. */
|
|
1181
|
+
bounds(): Bounds2 | undefined;
|
|
1182
|
+
/** Finds the nearest edge location; requires at least two vertices. */
|
|
1183
|
+
closestPoint(point: Vector2Input): PathLocation<Vector2>;
|
|
1184
|
+
/** Applies an XY placement without reordering traversal, including after reflection. */
|
|
1185
|
+
transform(placement: Transform2Input): Path2;
|
|
1186
|
+
/** Reverses vertex order and traversal; neither the source nor its coordinates are mutated. */
|
|
1187
|
+
reverse(): Path2;
|
|
1188
|
+
/** Returns a path sampled at equal arc lengths. Corners may be bridged; closure is preserved. */
|
|
1189
|
+
resample(options?: PathResamplingOptions): Path2;
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
/**
|
|
1193
|
+
* Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization.
|
|
1194
|
+
* Open paths may be empty or have one point; closed paths need three vertices and omit a duplicated
|
|
1195
|
+
* seam. Repeated adjacent vertices are retained. No winding normalization or filling is performed.
|
|
1196
|
+
* Malformed dimensions or topology throw INVALID_ARGUMENT; nonfinite coordinates or measurement
|
|
1197
|
+
* overflow throw NON_FINITE_VALUE; exhausted allocation ceilings throw COMPLEXITY_LIMIT GeometryError.
|
|
1198
|
+
* A path input retains its closure. Limits bound construction only; resampling takes its own limits.
|
|
1199
|
+
*/
|
|
1200
|
+
export declare function path2(input: Path2Input, options?: PathOptions): Path2;
|
|
1201
|
+
|
|
1202
|
+
/** XY point tuples for interchange; closure is supplied by the consuming operation or Path2 value. */
|
|
1203
|
+
export declare type Path2Data = readonly Vector2Tuple[];
|
|
1204
|
+
|
|
1205
|
+
/** An immutable XY sampled path or a collection of XY tuples and fluent vectors. */
|
|
1206
|
+
export declare type Path2Input = Path2 | readonly Vector2Input[];
|
|
1207
|
+
|
|
1208
|
+
/** Immutable directed XYZ polyline; it represents sampled edges, not an analytic curve. */
|
|
1209
|
+
export declare interface Path3 {
|
|
1210
|
+
/** Coordinate dimension; identifies spatial paths even when empty. */
|
|
1211
|
+
readonly dimension: 3;
|
|
1212
|
+
/** Whether traversal includes the last-to-first edge. */
|
|
1213
|
+
readonly closed: boolean;
|
|
1214
|
+
/** Returns frozen tuple coordinates; closure remains separate metadata. Repeated calls do not allocate. */
|
|
1215
|
+
toArray(): Path3Data;
|
|
1216
|
+
/** Total sampled edge length in model units, including the closing edge when closed. */
|
|
1217
|
+
length(): number;
|
|
1218
|
+
/** Axis-aligned bounds, or undefined for an empty path. */
|
|
1219
|
+
bounds(): Bounds3 | undefined;
|
|
1220
|
+
/** Finds the nearest edge location; requires at least two vertices. */
|
|
1221
|
+
closestPoint(point: Vector3Input): PathLocation<Vector3>;
|
|
1222
|
+
/** Applies an XYZ placement without changing traversal order or closure. */
|
|
1223
|
+
transform(placement: Transform3Input): Path3;
|
|
1224
|
+
/** Reverses vertex order and traversal without mutating the source. */
|
|
1225
|
+
reverse(): Path3;
|
|
1226
|
+
/** Returns a path sampled at equal arc lengths. Corners may be bridged; closure is preserved. */
|
|
1227
|
+
resample(options?: PathResamplingOptions): Path3;
|
|
1228
|
+
}
|
|
1229
|
+
|
|
1230
|
+
/**
|
|
1231
|
+
* Snapshots finite XYZ coordinates as an immutable sampled path with the same closure, seam,
|
|
1232
|
+
* allocation and error rules as path2. Analytic curves must be sampled explicitly first.
|
|
1233
|
+
*/
|
|
1234
|
+
export declare function path3(input: Path3Input, options?: PathOptions): Path3;
|
|
1235
|
+
|
|
1236
|
+
/**
|
|
1237
|
+
* XYZ point tuples for interchange; closure is supplied by the consuming operation or Path3 value.
|
|
1238
|
+
*/
|
|
1239
|
+
export declare type Path3Data = readonly Vector3Tuple[];
|
|
1240
|
+
|
|
1241
|
+
/** An immutable XYZ sampled path or a collection of XYZ tuples and fluent vectors. */
|
|
1242
|
+
export declare type Path3Input = Path3 | readonly Vector3Input[];
|
|
1243
|
+
|
|
1244
|
+
/** Nearest location on a sampled boundary, rather than inside a filled shape or on an analytic curve. */
|
|
1245
|
+
export declare interface PathLocation<Point extends Vector2 | Vector3> {
|
|
1246
|
+
/** Immutable position on the selected edge. */
|
|
1247
|
+
readonly point: Point;
|
|
1248
|
+
/** Euclidean distance from the query in model units. */
|
|
1249
|
+
readonly distance: number;
|
|
1250
|
+
/** Starting vertex of the selected edge; ties keep the first edge in traversal order. */
|
|
1251
|
+
readonly edgeIndex: number;
|
|
1252
|
+
/** Clamped fraction along that edge, not the whole path's normalized arc length. */
|
|
1253
|
+
readonly fraction: number;
|
|
1254
|
+
}
|
|
1143
1255
|
|
|
1144
1256
|
/**
|
|
1145
1257
|
* Supplies a profile-X orientation guide for each original normalized sweep station.
|
|
@@ -1151,7 +1263,15 @@ export declare type Path2 = readonly Vector2Tuple[];
|
|
|
1151
1263
|
export declare type PathNormalGuide = (
|
|
1152
1264
|
point: Vector3Tuple,
|
|
1153
1265
|
index: number,
|
|
1154
|
-
) =>
|
|
1266
|
+
) => Vector3Input;
|
|
1267
|
+
|
|
1268
|
+
/** Topology and allocation ceiling for an immutable sampled path. */
|
|
1269
|
+
export declare interface PathOptions {
|
|
1270
|
+
/** Connects the last vertex to the first; closed paths omit the repeated seam. Defaults to false. */
|
|
1271
|
+
readonly closed?: boolean;
|
|
1272
|
+
/** Construction point ceiling; defaults to package sampling limits. Later sampling has its own options. */
|
|
1273
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
1274
|
+
}
|
|
1155
1275
|
|
|
1156
1276
|
/**
|
|
1157
1277
|
* Physical arc-length copies along a sampled path, with optional tangent orientation.
|
|
@@ -1163,17 +1283,17 @@ export declare type PathNormalGuide = (
|
|
|
1163
1283
|
*/
|
|
1164
1284
|
export declare function pathPattern(
|
|
1165
1285
|
source: PatternSource,
|
|
1166
|
-
path:
|
|
1286
|
+
path: Path3Input,
|
|
1167
1287
|
options: PathPatternOptions,
|
|
1168
1288
|
): readonly Solid[];
|
|
1169
1289
|
|
|
1170
1290
|
/**
|
|
1171
|
-
* Repeats a filled Section along a sampled XY path
|
|
1172
|
-
*
|
|
1291
|
+
* Repeats a filled Section along a sampled XY path. Tangent orientation maps local +X
|
|
1292
|
+
* to the path tangent counterclockwise, preserving the XY plane.
|
|
1173
1293
|
*/
|
|
1174
1294
|
export declare function pathPattern(
|
|
1175
1295
|
source: PatternSource<Section>,
|
|
1176
|
-
path:
|
|
1296
|
+
path: Path2Input,
|
|
1177
1297
|
options: PathPatternOptions,
|
|
1178
1298
|
): readonly Section[];
|
|
1179
1299
|
|
|
@@ -1181,12 +1301,18 @@ export declare function pathPattern(
|
|
|
1181
1301
|
export declare interface PathPatternOptions {
|
|
1182
1302
|
/** Positive number of copies; open paths include both endpoints when greater than one. */
|
|
1183
1303
|
readonly count: number;
|
|
1184
|
-
/**
|
|
1304
|
+
/** Raw point closure defaults to false; a path value supplies closure and rejects conflicts. */
|
|
1185
1305
|
readonly closed?: boolean;
|
|
1186
|
-
/** Preserve
|
|
1306
|
+
/** Preserve orientation, or align local +X for Sections / +Z for Solids to the tangent. Defaults to fixed. */
|
|
1187
1307
|
readonly orientation?: "fixed" | "tangent";
|
|
1188
1308
|
}
|
|
1189
1309
|
|
|
1310
|
+
/** Equal arc-length sampling; the path itself owns whether its closing edge is included. */
|
|
1311
|
+
export declare interface PathResamplingOptions extends CurveSamplingOptions {
|
|
1312
|
+
/** Exact arc-length intervals; closed paths need at least three. Otherwise physical resolution or the effective source edge count controls sampling. */
|
|
1313
|
+
readonly segments?: number;
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1190
1316
|
/**
|
|
1191
1317
|
* One immutable shape, or a synchronous factory called once per copy in index order.
|
|
1192
1318
|
*/
|
|
@@ -1208,7 +1334,7 @@ export declare interface Pivot3Options {
|
|
|
1208
1334
|
/** A world-space cutting plane, retaining the half-space in the normal's direction. */
|
|
1209
1335
|
export declare interface PlaneOptions {
|
|
1210
1336
|
/** Finite nonzero plane normal; magnitude does not affect the plane. */
|
|
1211
|
-
readonly normal:
|
|
1337
|
+
readonly normal: Vector3Input;
|
|
1212
1338
|
/** Signed millimetre distance from the origin along the unit normal. Defaults to zero. */
|
|
1213
1339
|
readonly offset?: number;
|
|
1214
1340
|
}
|
|
@@ -1223,7 +1349,7 @@ export declare interface PlaneOptions {
|
|
|
1223
1349
|
* polygon([[0, 0], [20, 0], [10, 12]]).extrude({ height: 3 });
|
|
1224
1350
|
* ```
|
|
1225
1351
|
*/
|
|
1226
|
-
export declare function polygon(input:
|
|
1352
|
+
export declare function polygon(input: Path2Input | PolygonOptions): Section;
|
|
1227
1353
|
|
|
1228
1354
|
/**
|
|
1229
1355
|
* One bounded two-dimensional polygon.
|
|
@@ -1243,9 +1369,9 @@ export declare interface PolygonData {
|
|
|
1243
1369
|
export declare type PolygonOptions =
|
|
1244
1370
|
| {
|
|
1245
1371
|
/** One simple exterior boundary, normalized to counterclockwise winding. */
|
|
1246
|
-
readonly outer:
|
|
1372
|
+
readonly outer: Path2Input;
|
|
1247
1373
|
/** Disjoint simple holes inside the exterior; normalized to clockwise winding. */
|
|
1248
|
-
readonly holes?: readonly
|
|
1374
|
+
readonly holes?: readonly Path2Input[];
|
|
1249
1375
|
/** Explicit topology excludes compound contours. */
|
|
1250
1376
|
readonly contours?: never;
|
|
1251
1377
|
/** Explicit topology determines fill without a winding rule. */
|
|
@@ -1255,7 +1381,7 @@ export declare type PolygonOptions =
|
|
|
1255
1381
|
}
|
|
1256
1382
|
| {
|
|
1257
1383
|
/** Compound boundaries; may overlap or contain holes according to the fill rule. */
|
|
1258
|
-
readonly contours: readonly
|
|
1384
|
+
readonly contours: readonly Path2Input[];
|
|
1259
1385
|
/** Winding interpretation; defaults to nonzero. An empty list creates an empty Section. */
|
|
1260
1386
|
readonly fillRule?: "nonzero" | "evenodd";
|
|
1261
1387
|
/** Compound contours exclude explicit topology. */
|
|
@@ -1278,41 +1404,33 @@ export declare type PolygonOptions =
|
|
|
1278
1404
|
readonly fillRule?: never;
|
|
1279
1405
|
};
|
|
1280
1406
|
|
|
1281
|
-
/**
|
|
1407
|
+
/** Internal-thread facts using host resolution and limits; requires active synchronous model execution. */
|
|
1282
1408
|
export declare function preflightInternalThreadCutter(
|
|
1283
1409
|
options: InternalThreadCutterOptions,
|
|
1284
1410
|
): HelicalThreadSolidMeshPreflight;
|
|
1285
1411
|
|
|
1286
|
-
/**
|
|
1412
|
+
/** Nut/cutter facts using host resolution and limits; requires active synchronous model execution. */
|
|
1287
1413
|
export declare function preflightThreadedNut(
|
|
1288
1414
|
options: ThreadedNutOptions,
|
|
1289
1415
|
): ThreadedNutPreflight;
|
|
1290
1416
|
|
|
1291
|
-
/**
|
|
1417
|
+
/** External-thread facts using host resolution and limits; requires active synchronous model execution. */
|
|
1292
1418
|
export declare function preflightThreadedRod(
|
|
1293
1419
|
options: ThreadedRodOptions,
|
|
1294
1420
|
): HelicalThreadSolidMeshPreflight;
|
|
1295
1421
|
|
|
1296
|
-
/**
|
|
1297
|
-
export declare interface
|
|
1298
|
-
/** Applied after local construction; Section
|
|
1299
|
-
readonly
|
|
1422
|
+
/** Anchor attachment shared by solid and filled-section factories. */
|
|
1423
|
+
export declare interface PrimitiveAttachment {
|
|
1424
|
+
/** Applied after local construction; Section attachment must preserve the XY plane. */
|
|
1425
|
+
readonly attachment?: PrimitiveAttachmentOptions;
|
|
1300
1426
|
}
|
|
1301
1427
|
|
|
1302
1428
|
/** Maps an explicit or named shape-local attachment anchor onto a world-space anchor. */
|
|
1303
|
-
export declare interface
|
|
1429
|
+
export declare interface PrimitiveAttachmentOptions extends AttachOptions {
|
|
1304
1430
|
/** Shape-local source frame or a named primitive anchor such as bottom. */
|
|
1305
1431
|
readonly source: Anchor3 | string;
|
|
1306
1432
|
/** World-space target frame in millimetres. */
|
|
1307
1433
|
readonly target: Anchor3;
|
|
1308
|
-
/** Align outward directions face-to-face or in parallel. Defaults to opposed. */
|
|
1309
|
-
readonly alignment?: "opposed" | "same";
|
|
1310
|
-
/** Finite separation along the target direction in millimetres. Defaults to zero. */
|
|
1311
|
-
readonly gap?: number;
|
|
1312
|
-
/** Finite additional roll around the attached direction in degrees. Defaults to zero. */
|
|
1313
|
-
readonly spinDegrees?: number;
|
|
1314
|
-
/** Explicit numeric comparison overrides for anchor normalization. */
|
|
1315
|
-
readonly tolerance?: GeometryToleranceOptions;
|
|
1316
1434
|
}
|
|
1317
1435
|
|
|
1318
1436
|
/**
|
|
@@ -1397,9 +1515,9 @@ export declare type ProfileSpan2 = {
|
|
|
1397
1515
|
/** Circular radius in millimetres. */
|
|
1398
1516
|
readonly radius: number;
|
|
1399
1517
|
/** Initial counterclockwise angle in degrees. */
|
|
1400
|
-
readonly
|
|
1518
|
+
readonly startAngle: number;
|
|
1401
1519
|
/** Signed counterclockwise angular sweep in degrees. */
|
|
1402
|
-
readonly
|
|
1520
|
+
readonly sweepAngle: number;
|
|
1403
1521
|
}
|
|
1404
1522
|
| {
|
|
1405
1523
|
/** Selects a cubic Bézier span with the same coordinates as CubicBezierCurve2. */
|
|
@@ -1421,7 +1539,7 @@ export declare type ProfileSpan2 = {
|
|
|
1421
1539
|
* @example Six copies around Z
|
|
1422
1540
|
* ```ts
|
|
1423
1541
|
* const pin = cylinder({ height: 6, radius: 2 }).translate([12, 0, 0]);
|
|
1424
|
-
* radialPattern(pin, { count: 6, axis: [0, 0, 1],
|
|
1542
|
+
* radialPattern(pin, { count: 6, axis: [0, 0, 1], angle: 60 });
|
|
1425
1543
|
* ```
|
|
1426
1544
|
*/
|
|
1427
1545
|
export declare function radialPattern(
|
|
@@ -1429,25 +1547,31 @@ export declare function radialPattern(
|
|
|
1429
1547
|
options: RadialPatternOptions,
|
|
1430
1548
|
): readonly Solid[];
|
|
1431
1549
|
|
|
1432
|
-
/** Repeats a filled Section about
|
|
1550
|
+
/** Repeats a filled Section counterclockwise about a fixed XY pivot, using the implicit +Z axis. */
|
|
1433
1551
|
export declare function radialPattern(
|
|
1434
1552
|
source: PatternSource<Section>,
|
|
1435
|
-
options: RadialPatternOptions
|
|
1553
|
+
options: RadialPatternOptions<2>,
|
|
1436
1554
|
): readonly Section[];
|
|
1437
1555
|
|
|
1438
1556
|
/**
|
|
1439
|
-
*
|
|
1557
|
+
* Degree rotations about a fixed world-space pivot; XY patterns use the implicit +Z axis.
|
|
1440
1558
|
*/
|
|
1441
|
-
export declare
|
|
1442
|
-
/** Number of
|
|
1559
|
+
export declare type RadialPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
1560
|
+
/** Number of shapes to return, including the original. */
|
|
1443
1561
|
readonly count: number;
|
|
1444
|
-
/** Axis of the right-handed rotation. Its magnitude is ignored. */
|
|
1445
|
-
readonly axis: Vector3Tuple;
|
|
1446
1562
|
/** Signed rotation from one copy to the next, in degrees. */
|
|
1447
|
-
readonly
|
|
1448
|
-
/**
|
|
1449
|
-
readonly
|
|
1450
|
-
}
|
|
1563
|
+
readonly angle: number;
|
|
1564
|
+
/** Fixed world-space rotation pivot; defaults to the coordinate origin. */
|
|
1565
|
+
readonly pivot?: Dimension extends 2 ? Vector2Input : Vector3Input;
|
|
1566
|
+
} & (Dimension extends 2
|
|
1567
|
+
? {
|
|
1568
|
+
/** XY rotation uses +Z; an explicit spatial axis is unavailable. */
|
|
1569
|
+
readonly axis?: never;
|
|
1570
|
+
}
|
|
1571
|
+
: {
|
|
1572
|
+
/** Axis of the right-handed rotation. Its nonzero magnitude is ignored. */
|
|
1573
|
+
readonly axis: Vector3Input;
|
|
1574
|
+
});
|
|
1451
1575
|
|
|
1452
1576
|
/** Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces. */
|
|
1453
1577
|
export declare type RadialSizing = "vertex" | "face";
|
|
@@ -1462,13 +1586,6 @@ export declare interface RadialSizingOptions {
|
|
|
1462
1586
|
readonly sizing?: RadialSizing;
|
|
1463
1587
|
}
|
|
1464
1588
|
|
|
1465
|
-
/** Copies intersections along the finite directed origin-to-endpoint segment. */
|
|
1466
|
-
export declare function rayCast(
|
|
1467
|
-
solid: Solid,
|
|
1468
|
-
origin: Vector3Tuple,
|
|
1469
|
-
endpoint: Vector3Tuple,
|
|
1470
|
-
): readonly SolidRayHit[];
|
|
1471
|
-
|
|
1472
1589
|
/**
|
|
1473
1590
|
* Filled rectangular section with uniform or independently treated corners.
|
|
1474
1591
|
*
|
|
@@ -1513,7 +1630,7 @@ export declare type RectangleCornerTreatments = readonly [
|
|
|
1513
1630
|
* Rectangle dimensions, placement and uniform or per-corner treatment.
|
|
1514
1631
|
*/
|
|
1515
1632
|
export declare interface RectangleOptions
|
|
1516
|
-
extends RectangleContourOptions,
|
|
1633
|
+
extends RectangleContourOptions, PrimitiveAttachment {}
|
|
1517
1634
|
|
|
1518
1635
|
/** A two-dimensional region represented by disjoint filled polygons. */
|
|
1519
1636
|
export declare type RegionData = readonly PolygonData[];
|
|
@@ -1532,13 +1649,13 @@ export declare function regularPolygon(options: RegularPolygonOptions): Section;
|
|
|
1532
1649
|
* Regular polygon dimensions, radial convention and degree rotation.
|
|
1533
1650
|
*/
|
|
1534
1651
|
export declare type RegularPolygonOptions = RadialSizingOptions &
|
|
1535
|
-
|
|
1652
|
+
PrimitiveAttachment & {
|
|
1536
1653
|
/** Positive nominal radius in millimetres, interpreted according to sizing. */
|
|
1537
1654
|
readonly radius: number;
|
|
1538
1655
|
/** Exact integer side count from three through 100000. */
|
|
1539
1656
|
readonly sides: number;
|
|
1540
1657
|
/** Counterclockwise rotation in degrees; defaults to zero with a vertex on +X. */
|
|
1541
|
-
readonly
|
|
1658
|
+
readonly rotation?: number;
|
|
1542
1659
|
};
|
|
1543
1660
|
|
|
1544
1661
|
/**
|
|
@@ -1552,7 +1669,7 @@ export declare type RegularPolygonOptions = RadialSizingOptions &
|
|
|
1552
1669
|
*
|
|
1553
1670
|
* // Contour coordinates are [radius, Z].
|
|
1554
1671
|
* const [profile] = matchProfiles([rectangleProfile({ size: [4, 16], center: false })]);
|
|
1555
|
-
* revolve(profile!, {
|
|
1672
|
+
* revolve(profile!, { degrees: 270 });
|
|
1556
1673
|
* ```
|
|
1557
1674
|
*/
|
|
1558
1675
|
export declare function revolve(
|
|
@@ -1565,12 +1682,14 @@ export declare function revolve(
|
|
|
1565
1682
|
*/
|
|
1566
1683
|
export declare interface RevolveOptions extends CircularPrimitiveOptions {
|
|
1567
1684
|
/**
|
|
1568
|
-
* Positive
|
|
1685
|
+
* Positive sweep in degrees, no greater than 360. Defaults to a full revolution;
|
|
1686
|
+
* smaller sweeps form partial revolutions with end caps.
|
|
1569
1687
|
* Segment counts describe a complete circle and scale to this angular span. Native filled
|
|
1570
1688
|
* revolutions require at least three sweep intervals: adaptive sampling refines to that floor,
|
|
1571
1689
|
* while exact counts that imply fewer intervals reject. Pure revolveMesh supports one interval.
|
|
1690
|
+
* @defaultValue `360`
|
|
1572
1691
|
*/
|
|
1573
|
-
readonly
|
|
1692
|
+
readonly degrees?: number;
|
|
1574
1693
|
/** Explicit output and sampling allocation ceilings. */
|
|
1575
1694
|
readonly limits?: Partial<ModelingLimits>;
|
|
1576
1695
|
}
|
|
@@ -1661,11 +1780,7 @@ export declare interface Section {
|
|
|
1661
1780
|
/**
|
|
1662
1781
|
* Sweeps this filled section using the selected frame policy and degree twist.
|
|
1663
1782
|
*/
|
|
1664
|
-
sweep(
|
|
1665
|
-
this: Section,
|
|
1666
|
-
path: readonly Vector3Tuple[],
|
|
1667
|
-
options?: SweepOptions,
|
|
1668
|
-
): Solid;
|
|
1783
|
+
sweep(this: Section, path: Path3Input, options?: SweepOptions): Solid;
|
|
1669
1784
|
}
|
|
1670
1785
|
|
|
1671
1786
|
declare const sectionBrand: unique symbol;
|
|
@@ -1674,7 +1789,7 @@ declare const sectionBrand: unique symbol;
|
|
|
1674
1789
|
export declare type SectionHullOptions =
|
|
1675
1790
|
| {
|
|
1676
1791
|
/** At least three finite millimetre XY points spanning positive area. */
|
|
1677
|
-
readonly points: readonly
|
|
1792
|
+
readonly points: readonly Vector2Input[];
|
|
1678
1793
|
/** Point input excludes section input. */
|
|
1679
1794
|
readonly sections?: never;
|
|
1680
1795
|
}
|
|
@@ -1695,15 +1810,15 @@ export declare interface SectionInspection {
|
|
|
1695
1810
|
/** Filled section area in square millimetres. */
|
|
1696
1811
|
readonly area: number;
|
|
1697
1812
|
/** Number of extracted outer and hole contours. */
|
|
1698
|
-
readonly
|
|
1813
|
+
readonly contourCount: number;
|
|
1699
1814
|
/** Inclusive maximum coordinates in millimetres. */
|
|
1700
1815
|
readonly max: Vector2Tuple;
|
|
1701
1816
|
/** Inclusive minimum coordinates in millimetres. */
|
|
1702
1817
|
readonly min: Vector2Tuple;
|
|
1703
1818
|
/** Number of disconnected filled section components. */
|
|
1704
|
-
readonly
|
|
1819
|
+
readonly componentCount: number;
|
|
1705
1820
|
/** Number of native section vertices. */
|
|
1706
|
-
readonly
|
|
1821
|
+
readonly vertexCount: number;
|
|
1707
1822
|
}
|
|
1708
1823
|
|
|
1709
1824
|
/** Clipper2 join styles accepted by robust region offsets. */
|
|
@@ -1777,6 +1892,8 @@ export declare interface Solid {
|
|
|
1777
1892
|
mirror(this: Solid, normal: Vector3Input): Solid;
|
|
1778
1893
|
/** Applies a reusable XYZ placement or canonical row-major matrix. */
|
|
1779
1894
|
transform(this: Solid, placement: Transform3Input): Solid;
|
|
1895
|
+
/** Copies manufacturing mesh buffers for interchange; requires an active model execution. */
|
|
1896
|
+
toTriangleMesh(this: Solid): TriangleMesh;
|
|
1780
1897
|
/**
|
|
1781
1898
|
* Robust difference; an empty cutter array preserves the source.
|
|
1782
1899
|
*/
|
|
@@ -1801,8 +1918,8 @@ export declare interface Solid {
|
|
|
1801
1918
|
target: Anchor3,
|
|
1802
1919
|
options?: AttachOptions,
|
|
1803
1920
|
): Solid;
|
|
1804
|
-
/**
|
|
1805
|
-
|
|
1921
|
+
/** Returns an immutable copy with this native tolerance; zero selects the kernel minimum. */
|
|
1922
|
+
withTolerance(this: Solid, tolerance: number): Solid;
|
|
1806
1923
|
/** Projects this solid into a filled XY section. */
|
|
1807
1924
|
projectSection(this: Solid): Section;
|
|
1808
1925
|
/** Takes a filled horizontal slice at Z millimetres. */
|
|
@@ -1838,8 +1955,8 @@ export declare interface SolidInspection {
|
|
|
1838
1955
|
readonly max: Vector3Tuple;
|
|
1839
1956
|
/** Inclusive minimum coordinates in millimetres. */
|
|
1840
1957
|
readonly min: Vector3Tuple;
|
|
1841
|
-
/** Number of
|
|
1842
|
-
readonly
|
|
1958
|
+
/** Number of disconnected material components, each retaining enclosed cavities. */
|
|
1959
|
+
readonly componentCount: number;
|
|
1843
1960
|
/** Enclosed native solid volume in cubic millimetres. */
|
|
1844
1961
|
readonly volume: number;
|
|
1845
1962
|
/** Total native surface area in square millimetres. */
|
|
@@ -1849,10 +1966,10 @@ export declare interface SolidInspection {
|
|
|
1849
1966
|
}
|
|
1850
1967
|
|
|
1851
1968
|
/** Copied surface intersection from a finite directed segment. Distance is in millimetres. */
|
|
1852
|
-
export declare interface
|
|
1969
|
+
export declare interface SolidSegmentHit {
|
|
1853
1970
|
/** Copied numeric native face identity. */
|
|
1854
1971
|
readonly faceId: number;
|
|
1855
|
-
/** Distance from the
|
|
1972
|
+
/** Distance from the segment origin in millimetres. */
|
|
1856
1973
|
readonly distance: number;
|
|
1857
1974
|
/** Intersection position in millimetres. */
|
|
1858
1975
|
readonly position: Vector3Tuple;
|
|
@@ -1874,7 +1991,7 @@ export declare function sphere(options: SphereOptions): Solid;
|
|
|
1874
1991
|
* Exactly one radius or diameter, placement, and tessellation for an origin-centered sphere.
|
|
1875
1992
|
*/
|
|
1876
1993
|
export declare type SphereOptions = CircularPrimitiveOptions &
|
|
1877
|
-
|
|
1994
|
+
PrimitiveAttachment &
|
|
1878
1995
|
(
|
|
1879
1996
|
| {
|
|
1880
1997
|
/** Positive radius in millimetres; mutually exclusive with diameter. */
|
|
@@ -1960,7 +2077,7 @@ export declare function star(options: StarOptions): Section;
|
|
|
1960
2077
|
/**
|
|
1961
2078
|
* Alternating outer and inner vertices, centered on the XY origin.
|
|
1962
2079
|
*/
|
|
1963
|
-
export declare interface StarOptions extends
|
|
2080
|
+
export declare interface StarOptions extends PrimitiveAttachment {
|
|
1964
2081
|
/** Explicit sampling ceilings, bounded by the host policy. */
|
|
1965
2082
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
1966
2083
|
/** Positive outer vertex radius in millimetres. */
|
|
@@ -1970,13 +2087,13 @@ export declare interface StarOptions extends PrimitivePlacement {
|
|
|
1970
2087
|
/** Integer outer point count from three through 50000. */
|
|
1971
2088
|
readonly points: number;
|
|
1972
2089
|
/** Initial counterclockwise rotation in degrees; defaults to zero. */
|
|
1973
|
-
readonly
|
|
2090
|
+
readonly rotation?: number;
|
|
1974
2091
|
}
|
|
1975
2092
|
|
|
1976
2093
|
/**
|
|
1977
2094
|
* Creates a centered-width native Section along a sampled XY path.
|
|
1978
2095
|
*
|
|
1979
|
-
* Shares caps, joins and physical sampling with Geometry's
|
|
2096
|
+
* Shares caps, joins and physical sampling with Geometry's strokeRegionData. Native union
|
|
1980
2097
|
* resolves overlapping stroke primitives. Session resolution and resource ceilings apply;
|
|
1981
2098
|
* closed paths omit the duplicated seam. Returns an immutable deferred recipe.
|
|
1982
2099
|
*
|
|
@@ -1985,30 +2102,33 @@ export declare interface StarOptions extends PrimitivePlacement {
|
|
|
1985
2102
|
* stroke([[0, 0], [20, 0], [20, 10]], { width: 3, join: "round", cap: "round" }).extrude({ height: 2 });
|
|
1986
2103
|
* ```
|
|
1987
2104
|
*/
|
|
1988
|
-
export declare function stroke(
|
|
2105
|
+
export declare function stroke(
|
|
2106
|
+
path: Path2Input,
|
|
2107
|
+
options: StrokeOptions,
|
|
2108
|
+
): Section;
|
|
2109
|
+
|
|
2110
|
+
/** End-cap treatment for an open stroked path. */
|
|
2111
|
+
export declare type StrokeCap = "butt" | "round" | "square";
|
|
2112
|
+
|
|
2113
|
+
/** Join treatment where adjacent stroked path segments meet. */
|
|
2114
|
+
export declare type StrokeJoin = "bevel" | "miter" | "round";
|
|
1989
2115
|
|
|
1990
2116
|
/** Physical stroke and topology controls shared by pure regions and native Sections. */
|
|
1991
2117
|
export declare interface StrokeOptions {
|
|
1992
2118
|
/** Explicit path, circular and expanded-profile allocation ceilings. */
|
|
1993
2119
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
1994
|
-
/**
|
|
2120
|
+
/** Raw point closure defaults to false; a Path2 supplies its closure and rejects conflicts. */
|
|
1995
2121
|
readonly closed?: boolean;
|
|
1996
2122
|
/** End-cap treatment for an open path. Ignored for closed paths. Default: `butt`. */
|
|
1997
|
-
readonly cap?:
|
|
2123
|
+
readonly cap?: StrokeCap;
|
|
1998
2124
|
/** Corner treatment; miters exceeding SVG's default limit of 4 become bevels. Default: `miter`. */
|
|
1999
|
-
readonly join?:
|
|
2125
|
+
readonly join?: StrokeJoin;
|
|
2000
2126
|
/** Physical tessellation policy for round caps and joins. */
|
|
2001
2127
|
readonly resolution?: GeometryResolution;
|
|
2002
2128
|
/** Positive total stroke width in millimetres, centered on the sampled path. */
|
|
2003
2129
|
readonly width: number;
|
|
2004
2130
|
}
|
|
2005
2131
|
|
|
2006
|
-
/** End-cap treatment for an open stroked path. */
|
|
2007
|
-
export declare type StrokePathCap = "butt" | "round" | "square";
|
|
2008
|
-
|
|
2009
|
-
/** Join treatment where adjacent stroked path segments meet. */
|
|
2010
|
-
export declare type StrokePathJoin = "bevel" | "miter" | "round";
|
|
2011
|
-
|
|
2012
2132
|
/** Placement of painted SVG geometry after SVG Y-axis inversion. */
|
|
2013
2133
|
export declare type SvgOrigin = "center" | "document";
|
|
2014
2134
|
|
|
@@ -2086,7 +2206,7 @@ export declare interface SvgSectionOptions {
|
|
|
2086
2206
|
*/
|
|
2087
2207
|
export declare function sweep(
|
|
2088
2208
|
shape: CorrespondingProfile,
|
|
2089
|
-
path:
|
|
2209
|
+
path: Path3Input,
|
|
2090
2210
|
options?: SweepOptions,
|
|
2091
2211
|
): Solid;
|
|
2092
2212
|
|
|
@@ -2094,7 +2214,7 @@ export declare function sweep(
|
|
|
2094
2214
|
* Controls shared by pure mesh construction and filled modeling sweeps.
|
|
2095
2215
|
*/
|
|
2096
2216
|
export declare interface SweepOptions {
|
|
2097
|
-
/**
|
|
2217
|
+
/** Raw point closure defaults to false; a Path3 supplies its closure and rejects conflicts. */
|
|
2098
2218
|
readonly closed?: boolean;
|
|
2099
2219
|
/** Explicit output and sampling allocation ceilings. */
|
|
2100
2220
|
readonly limits?: Partial<ModelingLimits>;
|
|
@@ -2103,11 +2223,11 @@ export declare interface SweepOptions {
|
|
|
2103
2223
|
/** Physical sampling of nonzero twist; inserted stations retain authored station controls. */
|
|
2104
2224
|
readonly resolution?: GeometryResolution;
|
|
2105
2225
|
/** Total additional profile rotation in degrees, with progression selected by twistBy. */
|
|
2106
|
-
readonly
|
|
2226
|
+
readonly twist?: number;
|
|
2107
2227
|
/** Twist advances by physical path length (default), or normalized authored station position, including a closed seam gap. */
|
|
2108
2228
|
readonly twistBy?: "length" | "stations";
|
|
2109
2229
|
/** Positive uniform/XY scale, or one XY pair per path station. Defaults to one. */
|
|
2110
|
-
readonly scale?: number |
|
|
2230
|
+
readonly scale?: number | Vector2Input | readonly Vector2Input[];
|
|
2111
2231
|
/** Corresponding point-index advance at a rotationally equivalent closed seam. */
|
|
2112
2232
|
readonly seamProfileOffset?: number;
|
|
2113
2233
|
}
|
|
@@ -2120,13 +2240,13 @@ export declare type SweepOrientation =
|
|
|
2120
2240
|
/** Minimizes frame rotation by parallel transport. */
|
|
2121
2241
|
readonly kind: "transport";
|
|
2122
2242
|
/** Initial profile +X guide, projected perpendicular to the first tangent. */
|
|
2123
|
-
readonly initialNormal?:
|
|
2243
|
+
readonly initialNormal?: Vector3Input;
|
|
2124
2244
|
}
|
|
2125
2245
|
| {
|
|
2126
2246
|
/** Projects one fixed world-space normal at every path station. */
|
|
2127
2247
|
readonly kind: "fixed-normal";
|
|
2128
2248
|
/** Directed profile +X guide; must not be parallel to any local tangent. */
|
|
2129
|
-
readonly normal:
|
|
2249
|
+
readonly normal: Vector3Input;
|
|
2130
2250
|
}
|
|
2131
2251
|
| {
|
|
2132
2252
|
/** Uses an explicitly directed normal callback at each original normalized station. */
|
|
@@ -2184,9 +2304,9 @@ declare interface ThreadBevelOptions {
|
|
|
2184
2304
|
* @example Threaded nut
|
|
2185
2305
|
* ```ts
|
|
2186
2306
|
* import { threadedNut } from "@metamesh/modeling";
|
|
2187
|
-
* import {
|
|
2307
|
+
* import { threadProfile } from "@metamesh/modeling/geometry";
|
|
2188
2308
|
*
|
|
2189
|
-
* const profile =
|
|
2309
|
+
* const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
|
|
2190
2310
|
* threadedNut({ nominalMajorDiameter: 12, thickness: 8, width: 20, shape: "hex", profile, fit: "normal" });
|
|
2191
2311
|
* ```
|
|
2192
2312
|
*/
|
|
@@ -2248,9 +2368,9 @@ export declare type ThreadedNutShape = "hex" | "round" | "square";
|
|
|
2248
2368
|
* @example Threaded rod
|
|
2249
2369
|
* ```ts
|
|
2250
2370
|
* import { threadedRod } from "@metamesh/modeling";
|
|
2251
|
-
* import {
|
|
2371
|
+
* import { threadProfile } from "@metamesh/modeling/geometry";
|
|
2252
2372
|
*
|
|
2253
|
-
* const profile =
|
|
2373
|
+
* const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
|
|
2254
2374
|
* threadedRod({ nominalMajorDiameter: 12, length: 24, profile, fit: "normal" });
|
|
2255
2375
|
* ```
|
|
2256
2376
|
*/
|
|
@@ -2376,7 +2496,7 @@ export declare function torus(options: TorusOptions): Solid;
|
|
|
2376
2496
|
/**
|
|
2377
2497
|
* Dimensions and independent ring/profile tessellation for a torus around the Z axis.
|
|
2378
2498
|
*/
|
|
2379
|
-
export declare interface TorusOptions extends
|
|
2499
|
+
export declare interface TorusOptions extends PrimitiveAttachment {
|
|
2380
2500
|
/** Explicit sampling ceilings, bounded by the host policy. */
|
|
2381
2501
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
2382
2502
|
/** Radius from the Z axis to the profile center, in millimetres; greater than `minorRadius`. */
|
|
@@ -2391,9 +2511,6 @@ export declare interface TorusOptions extends PrimitivePlacement {
|
|
|
2391
2511
|
readonly resolution?: GeometryResolution;
|
|
2392
2512
|
}
|
|
2393
2513
|
|
|
2394
|
-
/** Copies a handle to manufacturing mesh buffers. */
|
|
2395
|
-
export declare function toTriangleMesh(solid: Solid): TriangleMesh;
|
|
2396
|
-
|
|
2397
2514
|
/** Immutable reusable XY placement. Methods apply in written order; angles are degrees. */
|
|
2398
2515
|
export declare interface Transform2 {
|
|
2399
2516
|
/** Applies a translation in model units after this placement. */
|
|
@@ -2532,10 +2649,11 @@ declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
2532
2649
|
*/
|
|
2533
2650
|
readonly depth?: number;
|
|
2534
2651
|
/**
|
|
2535
|
-
*
|
|
2652
|
+
* Full angle between the flanks in degrees, from `0` inclusive to `180` exclusive.
|
|
2653
|
+
* Each flank uses half this angle from the radial direction; `90` gives 45-degree slopes.
|
|
2536
2654
|
* @defaultValue `30`
|
|
2537
2655
|
*/
|
|
2538
|
-
readonly
|
|
2656
|
+
readonly includedAngle?: number;
|
|
2539
2657
|
}
|
|
2540
2658
|
|
|
2541
2659
|
/**
|
|
@@ -2552,7 +2670,7 @@ export declare interface TriangleMesh {
|
|
|
2552
2670
|
* Measurements and optional edge-connected topology from one validated mesh traversal.
|
|
2553
2671
|
*/
|
|
2554
2672
|
export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
|
|
2555
|
-
/** Number of referenced edge-connected
|
|
2673
|
+
/** Number of referenced edge-connected boundary shells when `includeTopology` is requested; cavities count separately. */
|
|
2556
2674
|
readonly connectedComponentCount?: number;
|
|
2557
2675
|
/** Number of distinct indexed undirected edges when `includeTopology` is requested. */
|
|
2558
2676
|
readonly edgeCount?: number;
|
|
@@ -2606,7 +2724,7 @@ export declare function tube(options: TubeOptions): Solid;
|
|
|
2606
2724
|
* Dimensions, placement, and tessellation for a hollow Z-axis tube.
|
|
2607
2725
|
*/
|
|
2608
2726
|
export declare interface TubeOptions
|
|
2609
|
-
extends CircularPrimitiveOptions,
|
|
2727
|
+
extends CircularPrimitiveOptions, PrimitiveAttachment {
|
|
2610
2728
|
/**
|
|
2611
2729
|
* Centers the tube on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
|
|
2612
2730
|
* @defaultValue `true`
|