@metamesh/modeling 0.19.0 → 0.20.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 +49 -0
- package/README.md +34 -18
- package/dist/api/engine.d.ts +217 -121
- package/dist/api/export.d.ts +123 -79
- package/dist/api/geometry.d.ts +406 -2102
- package/dist/api/index.d.ts +472 -1798
- package/dist/api/math.d.ts +315 -0
- package/dist/api/mechanical.d.ts +1041 -0
- package/dist/api/mesh.d.ts +360 -88
- package/dist/api/text.d.ts +24 -44
- package/dist/docs/guides/concepts.md +67 -33
- package/dist/docs/guides/exporting.md +88 -0
- package/dist/docs/guides/fonts.md +5 -3
- package/dist/docs/guides/fundamentals.md +12 -24
- package/dist/docs/guides/generation.md +24 -16
- package/dist/docs/guides/geometry-values.md +192 -134
- package/dist/docs/guides/hosting.md +51 -96
- package/dist/docs/guides/profiles-and-extrusion.md +159 -11
- package/dist/docs/guides/recipes.md +121 -28
- package/dist/docs/guides/resolution-and-inspection.md +43 -23
- package/dist/docs/guides/solid-joins.md +12 -2
- package/dist/docs/guides/standalone-model.md +4 -2
- package/dist/docs/guides/svg-and-text.md +76 -39
- package/dist/docs/guides/sweeps-and-lofts.md +88 -44
- package/dist/docs/guides/transforms-and-placement.md +113 -103
- package/dist/docs/guides/workers.md +166 -0
- package/dist/docs/manifest.json +4133 -4153
- package/dist/docs/reference/engine/GenerationOptions.md +2 -3
- package/dist/docs/reference/engine/GeometryResource.md +6 -6
- package/dist/docs/reference/engine/ModelDependencies.md +2 -2
- package/dist/docs/reference/engine/ModelEngine.md +2 -3
- package/dist/docs/reference/engine/ModelEngineOptions.md +2 -7
- package/dist/docs/reference/engine/ModelPart.md +6 -6
- package/dist/docs/reference/engine/ModelResult.md +2 -2
- package/dist/docs/reference/engine/ModelRunArguments.md +2 -2
- package/dist/docs/reference/engine/ModelRunOptions.md +2 -3
- package/dist/docs/reference/engine/ModelSession.md +2 -2
- package/dist/docs/reference/engine/SessionOptions.md +2 -3
- package/dist/docs/reference/engine/categories/host-lifecycle.md +9 -3
- package/dist/docs/reference/engine/checkModel.md +6 -2
- package/dist/docs/reference/engine/createModelEngine.md +5 -3
- package/dist/docs/reference/engine/defaultModelingLimits.md +4 -11
- package/dist/docs/reference/engine/modelingWasmUrl.md +2 -2
- package/dist/docs/reference/engine.md +7 -1
- package/dist/docs/reference/export/Export3mfOptions.md +2 -6
- package/dist/docs/reference/export/ExportDiagnostic.md +2 -14
- package/dist/docs/reference/export/ExportFormat.md +2 -14
- package/dist/docs/reference/export/ExportGeometry.md +3 -15
- package/dist/docs/reference/export/ExportGlbOptions.md +14 -18
- package/dist/docs/reference/export/ExportLimits.md +2 -14
- package/dist/docs/reference/export/ExportMaterial.md +2 -14
- package/dist/docs/reference/export/ExportOptions.md +2 -14
- package/dist/docs/reference/export/ExportPart.md +2 -14
- package/dist/docs/reference/export/ExportReport.md +2 -14
- package/dist/docs/reference/export/ExportSink.md +5 -15
- package/dist/docs/reference/export/ExportStlOptions.md +2 -6
- package/dist/docs/reference/export/ExportedFile.md +14 -26
- package/dist/docs/reference/export/categories/mesh-serialization.md +9 -3
- package/dist/docs/reference/export/defaultExportLimits.md +2 -2
- package/dist/docs/reference/export/export3mf.md +4 -6
- package/dist/docs/reference/export/exportGlb.md +8 -10
- package/dist/docs/reference/export/exportStl.md +4 -6
- package/dist/docs/reference/export/write3mf.md +6 -6
- package/dist/docs/reference/export/writeGlb.md +10 -10
- package/dist/docs/reference/export/writeStl.md +6 -6
- package/dist/docs/reference/export.md +9 -3
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +4 -4
- package/dist/docs/reference/geometry/Anchor3-type.md +3 -7
- package/dist/docs/reference/geometry/Anchor3Options.md +70 -0
- package/dist/docs/reference/geometry/ArcCurve2.md +3 -3
- package/dist/docs/reference/geometry/ArcCurve3.md +3 -3
- package/dist/docs/reference/geometry/AttachOptions.md +4 -9
- package/dist/docs/reference/geometry/Bounds2-type.md +9 -30
- package/dist/docs/reference/geometry/Bounds2Data.md +2 -19
- package/dist/docs/reference/geometry/Bounds2Input.md +2 -10
- package/dist/docs/reference/geometry/Bounds2Options.md +2 -6
- package/dist/docs/reference/geometry/Bounds3-type.md +9 -30
- package/dist/docs/reference/geometry/Bounds3Data.md +2 -15
- package/dist/docs/reference/geometry/Bounds3Input.md +2 -10
- package/dist/docs/reference/geometry/Bounds3Options.md +2 -6
- package/dist/docs/reference/geometry/BoundsFit2.md +2 -2
- package/dist/docs/reference/geometry/BoundsFit3.md +2 -2
- package/dist/docs/reference/geometry/BoundsFitOptions.md +2 -2
- package/dist/docs/reference/geometry/BoxAnchorFace.md +3 -3
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +3 -3
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +3 -7
- package/dist/docs/reference/geometry/CircleContourOptions.md +3 -7
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +3 -12
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +2 -2
- package/dist/docs/reference/geometry/CircularSampling.md +2 -2
- package/dist/docs/reference/geometry/CircularSamplingOptions.md +2 -2
- package/dist/docs/reference/geometry/Contour.md +4 -9
- package/dist/docs/reference/geometry/ContourCurve.md +3 -3
- package/dist/docs/reference/geometry/ContourPoint.md +3 -3
- package/dist/docs/reference/geometry/ContourSegment.md +3 -3
- package/dist/docs/reference/geometry/CorrespondingComponent.md +3 -7
- package/dist/docs/reference/geometry/CorrespondingContour.md +3 -7
- package/dist/docs/reference/geometry/CorrespondingProfile.md +3 -7
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +4 -8
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +3 -3
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +3 -3
- package/dist/docs/reference/geometry/Curve2.md +3 -3
- package/dist/docs/reference/geometry/Curve3.md +3 -3
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +3 -11
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +3 -3
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +4 -4
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +2 -2
- package/dist/docs/reference/geometry/EdgeTreatment.md +2 -6
- package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -7
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +9 -18
- package/dist/docs/reference/geometry/FittedTextLayout.md +2 -2
- package/dist/docs/reference/geometry/{Frame3.md → Frame3-type.md} +4 -11
- package/dist/docs/reference/geometry/Frame3Options.md +69 -0
- package/dist/docs/reference/geometry/GeometryError.md +2 -6
- package/dist/docs/reference/geometry/GeometryErrorCode.md +2 -6
- package/dist/docs/reference/geometry/GeometryErrorContext.md +2 -6
- package/dist/docs/reference/geometry/GeometryResolution.md +2 -10
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +3 -11
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +3 -11
- package/dist/docs/reference/geometry/GridPatternOptions.md +7 -9
- package/dist/docs/reference/geometry/ImmutableBuffer-type.md +2 -10
- package/dist/docs/reference/geometry/LineCurve2.md +3 -3
- package/dist/docs/reference/geometry/LineCurve3.md +3 -3
- package/dist/docs/reference/geometry/LinearPatternOptions.md +2 -6
- package/dist/docs/reference/geometry/LoftPlacement.md +13 -21
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +3 -7
- package/dist/docs/reference/geometry/ModelingLimits.md +2 -14
- package/dist/docs/reference/geometry/NumericArray.md +2 -10
- package/dist/docs/reference/geometry/Path2-type.md +153 -12
- package/dist/docs/reference/geometry/Path2Data.md +3 -11
- package/dist/docs/reference/geometry/Path2Input.md +3 -11
- package/dist/docs/reference/geometry/Path3-type.md +153 -12
- package/dist/docs/reference/geometry/Path3Data.md +3 -11
- package/dist/docs/reference/geometry/Path3Input.md +3 -11
- package/dist/docs/reference/geometry/PathFrame.md +3 -3
- package/dist/docs/reference/geometry/PathLocation.md +3 -11
- package/dist/docs/reference/geometry/PathNormalGuide.md +4 -12
- package/dist/docs/reference/geometry/PathOptions.md +3 -7
- package/dist/docs/reference/geometry/PathPatternOptions.md +3 -7
- package/dist/docs/reference/geometry/PathPlacement.md +5 -5
- package/dist/docs/reference/geometry/PathResamplingOptions.md +3 -11
- package/dist/docs/reference/geometry/PathStation.md +87 -0
- package/dist/docs/reference/geometry/PathSubdivisionOptions.md +44 -0
- package/dist/docs/reference/geometry/Pivot2Options.md +3 -11
- package/dist/docs/reference/geometry/Pivot3Options.md +3 -11
- package/dist/docs/reference/geometry/PolygonData.md +4 -8
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +3 -3
- package/dist/docs/reference/geometry/Profile.md +3 -4
- package/dist/docs/reference/geometry/ProfileComponent2.md +3 -7
- package/dist/docs/reference/geometry/ProfileContour2.md +3 -7
- package/dist/docs/reference/geometry/ProfileSpan2.md +3 -7
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +5 -8
- package/dist/docs/reference/geometry/RadialPatternOptions.md +2 -6
- package/dist/docs/reference/geometry/RadialSizing.md +2 -6
- package/dist/docs/reference/geometry/RadialSizingOptions.md +2 -6
- package/dist/docs/reference/geometry/RectangleContourOptions.md +4 -7
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +3 -7
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +3 -7
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/RegionData.md +3 -7
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +3 -3
- package/dist/docs/reference/geometry/ResolvedGeometryResolution.md +71 -0
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +2 -2
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +2 -6
- package/dist/docs/reference/geometry/RowLayoutOptions.md +2 -2
- package/dist/docs/reference/geometry/SampleContourOptions.md +3 -3
- package/dist/docs/reference/geometry/SampleHelixOptions.md +3 -3
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/SampledCurve2.md +3 -3
- package/dist/docs/reference/geometry/SampledCurve3.md +3 -3
- package/dist/docs/reference/geometry/SideProfileCurve.md +3 -3
- package/dist/docs/reference/geometry/SideProfilePoint.md +3 -3
- package/dist/docs/reference/geometry/SideProfileSegment.md +3 -3
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +2 -6
- package/dist/docs/reference/geometry/SplineOptions.md +69 -0
- package/dist/docs/reference/geometry/StarContourOptions.md +7 -7
- package/dist/docs/reference/geometry/StrokeCap.md +2 -6
- package/dist/docs/reference/geometry/StrokeJoin.md +2 -6
- package/dist/docs/reference/geometry/StrokeOptions.md +3 -7
- package/dist/docs/reference/geometry/SvgImportOptions.md +4 -4
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +2 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +2 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +2 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +2 -2
- package/dist/docs/reference/geometry/Transform2-type.md +3 -11
- package/dist/docs/reference/geometry/Transform2Data.md +3 -11
- package/dist/docs/reference/geometry/Transform2Input.md +3 -11
- package/dist/docs/reference/geometry/Transform3-type.md +4 -12
- package/dist/docs/reference/geometry/Transform3Data.md +3 -11
- package/dist/docs/reference/geometry/Transform3Input.md +6 -13
- package/dist/docs/reference/geometry/Vector2-type.md +3 -11
- package/dist/docs/reference/geometry/Vector2Data.md +3 -15
- package/dist/docs/reference/geometry/Vector2Input.md +3 -11
- package/dist/docs/reference/geometry/Vector3-type.md +27 -11
- package/dist/docs/reference/geometry/Vector3Data.md +3 -11
- package/dist/docs/reference/geometry/Vector3Input.md +3 -11
- package/dist/docs/reference/geometry/VectorTextLayout.md +2 -10
- package/dist/docs/reference/geometry/VectorTextMetrics.md +3 -11
- package/dist/docs/reference/geometry/anchor3.md +17 -26
- package/dist/docs/reference/geometry/anchorFrame3.md +6 -6
- package/dist/docs/reference/geometry/attachmentTransform3.md +8 -8
- package/dist/docs/reference/geometry/bounds2.md +6 -8
- package/dist/docs/reference/geometry/bounds3.md +4 -6
- package/dist/docs/reference/geometry/boundsCenter.md +2 -2
- package/dist/docs/reference/geometry/boundsSize.md +2 -2
- package/dist/docs/reference/geometry/boxAnchor3.md +3 -3
- package/dist/docs/reference/geometry/categories/bounds-layout.md +9 -3
- package/dist/docs/reference/geometry/categories/curves-paths.md +24 -13
- package/dist/docs/reference/geometry/categories/immutable-data.md +40 -0
- package/dist/docs/reference/geometry/categories/pattern-placement.md +10 -4
- package/dist/docs/reference/geometry/categories/primitive-options.md +8 -13
- package/dist/docs/reference/geometry/categories/profiles-regions.md +11 -5
- package/dist/docs/reference/geometry/categories/resolution-errors.md +8 -1
- package/dist/docs/reference/geometry/categories/transforms-math.md +20 -51
- package/dist/docs/reference/geometry/categories/vector-import.md +7 -4
- package/dist/docs/reference/geometry/circleContour.md +3 -3
- package/dist/docs/reference/geometry/closeToAxis.md +7 -3
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +9 -6
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +13 -6
- package/dist/docs/reference/geometry/contourContainsPoint.md +7 -3
- package/dist/docs/reference/geometry/cylinderAnchor3.md +5 -5
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +3 -3
- package/dist/docs/reference/geometry/distributeAlongPath.md +16 -11
- package/dist/docs/reference/geometry/ellipseContour.md +3 -3
- package/dist/docs/reference/geometry/fitBounds.md +10 -2
- package/dist/docs/reference/geometry/fitTextLayout.md +5 -5
- package/dist/docs/reference/geometry/frame3.md +66 -0
- package/dist/docs/reference/geometry/gridPatternTransforms.md +6 -6
- package/dist/docs/reference/geometry/immutableBuffer.md +5 -7
- package/dist/docs/reference/geometry/isGeometryError.md +2 -6
- package/dist/docs/reference/geometry/layoutRow.md +4 -2
- package/dist/docs/reference/geometry/linearPatternTransforms.md +6 -6
- package/dist/docs/reference/geometry/matchProfiles.md +5 -3
- package/dist/docs/reference/geometry/normalizeContour.md +8 -4
- package/dist/docs/reference/geometry/normalizePolygon.md +5 -3
- package/dist/docs/reference/geometry/normalizeRegion.md +5 -3
- package/dist/docs/reference/geometry/path2.md +7 -7
- package/dist/docs/reference/geometry/path3.md +7 -7
- package/dist/docs/reference/geometry/pathPatternTransforms.md +12 -8
- package/dist/docs/reference/geometry/preflightSvgRegion.md +5 -5
- package/dist/docs/reference/geometry/radialPatternTransforms.md +5 -5
- package/dist/docs/reference/geometry/rectangleContour.md +3 -3
- package/dist/docs/reference/geometry/rectangleProfile.md +3 -4
- package/dist/docs/reference/geometry/regionArea.md +3 -3
- package/dist/docs/reference/geometry/regionBounds.md +6 -4
- package/dist/docs/reference/geometry/regularPolygonContour.md +3 -3
- package/dist/docs/reference/geometry/resamplePolyline2.md +7 -3
- package/dist/docs/reference/geometry/resamplePolyline3.md +7 -3
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +5 -5
- package/dist/docs/reference/geometry/resolveArcSegments.md +8 -6
- package/dist/docs/reference/geometry/resolveCircularSampling.md +2 -2
- package/dist/docs/reference/geometry/resolveCircularSegments.md +5 -3
- package/dist/docs/reference/geometry/{resolveExtrusionDivisions.md → resolveExtrusionSlices.md} +16 -15
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +5 -3
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +3 -3
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +12 -5
- package/dist/docs/reference/geometry/sampleContour.md +5 -5
- package/dist/docs/reference/geometry/sampleCurve2.md +7 -3
- package/dist/docs/reference/geometry/sampleCurve3.md +7 -3
- package/dist/docs/reference/geometry/sampleHelix.md +3 -3
- package/dist/docs/reference/geometry/sampleSideProfile.md +5 -5
- package/dist/docs/reference/geometry/sampleTextContours.md +3 -3
- package/dist/docs/reference/geometry/signedContourArea.md +5 -3
- package/dist/docs/reference/geometry/spline2.md +68 -0
- package/dist/docs/reference/geometry/spline3.md +62 -0
- package/dist/docs/reference/geometry/starContour.md +3 -3
- package/dist/docs/reference/geometry/strokeRegionData.md +8 -5
- package/dist/docs/reference/geometry/transform2.md +5 -7
- package/dist/docs/reference/geometry/transform3.md +23 -10
- package/dist/docs/reference/geometry/transformRegionData.md +7 -3
- package/dist/docs/reference/geometry/triangulateContour.md +6 -4
- package/dist/docs/reference/geometry/vector2.md +6 -8
- package/dist/docs/reference/geometry/vector3.md +8 -8
- package/dist/docs/reference/geometry.md +13 -18
- package/dist/docs/reference/{geometry → math}/AxisAngleRotation3.md +4 -5
- package/dist/docs/reference/math/IDENTITY_TRANSFORM3.md +20 -0
- package/dist/docs/reference/math/add2.md +38 -0
- package/dist/docs/reference/math/add3.md +46 -0
- package/dist/docs/reference/math/applyTransformDirection3.md +46 -0
- package/dist/docs/reference/math/applyTransformPoint3.md +44 -0
- package/dist/docs/reference/math/categories/tuple-matrix.md +67 -0
- package/dist/docs/reference/math/cross2.md +38 -0
- package/dist/docs/reference/math/cross3.md +44 -0
- package/dist/docs/reference/math/distance2.md +38 -0
- package/dist/docs/reference/math/distance3.md +38 -0
- package/dist/docs/reference/math/dot2.md +38 -0
- package/dist/docs/reference/math/dot3.md +44 -0
- package/dist/docs/reference/math/eulerTransform3.md +43 -0
- package/dist/docs/reference/math/inverseTransform3.md +36 -0
- package/dist/docs/reference/math/length2.md +32 -0
- package/dist/docs/reference/math/length3.md +32 -0
- package/dist/docs/reference/math/lerp2.md +46 -0
- package/dist/docs/reference/math/lerp3.md +46 -0
- package/dist/docs/reference/math/multiplyTransform3.md +46 -0
- package/dist/docs/reference/math/normalize2.md +45 -0
- package/dist/docs/reference/math/normalize3.md +45 -0
- package/dist/docs/reference/math/projectOntoPlane3.md +40 -0
- package/dist/docs/reference/math/rotate2.md +40 -0
- package/dist/docs/reference/math/rotationTransform3.md +56 -0
- package/dist/docs/reference/math/scale2.md +38 -0
- package/dist/docs/reference/math/scale3.md +44 -0
- package/dist/docs/reference/math/scaleTransform3.md +39 -0
- package/dist/docs/reference/math/subtract2.md +38 -0
- package/dist/docs/reference/math/subtract3.md +44 -0
- package/dist/docs/reference/math/transformDeterminant3.md +38 -0
- package/dist/docs/reference/math/translationTransform3.md +36 -0
- package/dist/docs/reference/math/validateRigidTransform3.md +38 -0
- package/dist/docs/reference/math/validateTransform3.md +48 -0
- package/dist/docs/reference/math.md +22 -0
- package/dist/docs/reference/{geometry → mechanical}/AcmeThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/Bevel.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/BevelSize.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ButtressPressureFlankSide.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ButtressThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleFit.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CompensatedThreadDiameters.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CustomThreadProfileSpec.md +5 -15
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearMeshKind.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearOutlineOptions.md +5 -10
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionOptions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionReport.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairSpec.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearSpec.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/InternalThreadCutterOptions.md +6 -13
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeBaseSpec.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeDimensions.md +4 -5
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeInterval.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSamplingOptions.md +5 -14
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSpec.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/METRIC_FASTENER_STANDARDS.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricFastenerSize.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricFastenerStandard.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricHexNutDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricSocketCapHeadDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/PRINTABLE_THREAD_FIT_POLICIES.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFit.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFitPolicy.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/RackPitchDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/RackPitchSpec.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/SampledThreadHelices.md +4 -8
- package/dist/docs/reference/{geometry → mechanical}/SquareThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/ThreadBevelOptions.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadCircularSegmentsOptions.md +5 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadCompensationOptions.md +4 -5
- package/dist/docs/reference/{geometry → mechanical}/ThreadEndStyle.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadEndTreatmentOptions.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadHandedness.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadHelixOptions.md +5 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInEnvelope.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInShape.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfile-type.md +5 -17
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfileBaseSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfileSpec.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadRidgeOptions.md +7 -18
- package/dist/docs/reference/{geometry → mechanical}/ThreadRole.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/ThreadSolidOptions.md +8 -15
- package/dist/docs/reference/{geometry → mechanical}/ThreadSolidPreflight.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutOptions.md +7 -14
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutPreflight.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutShape.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadedRodOptions.md +6 -13
- package/dist/docs/reference/{geometry → mechanical}/TrapezoidalThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/TriangularThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/categories/mechanical.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadDiameters.md +4 -4
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileAxially.md +12 -6
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileForFaceting.md +13 -3
- package/dist/docs/reference/{geometry → mechanical}/getMetricClearanceHoleDiameter.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/getMetricFastenerStandard.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/measureInternalCylindricalGearPairMotion.md +9 -7
- package/dist/docs/reference/{geometry → mechanical}/minimumCylindricalGearToothCountWithoutUndercut.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/preflightInternalThreadCutter.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/preflightThreadedNut.md +9 -7
- package/dist/docs/reference/{geometry → mechanical}/preflightThreadedRod.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGear.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGearPair.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveKnuckleHinge.md +9 -7
- package/dist/docs/reference/{geometry → mechanical}/resolvePrintableThreadFitPolicy.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveRackPitch.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveThreadCircularSegments.md +7 -5
- package/dist/docs/reference/{geometry → mechanical}/sampleCylindricalGearOutline.md +9 -8
- package/dist/docs/reference/{geometry → mechanical}/sampleInternalCylindricalGearSpaceOutline.md +9 -8
- package/dist/docs/reference/{geometry → mechanical}/sampleRackToothPath.md +10 -8
- package/dist/docs/reference/{geometry → mechanical}/sampleThreadHelices.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/threadProfile.md +7 -3
- package/dist/docs/reference/mechanical.md +19 -0
- package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +128 -0
- package/dist/docs/reference/{geometry → mesh}/HeightfieldMeshLimits.md +5 -13
- package/dist/docs/reference/{geometry → mesh}/HeightfieldPreflight.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/ImmutableTriangleMesh.md +5 -17
- package/dist/docs/reference/mesh/LoftMeshStation.md +32 -0
- package/dist/docs/reference/mesh/MeshRenderOptions.md +3 -3
- package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationFallbackReason.md +4 -8
- package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationOptions.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationResult.md +4 -8
- package/dist/docs/reference/{geometry → mesh}/PlanarPatchQuality.md +4 -12
- package/dist/docs/reference/mesh/RenderMesh.md +19 -19
- package/dist/docs/reference/{geometry → mesh}/SolidMeshValidationOptions.md +4 -12
- package/dist/docs/reference/{geometry → mesh}/TriangleMesh.md +8 -12
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshAnalysis.md +5 -14
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshAnalysisOptions.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshInput.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshMeasurements.md +5 -14
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshQualityOptions.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshQualityReport.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignature.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignatureOptions.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignatureTolerances.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshTopologyAnalysis.md +5 -14
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshValidationOptions.md +4 -9
- package/dist/docs/reference/mesh/analyze.md +26 -18
- package/dist/docs/reference/mesh/analyzeQuality.md +12 -12
- package/dist/docs/reference/mesh/bounds.md +5 -6
- package/dist/docs/reference/mesh/categories/operations.md +37 -4
- package/dist/docs/reference/mesh/centroid.md +5 -6
- package/dist/docs/reference/mesh/extrude.md +21 -20
- package/dist/docs/reference/mesh/heightfield.md +8 -8
- package/dist/docs/reference/mesh/immutable.md +7 -5
- package/dist/docs/reference/mesh/join.md +7 -7
- package/dist/docs/reference/mesh/loft.md +19 -18
- package/dist/docs/reference/mesh/optimizePlanarPatches.md +21 -21
- package/dist/docs/reference/mesh/preflightHeightfield.md +8 -8
- package/dist/docs/reference/mesh/preflightThreadSolid.md +22 -25
- package/dist/docs/reference/mesh/render.md +7 -5
- package/dist/docs/reference/mesh/reverse.md +7 -7
- package/dist/docs/reference/mesh/revolve.md +12 -14
- package/dist/docs/reference/mesh/signature.md +12 -12
- package/dist/docs/reference/mesh/sweep.md +96 -25
- package/dist/docs/reference/mesh/threadRidge.md +19 -18
- package/dist/docs/reference/mesh/threadSolid.md +23 -22
- package/dist/docs/reference/mesh/transform.md +8 -9
- package/dist/docs/reference/mesh/validate.md +11 -11
- package/dist/docs/reference/mesh/validateSolid.md +10 -10
- package/dist/docs/reference/mesh.md +8 -2
- package/dist/docs/reference/model/BoxEdge.md +23 -0
- package/dist/docs/reference/model/BoxEdgeSelection.md +27 -0
- package/dist/docs/reference/model/BoxEdgeTreatments.md +27 -0
- package/dist/docs/reference/{geometry → model}/BoxOptions.md +12 -12
- package/dist/docs/reference/model/CircleOptions.md +4 -5
- package/dist/docs/reference/model/CornerCutterOptions.md +93 -0
- package/dist/docs/reference/model/CornerCutterTreatment.md +53 -0
- package/dist/docs/reference/model/{HoleCutterOverrun.md → CutterOverrun.md} +8 -7
- package/dist/docs/reference/model/CylinderOptions.md +64 -0
- package/dist/docs/reference/model/DiagnosticOptions.md +2 -2
- package/dist/docs/reference/model/EdgeCutterOptions.md +129 -0
- package/dist/docs/reference/model/EllipseOptions.md +4 -5
- package/dist/docs/reference/model/EndTreatments.md +43 -0
- package/dist/docs/reference/model/ExtrudeOptions.md +153 -0
- package/dist/docs/reference/model/GenerateCallback.md +2 -2
- package/dist/docs/reference/model/GenerateContext.md +27 -3
- package/dist/docs/reference/model/GenerationDiagnostic.md +2 -2
- package/dist/docs/reference/model/GenerationError.md +2 -2
- package/dist/docs/reference/{geometry → model}/HeightfieldOptions.md +5 -23
- package/dist/docs/reference/model/HoleCutterOpening.md +27 -0
- package/dist/docs/reference/model/HoleCutterOptions.md +9 -22
- package/dist/docs/reference/model/HoleCutterRecess.md +5 -4
- package/dist/docs/reference/model/HullOptions.md +2 -3
- package/dist/docs/reference/model/ImmutableValue.md +2 -2
- package/dist/docs/reference/model/ImplicitOptions.md +3 -9
- package/dist/docs/reference/model/JoinOptions.md +2 -5
- package/dist/docs/reference/model/JoinTransition.md +2 -2
- package/dist/docs/reference/model/KnuckleHinge-type.md +2 -3
- package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +2 -2
- package/dist/docs/reference/model/KnuckleHingeOptions.md +3 -5
- package/dist/docs/reference/model/KnuckleHingeWeb.md +2 -2
- package/dist/docs/reference/{geometry → model}/LoftCorrespondence.md +8 -11
- package/dist/docs/reference/{geometry → model}/LoftOptions.md +11 -16
- package/dist/docs/reference/model/LoftStation.md +4 -5
- package/dist/docs/reference/model/Memo.md +2 -2
- package/dist/docs/reference/model/ModelProgram.md +2 -2
- package/dist/docs/reference/model/PartDeclaration.md +4 -5
- package/dist/docs/reference/model/PartGeometry.md +3 -5
- package/dist/docs/reference/model/PartOptions.md +4 -5
- package/dist/docs/reference/model/PatternSource.md +4 -4
- package/dist/docs/reference/model/PlaneOptions.md +3 -7
- package/dist/docs/reference/model/PolygonOptions.md +2 -7
- package/dist/docs/reference/model/PrimitiveAttachment.md +50 -0
- package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +111 -0
- package/dist/docs/reference/model/RectangleOptions.md +21 -26
- package/dist/docs/reference/model/RegularPolygonOptions.md +4 -37
- package/dist/docs/reference/{geometry → model}/RevolveOptions.md +15 -24
- package/dist/docs/reference/model/Section.md +115 -53
- package/dist/docs/reference/model/SectionHullOptions.md +2 -3
- package/dist/docs/reference/model/SectionInspection.md +2 -6
- package/dist/docs/reference/model/SectionOffsetJoin.md +2 -2
- package/dist/docs/reference/model/SectionOffsetOptions.md +2 -3
- package/dist/docs/reference/model/Solid.md +24 -12
- package/dist/docs/reference/model/SolidInspection.md +2 -6
- package/dist/docs/reference/model/SolidSegmentHit.md +2 -6
- package/dist/docs/reference/model/SphereOptions.md +27 -0
- package/dist/docs/reference/model/StarOptions.md +21 -23
- package/dist/docs/reference/model/SvgOrigin.md +2 -2
- package/dist/docs/reference/model/SvgPathSectionOptions.md +3 -5
- package/dist/docs/reference/model/SvgSectionOptions.md +3 -6
- package/dist/docs/reference/model/SweepOptions.md +109 -0
- package/dist/docs/reference/model/SweepOrientation.md +119 -0
- package/dist/docs/reference/model/SweepTransformOptions.md +105 -0
- package/dist/docs/reference/model/TextSectionOptions.md +2 -7
- package/dist/docs/reference/{geometry → model}/TorusOptions.md +11 -10
- package/dist/docs/reference/model/TubeOptions.md +84 -0
- package/dist/docs/reference/model/box.md +11 -10
- package/dist/docs/reference/model/categories/boolean-operations.md +9 -3
- package/dist/docs/reference/model/categories/bounded-surfaces.md +13 -1
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +26 -7
- package/dist/docs/reference/model/categories/generation.md +11 -3
- package/dist/docs/reference/model/categories/hinges.md +7 -1
- package/dist/docs/reference/model/categories/mesh-inspection.md +7 -1
- package/dist/docs/reference/model/categories/primitives.md +34 -6
- package/dist/docs/reference/model/categories/sections.md +8 -2
- package/dist/docs/reference/model/categories/threads.md +8 -5
- package/dist/docs/reference/model/categories/transforms-placement.md +15 -10
- package/dist/docs/reference/model/circle.md +7 -3
- package/dist/docs/reference/model/cornerCutter.md +88 -0
- package/dist/docs/reference/model/cylinder.md +6 -5
- package/dist/docs/reference/model/edgeCutter.md +91 -0
- package/dist/docs/reference/model/ellipse.md +7 -3
- package/dist/docs/reference/model/extrude.md +29 -23
- package/dist/docs/reference/model/generate.md +4 -2
- package/dist/docs/reference/model/gridPattern.md +11 -4
- package/dist/docs/reference/model/heightfield.md +5 -5
- package/dist/docs/reference/model/holeCutter.md +26 -12
- package/dist/docs/reference/model/hull.md +2 -2
- package/dist/docs/reference/model/implicit.md +3 -3
- package/dist/docs/reference/model/internalThreadCutter.md +32 -21
- package/dist/docs/reference/model/intersect.md +7 -3
- package/dist/docs/reference/model/join.md +6 -2
- package/dist/docs/reference/model/knuckleHinge.md +2 -3
- package/dist/docs/reference/model/linearPattern.md +11 -4
- package/dist/docs/reference/model/loft.md +28 -24
- package/dist/docs/reference/model/minkowskiSum.md +3 -3
- package/dist/docs/reference/model/pathPattern.md +17 -8
- package/dist/docs/reference/model/polygon.md +8 -3
- package/dist/docs/reference/model/radialPattern.md +11 -4
- package/dist/docs/reference/model/rectangle.md +11 -7
- package/dist/docs/reference/model/regularPolygon.md +7 -3
- package/dist/docs/reference/model/revolve.md +18 -12
- package/dist/docs/reference/model/solidFromMesh.md +10 -6
- package/dist/docs/reference/model/sphere.md +7 -6
- package/dist/docs/reference/model/star.md +11 -7
- package/dist/docs/reference/model/stroke.md +12 -8
- package/dist/docs/reference/model/svgPathSection.md +10 -4
- package/dist/docs/reference/model/svgSection.md +10 -4
- package/dist/docs/reference/model/sweep.md +102 -25
- package/dist/docs/reference/model/textSection.md +7 -3
- package/dist/docs/reference/model/threadRidge.md +16 -17
- package/dist/docs/reference/model/threadedNut.md +25 -22
- package/dist/docs/reference/model/threadedRod.md +21 -18
- package/dist/docs/reference/model/torus.md +13 -12
- package/dist/docs/reference/model/tube.md +6 -5
- package/dist/docs/reference/model/union.md +7 -3
- package/dist/docs/reference/model.md +10 -5
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +2 -2
- package/dist/docs/reference/text/VectorFont.md +38 -34
- package/dist/docs/reference/text/VectorFontOptions.md +2 -2
- package/dist/docs/reference/{geometry → text}/VectorTextArcBaseline.md +2 -11
- package/dist/docs/reference/{geometry → text}/VectorTextLayoutOptions.md +3 -11
- package/dist/docs/reference/{geometry → text}/VectorTextOptions.md +2 -10
- package/dist/docs/reference/text/categories/font-preparation.md +10 -1
- package/dist/docs/reference/text/prepareVectorFont.md +4 -2
- package/dist/docs/reference/text.md +7 -1
- package/dist/engine/execution.js +5 -3
- package/dist/engine/finalization.js +5 -5
- package/dist/engine/index.js +9 -4
- package/dist/engine/native/adapter.js +1 -1
- package/dist/engine/native/construction-mesh.js +15 -5
- package/dist/engine/native/context.js +10 -7
- package/dist/engine/native/index.js +1 -1
- package/dist/engine/native/material-components.js +2 -2
- package/dist/engine/native/mesh-observation.js +1 -1
- package/dist/engine/native/regions.js +44 -24
- package/dist/engine/native/scoped-primitives.js +3 -3
- package/dist/engine/native/scoped-threads.js +1 -13
- package/dist/engine/native/threads.js +2 -2
- package/dist/engine/native/transforms.js +2 -2
- package/dist/engine/operations/construction.js +77 -27
- package/dist/engine/operations/context.js +13 -6
- package/dist/engine/operations/cutters.js +112 -0
- package/dist/engine/operations/environment.js +2 -2
- package/dist/engine/operations/extrusion-finishing.js +42 -16
- package/dist/engine/operations/hole-cutter.js +125 -114
- package/dist/engine/operations/join-collar-profile.js +19 -19
- package/dist/engine/operations/join.js +86 -73
- package/dist/engine/operations/knuckle-hinge.js +25 -20
- package/dist/engine/operations/loft.js +9 -16
- package/dist/engine/operations/mechanical.js +4 -15
- package/dist/engine/operations/primitives/anchors.js +23 -19
- package/dist/engine/operations/primitives/construction.js +38 -12
- package/dist/engine/operations/primitives/correspondence.js +2 -2
- package/dist/engine/operations/primitives/profile-mesh.js +41 -80
- package/dist/engine/operations/primitives/profiles.js +5 -5
- package/dist/engine/operations/sections.js +8 -8
- package/dist/engine/operations/transforms.js +19 -39
- package/dist/engine/placement.js +3 -3
- package/dist/engine/recipe-realization.js +86 -30
- package/dist/engine/session/declarations.js +98 -0
- package/dist/engine/session/dependencies.js +81 -28
- package/dist/engine/session/graph.js +39 -137
- package/dist/engine/session/parameters.js +78 -0
- package/dist/engine/session/session.js +2 -2
- package/dist/engine/session/snapshot-cache.js +2 -2
- package/dist/engine/shape-anchors.js +13 -6
- package/dist/export/3mf.js +9 -2
- package/dist/export/capture.js +10 -6
- package/dist/export/glb.js +7 -2
- package/dist/export/stl.js +21 -6
- package/dist/geometry/{bounds.js → bounds/operations.js} +3 -1
- package/dist/geometry/{bounds-value.js → bounds/value.js} +20 -16
- package/dist/geometry/curves/evaluation.js +5 -6
- package/dist/geometry/curves/sampling.js +30 -6
- package/dist/geometry/{extrusion.js → extrusion/controls.js} +58 -35
- package/dist/geometry/extrusion/mesh.js +92 -0
- package/dist/geometry/extrusion/stations.js +35 -0
- package/dist/geometry/extrusion/twisted-chamfer.js +265 -0
- package/dist/geometry/immutable-buffer.js +7 -1
- package/dist/geometry/index.js +24 -32
- package/dist/geometry/{model-limits.js → limits.js} +1 -1
- package/dist/geometry/loft/{loft-correspondence.js → correspondence.js} +31 -20
- package/dist/geometry/loft/{loft-geometry.js → geometry.js} +15 -17
- package/dist/geometry/loft/mesh.js +53 -0
- package/dist/geometry/loft/{loft-options.js → options.js} +13 -11
- package/dist/geometry/loft/{loft-simple-mesh.js → simple-mesh.js} +26 -17
- package/dist/geometry/math/interpolation.js +9 -0
- package/dist/geometry/math/vector-value.js +12 -3
- package/dist/geometry/math/vector2.js +18 -5
- package/dist/geometry/math/vector3.js +28 -5
- package/dist/geometry/math-api.js +4 -0
- package/dist/geometry/mechanical/gear-motion.js +7 -5
- package/dist/geometry/mechanical/gears.js +21 -4
- package/dist/geometry/mechanical/knuckle-hinge.js +7 -5
- package/dist/geometry/mechanical/threads/fit.js +8 -2
- package/dist/geometry/mechanical/threads/helices.js +4 -2
- package/dist/geometry/mechanical/threads/mesh-plan.js +4 -2
- package/dist/geometry/mechanical/threads/mesh.js +12 -9
- package/dist/geometry/mechanical/threads/profiles.js +18 -4
- package/dist/geometry/mechanical/threads/solids.js +11 -2
- package/dist/geometry/mechanical-api.js +10 -0
- package/dist/geometry/mesh/{mesh-centroid.js → centroid.js} +2 -1
- package/dist/geometry/{heightfield.js → mesh/heightfield.js} +9 -5
- package/dist/geometry/{join-geometry.js → mesh/join-layers.js} +53 -59
- package/dist/geometry/mesh/{mesh.js → operations.js} +11 -18
- package/dist/geometry/mesh/{mesh-planar.js → planar.js} +8 -18
- package/dist/geometry/mesh/{mesh-quality.js → quality.js} +10 -42
- package/dist/geometry/mesh/{mesh-render.js → render-buffers.js} +22 -7
- package/dist/geometry/mesh/{mesh-signature.js → signature.js} +1 -1
- package/dist/geometry/mesh/{mesh-solid-intersections.js → solid-intersections.js} +2 -0
- package/dist/geometry/mesh/{mesh-solid.js → solid.js} +4 -4
- package/dist/geometry/mesh/triangle-quality.js +42 -0
- package/dist/geometry/mesh/winding.js +11 -0
- package/dist/geometry/{numeric.js → mesh/write-vertex.js} +1 -1
- package/dist/geometry/mesh-api.js +12 -11
- package/dist/geometry/paths/distribution.js +43 -0
- package/dist/geometry/paths/editing.js +76 -0
- package/dist/geometry/paths/frames.js +16 -11
- package/dist/geometry/paths/helix.js +1 -1
- package/dist/geometry/paths/resampling.js +46 -61
- package/dist/geometry/paths/{planar.js → rounding.js} +8 -67
- package/dist/geometry/paths/spline.js +116 -0
- package/dist/geometry/paths/traversal.js +107 -0
- package/dist/geometry/paths/{path-value.js → value.js} +97 -18
- package/dist/geometry/patterns/placements.js +20 -29
- package/dist/geometry/{patterns.js → patterns/transforms.js} +11 -7
- package/dist/geometry/primitives/cutters.js +70 -0
- package/dist/geometry/{cylinder.js → primitives/cylinder.js} +4 -4
- package/dist/geometry/{edge-finishing.js → primitives/edges.js} +5 -5
- package/dist/geometry/{primitive-resolvers.js → primitives/resolvers.js} +9 -9
- package/dist/geometry/primitives/sampling.js +41 -0
- package/dist/geometry/profiles/contour.js +19 -7
- package/dist/geometry/profiles/{match-profiles.js → matching.js} +9 -6
- package/dist/geometry/profiles/primitives/circle.js +1 -1
- package/dist/geometry/profiles/primitives/ellipse.js +2 -2
- package/dist/geometry/profiles/primitives/rectangle.js +8 -8
- package/dist/geometry/profiles/primitives/star.js +1 -1
- package/dist/geometry/profiles/side-profile.js +8 -5
- package/dist/geometry/profiles/validation.js +1 -1
- package/dist/geometry/{polygon-clipping.js → regions/clipping.js} +1 -1
- package/dist/geometry/{convex-offset.js → regions/convex-offset.js} +1 -1
- package/dist/geometry/{region-offset.js → regions/offset.js} +7 -5
- package/dist/geometry/{regions.js → regions/operations.js} +59 -22
- package/dist/geometry/{stroke-path.js → regions/stroke.js} +46 -20
- package/dist/geometry/{loft/loft-triangulation.js → regions/triangulation.js} +35 -2
- package/dist/geometry/revolve/{revolve-mesh.js → mesh.js} +9 -10
- package/dist/geometry/{circular-sampling.js → sampling/circular.js} +3 -3
- package/dist/geometry/{sampling-limits.js → sampling/limits.js} +6 -2
- package/dist/geometry/{resolution.js → sampling/resolution.js} +15 -14
- package/dist/geometry/svg/fill.js +4 -3
- package/dist/geometry/svg/import.js +47 -64
- package/dist/geometry/svg/path.js +3 -3
- package/dist/geometry/sweep/closed.js +55 -0
- package/dist/geometry/sweep/mesh.js +30 -0
- package/dist/geometry/{sweeps/sweep-open.js → sweep/open.js} +9 -24
- package/dist/geometry/{sweeps → sweep}/orientation.js +14 -11
- package/dist/geometry/sweep/seam.js +30 -0
- package/dist/geometry/{sweeps → sweep}/stations.js +75 -10
- package/dist/geometry/sweep/transforms.js +30 -0
- package/dist/geometry/{sweeps → sweep}/validation.js +4 -4
- package/dist/geometry/{text-contours.js → text/contours.js} +3 -3
- package/dist/geometry/{text-fitting.js → text/fitting.js} +4 -3
- package/dist/geometry/text/layout.js +1 -0
- package/dist/geometry/{transform3.js → transforms/affine3.js} +31 -46
- package/dist/geometry/{anchors.js → transforms/anchors.js} +43 -24
- package/dist/geometry/{transform-geometry.js → transforms/apply.js} +8 -5
- package/dist/geometry/{transform2.js → transforms/dimensions.js} +23 -19
- package/dist/geometry/transforms/frame.js +64 -0
- package/dist/geometry/{transform-matrix.js → transforms/matrix-input.js} +8 -1
- package/dist/geometry/{transform-value.js → transforms/value.js} +29 -11
- package/dist/index.js +3 -9
- package/dist/model/cutters.js +1 -0
- package/dist/model/execution-binding.js +3 -3
- package/dist/model/generation.js +2 -0
- package/dist/model/immutable-generation-data.js +2 -0
- package/dist/model/operations.js +130 -94
- package/dist/model/recipe-declaration.js +5 -7
- package/dist/text/index.js +3 -0
- package/dist/text/vector-text-layout.js +1 -0
- package/package.json +15 -17
- package/dist/api/export-3mf.d.ts +0 -2
- package/dist/api/export-glb.d.ts +0 -2
- package/dist/api/export-stl.d.ts +0 -2
- package/dist/docs/reference/geometry/BoxEdge.md +0 -17
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +0 -24
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +0 -25
- package/dist/docs/reference/geometry/CylinderOptions.md +0 -63
- package/dist/docs/reference/geometry/EndTreatments.md +0 -44
- package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +0 -144
- package/dist/docs/reference/geometry/ExtrudeOptions.md +0 -156
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +0 -25
- package/dist/docs/reference/geometry/LoftMeshStation.md +0 -41
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +0 -39
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +0 -114
- package/dist/docs/reference/geometry/SphereOptions.md +0 -25
- package/dist/docs/reference/geometry/SweepOptions.md +0 -127
- package/dist/docs/reference/geometry/SweepOrientation.md +0 -127
- package/dist/docs/reference/geometry/TubeOptions.md +0 -72
- package/dist/docs/reference/geometry/add2.md +0 -43
- package/dist/docs/reference/geometry/add3.md +0 -49
- package/dist/docs/reference/geometry/applyTransformDirection3.md +0 -52
- package/dist/docs/reference/geometry/applyTransformPoint3.md +0 -50
- package/dist/docs/reference/geometry/categories/meshes.md +0 -68
- package/dist/docs/reference/geometry/composeTransform3.md +0 -51
- package/dist/docs/reference/geometry/cross2.md +0 -43
- package/dist/docs/reference/geometry/cross3.md +0 -49
- package/dist/docs/reference/geometry/distance2.md +0 -43
- package/dist/docs/reference/geometry/distance3.md +0 -43
- package/dist/docs/reference/geometry/dot2.md +0 -43
- package/dist/docs/reference/geometry/dot3.md +0 -49
- package/dist/docs/reference/geometry/eulerTransform3.md +0 -49
- package/dist/docs/reference/geometry/frameTransform3.md +0 -55
- package/dist/docs/reference/geometry/inverseTransform3.md +0 -41
- package/dist/docs/reference/geometry/length2.md +0 -37
- package/dist/docs/reference/geometry/length3.md +0 -37
- package/dist/docs/reference/geometry/lerp2.md +0 -49
- package/dist/docs/reference/geometry/lerp3.md +0 -49
- package/dist/docs/reference/geometry/normalize2.md +0 -46
- package/dist/docs/reference/geometry/normalize3.md +0 -46
- package/dist/docs/reference/geometry/projectOntoPlane3.md +0 -43
- package/dist/docs/reference/geometry/rotate2.md +0 -43
- package/dist/docs/reference/geometry/rotationTransform3.md +0 -60
- package/dist/docs/reference/geometry/scale2.md +0 -43
- package/dist/docs/reference/geometry/scale3.md +0 -49
- package/dist/docs/reference/geometry/scaleTransform3.md +0 -45
- package/dist/docs/reference/geometry/subtract2.md +0 -43
- package/dist/docs/reference/geometry/subtract3.md +0 -49
- package/dist/docs/reference/geometry/transformDeterminant3.md +0 -43
- package/dist/docs/reference/geometry/translationTransform3.md +0 -42
- package/dist/docs/reference/geometry/validateRigidTransform3.md +0 -41
- package/dist/docs/reference/geometry/validateTransform3.md +0 -54
- package/dist/docs/reference/model/Profile.md +0 -30
- package/dist/docs/reference/model/categories/explicit-profiles.md +0 -21
- package/dist/docs/reference/model/matchProfiles.md +0 -48
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +0 -93
- package/dist/docs/reference/model/preflightThreadedNut.md +0 -109
- package/dist/docs/reference/model/preflightThreadedRod.md +0 -93
- package/dist/engine/operations/patterns.js +0 -47
- package/dist/geometry/loft/loft.js +0 -105
- package/dist/geometry/mechanical/index.js +0 -14
- package/dist/geometry/primitive-resolution.js +0 -20
- package/dist/geometry/svg/index.js +0 -1
- package/dist/geometry/sweeps/options.js +0 -29
- package/dist/geometry/sweeps/sweep-closed.js +0 -96
- package/dist/geometry/sweeps/sweep-mesh.js +0 -32
- /package/dist/geometry/mechanical/{standards.js → fastener-standards.js} +0 -0
- /package/dist/geometry/mesh/{mesh-edge-table.js → edge-table.js} +0 -0
- /package/dist/geometry/mesh/{mesh-types.js → types.js} +0 -0
- /package/dist/geometry/mesh/{mesh-view-cache.js → view-cache.js} +0 -0
- /package/dist/geometry/{primitive-options.js → primitives/options.js} +0 -0
- /package/dist/geometry/{text-layout.js → sweep/options.js} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Calculate pure linear, radial, grid, and path transforms.
|
|
4
4
|
|
|
5
|
-
Pattern helpers use the same counts, spacing, centering, and frames as pattern operations in `@metamesh/modeling`.
|
|
5
|
+
Pattern helpers use the same counts, spacing, centering, and frames as pattern operations in `@metamesh/modeling`. They return immutable `Transform3` placements. Pass them directly to part transforms or `mesh.transform`, use `applyPoint` for coordinates, and call `toData()` for matrix interchange.
|
|
6
6
|
|
|
7
7
|
Linear and grid spacing use millimetres; radial angles use degrees. Paths use physical arc-length intervals and omit the repeated seam when closed.
|
|
8
8
|
|
|
@@ -10,9 +10,9 @@ Linear and grid spacing use millimetres; radial angles use degrees. Paths use ph
|
|
|
10
10
|
|
|
11
11
|
| API | Summary |
|
|
12
12
|
| --- | --- |
|
|
13
|
-
| [linearPatternTransforms](../linearPatternTransforms.md) |
|
|
13
|
+
| [linearPatternTransforms](../linearPatternTransforms.md) | Immutable XYZ placements in millimetres, including the original at the origin. |
|
|
14
14
|
| [radialPatternTransforms](../radialPatternTransforms.md) | Rotations about an explicit axis; angles use degrees and the first placement is identity. |
|
|
15
|
-
| [gridPatternTransforms](../gridPatternTransforms.md) |
|
|
15
|
+
| [gridPatternTransforms](../gridPatternTransforms.md) | Immutable XYZ placements for an XY or XYZ grid, in X-fastest order. |
|
|
16
16
|
| [pathPatternTransforms](../pathPatternTransforms.md) | Equal physical arc-length placements along a sampled XYZ path. |
|
|
17
17
|
|
|
18
18
|
## Interfaces
|
|
@@ -33,4 +33,10 @@ Linear and grid spacing use millimetres; radial angles use degrees. Paths use ph
|
|
|
33
33
|
|
|
34
34
|
- [Primitive booleans and repeated placement](../../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
## Import
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import * as geometry from "@metamesh/modeling/geometry";
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -14,14 +14,9 @@ Dimensional shapes share object options, millimetre units, and explicit placemen
|
|
|
14
14
|
|
|
15
15
|
| API | Summary |
|
|
16
16
|
| --- | --- |
|
|
17
|
-
| [
|
|
18
|
-
| [ChamferedEdgeTreatment](../ChamferedEdgeTreatment.md) | A planar edge or corner chamfer with equal or independent surface setbacks. |
|
|
17
|
+
| [ChamferedEdgeTreatment](../ChamferedEdgeTreatment.md) | A straight transverse edge or corner bevel with equal or independent surface setbacks. |
|
|
19
18
|
| [CircularPrimitiveOptions](../CircularPrimitiveOptions.md) | Tessellation controls shared by circular primitives across Geometry entry points. |
|
|
20
19
|
| [RoundedEdgeTreatment](../RoundedEdgeTreatment.md) | A circular edge or corner roundover with explicit physical sampling. |
|
|
21
|
-
| [TorusOptions](../TorusOptions.md) | Dimensions and independent ring/profile tessellation for a torus around the Z axis. |
|
|
22
|
-
| [EndTreatments](../EndTreatments.md) | Independent inward finishing on primitive or source-corresponding straight extrusion ends. Zero amounts leave the end untreated, including when all ends are disabled. |
|
|
23
|
-
| [PrimitiveAttachment](../PrimitiveAttachment.md) | Anchor attachment shared by solid and filled-section factories. |
|
|
24
|
-
| [PrimitiveAttachmentOptions](../PrimitiveAttachmentOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
|
|
25
20
|
| [RadialSizingOptions](../RadialSizingOptions.md) | Nominal radial sizing shared by circular and regular polygon construction. |
|
|
26
21
|
| [SmoothEdgeTreatment](../SmoothEdgeTreatment.md) | A cubic corner transition with zero curvature at its straight tangent joins. |
|
|
27
22
|
| [ProfiledEdgeTreatment](../ProfiledEdgeTreatment.md) | A deliberately sampled, inward-only corner profile with exact polyline geometry. |
|
|
@@ -31,12 +26,12 @@ Dimensional shapes share object options, millimetre units, and explicit placemen
|
|
|
31
26
|
| API | Summary |
|
|
32
27
|
| --- | --- |
|
|
33
28
|
| [EdgeTreatment](../EdgeTreatment.md) | Uniform finishing vocabulary shared by applicable solid edges and profile corners. |
|
|
34
|
-
| [CylinderOptions](../CylinderOptions.md) | Dimensions, placement, independent end finishing, and tessellation for a Z-axis cylinder or frustum. |
|
|
35
|
-
| [SphereOptions](../SphereOptions.md) | Exactly one radius or diameter, placement, and tessellation for an origin-centered sphere. |
|
|
36
|
-
| [TubeOptions](../TubeOptions.md) | Dimensions, placement, and tessellation for a hollow Z-axis tube. |
|
|
37
29
|
| [RadialSizing](../RadialSizing.md) | Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces. |
|
|
38
|
-
| [BoxEdge](../BoxEdge.md) | Box edges use +Z top, +Y front and +X right; vertical names list front/back first. |
|
|
39
|
-
| [BoxEdgeSelection](../BoxEdgeSelection.md) | Named individual edges or top/bottom rims and all four vertical edges. |
|
|
40
|
-
| [BoxEdgeTreatments](../BoxEdgeTreatments.md) | Independent treatments for disjoint named edge selections; overlapping selections fail. |
|
|
41
30
|
|
|
42
|
-
|
|
31
|
+
## Import
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import * as geometry from "@metamesh/modeling/geometry";
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -21,13 +21,13 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
|
|
|
21
21
|
| [normalizeRegion](../normalizeRegion.md) | Validates a disjoint explicit region and returns immutable normalized data. Previously validated immutable results may be returned unchanged under the same tolerance policy. |
|
|
22
22
|
| [rectangleContour](../rectangleContour.md) | Creates an immutable sampled CCW rectangle boundary. |
|
|
23
23
|
| [regionArea](../regionArea.md) | Returns the total filled area of a normalized region in square millimetres. |
|
|
24
|
-
| [regionBounds](../regionBounds.md) | Returns finite axis-aligned bounds for a
|
|
24
|
+
| [regionBounds](../regionBounds.md) | Returns finite axis-aligned bounds for a nonempty region. |
|
|
25
25
|
| [rectangleProfile](../rectangleProfile.md) | Creates an identified rectangle whose edge/corner spans survive zero and saturated round radii. Outer winding is CCW. |
|
|
26
26
|
| [sampleSideProfile](../sampleSideProfile.md) | Samples 1–31 line/cubic segments into a deeply immutable open [radius,height] polyline. |
|
|
27
27
|
| [sampleContour](../sampleContour.md) | Samples 2–32 connected line/cubic segments into a simple, nonzero-area, immutable CCW XY loop. |
|
|
28
28
|
| [signedContourArea](../signedContourArea.md) | Returns the signed area of a non-duplicated loop; positive means CCW. |
|
|
29
29
|
| [transformRegionData](../transformRegionData.md) | Transforms serialized polygon data with reflection-safe winding, without an engine. Use Section.transform(placement) when authoring filled geometry; this utility serves pure data preparation. |
|
|
30
|
-
| [triangulateContour](../triangulateContour.md) |
|
|
30
|
+
| [triangulateContour](../triangulateContour.md) | Triangulates one simple loop into indices of its normalized CCW vertex order. |
|
|
31
31
|
| [closeToAxis](../closeToAxis.md) | Closes an open, strictly upward [radius, height] side outline to the radius-zero axis. |
|
|
32
32
|
|
|
33
33
|
## Interfaces
|
|
@@ -60,7 +60,7 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
|
|
|
60
60
|
| [CircleContourOptions](../CircleContourOptions.md) | Circular profile dimensions with exactly one radius or diameter and explicit sampling. |
|
|
61
61
|
| [EllipseContourOptions](../EllipseContourOptions.md) | Ellipse dimensions with exactly one XY radii or full-size tuple and explicit sampling. |
|
|
62
62
|
| [Contour](../Contour.md) | A sampled closed two-dimensional boundary whose first point is not repeated at the end. |
|
|
63
|
-
| [CorrespondingProfileStation](../CorrespondingProfileStation.md) | One already matched profile at
|
|
63
|
+
| [CorrespondingProfileStation](../CorrespondingProfileStation.md) | One already matched profile at a horizontal height or explicit affine transform. |
|
|
64
64
|
| [ContourSegment](../ContourSegment.md) | Straight or cubic Bézier segment in one closed planar contour. |
|
|
65
65
|
| [SideProfileSegment](../SideProfileSegment.md) | One straight or cubic segment of an open, upward-progressing radius/height outline. |
|
|
66
66
|
| [ProfileSpan2](../ProfileSpan2.md) | An identified line, circular arc, or cubic Bézier between corresponding landmarks. |
|
|
@@ -78,6 +78,12 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
|
|
|
78
78
|
|
|
79
79
|
## Guides
|
|
80
80
|
|
|
81
|
-
- [Choose a geometry representation](../../../guides/geometry-values.md#
|
|
81
|
+
- [Choose a geometry representation](../../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
## Import
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
import * as geometry from "@metamesh/modeling/geometry";
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -35,6 +35,7 @@ Algorithms report limit failures explicitly. `GeometryError` provides structured
|
|
|
35
35
|
| [GeometryToleranceOptions](../GeometryToleranceOptions.md) | Optional overrides for MetaMesh's geometry comparison policy. |
|
|
36
36
|
| [ModelingLimits](../ModelingLimits.md) | Aggregate manufacturing output ceilings selected by a trusted host. |
|
|
37
37
|
| [ResolvedGeometryTolerance](../ResolvedGeometryTolerance.md) | Fully resolved tolerances for one operation and model scale. |
|
|
38
|
+
| [ResolvedGeometryResolution](../ResolvedGeometryResolution.md) | Fully populated physical tessellation policy used by adaptive samplers. |
|
|
38
39
|
|
|
39
40
|
## Type aliases
|
|
40
41
|
|
|
@@ -49,4 +50,10 @@ Algorithms report limit failures explicitly. `GeometryError` provides structured
|
|
|
49
50
|
| --- | --- |
|
|
50
51
|
| [DEFAULT_GEOMETRY_TOLERANCE](../DEFAULT_GEOMETRY_TOLERANCE.md) | Default absolute, relative, and angular tolerances for millimetre-scale models. |
|
|
51
52
|
|
|
52
|
-
|
|
53
|
+
## Import
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
import * as geometry from "@metamesh/modeling/geometry";
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Vectors, transforms, and attachment
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Calculate with immutable values and place geometry using frames and anchors.
|
|
4
4
|
|
|
5
|
-
Use
|
|
5
|
+
Use vector2/vector3 and transform2/transform3 for immutable authoring. Vector operands accept values or coordinate tuples; calculations return values and measurements return numbers. Bounds extrema and placement algorithms also return fluent values.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- **Order and units:** rotations use degrees and optional `{ pivot }` points in world coordinates. Calls and `andThen()` composition apply in execution order.
|
|
9
|
-
- **Transformed values:** points include translation; directions exclude it and retain scale; normals use inverse-transpose normalization. Shape methods and path helpers accept matching transforms.
|
|
10
|
-
- **Interchange:** `toData()` returns `Vector2Data`/`Vector3Data` tuples or `Transform2Data`/`Transform3Data` matrices. `to3D()`/`to2D()` convert dimensions explicitly; XY restriction requires a preserved plane.
|
|
11
|
-
- **Low-level work:** tuple kernels avoid fluent object allocation in hot loops. Matrix constructors support interoperability. `rotationTransform3` requires an explicit degrees or radians object; `composeTransform3(after, before)` applies `before` first.
|
|
7
|
+
Calls and andThen composition apply in written order. Angles use degrees; optional pivot points use world coordinates. applyPoint includes translation, applyDirection excludes it and retains scale, and applyNormal applies inverse-transpose normalization.
|
|
12
8
|
|
|
13
|
-
|
|
9
|
+
frame3 and anchor3 create validated frozen plain descriptors. Pass a Frame3 directly wherever Transform3Input is accepted, or call transform3(frame) for affine methods. attachmentTransform3 returns a reusable Transform3.
|
|
10
|
+
|
|
11
|
+
Use /geometry/math for tuple arithmetic and matrix kernels.
|
|
14
12
|
|
|
15
13
|
## Functions
|
|
16
14
|
|
|
@@ -20,22 +18,11 @@ Attachment matches source and target frames. You choose physical clearance.
|
|
|
20
18
|
| [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. |
|
|
21
19
|
| [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. |
|
|
22
20
|
| [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. |
|
|
23
|
-
| [applyTransformDirection3](../applyTransformDirection3.md) | Applies only the linear component of an affine transform to a direction. |
|
|
24
|
-
| [applyTransformPoint3](../applyTransformPoint3.md) | Applies an affine transform to a point, including translation. |
|
|
25
21
|
| [attachmentTransform3](../attachmentTransform3.md) | Builds the transform that moves a source anchor onto a target anchor. |
|
|
26
22
|
| [boxAnchor3](../boxAnchor3.md) | Creates an outward face-center anchor using the same local origin convention as box(). |
|
|
27
|
-
| [composeTransform3](../composeTransform3.md) | Composes two affine transforms without mutating either matrix. |
|
|
28
23
|
| [anchor3](../anchor3.md) | Constructs a normalized immutable attachment anchor. |
|
|
29
24
|
| [cylinderAnchor3](../cylinderAnchor3.md) | Creates a cap-center or radial-side anchor using cylinder()'s construction origin. |
|
|
30
|
-
| [
|
|
31
|
-
| [frameTransform3](../frameTransform3.md) | Converts a right-handed orthonormal frame into a local-to-world transform. |
|
|
32
|
-
| [inverseTransform3](../inverseTransform3.md) | Inverts a finite, non-singular affine transform. |
|
|
33
|
-
| [rotationTransform3](../rotationTransform3.md) | Creates a right-handed axis-angle rotation transform. |
|
|
34
|
-
| [scaleTransform3](../scaleTransform3.md) | Creates an immutable axis-aligned scale transform. |
|
|
35
|
-
| [transformDeterminant3](../transformDeterminant3.md) | Returns the determinant of a transform's linear 3x3 component. |
|
|
36
|
-
| [translationTransform3](../translationTransform3.md) | Creates an immutable translation transform. |
|
|
37
|
-
| [validateRigidTransform3](../validateRigidTransform3.md) | Validates a proper rigid transform: finite translation and a right-handed orthonormal rotation. Scale, shear, reflection, and perspective are rejected within the default angular tolerance. Returns the original row-major 4x4 matrix without copying or normalizing it. |
|
|
38
|
-
| [validateTransform3](../validateTransform3.md) | Validates that a transform is finite, affine, and non-singular. |
|
|
25
|
+
| [frame3](../frame3.md) | Creates a copied, deeply frozen plain coordinate frame in world space. Axes must be right-handed, unit length, and mutually orthogonal. Only accepted numerical roundoff is normalized; scale, shear, reflection, and materially invalid bases reject. Frames are placement inputs; use transform3(frame) when affine methods are needed. |
|
|
39
26
|
|
|
40
27
|
## Interfaces
|
|
41
28
|
|
|
@@ -51,16 +38,18 @@ Attachment matches source and target frames. You choose physical clearance.
|
|
|
51
38
|
| [AttachOptions](../AttachOptions.md) | Options controlling how one anchor is attached to another. |
|
|
52
39
|
| [BoxAnchorOptions](../BoxAnchorOptions.md) | Box dimensions and construction origin for one named face anchor. |
|
|
53
40
|
| [CylinderAnchorOptions](../CylinderAnchorOptions.md) | Cylinder dimensions and construction origin for one named face anchor. |
|
|
41
|
+
| [Frame3](../Frame3-type.md) | A right-handed orthonormal coordinate frame expressed in world coordinates. |
|
|
42
|
+
| [Frame3Options](../Frame3Options.md) | An origin in millimetres and a right-handed orthonormal basis in world coordinates. |
|
|
43
|
+
| [Anchor3Options](../Anchor3Options.md) | Attachment position in millimetres and orientation guides in local coordinates. |
|
|
54
44
|
|
|
55
45
|
## Type aliases
|
|
56
46
|
|
|
57
47
|
| API | Summary |
|
|
58
48
|
| --- | --- |
|
|
59
49
|
| [Transform2Input](../Transform2Input.md) | An immutable XY transform or its canonical row-major matrix for interchange. |
|
|
60
|
-
| [Transform3Input](../Transform3Input.md) | An immutable XYZ transform
|
|
50
|
+
| [Transform3Input](../Transform3Input.md) | An immutable XYZ transform, canonical row-major matrix, or right-handed orthonormal frame. |
|
|
61
51
|
| [Vector2Input](../Vector2Input.md) | An XY tuple or immutable fluent vector accepted by vector operations. |
|
|
62
52
|
| [Vector3Input](../Vector3Input.md) | An XYZ tuple or immutable fluent vector accepted by vector operations. |
|
|
63
|
-
| [AxisAngleRotation3](../AxisAngleRotation3.md) | One explicitly unit-labelled right-handed axis-angle rotation. |
|
|
64
53
|
| [BoxAnchorFace](../BoxAnchorFace.md) | Named face on an axis-aligned box. |
|
|
65
54
|
| [CylinderAnchorFace](../CylinderAnchorFace.md) | Named face on a cylinder parallel to +Z. |
|
|
66
55
|
| [Transform2Data](../Transform2Data.md) | A row-major affine 3x3 XY matrix applied to column vectors. Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`. |
|
|
@@ -68,35 +57,15 @@ Attachment matches source and target frames. You choose physical clearance.
|
|
|
68
57
|
| [Vector2Data](../Vector2Data.md) | A two-dimensional Cartesian vector or point. |
|
|
69
58
|
| [Vector3Data](../Vector3Data.md) | A three-dimensional Cartesian vector or point. |
|
|
70
59
|
|
|
71
|
-
## Values
|
|
72
|
-
|
|
73
|
-
| API | Summary |
|
|
74
|
-
| --- | --- |
|
|
75
|
-
| [add2](../add2.md) | Adds two finite XY vectors component-wise. |
|
|
76
|
-
| [add3](../add3.md) | Adds two finite XYZ vectors component-wise. |
|
|
77
|
-
| [cross3](../cross3.md) | Returns the right-handed cross product. |
|
|
78
|
-
| [cross2](../cross2.md) | Returns the signed scalar cross product; positive means `b` is counter-clockwise from `a`. |
|
|
79
|
-
| [distance2](../distance2.md) | Returns Euclidean point distance without allocating an intermediate difference vector. |
|
|
80
|
-
| [distance3](../distance3.md) | Returns Euclidean point distance without allocating an intermediate difference vector. |
|
|
81
|
-
| [dot3](../dot3.md) | Returns the scalar dot product. |
|
|
82
|
-
| [dot2](../dot2.md) | Returns the scalar dot product. |
|
|
83
|
-
| [IDENTITY_TRANSFORM3](../IDENTITY_TRANSFORM3.md) | Identity transform, safe to share because it is frozen. |
|
|
84
|
-
| [length3](../length3.md) | Returns Euclidean vector length in the vector's coordinate units. |
|
|
85
|
-
| [length2](../length2.md) | Returns Euclidean vector length in the vector's coordinate units. |
|
|
86
|
-
| [lerp3](../lerp3.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
|
|
87
|
-
| [lerp2](../lerp2.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
|
|
88
|
-
| [normalize3](../normalize3.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). |
|
|
89
|
-
| [normalize2](../normalize2.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). |
|
|
90
|
-
| [projectOntoPlane3](../projectOntoPlane3.md) | Removes the component parallel to a normalized plane normal. |
|
|
91
|
-
| [rotate2](../rotate2.md) | Rotates a finite vector counter-clockwise in XY by `degrees` about the origin. Throws `NON_FINITE_VALUE` for nonfinite coordinates, angles, or derived coordinates. |
|
|
92
|
-
| [scale3](../scale3.md) | Multiplies a vector by a dimensionless scalar. |
|
|
93
|
-
| [scale2](../scale2.md) | Multiplies a vector by a dimensionless scalar. |
|
|
94
|
-
| [subtract3](../subtract3.md) | Subtracts `b` from `a`. |
|
|
95
|
-
| [subtract2](../subtract2.md) | Subtracts `b` from `a` component-wise. |
|
|
96
|
-
|
|
97
60
|
## Guides
|
|
98
61
|
|
|
99
62
|
- [Reusable transforms and vector math](../../../guides/transforms-and-placement.md#reuse-a-transform-across-shapes-and-coordinates)
|
|
100
|
-
- [Fluent values and tuple kernels](../../../guides/geometry-values.md#
|
|
63
|
+
- [Fluent values and tuple kernels](../../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
|
|
64
|
+
|
|
65
|
+
## Import
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
import * as geometry from "@metamesh/modeling/geometry";
|
|
69
|
+
```
|
|
101
70
|
|
|
102
|
-
Package: `@metamesh/modeling@0.
|
|
71
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -23,10 +23,7 @@ Font preparation belongs to the optional text entry point, outside pure parsing
|
|
|
23
23
|
| [SvgImportOptions](../SvgImportOptions.md) | Sampling controls for deterministic SVG-to-region conversion. |
|
|
24
24
|
| [SvgRegionPreflight](../SvgRegionPreflight.md) | Normalized sampled SVG region plus bounded source, geometry, and safe-repair diagnostics. |
|
|
25
25
|
| [SvgRegionPreflightRepairs](../SvgRegionPreflightRepairs.md) | Visible, appearance-preserving cleanup counters from bounded SVG import. |
|
|
26
|
-
| [VectorTextArcBaseline](../VectorTextArcBaseline.md) | A circular baseline centered at the XY origin, with rigid shaped glyph groups. |
|
|
27
26
|
| [VectorTextLayout](../VectorTextLayout.md) | Immutable vector layout with no browser, font parser, or kernel ownership. |
|
|
28
|
-
| [VectorTextLayoutOptions](../VectorTextLayoutOptions.md) | Text bounded to 512 UTF-16 units: horizontal lines or one circular line without wrapping. |
|
|
29
|
-
| [VectorTextOptions](../VectorTextOptions.md) | Shaping controls for a prepared exact font face; all lengths are in millimetres. |
|
|
30
27
|
| [SvgRegionPreflightGeometryMetrics](../SvgRegionPreflightGeometryMetrics.md) | Physical and final-topology facts for a normalized imported SVG region. |
|
|
31
28
|
| [SvgRegionPreflightSourceMetrics](../SvgRegionPreflightSourceMetrics.md) | Bounded source-complexity facts collected while parsing one SVG document. |
|
|
32
29
|
| [VectorTextMetrics](../VectorTextMetrics.md) | Text measurements from the same immutable layout that supplies geometry and SVG outlines. |
|
|
@@ -43,4 +40,10 @@ Font preparation belongs to the optional text entry point, outside pure parsing
|
|
|
43
40
|
|
|
44
41
|
- [SVG preflight work and guarantees](../../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
45
42
|
|
|
46
|
-
|
|
43
|
+
## Import
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
import * as geometry from "@metamesh/modeling/geometry";
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -32,12 +32,12 @@ circleContour({ diameter: 20, segments: 32 });
|
|
|
32
32
|
|
|
33
33
|
## Guides
|
|
34
34
|
|
|
35
|
-
- [Choose a geometry representation](../../guides/geometry-values.md#
|
|
35
|
+
- [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## Import
|
|
38
38
|
|
|
39
39
|
```ts
|
|
40
40
|
import { circleContour } from "@metamesh/modeling/geometry";
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
Package: `@metamesh/modeling@0.
|
|
43
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -17,12 +17,16 @@ This is a solid-body closure, not a hollow-wall or mounting-bore construction.
|
|
|
17
17
|
|
|
18
18
|
**`side`** · readonly [`Vector2Data`](Vector2Data.md)[] · Required
|
|
19
19
|
|
|
20
|
+
[radius, height] points in millimetres, with increasing heights.
|
|
21
|
+
|
|
20
22
|
|
|
21
23
|
|
|
22
24
|
<a id="limits"></a>
|
|
23
25
|
|
|
24
26
|
**`limits`** · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
|
|
25
27
|
|
|
28
|
+
Point limits, including any added axis endpoints.
|
|
29
|
+
|
|
26
30
|
|
|
27
31
|
|
|
28
32
|
## Returns
|
|
@@ -38,12 +42,12 @@ This is a solid-body closure, not a hollow-wall or mounting-bore construction.
|
|
|
38
42
|
|
|
39
43
|
## Guides
|
|
40
44
|
|
|
41
|
-
- [Choose a geometry representation](../../guides/geometry-values.md#
|
|
45
|
+
- [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
|
|
42
46
|
|
|
43
|
-
##
|
|
47
|
+
## Import
|
|
44
48
|
|
|
45
49
|
```ts
|
|
46
50
|
import { closeToAxis } from "@metamesh/modeling/geometry";
|
|
47
51
|
```
|
|
48
52
|
|
|
49
|
-
Package: `@metamesh/modeling@0.
|
|
53
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -9,9 +9,6 @@ Builds rotation-minimizing frames for a non-duplicated closed path.
|
|
|
9
9
|
Centered cyclic tangents are parallel-transported around the loop. Transporting the last
|
|
10
10
|
normal back to the first tangent measures seam holonomy; distributing that residual rotation
|
|
11
11
|
uniformly over all path intervals avoids a visible seam or accumulated frame flip.
|
|
12
|
-
The maxPathPoints ceiling (default 100000) bounds path points and frames.
|
|
13
|
-
Requires closed path values; raw tuples are interpreted as closed and must omit their seam point.
|
|
14
|
-
Invalid paths throw GeometryError.
|
|
15
12
|
Nonfinite initial normals reject; finite parallel preferences select a canonical fallback.
|
|
16
13
|
|
|
17
14
|
## Parameters
|
|
@@ -20,18 +17,24 @@ Nonfinite initial normals reject; finite parallel preferences select a canonical
|
|
|
20
17
|
|
|
21
18
|
**`input`** · [`Path3Input`](Path3Input.md) · Required
|
|
22
19
|
|
|
20
|
+
Closed XYZ path or points in millimetres, with no repeated seam.
|
|
21
|
+
|
|
23
22
|
|
|
24
23
|
|
|
25
24
|
<a id="initialnormal"></a>
|
|
26
25
|
|
|
27
26
|
**`initialNormal`** · [`Vector3Input`](Vector3Input.md) · Optional
|
|
28
27
|
|
|
28
|
+
Preferred profile X direction at the seam.
|
|
29
|
+
|
|
29
30
|
|
|
30
31
|
|
|
31
32
|
<a id="limits"></a>
|
|
32
33
|
|
|
33
34
|
**`limits`** · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
|
|
34
35
|
|
|
36
|
+
Limits on input points and output frames.
|
|
37
|
+
|
|
35
38
|
|
|
36
39
|
|
|
37
40
|
## Returns
|
|
@@ -48,12 +51,12 @@ readonly [`PathFrame`](PathFrame.md)[]
|
|
|
48
51
|
|
|
49
52
|
## Guides
|
|
50
53
|
|
|
51
|
-
- [Path queries and closure-preserving interchange](../../guides/geometry-values.md#
|
|
54
|
+
- [Path queries and closure-preserving interchange](../../guides/geometry-values.md#keep-path-closure-and-traversal)
|
|
52
55
|
|
|
53
|
-
##
|
|
56
|
+
## Import
|
|
54
57
|
|
|
55
58
|
```ts
|
|
56
59
|
import { computeClosedParallelTransportFrames } from "@metamesh/modeling/geometry";
|
|
57
60
|
```
|
|
58
61
|
|
|
59
|
-
Package: `@metamesh/modeling@0.
|
|
62
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -7,9 +7,8 @@ Builds rotation-minimizing frames by parallel-transporting the previous normal.
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
This avoids the sudden profile flips produced by picking a fresh up-vector per ring.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Nonfinite normals and guide results reject. A finite initial guide parallel to the tangent selects a canonical fallback.
|
|
10
|
+
Nonfinite guides and unusable path tangents throw GeometryError. A finite initial guide
|
|
11
|
+
parallel to the tangent selects a canonical fallback.
|
|
13
12
|
|
|
14
13
|
## Parameters
|
|
15
14
|
|
|
@@ -17,24 +16,32 @@ Nonfinite normals and guide results reject. A finite initial guide parallel to t
|
|
|
17
16
|
|
|
18
17
|
**`input`** · [`Path3Input`](Path3Input.md) · Required
|
|
19
18
|
|
|
19
|
+
Open XYZ path or points in millimetres; at least two points.
|
|
20
|
+
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
<a id="initialnormal"></a>
|
|
23
24
|
|
|
24
25
|
**`initialNormal`** · [`Vector3Input`](Vector3Input.md) · Optional
|
|
25
26
|
|
|
27
|
+
Preferred starting X direction; the first normalGuide result wins.
|
|
28
|
+
|
|
26
29
|
|
|
27
30
|
|
|
28
31
|
<a id="normalguide"></a>
|
|
29
32
|
|
|
30
33
|
**`normalGuide`** · [`PathNormalGuide`](PathNormalGuide.md) · Optional
|
|
31
34
|
|
|
35
|
+
Profile X guide at each point; its sign follows the transported normal.
|
|
36
|
+
|
|
32
37
|
|
|
33
38
|
|
|
34
39
|
<a id="limits"></a>
|
|
35
40
|
|
|
36
41
|
**`limits`** · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
|
|
37
42
|
|
|
43
|
+
Point limits, checked before creating frames or calling guides.
|
|
44
|
+
|
|
38
45
|
|
|
39
46
|
|
|
40
47
|
## Returns
|
|
@@ -52,12 +59,12 @@ readonly [`PathFrame`](PathFrame.md)[]
|
|
|
52
59
|
|
|
53
60
|
## Guides
|
|
54
61
|
|
|
55
|
-
- [Path queries and closure-preserving interchange](../../guides/geometry-values.md#
|
|
62
|
+
- [Path queries and closure-preserving interchange](../../guides/geometry-values.md#keep-path-closure-and-traversal)
|
|
56
63
|
|
|
57
|
-
##
|
|
64
|
+
## Import
|
|
58
65
|
|
|
59
66
|
```ts
|
|
60
67
|
import { computeParallelTransportFrames } from "@metamesh/modeling/geometry";
|
|
61
68
|
```
|
|
62
69
|
|
|
63
|
-
Package: `@metamesh/modeling@0.
|
|
70
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -12,12 +12,16 @@ Returns true when a point lies inside or on the boundary of a loop.
|
|
|
12
12
|
|
|
13
13
|
**`loop`** · [`Contour`](Contour.md) · Required
|
|
14
14
|
|
|
15
|
+
Simple XY loop with either winding.
|
|
16
|
+
|
|
15
17
|
|
|
16
18
|
|
|
17
19
|
<a id="point"></a>
|
|
18
20
|
|
|
19
21
|
**`point`** · [`Vector2Data`](Vector2Data.md) · Required
|
|
20
22
|
|
|
23
|
+
Query in the loop's coordinate system.
|
|
24
|
+
|
|
21
25
|
|
|
22
26
|
|
|
23
27
|
## Returns
|
|
@@ -32,12 +36,12 @@ Returns true when a point lies inside or on the boundary of a loop.
|
|
|
32
36
|
|
|
33
37
|
## Guides
|
|
34
38
|
|
|
35
|
-
- [Choose a geometry representation](../../guides/geometry-values.md#
|
|
39
|
+
- [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
|
|
36
40
|
|
|
37
|
-
##
|
|
41
|
+
## Import
|
|
38
42
|
|
|
39
43
|
```ts
|
|
40
44
|
import { contourContainsPoint } from "@metamesh/modeling/geometry";
|
|
41
45
|
```
|
|
42
46
|
|
|
43
|
-
Package: `@metamesh/modeling@0.
|
|
47
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -26,7 +26,7 @@ Creates a cap-center or radial-side anchor using cylinder()'s construction origi
|
|
|
26
26
|
|
|
27
27
|
- [`angle`](CylinderAnchorOptions.md#angle) · `number` · Optional
|
|
28
28
|
|
|
29
|
-
Side angle
|
|
29
|
+
Side angle counterclockwise from +X, in degrees; defaults to zero.
|
|
30
30
|
|
|
31
31
|
- [`center`](CylinderAnchorOptions.md#center) · `boolean` · Optional
|
|
32
32
|
|
|
@@ -44,7 +44,7 @@ Creates a cap-center or radial-side anchor using cylinder()'s construction origi
|
|
|
44
44
|
|
|
45
45
|
## Remarks
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
Cylinders use the local Z axis. Side angle uses degrees;
|
|
48
48
|
origin applies an explicit translation, and arbitrary component transforms remain explicit.
|
|
49
49
|
|
|
50
50
|
|
|
@@ -56,12 +56,12 @@ origin applies an explicit translation, and arbitrary component transforms remai
|
|
|
56
56
|
## Guides
|
|
57
57
|
|
|
58
58
|
- [Reusable transforms and vector math](../../guides/transforms-and-placement.md#reuse-a-transform-across-shapes-and-coordinates)
|
|
59
|
-
- [Fluent values and tuple kernels](../../guides/geometry-values.md#
|
|
59
|
+
- [Fluent values and tuple kernels](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
|
|
60
60
|
|
|
61
|
-
##
|
|
61
|
+
## Import
|
|
62
62
|
|
|
63
63
|
```ts
|
|
64
64
|
import { cylinderAnchor3 } from "@metamesh/modeling/geometry";
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
Package: `@metamesh/modeling@0.
|
|
67
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -13,12 +13,12 @@ Conservative defaults; trusted callers can supply larger explicit ceilings.
|
|
|
13
13
|
|
|
14
14
|
## Guides
|
|
15
15
|
|
|
16
|
-
- [Path queries and closure-preserving interchange](../../guides/geometry-values.md#
|
|
16
|
+
- [Path queries and closure-preserving interchange](../../guides/geometry-values.md#keep-path-closure-and-traversal)
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## Import
|
|
19
19
|
|
|
20
20
|
```ts
|
|
21
21
|
import { defaultGeometrySamplingLimits } from "@metamesh/modeling/geometry";
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
Package: `@metamesh/modeling@0.
|
|
24
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
# distributeAlongPath
|
|
2
2
|
|
|
3
|
-
Places an exact item count at equal arc-length intervals along a sampled path.
|
|
3
|
+
Places an exact item count at equal arc-length intervals along a sampled XYZ path.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**distributeAlongPath**(`input`: [`Path3Input`](Path3Input.md), `count`: `number`, `closed?`: `boolean`, `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>): readonly [`PathPlacement`](PathPlacement.md)[]
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
limited by maxPathPoints (default 100000); exact counts exceeding that ceiling reject before length calculation.
|
|
13
|
-
Closure defaults to the path value's metadata, or false for tuples. An explicit conflicting closure rejects.
|
|
14
|
-
Invalid arguments and degenerate paths throw GeometryError.
|
|
9
|
+
Open paths retain both endpoints when count exceeds one; closed paths omit the seam endpoint.
|
|
10
|
+
Zero-length edges are skipped. Invalid counts, repeated closed seams, nonfinite lengths,
|
|
11
|
+
zero-length paths, and exhausted budgets throw GeometryError.
|
|
15
12
|
|
|
16
13
|
## Parameters
|
|
17
14
|
|
|
@@ -19,24 +16,32 @@ Invalid arguments and degenerate paths throw GeometryError.
|
|
|
19
16
|
|
|
20
17
|
**`input`** · [`Path3Input`](Path3Input.md) · Required
|
|
21
18
|
|
|
19
|
+
XYZ path or points in millimetres.
|
|
20
|
+
|
|
22
21
|
|
|
23
22
|
|
|
24
23
|
<a id="count"></a>
|
|
25
24
|
|
|
26
25
|
**`count`** · `number` · Required
|
|
27
26
|
|
|
27
|
+
Positive placement count; one selects the path start.
|
|
28
|
+
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
<a id="closed"></a>
|
|
31
32
|
|
|
32
33
|
**`closed`** · `boolean` · Optional
|
|
33
34
|
|
|
35
|
+
Raw-point closure, false by default; must match a path value.
|
|
36
|
+
|
|
34
37
|
|
|
35
38
|
|
|
36
39
|
<a id="limits"></a>
|
|
37
40
|
|
|
38
41
|
**`limits`** · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
|
|
39
42
|
|
|
43
|
+
Limits on input points and output placements.
|
|
44
|
+
|
|
40
45
|
|
|
41
46
|
|
|
42
47
|
## Returns
|
|
@@ -52,12 +57,12 @@ readonly [`PathPlacement`](PathPlacement.md)[]
|
|
|
52
57
|
|
|
53
58
|
## Guides
|
|
54
59
|
|
|
55
|
-
- [Path queries and closure-preserving interchange](../../guides/geometry-values.md#
|
|
60
|
+
- [Path queries and closure-preserving interchange](../../guides/geometry-values.md#keep-path-closure-and-traversal)
|
|
56
61
|
|
|
57
|
-
##
|
|
62
|
+
## Import
|
|
58
63
|
|
|
59
64
|
```ts
|
|
60
65
|
import { distributeAlongPath } from "@metamesh/modeling/geometry";
|
|
61
66
|
```
|
|
62
67
|
|
|
63
|
-
Package: `@metamesh/modeling@0.
|
|
68
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -32,12 +32,12 @@ ellipseContour({ size: [30, 20] });
|
|
|
32
32
|
|
|
33
33
|
## Guides
|
|
34
34
|
|
|
35
|
-
- [Choose a geometry representation](../../guides/geometry-values.md#
|
|
35
|
+
- [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## Import
|
|
38
38
|
|
|
39
39
|
```ts
|
|
40
40
|
import { ellipseContour } from "@metamesh/modeling/geometry";
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
Package: `@metamesh/modeling@0.
|
|
43
|
+
Package: `@metamesh/modeling@0.20.0`.
|