@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
|
@@ -12,6 +12,8 @@ Returns the signed area of a non-duplicated loop; positive means CCW.
|
|
|
12
12
|
|
|
13
13
|
**`loop`** · [`Contour`](Contour.md) · Required
|
|
14
14
|
|
|
15
|
+
XY loop in millimetres, with implicit closure; not validated.
|
|
16
|
+
|
|
15
17
|
|
|
16
18
|
|
|
17
19
|
## Returns
|
|
@@ -25,12 +27,12 @@ Returns the signed area of a non-duplicated loop; positive means CCW.
|
|
|
25
27
|
|
|
26
28
|
## Guides
|
|
27
29
|
|
|
28
|
-
- [Choose a geometry representation](../../guides/geometry-values.md#
|
|
30
|
+
- [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
|
|
29
31
|
|
|
30
|
-
##
|
|
32
|
+
## Import
|
|
31
33
|
|
|
32
34
|
```ts
|
|
33
35
|
import { signedContourArea } from "@metamesh/modeling/geometry";
|
|
34
36
|
```
|
|
35
37
|
|
|
36
|
-
Package: `@metamesh/modeling@0.
|
|
38
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# spline2
|
|
2
|
+
|
|
3
|
+
Samples an immutable XY centripetal Catmull–Rom path through every waypoint in traversal order. Open endpoints use one-sided secants; closed paths are periodic and omit their repeated seam. Adjacent duplicate waypoints reject. The default physical policy bounds each cubic control hull; segmentsPerSpan instead selects exact uniform parameters per span. Sampling never coarsens to fit maxPathPoints. Invalid topology, nonfinite arithmetic, and exhausted budgets throw GeometryError.
|
|
4
|
+
|
|
5
|
+
**spline2**(`input`: [`Path2Input`](Path2Input.md), `options?`: [`SplineOptions`](SplineOptions.md)): [`Path2`](Path2-type.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Example
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
const route = spline2([[0, 0], [10, 8], [25, 0]], { resolution: { maxChordError: 0.02 } });
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
<a id="input"></a>
|
|
18
|
+
|
|
19
|
+
**`input`** · [`Path2Input`](Path2Input.md) · Required
|
|
20
|
+
|
|
21
|
+
XY waypoints in millimetres; path values retain closure.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
<a id="options"></a>
|
|
26
|
+
|
|
27
|
+
**`options`** · [`SplineOptions`](SplineOptions.md) · Optional
|
|
28
|
+
|
|
29
|
+
- [`closed`](SplineOptions.md#closed) · `boolean` · Optional
|
|
30
|
+
|
|
31
|
+
Closure defaults to path metadata or false for tuples. Closed inputs omit the repeated seam.
|
|
32
|
+
|
|
33
|
+
- [`segmentsPerSpan`](SplineOptions.md#segmentsperspan) · `number` · Optional
|
|
34
|
+
|
|
35
|
+
Exact parameter intervals per waypoint span; overrides physical sampling. Must be a positive safe integer.
|
|
36
|
+
|
|
37
|
+
- [`resolution`](SplineOptions.md#resolution) · [`GeometryResolution`](GeometryResolution.md) · Optional
|
|
38
|
+
|
|
39
|
+
Millimetre chord-error and maximum-segment-length policy, applied to every cubic control hull.
|
|
40
|
+
|
|
41
|
+
- [`limits`](SplineOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
|
|
42
|
+
|
|
43
|
+
Input and aggregate output ceilings; maxPathPoints defaults to 100000.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
## Returns
|
|
48
|
+
|
|
49
|
+
[`Path2`](Path2-type.md)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## Related APIs
|
|
53
|
+
|
|
54
|
+
- [Path2](Path2-type.md)
|
|
55
|
+
- [Path2Input](Path2Input.md)
|
|
56
|
+
- [SplineOptions](SplineOptions.md)
|
|
57
|
+
|
|
58
|
+
## Guides
|
|
59
|
+
|
|
60
|
+
- [Path queries and closure-preserving interchange](../../guides/geometry-values.md#keep-path-closure-and-traversal)
|
|
61
|
+
|
|
62
|
+
## Import
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
import { spline2 } from "@metamesh/modeling/geometry";
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# spline3
|
|
2
|
+
|
|
3
|
+
Samples an immutable XYZ centripetal Catmull–Rom path with the same interpolation, seam, sampling, and ceiling rules as spline2.
|
|
4
|
+
|
|
5
|
+
**spline3**(`input`: [`Path3Input`](Path3Input.md), `options?`: [`SplineOptions`](SplineOptions.md)): [`Path3`](Path3-type.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Parameters
|
|
10
|
+
|
|
11
|
+
<a id="input"></a>
|
|
12
|
+
|
|
13
|
+
**`input`** · [`Path3Input`](Path3Input.md) · Required
|
|
14
|
+
|
|
15
|
+
XYZ waypoints in millimetres; path values retain closure.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
<a id="options"></a>
|
|
20
|
+
|
|
21
|
+
**`options`** · [`SplineOptions`](SplineOptions.md) · Optional
|
|
22
|
+
|
|
23
|
+
- [`closed`](SplineOptions.md#closed) · `boolean` · Optional
|
|
24
|
+
|
|
25
|
+
Closure defaults to path metadata or false for tuples. Closed inputs omit the repeated seam.
|
|
26
|
+
|
|
27
|
+
- [`segmentsPerSpan`](SplineOptions.md#segmentsperspan) · `number` · Optional
|
|
28
|
+
|
|
29
|
+
Exact parameter intervals per waypoint span; overrides physical sampling. Must be a positive safe integer.
|
|
30
|
+
|
|
31
|
+
- [`resolution`](SplineOptions.md#resolution) · [`GeometryResolution`](GeometryResolution.md) · Optional
|
|
32
|
+
|
|
33
|
+
Millimetre chord-error and maximum-segment-length policy, applied to every cubic control hull.
|
|
34
|
+
|
|
35
|
+
- [`limits`](SplineOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
|
|
36
|
+
|
|
37
|
+
Input and aggregate output ceilings; maxPathPoints defaults to 100000.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Returns
|
|
42
|
+
|
|
43
|
+
[`Path3`](Path3-type.md)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## Related APIs
|
|
47
|
+
|
|
48
|
+
- [Path3](Path3-type.md)
|
|
49
|
+
- [Path3Input](Path3Input.md)
|
|
50
|
+
- [SplineOptions](SplineOptions.md)
|
|
51
|
+
|
|
52
|
+
## Guides
|
|
53
|
+
|
|
54
|
+
- [Path queries and closure-preserving interchange](../../guides/geometry-values.md#keep-path-closure-and-traversal)
|
|
55
|
+
|
|
56
|
+
## Import
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
import { spline3 } from "@metamesh/modeling/geometry";
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -52,12 +52,12 @@ readonly [`Vector2Data`](Vector2Data.md)[]
|
|
|
52
52
|
|
|
53
53
|
## Guides
|
|
54
54
|
|
|
55
|
-
- [Choose a geometry representation](../../guides/geometry-values.md#
|
|
55
|
+
- [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
|
|
56
56
|
|
|
57
|
-
##
|
|
57
|
+
## Import
|
|
58
58
|
|
|
59
59
|
```ts
|
|
60
60
|
import { starContour } from "@metamesh/modeling/geometry";
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
Package: `@metamesh/modeling@0.
|
|
63
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -8,8 +8,9 @@ Converts a sampled millimetre path into the filled region covered by a centered
|
|
|
8
8
|
|
|
9
9
|
Closed paths omit a duplicated seam point. Zero-length sampled segments are ignored, while the
|
|
10
10
|
effective path must still contain visible length. Round caps and joins use deterministic physical
|
|
11
|
-
resolution.
|
|
12
|
-
|
|
11
|
+
resolution. Caps are tangent-aligned semicircles with `ceil(circularSegments / 2)` intervals,
|
|
12
|
+
following [resolveArcSegments](resolveArcSegments.md). Bevels fill the outer corner triangle; miters extend the
|
|
13
|
+
outer edges to their intersection, falling back to bevels above SVG's default miter limit of 4.
|
|
13
14
|
|
|
14
15
|
## Parameters
|
|
15
16
|
|
|
@@ -17,6 +18,8 @@ intersection, falling back to bevels above SVG's default miter limit of 4.
|
|
|
17
18
|
|
|
18
19
|
**`path`** · [`Path2Input`](Path2Input.md) · Required
|
|
19
20
|
|
|
21
|
+
Sampled XY path in millimetres; path values supply closure.
|
|
22
|
+
|
|
20
23
|
|
|
21
24
|
|
|
22
25
|
<a id="options"></a>
|
|
@@ -45,7 +48,7 @@ intersection, falling back to bevels above SVG's default miter limit of 4.
|
|
|
45
48
|
|
|
46
49
|
- [`resolution`](StrokeOptions.md#resolution) · [`GeometryResolution`](GeometryResolution.md) · Optional
|
|
47
50
|
|
|
48
|
-
Physical tessellation
|
|
51
|
+
Physical tessellation for round features; caps use tangent-aligned 180-degree arcs.
|
|
49
52
|
|
|
50
53
|
|
|
51
54
|
|
|
@@ -64,10 +67,10 @@ intersection, falling back to bevels above SVG's default miter limit of 4.
|
|
|
64
67
|
|
|
65
68
|
- [SVG preflight work and guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
66
69
|
|
|
67
|
-
##
|
|
70
|
+
## Import
|
|
68
71
|
|
|
69
72
|
```ts
|
|
70
73
|
import { strokeRegionData } from "@metamesh/modeling/geometry";
|
|
71
74
|
```
|
|
72
75
|
|
|
73
|
-
Package: `@metamesh/modeling@0.
|
|
76
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -25,6 +25,8 @@ Use `toData()` for frozen matrix interchange.
|
|
|
25
25
|
|
|
26
26
|
**`input`** · [`Transform2Input`](Transform2Input.md) · Optional
|
|
27
27
|
|
|
28
|
+
XY affine value or row-major 3x3 matrix; copied. Defaults to identity.
|
|
29
|
+
|
|
28
30
|
|
|
29
31
|
|
|
30
32
|
## Returns
|
|
@@ -40,16 +42,12 @@ Use `toData()` for frozen matrix interchange.
|
|
|
40
42
|
## Guides
|
|
41
43
|
|
|
42
44
|
- [Reusable transforms and vector math](../../guides/transforms-and-placement.md#reuse-a-transform-across-shapes-and-coordinates)
|
|
43
|
-
- [Fluent values and tuple kernels](../../guides/geometry-values.md#
|
|
44
|
-
|
|
45
|
-
## Supported imports
|
|
45
|
+
- [Fluent values and tuple kernels](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
import { transform2 } from "@metamesh/modeling";
|
|
49
|
-
```
|
|
47
|
+
## Import
|
|
50
48
|
|
|
51
49
|
```ts
|
|
52
50
|
import { transform2 } from "@metamesh/modeling/geometry";
|
|
53
51
|
```
|
|
54
52
|
|
|
55
|
-
Package: `@metamesh/modeling@0.
|
|
53
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -13,13 +13,28 @@ const placement = transform3().rotate([0, 0, 90]).translate([10, 0, 0]);
|
|
|
13
13
|
placement.applyPoint([1, 0, 0]).toData(); // approximately [10, 1, 0]
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
## Example: Convert a coordinate frame to an affine value
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
const local = frame3({
|
|
20
|
+
origin: [10, 0, 0],
|
|
21
|
+
xAxis: [0, 1, 0],
|
|
22
|
+
yAxis: [-1, 0, 0],
|
|
23
|
+
zAxis: [0, 0, 1],
|
|
24
|
+
});
|
|
25
|
+
const placement = transform3(local);
|
|
26
|
+
placement.applyPoint([2, 0, 0]).toData(); // [10, 2, 0]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Values, matrices, and frames are copied and validated.
|
|
17
30
|
Calls apply in written order; rotations use degrees and pivots use current world coordinates.
|
|
18
31
|
Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError.
|
|
19
|
-
|
|
32
|
+
A frame supplies its origin in millimetres and right-handed orthonormal axes as local-to-world
|
|
33
|
+
columns. Invalid axes reject; unit-length roundoff is normalized within geometry tolerance.
|
|
20
34
|
|
|
21
35
|
Use `toData()` for frozen matrix interchange.
|
|
22
|
-
[
|
|
36
|
+
[multiplyTransform3](../math/multiplyTransform3.md) multiplies left and right matrices;
|
|
37
|
+
the right factor acts first on column vectors.
|
|
23
38
|
|
|
24
39
|
## Parameters
|
|
25
40
|
|
|
@@ -27,6 +42,8 @@ Use `toData()` for frozen matrix interchange.
|
|
|
27
42
|
|
|
28
43
|
**`input`** · [`Transform3Input`](Transform3Input.md) · Optional
|
|
29
44
|
|
|
45
|
+
XYZ affine value, row-major 4x4 matrix, or frame; copied. Defaults to identity.
|
|
46
|
+
|
|
30
47
|
|
|
31
48
|
|
|
32
49
|
## Returns
|
|
@@ -42,16 +59,12 @@ Use `toData()` for frozen matrix interchange.
|
|
|
42
59
|
## Guides
|
|
43
60
|
|
|
44
61
|
- [Reusable transforms and vector math](../../guides/transforms-and-placement.md#reuse-a-transform-across-shapes-and-coordinates)
|
|
45
|
-
- [Fluent values and tuple kernels](../../guides/geometry-values.md#
|
|
46
|
-
|
|
47
|
-
## Supported imports
|
|
62
|
+
- [Fluent values and tuple kernels](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
|
|
48
63
|
|
|
49
|
-
|
|
50
|
-
import { transform3 } from "@metamesh/modeling";
|
|
51
|
-
```
|
|
64
|
+
## Import
|
|
52
65
|
|
|
53
66
|
```ts
|
|
54
67
|
import { transform3 } from "@metamesh/modeling/geometry";
|
|
55
68
|
```
|
|
56
69
|
|
|
57
|
-
Package: `@metamesh/modeling@0.
|
|
70
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -12,12 +12,16 @@ Transforms serialized polygon data with reflection-safe winding, without an engi
|
|
|
12
12
|
|
|
13
13
|
**`region`** · [`RegionData`](RegionData.md) · Required
|
|
14
14
|
|
|
15
|
+
Millimetre polygons whose boundaries are normalized before placement.
|
|
16
|
+
|
|
15
17
|
|
|
16
18
|
|
|
17
19
|
<a id="transform"></a>
|
|
18
20
|
|
|
19
21
|
**`transform`** · [`Transform2Input`](Transform2Input.md) · Required
|
|
20
22
|
|
|
23
|
+
Planar affine placement; reflections preserve winding.
|
|
24
|
+
|
|
21
25
|
|
|
22
26
|
|
|
23
27
|
<a id="tolerance"></a>
|
|
@@ -39,12 +43,12 @@ Transforms serialized polygon data with reflection-safe winding, without an engi
|
|
|
39
43
|
|
|
40
44
|
## Guides
|
|
41
45
|
|
|
42
|
-
- [Choose a geometry representation](../../guides/geometry-values.md#
|
|
46
|
+
- [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
|
|
43
47
|
|
|
44
|
-
##
|
|
48
|
+
## Import
|
|
45
49
|
|
|
46
50
|
```ts
|
|
47
51
|
import { transformRegionData } from "@metamesh/modeling/geometry";
|
|
48
52
|
```
|
|
49
53
|
|
|
50
|
-
Package: `@metamesh/modeling@0.
|
|
54
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# triangulateContour
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Triangulates one simple loop into indices of its normalized CCW vertex order.
|
|
4
4
|
|
|
5
5
|
**triangulateContour**(`loop`: [`Contour`](Contour.md)): `Uint32Array`
|
|
6
6
|
|
|
@@ -12,6 +12,8 @@ Ear-clips one normalized simple CCW loop into stable local vertex indices.
|
|
|
12
12
|
|
|
13
13
|
**`loop`** · [`Contour`](Contour.md) · Required
|
|
14
14
|
|
|
15
|
+
Boundary to normalize; indices address its cleaned CCW order.
|
|
16
|
+
|
|
15
17
|
|
|
16
18
|
|
|
17
19
|
## Returns
|
|
@@ -25,12 +27,12 @@ Ear-clips one normalized simple CCW loop into stable local vertex indices.
|
|
|
25
27
|
|
|
26
28
|
## Guides
|
|
27
29
|
|
|
28
|
-
- [Choose a geometry representation](../../guides/geometry-values.md#
|
|
30
|
+
- [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
|
|
29
31
|
|
|
30
|
-
##
|
|
32
|
+
## Import
|
|
31
33
|
|
|
32
34
|
```ts
|
|
33
35
|
import { triangulateContour } from "@metamesh/modeling/geometry";
|
|
34
36
|
```
|
|
35
37
|
|
|
36
|
-
Package: `@metamesh/modeling@0.
|
|
38
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -11,7 +11,7 @@ and overflow throw `NON_FINITE_VALUE` GeometryError.
|
|
|
11
11
|
Use transform2().applyDirection(value) for rotations and nonuniform scaling.
|
|
12
12
|
|
|
13
13
|
Use `toData()` for frozen tuple interchange, or
|
|
14
|
-
[normalize2](normalize2.md) for tuple-based normalization in numerical loops.
|
|
14
|
+
[normalize2](../math/normalize2.md) for tuple-based normalization in numerical loops.
|
|
15
15
|
|
|
16
16
|
## Parameters
|
|
17
17
|
|
|
@@ -19,6 +19,8 @@ Use `toData()` for frozen tuple interchange, or
|
|
|
19
19
|
|
|
20
20
|
**`input`** · [`Vector2Input`](Vector2Input.md) · Required
|
|
21
21
|
|
|
22
|
+
Finite XY tuple or vector; coordinates are copied without changing their units.
|
|
23
|
+
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
## Returns
|
|
@@ -34,16 +36,12 @@ Use `toData()` for frozen tuple interchange, or
|
|
|
34
36
|
## Guides
|
|
35
37
|
|
|
36
38
|
- [Reusable transforms and vector math](../../guides/transforms-and-placement.md#reuse-a-transform-across-shapes-and-coordinates)
|
|
37
|
-
- [Fluent values and tuple kernels](../../guides/geometry-values.md#
|
|
38
|
-
|
|
39
|
-
## Supported imports
|
|
39
|
+
- [Fluent values and tuple kernels](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
import { vector2 } from "@metamesh/modeling";
|
|
43
|
-
```
|
|
41
|
+
## Import
|
|
44
42
|
|
|
45
43
|
```ts
|
|
46
44
|
import { vector2 } from "@metamesh/modeling/geometry";
|
|
47
45
|
```
|
|
48
46
|
|
|
49
|
-
Package: `@metamesh/modeling@0.
|
|
47
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -9,6 +9,8 @@ Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the
|
|
|
9
9
|
## Example
|
|
10
10
|
|
|
11
11
|
```ts
|
|
12
|
+
import { vector3 } from "@metamesh/modeling/geometry";
|
|
13
|
+
|
|
12
14
|
const direction = vector3([1, 2, 3]).add([4, 0, 0]).normalize().scale(10);
|
|
13
15
|
const alignment = direction.dot([0, 0, 1]);
|
|
14
16
|
```
|
|
@@ -18,7 +20,7 @@ and overflow throw `NON_FINITE_VALUE` GeometryError.
|
|
|
18
20
|
Use transform3().applyDirection(value) for rotations and nonuniform scaling.
|
|
19
21
|
|
|
20
22
|
Use `toData()` for frozen tuple interchange, or
|
|
21
|
-
[normalize3](normalize3.md) for tuple-based normalization in numerical loops.
|
|
23
|
+
[normalize3](../math/normalize3.md) for tuple-based normalization in numerical loops.
|
|
22
24
|
|
|
23
25
|
## Parameters
|
|
24
26
|
|
|
@@ -26,6 +28,8 @@ Use `toData()` for frozen tuple interchange, or
|
|
|
26
28
|
|
|
27
29
|
**`input`** · [`Vector3Input`](Vector3Input.md) · Required
|
|
28
30
|
|
|
31
|
+
Finite XYZ tuple or vector; coordinates are copied without changing their units.
|
|
32
|
+
|
|
29
33
|
|
|
30
34
|
|
|
31
35
|
## Returns
|
|
@@ -41,16 +45,12 @@ Use `toData()` for frozen tuple interchange, or
|
|
|
41
45
|
## Guides
|
|
42
46
|
|
|
43
47
|
- [Reusable transforms and vector math](../../guides/transforms-and-placement.md#reuse-a-transform-across-shapes-and-coordinates)
|
|
44
|
-
- [Fluent values and tuple kernels](../../guides/geometry-values.md#
|
|
48
|
+
- [Fluent values and tuple kernels](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
|
|
45
49
|
|
|
46
|
-
##
|
|
47
|
-
|
|
48
|
-
```ts
|
|
49
|
-
import { vector3 } from "@metamesh/modeling";
|
|
50
|
-
```
|
|
50
|
+
## Import
|
|
51
51
|
|
|
52
52
|
```ts
|
|
53
53
|
import { vector3 } from "@metamesh/modeling/geometry";
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
Package: `@metamesh/modeling@0.
|
|
56
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -1,32 +1,27 @@
|
|
|
1
1
|
# Geometry foundations
|
|
2
2
|
|
|
3
|
-
Pure curves, profiles, regions,
|
|
3
|
+
Pure geometry values, curves, profiles, regions, and placement algorithms without initializing a native engine.
|
|
4
4
|
|
|
5
|
-
Use
|
|
5
|
+
Use @metamesh/modeling/geometry for immutable vectors, transforms, bounds, paths, plain geometry descriptors, contours, identified profiles, regions, placement, sampling, and diagnostics. Pure calculations require no engine. Values accept matching data and expose toData() for frozen interchange. Descriptors remain plain readonly records.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
import { sampleCurve2, rectangleContour } from "@metamesh/modeling/geometry";
|
|
9
|
-
const arc = sampleCurve2({ kind: "arc", center: [0, 0], radius: 10, sweepAngle: 90 });
|
|
10
|
-
const contour = rectangleContour({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Lengths use millimetres. Winding and closing conventions are explicit. The [mesh module](mesh.md) constructs and processes ordinary triangle buffers; `mesh.join` concatenates without Boolean union. Mesh inspection reads mutable external arrays afresh. Predictable allocations are checked against limits before sampling.
|
|
14
|
-
|
|
15
|
-
Use `bounds2`/`bounds3` for immutable measurement queries and `Bounds2Data`/`Bounds3Data` for min/max records. Standalone bounds helpers fit and arrange parts from either form. Fit text vector paths before sampling to retain physical tolerance.
|
|
16
|
-
|
|
17
|
-
Choose [fluent values or standalone algorithms](../guides/geometry-values.md#choose-fluent-values-or-standalone-algorithms), compare [geometry representations](../guides/geometry-values.md#geometry-vocabulary), and check [preflight guarantees](../guides/resolution-and-inspection.md#check-preflight-guarantees).
|
|
7
|
+
Numerical tuple and matrix kernels live in /geometry/math; mechanical dimensions and preflights live in /geometry/mechanical; triangle-buffer operations live in /geometry/mesh. Every public value and type has one import path.
|
|
18
8
|
|
|
19
9
|
## Categories
|
|
20
10
|
|
|
21
|
-
- [
|
|
22
|
-
- [Triangle meshes and surfaces](geometry/categories/meshes.md) — Data, options, and reports for triangle mesh construction and processing.
|
|
11
|
+
- [Immutable geometry data](geometry/categories/immutable-data.md) — Capture reusable numeric data and construction placement contracts.
|
|
23
12
|
- [SVG and vector layouts](geometry/categories/vector-import.md) — Parse painted SVG within limits and work with explicitly prepared text geometry.
|
|
24
13
|
- [Profiles and regions](geometry/categories/profiles-regions.md) — Define winding, holes, stable profile landmarks, and reusable planar boundaries.
|
|
25
|
-
- [Curves and paths](geometry/categories/curves-paths.md) —
|
|
14
|
+
- [Curves and paths](geometry/categories/curves-paths.md) — Query, edit, refine, and interpolate paths with explicit closure and physical sampling settings.
|
|
26
15
|
- [Bounds and layout](geometry/categories/bounds-layout.md) — Measure finite bounds, test positioned containment, and fit or arrange geometry.
|
|
27
16
|
- [Pattern placement](geometry/categories/pattern-placement.md) — Calculate pure linear, radial, grid, and path transforms.
|
|
28
|
-
- [
|
|
17
|
+
- [Vectors, transforms, and attachment](geometry/categories/transforms-math.md) — Calculate with immutable values and place geometry using frames and anchors.
|
|
29
18
|
- [Resolution and errors](geometry/categories/resolution-errors.md) — Set physical sampling and numerical tolerances, and understand errors in context.
|
|
30
19
|
- [Primitive options](geometry/categories/primitive-options.md) — Configure dimensional primitives and edge treatments with shared options.
|
|
31
20
|
|
|
32
|
-
|
|
21
|
+
## Import
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
import * as geometry from "@metamesh/modeling/geometry";
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -61,13 +61,12 @@ Excluded when the angle is expressed in radians.
|
|
|
61
61
|
|
|
62
62
|
## Guides
|
|
63
63
|
|
|
64
|
-
- [
|
|
65
|
-
- [Fluent values and tuple kernels](../../guides/geometry-values.md#choose-fluent-values-or-standalone-algorithms)
|
|
64
|
+
- [Fluent values and tuple kernels](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
|
|
66
65
|
|
|
67
|
-
##
|
|
66
|
+
## Import
|
|
68
67
|
|
|
69
68
|
```ts
|
|
70
|
-
import type { AxisAngleRotation3 } from "@metamesh/modeling/geometry";
|
|
69
|
+
import type { AxisAngleRotation3 } from "@metamesh/modeling/geometry/math";
|
|
71
70
|
```
|
|
72
71
|
|
|
73
|
-
Package: `@metamesh/modeling@0.
|
|
72
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# IDENTITY_TRANSFORM3
|
|
2
|
+
|
|
3
|
+
Identity transform, safe to share because it is frozen.
|
|
4
|
+
|
|
5
|
+
`const` **IDENTITY\_TRANSFORM3**: [`Transform3Data`](../geometry/Transform3Data.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Guides
|
|
11
|
+
|
|
12
|
+
- [Fluent values and tuple kernels](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
|
|
13
|
+
|
|
14
|
+
## Import
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { IDENTITY_TRANSFORM3 } from "@metamesh/modeling/geometry/math";
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# add2
|
|
2
|
+
|
|
3
|
+
Adds two finite XY vectors component-wise.
|
|
4
|
+
|
|
5
|
+
`const` **add2**: (`a`: [`Vector2Data`](../geometry/Vector2Data.md), `b`: [`Vector2Data`](../geometry/Vector2Data.md)) => [`Vector2Data`](../geometry/Vector2Data.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Parameters
|
|
10
|
+
|
|
11
|
+
<a id="a"></a>
|
|
12
|
+
|
|
13
|
+
**`a`** · [`Vector2Data`](../geometry/Vector2Data.md) · Required
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
<a id="b"></a>
|
|
18
|
+
|
|
19
|
+
**`b`** · [`Vector2Data`](../geometry/Vector2Data.md) · Required
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## Returns
|
|
24
|
+
|
|
25
|
+
[`Vector2Data`](../geometry/Vector2Data.md)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## Guides
|
|
29
|
+
|
|
30
|
+
- [Fluent values and tuple kernels](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
|
|
31
|
+
|
|
32
|
+
## Import
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
import { add2 } from "@metamesh/modeling/geometry/math";
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Package: `@metamesh/modeling@0.20.0`.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# add3
|
|
2
|
+
|
|
3
|
+
Adds two finite XYZ vectors component-wise.
|
|
4
|
+
|
|
5
|
+
`const` **add3**: (`a`: [`Vector3Data`](../geometry/Vector3Data.md), `b`: [`Vector3Data`](../geometry/Vector3Data.md)) => [`Vector3Data`](../geometry/Vector3Data.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Example
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { add3 } from "@metamesh/modeling/geometry/math";
|
|
13
|
+
|
|
14
|
+
add3([1, 2, 3], [4, 5, 6]); // [5, 7, 9]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Parameters
|
|
18
|
+
|
|
19
|
+
<a id="a"></a>
|
|
20
|
+
|
|
21
|
+
**`a`** · [`Vector3Data`](../geometry/Vector3Data.md) · Required
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
<a id="b"></a>
|
|
26
|
+
|
|
27
|
+
**`b`** · [`Vector3Data`](../geometry/Vector3Data.md) · Required
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## Returns
|
|
32
|
+
|
|
33
|
+
[`Vector3Data`](../geometry/Vector3Data.md)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## Guides
|
|
37
|
+
|
|
38
|
+
- [Fluent values and tuple kernels](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
|
|
39
|
+
|
|
40
|
+
## Import
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
import { add3 } from "@metamesh/modeling/geometry/math";
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Package: `@metamesh/modeling@0.20.0`.
|