@metamesh/modeling 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/README.md +67 -9
- package/dist/api/engine.d.ts +14 -7
- package/dist/api/geometry.d.ts +787 -447
- package/dist/api/index.d.ts +637 -250
- package/dist/api/text.d.ts +6 -4
- package/dist/docs/guides/concepts.md +135 -17
- package/dist/docs/guides/fonts.md +8 -0
- package/dist/docs/guides/fundamentals.md +8 -3
- package/dist/docs/guides/generation.md +6 -4
- package/dist/docs/guides/hosting.md +27 -14
- package/dist/docs/guides/recipes.md +82 -11
- package/dist/docs/manifest.json +1911 -856
- package/dist/docs/reference/engine/Export3mfOptions.md +1 -1
- package/dist/docs/reference/engine/ExportMeshPart.md +1 -1
- package/dist/docs/reference/engine/GenerationOptions.md +1 -1
- package/dist/docs/reference/engine/GeometryResource.md +1 -1
- package/dist/docs/reference/engine/ModelDependencies.md +1 -1
- package/dist/docs/reference/engine/ModelEngine.md +1 -1
- package/dist/docs/reference/engine/ModelEngineOptions.md +4 -8
- package/dist/docs/reference/engine/ModelSession.md +1 -1
- package/dist/docs/reference/engine/ModelSnapshot.md +20 -9
- package/dist/docs/reference/engine/SessionOptions.md +1 -1
- package/dist/docs/reference/engine/SnapshotPart.md +4 -4
- package/dist/docs/reference/engine/categories/host-lifecycle.md +2 -2
- package/dist/docs/reference/engine/createModelEngine.md +3 -3
- package/dist/docs/reference/engine/defaultModelingLimits.md +1 -1
- package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
- package/dist/docs/reference/engine/validateModel.md +1 -1
- package/dist/docs/reference/engine.md +2 -2
- package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +17 -4
- package/dist/docs/reference/geometry/{Anchor3.md → Anchor3-type.md} +9 -5
- package/dist/docs/reference/geometry/ArcCurve2.md +7 -7
- package/dist/docs/reference/geometry/ArcCurve3.md +9 -9
- package/dist/docs/reference/geometry/{AttachTransformOptions.md → AttachOptions.md} +14 -5
- package/dist/docs/reference/geometry/AxisAngleRotation3.md +6 -1
- package/dist/docs/reference/geometry/Bounds2.md +4 -4
- package/dist/docs/reference/geometry/Bounds3.md +4 -4
- package/dist/docs/reference/geometry/BoundsFit2.md +3 -3
- package/dist/docs/reference/geometry/BoundsFit3.md +3 -3
- package/dist/docs/reference/geometry/BoundsFitOptions.md +1 -1
- package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +1 -1
- package/dist/docs/reference/geometry/BoxAnchorFace.md +8 -1
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +8 -4
- package/dist/docs/reference/geometry/BoxEdge.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/geometry/BoxOptions.md +10 -10
- package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +1 -1
- package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/CircleContourOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +107 -0
- package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +1 -1
- package/dist/docs/reference/geometry/ClearanceHoleFit.md +1 -1
- package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/Contour.md +3 -3
- package/dist/docs/reference/geometry/ContourCurve.md +1 -1
- package/dist/docs/reference/geometry/ContourPoint.md +1 -1
- package/dist/docs/reference/geometry/ContourSegment.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +6 -6
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +6 -6
- package/dist/docs/reference/geometry/Curve2.md +1 -1
- package/dist/docs/reference/geometry/Curve3.md +1 -1
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +5 -3
- package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +3 -3
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +8 -1
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +9 -5
- package/dist/docs/reference/geometry/CylinderOptions.md +3 -3
- package/dist/docs/reference/geometry/CylindricalGearDimensions.md +3 -3
- package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +3 -3
- package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearSpec.md +6 -6
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
- package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -3
- package/dist/docs/reference/geometry/EndTreatments.md +1 -1
- package/dist/docs/reference/geometry/ExtrudeOptions.md +6 -6
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +5 -5
- package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
- package/dist/docs/reference/geometry/Frame3.md +6 -6
- package/dist/docs/reference/geometry/GeometryError.md +1 -1
- package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
- package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
- package/dist/docs/reference/geometry/GeometryResolution.md +14 -5
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/geometry/GridPatternOptions.md +11 -5
- package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
- package/dist/docs/reference/geometry/HeightfieldOptions.md +5 -5
- package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
- package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +5 -5
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +6 -6
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +1 -1
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +7 -3
- package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +6 -6
- package/dist/docs/reference/geometry/LineCurve2.md +4 -4
- package/dist/docs/reference/geometry/LineCurve3.md +4 -4
- package/dist/docs/reference/geometry/LinearPatternOptions.md +12 -5
- package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/geometry/LoftMeshStation.md +4 -4
- package/dist/docs/reference/geometry/LoftOptions.md +1 -1
- package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
- package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
- package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
- package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
- package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
- package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
- package/dist/docs/reference/geometry/Path2-type.md +192 -0
- package/dist/docs/reference/geometry/Path2Data.md +14 -0
- package/dist/docs/reference/geometry/Path2Input.md +15 -0
- package/dist/docs/reference/geometry/Path3-type.md +192 -0
- package/dist/docs/reference/geometry/Path3Data.md +14 -0
- package/dist/docs/reference/geometry/Path3Input.md +15 -0
- package/dist/docs/reference/geometry/PathFrame.md +5 -5
- package/dist/docs/reference/geometry/PathLocation.md +65 -0
- package/dist/docs/reference/geometry/PathNormalGuide.md +6 -5
- package/dist/docs/reference/geometry/PathOptions.md +34 -0
- package/dist/docs/reference/geometry/PathPatternOptions.md +3 -3
- package/dist/docs/reference/geometry/PathPlacement.md +4 -4
- package/dist/docs/reference/geometry/PathResamplingOptions.md +80 -0
- package/dist/docs/reference/geometry/Pivot2Options.md +26 -0
- package/dist/docs/reference/geometry/Pivot3Options.md +26 -0
- package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +22 -22
- package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
- package/dist/docs/reference/geometry/PlanarPatchQuality.md +3 -3
- package/dist/docs/reference/geometry/{Polygon.md → PolygonData.md} +2 -2
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +4 -4
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +31 -0
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +104 -0
- package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
- package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/geometry/Profile.md +1 -1
- package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
- package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
- package/dist/docs/reference/geometry/ProfileSpan2.md +3 -3
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +3 -3
- package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
- package/dist/docs/reference/geometry/RackPitchSpec.md +5 -5
- package/dist/docs/reference/geometry/RadialPatternOptions.md +17 -22
- package/dist/docs/reference/geometry/RadialSizing.md +1 -1
- package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/geometry/RectangleContourOptions.md +3 -3
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/RegionData.md +14 -0
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +3 -3
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/RevolveOptions.md +9 -4
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleContourOptions.md +3 -3
- package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/SampledCurve2.md +4 -4
- package/dist/docs/reference/geometry/SampledCurve3.md +4 -4
- package/dist/docs/reference/geometry/SampledThreadHelices.md +3 -3
- package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
- package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
- package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +3 -3
- package/dist/docs/reference/geometry/SphereOptions.md +3 -3
- package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/StrokeCap.md +7 -0
- package/dist/docs/reference/geometry/StrokeJoin.md +7 -0
- package/dist/docs/reference/geometry/{StrokePathRegionOptions.md → StrokeOptions.md} +8 -8
- package/dist/docs/reference/geometry/SvgImportOptions.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +3 -3
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +13 -13
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +11 -11
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +9 -9
- package/dist/docs/reference/geometry/SweepOptions.md +6 -6
- package/dist/docs/reference/geometry/SweepOrientation.md +7 -7
- package/dist/docs/reference/geometry/ThreadBevelOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +5 -5
- package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
- package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
- package/dist/docs/reference/geometry/ThreadHelixOptions.md +3 -3
- package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
- package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
- package/dist/docs/reference/geometry/{ThreadProfile.md → ThreadProfile-type.md} +3 -3
- package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
- package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/ThreadRole.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutBevel.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutOptions.md +6 -6
- package/dist/docs/reference/geometry/ThreadedNutPreflight.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
- package/dist/docs/reference/geometry/ThreadedRodOptions.md +6 -6
- package/dist/docs/reference/geometry/TorusOptions.md +8 -8
- package/dist/docs/reference/geometry/Transform2-type.md +255 -0
- package/dist/docs/reference/geometry/Transform2Input.md +19 -0
- package/dist/docs/reference/geometry/Transform2Matrix.md +14 -0
- package/dist/docs/reference/geometry/Transform3-type.md +295 -0
- package/dist/docs/reference/geometry/Transform3Input.md +19 -0
- package/dist/docs/reference/geometry/Transform3Matrix.md +17 -0
- package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +5 -4
- package/dist/docs/reference/geometry/TriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +2 -2
- package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +3 -3
- package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignature.md +2 -2
- package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +3 -3
- package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/TubeOptions.md +8 -8
- package/dist/docs/reference/geometry/Vector2-type.md +269 -0
- package/dist/docs/reference/geometry/Vector2Input.md +19 -0
- package/dist/docs/reference/geometry/Vector2Tuple.md +14 -0
- package/dist/docs/reference/geometry/Vector3-type.md +281 -0
- package/dist/docs/reference/geometry/Vector3Input.md +19 -0
- package/dist/docs/reference/geometry/Vector3Tuple.md +14 -0
- package/dist/docs/reference/geometry/VectorTextArcBaseline.md +3 -3
- package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
- package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +1 -1
- package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
- package/dist/docs/reference/geometry/add2.md +36 -0
- package/dist/docs/reference/geometry/add3.md +10 -6
- package/dist/docs/reference/geometry/analyzeTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +2 -2
- package/dist/docs/reference/geometry/{createAnchor3.md → anchor3.md} +13 -9
- package/dist/docs/reference/geometry/anchorFrame3.md +5 -5
- package/dist/docs/reference/geometry/applyTransformDirection3.md +11 -7
- package/dist/docs/reference/geometry/applyTransformPoint3.md +11 -7
- package/dist/docs/reference/geometry/attachmentTransform3.md +77 -0
- package/dist/docs/reference/geometry/boundsCenter.md +7 -7
- package/dist/docs/reference/geometry/boundsFromSize.md +7 -7
- package/dist/docs/reference/geometry/boundsSize.md +7 -7
- package/dist/docs/reference/geometry/boxAnchor3.md +10 -6
- package/dist/docs/reference/geometry/categories/bounds-layout.md +1 -1
- package/dist/docs/reference/geometry/categories/curves-paths.md +15 -10
- package/dist/docs/reference/geometry/categories/mechanical.md +6 -6
- package/dist/docs/reference/geometry/categories/meshes.md +3 -4
- package/dist/docs/reference/geometry/categories/pattern-placement.md +7 -7
- package/dist/docs/reference/geometry/categories/primitive-options.md +4 -4
- package/dist/docs/reference/geometry/categories/profiles-regions.md +5 -6
- package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -2
- package/dist/docs/reference/geometry/categories/transforms-math.md +41 -12
- package/dist/docs/reference/geometry/categories/vector-import.md +5 -5
- package/dist/docs/reference/geometry/circleContour.md +1 -1
- package/dist/docs/reference/geometry/closeToAxis.md +4 -4
- package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +5 -5
- package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +5 -5
- package/dist/docs/reference/geometry/composeTransform3.md +10 -6
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +10 -6
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +8 -7
- package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +4 -4
- package/dist/docs/reference/geometry/{createTriangleMeshSignature.md → computeTriangleMeshSignature.md} +4 -4
- package/dist/docs/reference/geometry/containsBounds.md +1 -1
- package/dist/docs/reference/geometry/contourContainsPoint.md +4 -4
- package/dist/docs/reference/geometry/cross2.md +36 -0
- package/dist/docs/reference/geometry/cross3.md +10 -6
- package/dist/docs/reference/geometry/cylinderAnchor3.md +10 -6
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/distance2.md +36 -0
- package/dist/docs/reference/geometry/distance3.md +36 -0
- package/dist/docs/reference/geometry/distributeAlongPath.md +8 -6
- package/dist/docs/reference/geometry/dot2.md +36 -0
- package/dist/docs/reference/geometry/dot3.md +9 -5
- package/dist/docs/reference/geometry/ellipseContour.md +1 -1
- package/dist/docs/reference/geometry/eulerTransform3.md +10 -6
- package/dist/docs/reference/geometry/extrudeMesh.md +8 -8
- package/dist/docs/reference/geometry/fitBounds.md +1 -1
- package/dist/docs/reference/geometry/fitTextLayout.md +1 -1
- package/dist/docs/reference/geometry/frameTransform3.md +8 -4
- package/dist/docs/reference/geometry/{getMetricClearanceHole.md → getMetricClearanceHoleDiameter.md} +3 -3
- package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/gridPatternTransforms.md +5 -5
- package/dist/docs/reference/geometry/heightfieldMesh.md +1 -1
- package/dist/docs/reference/geometry/{buildHelicalThreadRidgeMesh.md → helicalThreadRidgeMesh.md} +5 -5
- package/dist/docs/reference/geometry/{buildHelicalThreadSolidMesh.md → helicalThreadSolidMesh.md} +5 -5
- package/dist/docs/reference/geometry/inverseTransform3.md +9 -5
- package/dist/docs/reference/geometry/isGeometryError.md +1 -1
- package/dist/docs/reference/geometry/joinTriangleMeshes.md +1 -1
- package/dist/docs/reference/geometry/layoutRow.md +4 -4
- package/dist/docs/reference/geometry/length2.md +30 -0
- package/dist/docs/reference/geometry/length3.md +8 -4
- package/dist/docs/reference/geometry/lerp2.md +42 -0
- package/dist/docs/reference/geometry/lerp3.md +10 -6
- package/dist/docs/reference/geometry/linearPatternTransforms.md +5 -5
- package/dist/docs/reference/geometry/loftMesh.md +2 -1
- package/dist/docs/reference/geometry/matchProfiles.md +1 -1
- package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +3 -2
- package/dist/docs/reference/geometry/meshBounds.md +1 -1
- package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +3 -3
- package/dist/docs/reference/geometry/normalize2.md +36 -0
- package/dist/docs/reference/geometry/normalize3.md +10 -6
- package/dist/docs/reference/geometry/normalizeContour.md +4 -4
- package/dist/docs/reference/geometry/normalizePolygon.md +5 -5
- package/dist/docs/reference/geometry/normalizeRegion.md +5 -5
- package/dist/docs/reference/geometry/optimizePlanarPatches.md +11 -11
- package/dist/docs/reference/geometry/path2.md +42 -0
- package/dist/docs/reference/geometry/path3.md +42 -0
- package/dist/docs/reference/geometry/pathPatternTransforms.md +8 -8
- package/dist/docs/reference/geometry/preflightHeightfield.md +1 -1
- package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +3 -3
- package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +3 -3
- package/dist/docs/reference/geometry/preflightSvgRegion.md +1 -1
- package/dist/docs/reference/geometry/preflightThreadedNut.md +3 -3
- package/dist/docs/reference/geometry/preflightThreadedRod.md +3 -3
- package/dist/docs/reference/geometry/projectOntoPlane3.md +10 -6
- package/dist/docs/reference/geometry/radialPatternTransforms.md +4 -20
- package/dist/docs/reference/geometry/rectangleContour.md +2 -2
- package/dist/docs/reference/geometry/rectangleProfile.md +2 -2
- package/dist/docs/reference/geometry/regionArea.md +4 -4
- package/dist/docs/reference/geometry/regionBounds.md +4 -4
- package/dist/docs/reference/geometry/regularPolygonContour.md +5 -5
- package/dist/docs/reference/geometry/resamplePolyline2.md +5 -5
- package/dist/docs/reference/geometry/resamplePolyline3.md +5 -5
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +8 -4
- package/dist/docs/reference/geometry/resolveArcSegments.md +6 -6
- package/dist/docs/reference/geometry/resolveCircularSegments.md +6 -5
- package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
- package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
- package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +6 -6
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
- package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +4 -4
- package/dist/docs/reference/geometry/reverseTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/revolveMesh.md +10 -10
- package/dist/docs/reference/geometry/rotate2.md +36 -0
- package/dist/docs/reference/geometry/rotationTransform3.md +10 -6
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +8 -6
- package/dist/docs/reference/geometry/sampleContour.md +3 -3
- package/dist/docs/reference/geometry/sampleCurve2.md +3 -3
- package/dist/docs/reference/geometry/sampleCurve3.md +2 -2
- package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleHelix.md +5 -5
- package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleRackToothPath.md +4 -4
- package/dist/docs/reference/geometry/sampleSideProfile.md +6 -6
- package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
- package/dist/docs/reference/geometry/sampleThreadHelices.md +2 -2
- package/dist/docs/reference/geometry/scale2.md +36 -0
- package/dist/docs/reference/geometry/scale3.md +9 -5
- package/dist/docs/reference/geometry/scaleTransform3.md +10 -6
- package/dist/docs/reference/geometry/signedContourArea.md +1 -1
- package/dist/docs/reference/geometry/starContour.md +4 -4
- package/dist/docs/reference/geometry/strokeRegionData.md +63 -0
- package/dist/docs/reference/geometry/subtract2.md +36 -0
- package/dist/docs/reference/geometry/subtract3.md +10 -6
- package/dist/docs/reference/geometry/sweepMesh.md +9 -9
- package/dist/docs/reference/geometry/{createThreadProfile.md → threadProfile.md} +6 -6
- package/dist/docs/reference/geometry/transform2.md +38 -0
- package/dist/docs/reference/geometry/transform3.md +38 -0
- package/dist/docs/reference/geometry/transformDeterminant3.md +8 -4
- package/dist/docs/reference/geometry/transformRegionData.md +40 -0
- package/dist/docs/reference/geometry/transformTriangleMesh.md +6 -6
- package/dist/docs/reference/geometry/translationTransform3.md +10 -6
- package/dist/docs/reference/geometry/triangulateContour.md +1 -1
- package/dist/docs/reference/geometry/validateSolidMesh.md +2 -2
- package/dist/docs/reference/geometry/validateTransform3.md +9 -5
- package/dist/docs/reference/geometry/validateTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/vector2.md +31 -0
- package/dist/docs/reference/geometry/vector3.md +38 -0
- package/dist/docs/reference/geometry.md +3 -3
- package/dist/docs/reference/model/Anchor3.md +5 -5
- package/dist/docs/reference/model/AttachOptions.md +10 -5
- package/dist/docs/reference/model/Bounds2.md +4 -4
- package/dist/docs/reference/model/Bounds3.md +4 -4
- package/dist/docs/reference/model/BoxEdge.md +1 -1
- package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/model/BoxOptions.md +10 -10
- package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/CircleContourOptions.md +1 -1
- package/dist/docs/reference/model/CircleOptions.md +3 -3
- package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
- package/dist/docs/reference/model/Computed.md +1 -1
- package/dist/docs/reference/model/ComputedValue.md +1 -1
- package/dist/docs/reference/model/Contour.md +3 -3
- package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
- package/dist/docs/reference/model/CorrespondingContour.md +1 -1
- package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
- package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
- package/dist/docs/reference/model/CylinderOptions.md +3 -3
- package/dist/docs/reference/model/DiagnosticOptions.md +1 -1
- package/dist/docs/reference/model/EdgeTreatment.md +1 -1
- package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
- package/dist/docs/reference/model/EllipseOptions.md +3 -3
- package/dist/docs/reference/model/EndTreatments.md +1 -1
- package/dist/docs/reference/model/ExtrudeOptions.md +6 -6
- package/dist/docs/reference/model/FinalizedModel.md +18 -8
- package/dist/docs/reference/model/FinalizedPart.md +1 -1
- package/dist/docs/reference/model/Frame3.md +6 -6
- package/dist/docs/reference/model/GenerateCallback.md +1 -1
- package/dist/docs/reference/model/GenerateContext.md +5 -5
- package/dist/docs/reference/model/GeneratedPart.md +6 -6
- package/dist/docs/reference/model/GenerationDiagnostic.md +1 -1
- package/dist/docs/reference/model/GenerationError.md +1 -1
- package/dist/docs/reference/model/GeometryResolution.md +5 -5
- package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/model/GridPatternOptions.md +11 -5
- package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
- package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +3 -3
- package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +1 -1
- package/dist/docs/reference/model/HullOptions.md +7 -7
- package/dist/docs/reference/model/ImmutableBuffer-type.md +1 -1
- package/dist/docs/reference/model/ImmutableTriangleMesh.md +1 -1
- package/dist/docs/reference/model/ImplicitOptions.md +4 -4
- package/dist/docs/reference/model/InternalThreadCutterOptions.md +4 -4
- package/dist/docs/reference/model/LinearPatternOptions.md +12 -5
- package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/model/LoftOptions.md +1 -1
- package/dist/docs/reference/model/LoftPlacement.md +1 -1
- package/dist/docs/reference/model/LoftStation.md +4 -4
- package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/model/ModelProgram.md +1 -1
- package/dist/docs/reference/model/ModelingLimits.md +1 -1
- package/dist/docs/reference/model/NumericArray.md +1 -1
- package/dist/docs/reference/model/PartGeometry.md +1 -1
- package/dist/docs/reference/model/PartOptions.md +6 -6
- package/dist/docs/reference/model/Path2-type.md +192 -0
- package/dist/docs/reference/model/Path2Data.md +14 -0
- package/dist/docs/reference/model/Path2Input.md +15 -0
- package/dist/docs/reference/model/Path3-type.md +192 -0
- package/dist/docs/reference/model/Path3Data.md +14 -0
- package/dist/docs/reference/model/Path3Input.md +15 -0
- package/dist/docs/reference/model/PathLocation.md +65 -0
- package/dist/docs/reference/model/PathNormalGuide.md +6 -5
- package/dist/docs/reference/model/PathOptions.md +34 -0
- package/dist/docs/reference/model/PathPatternOptions.md +3 -3
- package/dist/docs/reference/model/PathResamplingOptions.md +79 -0
- package/dist/docs/reference/model/PatternSource.md +2 -2
- package/dist/docs/reference/model/Pivot2Options.md +27 -0
- package/dist/docs/reference/model/Pivot3Options.md +27 -0
- package/dist/docs/reference/model/PlaneOptions.md +3 -3
- package/dist/docs/reference/model/{Polygon-type.md → PolygonData.md} +2 -2
- package/dist/docs/reference/model/PolygonOptions.md +85 -8
- package/dist/docs/reference/model/{PrimitivePlacement.md → PrimitiveAttachment.md} +7 -7
- package/dist/docs/reference/model/{PrimitivePlacementOptions.md → PrimitiveAttachmentOptions.md} +41 -20
- package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
- package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/model/Profile.md +1 -1
- package/dist/docs/reference/model/ProfileComponent2.md +1 -1
- package/dist/docs/reference/model/ProfileContour2.md +1 -1
- package/dist/docs/reference/model/ProfileSpan2.md +3 -3
- package/dist/docs/reference/model/ProfiledEdgeTreatment.md +3 -3
- package/dist/docs/reference/model/RadialPatternOptions.md +17 -22
- package/dist/docs/reference/model/RadialSizing.md +1 -1
- package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
- package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
- package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
- package/dist/docs/reference/model/RectangleOptions.md +10 -10
- package/dist/docs/reference/model/{Region.md → RegionData.md} +4 -4
- package/dist/docs/reference/model/RegularPolygonOptions.md +5 -5
- package/dist/docs/reference/model/RevolveOptions.md +9 -4
- package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Section.md +81 -40
- package/dist/docs/reference/model/SectionHullOptions.md +7 -7
- package/dist/docs/reference/model/SectionInspection.md +10 -10
- package/dist/docs/reference/model/{RegionOffsetJoin.md → SectionOffsetJoin.md} +3 -3
- package/dist/docs/reference/model/{RegionOffsetOptions.md → SectionOffsetOptions.md} +4 -4
- package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Solid.md +66 -26
- package/dist/docs/reference/model/SolidInspection.md +7 -7
- package/dist/docs/reference/model/{SolidRayHit.md → SolidSegmentHit.md} +6 -6
- package/dist/docs/reference/model/SphereOptions.md +3 -3
- package/dist/docs/reference/model/StarOptions.md +10 -10
- package/dist/docs/reference/model/StrokeCap.md +16 -0
- package/dist/docs/reference/model/StrokeJoin.md +16 -0
- package/dist/docs/reference/model/StrokeOptions.md +91 -0
- package/dist/docs/reference/model/SvgOrigin.md +1 -1
- package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
- package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
- package/dist/docs/reference/model/SweepOptions.md +6 -6
- package/dist/docs/reference/model/SweepOrientation.md +7 -7
- package/dist/docs/reference/model/TextSectionOptions.md +1 -1
- package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
- package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
- package/dist/docs/reference/model/ThreadHandedness.md +1 -1
- package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
- package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
- package/dist/docs/reference/model/ThreadProfile.md +3 -3
- package/dist/docs/reference/model/ThreadRidgeOptions.md +1 -1
- package/dist/docs/reference/model/ThreadedNutBevel.md +1 -1
- package/dist/docs/reference/model/ThreadedNutOptions.md +4 -4
- package/dist/docs/reference/model/ThreadedNutPreflight.md +1 -1
- package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
- package/dist/docs/reference/model/ThreadedRodOptions.md +4 -4
- package/dist/docs/reference/model/TorusOptions.md +8 -8
- package/dist/docs/reference/model/Transform2-type.md +256 -0
- package/dist/docs/reference/model/Transform2Input.md +20 -0
- package/dist/docs/reference/model/Transform2Matrix.md +15 -0
- package/dist/docs/reference/model/Transform3-type.md +296 -0
- package/dist/docs/reference/model/Transform3Input.md +20 -0
- package/dist/docs/reference/model/{Transform3.md → Transform3Matrix.md} +3 -3
- package/dist/docs/reference/model/TriangleMesh.md +1 -1
- package/dist/docs/reference/model/TriangleMeshAnalysis.md +2 -2
- package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/model/TubeOptions.md +8 -8
- package/dist/docs/reference/model/Vector2-type.md +270 -0
- package/dist/docs/reference/model/Vector2Input.md +20 -0
- package/dist/docs/reference/model/{Vector2.md → Vector2Tuple.md} +3 -3
- package/dist/docs/reference/model/Vector3-type.md +282 -0
- package/dist/docs/reference/model/Vector3Input.md +20 -0
- package/dist/docs/reference/model/{Vector3.md → Vector3Tuple.md} +3 -3
- package/dist/docs/reference/model/VectorTextLayout.md +1 -1
- package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/model/anchor.md +1 -1
- package/dist/docs/reference/model/box.md +4 -4
- package/dist/docs/reference/model/castSegment.md +40 -0
- package/dist/docs/reference/model/categories/boolean-operations.md +4 -4
- package/dist/docs/reference/model/categories/bounded-surfaces.md +3 -3
- package/dist/docs/reference/model/categories/contracts.md +2 -2
- package/dist/docs/reference/model/categories/core-values-errors.md +5 -5
- package/dist/docs/reference/model/categories/explicit-profiles.md +3 -3
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +2 -2
- package/dist/docs/reference/model/categories/generation.md +1 -1
- package/dist/docs/reference/model/categories/inspection.md +7 -8
- package/dist/docs/reference/model/categories/mesh-inspection.md +2 -2
- package/dist/docs/reference/model/categories/paths.md +33 -0
- package/dist/docs/reference/model/categories/primitives.md +3 -3
- package/dist/docs/reference/model/categories/resolution.md +2 -2
- package/dist/docs/reference/model/categories/sections.md +10 -8
- package/dist/docs/reference/model/categories/threads.md +5 -5
- package/dist/docs/reference/model/categories/transforms-placement.md +27 -13
- package/dist/docs/reference/model/circle.md +1 -1
- package/dist/docs/reference/model/components.md +10 -7
- package/dist/docs/reference/model/compose.md +1 -1
- package/dist/docs/reference/model/cylinder.md +1 -1
- package/dist/docs/reference/model/distance.md +2 -2
- package/dist/docs/reference/model/ellipse.md +1 -1
- package/dist/docs/reference/model/extrude.md +3 -3
- package/dist/docs/reference/model/generate.md +1 -1
- package/dist/docs/reference/model/gridPattern.md +4 -4
- package/dist/docs/reference/model/heightfield.md +2 -2
- package/dist/docs/reference/model/hull.md +2 -2
- package/dist/docs/reference/model/immutableBuffer.md +1 -1
- package/dist/docs/reference/model/immutableMesh.md +1 -1
- package/dist/docs/reference/model/implicit.md +3 -3
- package/dist/docs/reference/model/inspectSection.md +1 -1
- package/dist/docs/reference/model/inspectSolid.md +1 -1
- package/dist/docs/reference/model/internalThreadCutter.md +4 -4
- package/dist/docs/reference/model/intersect.md +1 -1
- package/dist/docs/reference/model/isEmpty.md +2 -2
- package/dist/docs/reference/model/linearPattern.md +4 -4
- package/dist/docs/reference/model/loft.md +1 -1
- package/dist/docs/reference/model/matchProfiles.md +2 -2
- package/dist/docs/reference/model/minkowskiSum.md +1 -1
- package/dist/docs/reference/model/path2.md +42 -0
- package/dist/docs/reference/model/path3.md +42 -0
- package/dist/docs/reference/model/pathPattern.md +13 -12
- package/dist/docs/reference/model/polygon.md +4 -4
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +3 -3
- package/dist/docs/reference/model/preflightThreadedNut.md +3 -3
- package/dist/docs/reference/model/preflightThreadedRod.md +3 -3
- package/dist/docs/reference/model/radialPattern.md +5 -37
- package/dist/docs/reference/model/rectangle.md +4 -4
- package/dist/docs/reference/model/regularPolygon.md +1 -1
- package/dist/docs/reference/model/revolve.md +5 -4
- package/dist/docs/reference/model/solidFromMesh.md +1 -1
- package/dist/docs/reference/model/sphere.md +1 -1
- package/dist/docs/reference/model/split.md +1 -1
- package/dist/docs/reference/model/splitByPlane.md +1 -1
- package/dist/docs/reference/model/star.md +4 -4
- package/dist/docs/reference/model/stroke.md +74 -0
- package/dist/docs/reference/model/svgPathSection.md +1 -1
- package/dist/docs/reference/model/svgSection.md +1 -1
- package/dist/docs/reference/model/sweep.md +7 -7
- package/dist/docs/reference/model/textSection.md +1 -1
- package/dist/docs/reference/model/threadRidge.md +2 -2
- package/dist/docs/reference/model/threadedNut.md +4 -4
- package/dist/docs/reference/model/threadedRod.md +4 -4
- package/dist/docs/reference/model/torus.md +3 -3
- package/dist/docs/reference/model/transform2.md +39 -0
- package/dist/docs/reference/model/transform3.md +39 -0
- package/dist/docs/reference/model/tube.md +3 -3
- package/dist/docs/reference/model/union.md +1 -1
- package/dist/docs/reference/model/vector2.md +32 -0
- package/dist/docs/reference/model/vector3.md +39 -0
- package/dist/docs/reference/model.md +9 -8
- package/dist/docs/reference/text/Bounds2.md +4 -4
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
- package/dist/docs/reference/text/Vector2Tuple.md +7 -0
- package/dist/docs/reference/text/VectorFont.md +2 -2
- package/dist/docs/reference/text/VectorFontOptions.md +1 -1
- package/dist/docs/reference/text/VectorTextArcBaseline.md +3 -3
- package/dist/docs/reference/text/VectorTextLayout.md +1 -1
- package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
- package/dist/docs/reference/text/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/text/VectorTextOptions.md +1 -1
- package/dist/docs/reference/text/categories/font-preparation.md +4 -4
- package/dist/docs/reference/text/prepareVectorFont.md +2 -2
- package/dist/docs/reference/text.md +1 -1
- package/dist/engine/construction-operations.js +31 -14
- package/dist/engine/deferred-context.js +11 -181
- package/dist/engine/execution.js +39 -8
- package/dist/engine/extrusion-finishing.js +1 -1
- package/dist/engine/index.js +6 -1
- package/dist/engine/inspection-operations.js +13 -11
- package/dist/engine/loft-operations.js +35 -14
- package/dist/engine/model-summary.js +8 -5
- package/dist/engine/native/material-components.js +305 -0
- package/dist/engine/native/regions.js +2 -1
- package/dist/engine/native/threads.js +3 -3
- package/dist/engine/native/transforms.js +11 -8
- package/dist/engine/operation-environment.js +2 -2
- package/dist/engine/pattern-operations.js +3 -3
- package/dist/engine/placement.js +2 -2
- package/dist/engine/primitive-anchors.js +17 -17
- package/dist/engine/primitive-operations.js +1 -1
- package/dist/engine/primitive-profiles.js +8 -7
- package/dist/engine/profile-mesh.js +7 -7
- package/dist/engine/recipe-realization.js +35 -21
- package/dist/engine/section-operations.js +52 -11
- package/dist/engine/session-graph.js +1 -1
- package/dist/engine/session-native.js +1 -1
- package/dist/engine/session-snapshot.js +17 -6
- package/dist/engine/session.js +13 -8
- package/dist/engine/shape-anchors.js +5 -11
- package/dist/engine/transform-operations.js +66 -49
- package/dist/geometry/anchors.js +40 -33
- package/dist/geometry/curves/sampling.js +14 -14
- package/dist/geometry/edge-finishing.js +1 -1
- package/dist/geometry/extrusion.js +13 -16
- package/dist/geometry/index.js +13 -10
- package/dist/geometry/loft/loft-simple-mesh.js +6 -6
- package/dist/geometry/loft/loft.js +22 -13
- package/dist/geometry/math/immutable-value.js +20 -0
- package/dist/geometry/math/vector-value.js +168 -0
- package/dist/geometry/math/vector2.js +80 -0
- package/dist/geometry/math/vector3.js +37 -7
- package/dist/geometry/mechanical/gear-motion.js +8 -5
- package/dist/geometry/mechanical/gears.js +38 -38
- package/dist/geometry/mechanical/index.js +3 -3
- package/dist/geometry/mechanical/standards.js +1 -1
- package/dist/geometry/mechanical/thread-helices.js +2 -3
- package/dist/geometry/mechanical/thread-mesh-plan.js +4 -5
- package/dist/geometry/mechanical/thread-mesh.js +7 -7
- package/dist/geometry/mechanical/thread-profiles.js +5 -5
- package/dist/geometry/mechanical/thread-solids.js +2 -2
- package/dist/geometry/mechanical/thread-surface.js +1 -1
- package/dist/geometry/mechanical/threads.js +8 -8
- package/dist/geometry/mesh/mesh-planar.js +25 -27
- package/dist/geometry/mesh/mesh-quality.js +5 -5
- package/dist/geometry/mesh/mesh-signature.js +13 -13
- package/dist/geometry/mesh/mesh-solid-intersections.js +5 -1
- package/dist/geometry/mesh/mesh-solid.js +7 -7
- package/dist/geometry/mesh/mesh.js +4 -15
- package/dist/geometry/paths/closest-point.js +63 -0
- package/dist/geometry/paths/frames.js +44 -14
- package/dist/geometry/paths/helix.js +16 -6
- package/dist/geometry/paths/path-value.js +252 -0
- package/dist/geometry/paths/planar.js +36 -23
- package/dist/geometry/paths/resampling.js +27 -5
- package/dist/geometry/patterns/placements.js +100 -27
- package/dist/geometry/patterns.js +2 -2
- package/dist/geometry/polygon-clipping.js +17 -0
- package/dist/geometry/primitive-resolution.js +4 -1
- package/dist/geometry/profiles/contour.js +6 -6
- package/dist/geometry/profiles/matched.js +4 -4
- package/dist/geometry/profiles/profiles.js +4 -4
- package/dist/geometry/profiles/rectangle.js +4 -4
- package/dist/geometry/profiles/side-profile.js +7 -7
- package/dist/geometry/profiles/span-sampling.js +1 -1
- package/dist/geometry/resolution.js +51 -39
- package/dist/geometry/revolve/revolve-mesh.js +12 -7
- package/dist/geometry/stroke-path.js +57 -68
- package/dist/geometry/svg/fill.js +7 -21
- package/dist/geometry/svg-import.js +23 -23
- package/dist/geometry/sweeps/options.js +5 -4
- package/dist/geometry/sweeps/orientation.js +5 -5
- package/dist/geometry/sweeps/stations.js +14 -14
- package/dist/geometry/sweeps/sweep-closed.js +5 -5
- package/dist/geometry/sweeps/sweep-mesh.js +9 -3
- package/dist/geometry/sweeps/sweep-open.js +4 -4
- package/dist/geometry/sweeps/validation.js +4 -7
- package/dist/geometry/transform-chain.js +172 -0
- package/dist/geometry/transform-geometry.js +27 -30
- package/dist/geometry/transform-matrix.js +14 -0
- package/dist/geometry/transform2.js +60 -0
- package/dist/geometry/transform3.js +70 -26
- package/dist/index.js +4 -0
- package/dist/model/execution-binding.js +10 -5
- package/dist/model/geometry-recipes.js +15 -0
- package/dist/{engine → model}/immutable-generation-data.js +88 -6
- package/dist/model/operation-dispatch.js +10 -3
- package/dist/model/operations.js +45 -35
- package/dist/model/recipe-declaration.js +199 -0
- package/dist/model/shape-handles.js +17 -5
- package/dist/text/index.js +15 -9
- package/dist/text/vector-text-layout.js +31 -26
- package/package.json +1 -1
- package/dist/docs/reference/geometry/Path2.md +0 -14
- package/dist/docs/reference/geometry/Path3.md +0 -14
- package/dist/docs/reference/geometry/PrimitivePlacement.md +0 -31
- package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +0 -83
- package/dist/docs/reference/geometry/Region.md +0 -14
- package/dist/docs/reference/geometry/StrokePathCap.md +0 -7
- package/dist/docs/reference/geometry/StrokePathJoin.md +0 -7
- package/dist/docs/reference/geometry/Transform3.md +0 -12
- package/dist/docs/reference/geometry/Vector2.md +0 -7
- package/dist/docs/reference/geometry/Vector3.md +0 -7
- package/dist/docs/reference/geometry/attachTransform.md +0 -73
- package/dist/docs/reference/geometry/cumulativePathLengths.md +0 -33
- package/dist/docs/reference/geometry/measureTriangleMesh.md +0 -55
- package/dist/docs/reference/geometry/pathLength.md +0 -33
- package/dist/docs/reference/geometry/rotateAroundAxis3.md +0 -38
- package/dist/docs/reference/geometry/strokePathRegion.md +0 -63
- package/dist/docs/reference/geometry/transformContour.md +0 -42
- package/dist/docs/reference/geometry/transformPath2.md +0 -40
- package/dist/docs/reference/geometry/transformPath3.md +0 -33
- package/dist/docs/reference/geometry/transformRegion.md +0 -40
- package/dist/docs/reference/model/Transform2.md +0 -15
- package/dist/docs/reference/model/fromRegion.md +0 -33
- package/dist/docs/reference/model/rayCast.md +0 -40
- package/dist/docs/reference/model/toRegion.md +0 -33
- package/dist/docs/reference/model/toTriangleMesh.md +0 -27
- package/dist/docs/reference/text/Vector2.md +0 -7
- package/dist/engine/geometry-recipes.js +0 -12
- package/dist/engine/pattern-transform.js +0 -9
- package/dist/geometry/paths/path.js +0 -32
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Sample reusable lines, arcs, cubic curves, and path frames with explicit physical policies.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Use immutable `path2(points, { closed })` and `path3(points, { closed })` values for sampled trajectories. Closure belongs to the value; closed paths omit the duplicated endpoint. Chain transform, reverse and resample without mutating reusable paths. length includes the closing edge, bounds returns undefined for empty paths, and closestPoint returns a fluent point, distance, edge index and fraction within that edge. Reflections preserve traversal; polygon construction handles filled-shape winding. Geometry accepts matching path values directly. Path2Data and Path3Data are tuple collections for interchange; toArray omits closure metadata. Analytic Curve definitions remain distinct: sampleCurve2/3 retain directed endpoints and tangents; exact curve intervals are uniform in the curve parameter. Low-level resamplePolyline2/3 return tuple points plus tangents at equal arc length. Sampling uses physical policies and checked vertex ceilings. Sweep frames require explicit seam and orientation choices.
|
|
6
6
|
|
|
7
7
|
## Functions
|
|
8
8
|
|
|
@@ -11,11 +11,11 @@ sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are
|
|
|
11
11
|
| [anchorFrame3](../anchorFrame3.md) | Converts an anchor into a right-handed frame with direction as local +Z. |
|
|
12
12
|
| [sampleCurve2](../sampleCurve2.md) | Samples a planar curve with the same guarantees and policy as spatial sampling. |
|
|
13
13
|
| [sampleCurve3](../sampleCurve3.md) | Samples a spatial curve, preserving endpoints and directed unit tangents. |
|
|
14
|
-
| [transformPath2](../transformPath2.md) | Applies an XY-plane-preserving affine transform to a 2D path. |
|
|
15
|
-
| [transformPath3](../transformPath3.md) | Applies an affine transform to a 3D path without mutating its points. |
|
|
16
14
|
| [resolveGeometrySamplingLimits](../resolveGeometrySamplingLimits.md) | Resolves finite positive safe-integer allocation ceilings without ambient state. |
|
|
17
15
|
| [resamplePolyline2](../resamplePolyline2.md) | Resamples a planar polyline with the same point, tangent, seam and budget guarantees as 3D. |
|
|
18
16
|
| [resamplePolyline3](../resamplePolyline3.md) | Resamples a spatial polyline at equal arc lengths with directed outgoing tangents. |
|
|
17
|
+
| [path2](../path2.md) | Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization. Open paths may be empty or have one point; closed paths need three vertices and omit a duplicated seam. Repeated adjacent vertices are retained. No winding normalization or filling is performed. Malformed dimensions or topology throw INVALID_ARGUMENT; nonfinite coordinates or measurement overflow throw NON_FINITE_VALUE; exhausted allocation ceilings throw COMPLEXITY_LIMIT GeometryError. A path input retains its closure. Limits bound construction only; resampling takes its own limits. |
|
|
18
|
+
| [path3](../path3.md) | Snapshots finite XYZ coordinates as an immutable sampled path with the same closure, seam, allocation and error rules as path2. Analytic curves must be sampled explicitly first. |
|
|
19
19
|
|
|
20
20
|
## Interfaces
|
|
21
21
|
|
|
@@ -30,12 +30,17 @@ sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are
|
|
|
30
30
|
| [GeometrySamplingLimits](../GeometrySamplingLimits.md) | Explicit allocation ceilings for pure sampling and host-owned modeling operations. |
|
|
31
31
|
| [LineCurve2](../LineCurve2.md) | Straight planar curve in millimetres. |
|
|
32
32
|
| [LineCurve3](../LineCurve3.md) | Straight spatial curve in millimetres. |
|
|
33
|
+
| [Path2](../Path2-type.md) | Immutable directed XY polyline. Closure is explicit and does not imply a filled Section. |
|
|
34
|
+
| [Path3](../Path3-type.md) | Immutable directed XYZ polyline; it represents sampled edges, not an analytic curve. |
|
|
33
35
|
| [PathFrame](../PathFrame.md) | Orthonormal right-handed frame sampled along a path. |
|
|
34
36
|
| [PathPlacement](../PathPlacement.md) | Position and unit tangent for one path-distributed item. |
|
|
35
37
|
| [SampledCurve2](../SampledCurve2.md) | Immutable planar points and corresponding directed unit tangents. |
|
|
36
38
|
| [SampledCurve3](../SampledCurve3.md) | Immutable spatial points and corresponding directed unit tangents. |
|
|
37
39
|
| [SampleHelixOptions](../SampleHelixOptions.md) | Options for a sampled +Z helix with millimetre dimensions. |
|
|
38
40
|
| [PolylineResamplingOptions](../PolylineResamplingOptions.md) | Equal arc-length sampling of an open path or an implicitly closed loop. |
|
|
41
|
+
| [PathOptions](../PathOptions.md) | Topology and allocation ceiling for an immutable sampled path. |
|
|
42
|
+
| [PathLocation](../PathLocation.md) | Nearest location on a sampled boundary, rather than inside a filled shape or on an analytic curve. |
|
|
43
|
+
| [PathResamplingOptions](../PathResamplingOptions.md) | Equal arc-length sampling; the path itself owns whether its closing edge is included. |
|
|
39
44
|
|
|
40
45
|
## Type aliases
|
|
41
46
|
|
|
@@ -43,21 +48,21 @@ sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are
|
|
|
43
48
|
| --- | --- |
|
|
44
49
|
| [Curve2](../Curve2.md) | Reusable planar curve definition. |
|
|
45
50
|
| [Curve3](../Curve3.md) | Reusable spatial curve definition. |
|
|
46
|
-
| [Path2](../Path2.md) | An ordered, open sequence of two-dimensional points. |
|
|
47
|
-
| [Path3](../Path3.md) | An ordered, open sequence of three-dimensional points. |
|
|
48
51
|
| [PathNormalGuide](../PathNormalGuide.md) | Supplies a profile-X orientation guide for each original normalized sweep station. |
|
|
52
|
+
| [Path2Input](../Path2Input.md) | An immutable XY sampled path or a collection of XY tuples and fluent vectors. |
|
|
53
|
+
| [Path3Input](../Path3Input.md) | An immutable XYZ sampled path or a collection of XYZ tuples and fluent vectors. |
|
|
54
|
+
| [Path2Data](../Path2Data.md) | XY point tuples for interchange; closure is supplied by the consuming operation or Path2 value. |
|
|
55
|
+
| [Path3Data](../Path3Data.md) | XYZ point tuples for interchange; closure is supplied by the consuming operation or Path3 value. |
|
|
49
56
|
|
|
50
57
|
## Values
|
|
51
58
|
|
|
52
59
|
| API | Summary |
|
|
53
60
|
| --- | --- |
|
|
54
61
|
| [computeClosedParallelTransportFrames](../computeClosedParallelTransportFrames.md) | Builds rotation-minimizing frames for a non-duplicated closed path. |
|
|
55
|
-
| [computeParallelTransportFrames](../computeParallelTransportFrames.md) | Builds rotation-minimizing frames by parallel-transporting the previous normal. This avoids the sudden profile flips produced by picking a fresh up-vector per ring. Paths exceeding maxPathPoints (default 100000) reject before frame allocation or guide evaluation. |
|
|
56
|
-
| [cumulativePathLengths](../cumulativePathLengths.md) | Returns cumulative arc length for finite points under maxPathPoints (default 100000); rejects overflowing length. |
|
|
62
|
+
| [computeParallelTransportFrames](../computeParallelTransportFrames.md) | Builds rotation-minimizing frames by parallel-transporting the previous normal. This avoids the sudden profile flips produced by picking a fresh up-vector per ring. Paths exceeding maxPathPoints (default 100000) reject before frame allocation or guide evaluation. Requires open path values; raw tuples are interpreted as an open path. Invalid paths throw GeometryError. Nonfinite normals and guide results reject. A finite initial guide parallel to the tangent selects a canonical fallback. |
|
|
57
63
|
| [defaultGeometrySamplingLimits](../defaultGeometrySamplingLimits.md) | Conservative defaults; trusted callers can supply larger explicit ceilings. |
|
|
58
64
|
| [distributeAlongPath](../distributeAlongPath.md) | Places an exact item count at equal arc-length intervals along a sampled path. |
|
|
59
|
-
| [pathLength](../pathLength.md) | Returns total sampled 3D path length, or zero for an empty path. |
|
|
60
65
|
| [roundClosedPolylinePath](../roundClosedPolylinePath.md) | Replaces each vertex of a non-duplicated closed polyline with a sampled quadratic corner in the same coordinate system as the input. |
|
|
61
|
-
| [sampleHelix](../sampleHelix.md) | Creates `segments + 1` points including exact helix endpoints from finite positive dimensions. Integrated weights must remain finite. The maxPathPoints ceiling defaults to 100000; excessive exact counts reject before evaluating axial weights or allocating sample arrays. |
|
|
66
|
+
| [sampleHelix](../sampleHelix.md) | Creates `segments + 1` points including exact helix endpoints from finite positive dimensions. Integrated weights must remain finite. The maxPathPoints ceiling defaults to 100000; excessive exact counts reject before evaluating axial weights or allocating sample arrays. Invalid inputs use GeometryError; exceptions thrown by axialWeight propagate unchanged. |
|
|
62
67
|
|
|
63
|
-
Package: `@metamesh/modeling@0.
|
|
68
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -8,13 +8,13 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
|
|
|
8
8
|
|
|
9
9
|
| API | Summary |
|
|
10
10
|
| --- | --- |
|
|
11
|
-
| [
|
|
12
|
-
| [
|
|
11
|
+
| [helicalThreadRidgeMesh](../helicalThreadRidgeMesh.md) | Builds closed thread-ridge components with every profile locked to the shaft's radial/axial frame. The mesh is intended for union with its minor-envelope cylinder and never owns WASM objects. |
|
|
12
|
+
| [helicalThreadSolidMesh](../helicalThreadSolidMesh.md) | Builds one closed threaded cylinder without a ridge/core Boolean seam. |
|
|
13
13
|
| [compensateThreadDiameters](../compensateThreadDiameters.md) | Applies role-specific radial compensation while preserving thread depth. |
|
|
14
14
|
| [compensateThreadProfileAxially](../compensateThreadProfileAxially.md) | Applies axial fit allowance to a validated periodic profile. |
|
|
15
15
|
| [compensateThreadProfileForFaceting](../compensateThreadProfileForFaceting.md) | Applies printable axial fit plus the conservative phase allowance required by circular facets. |
|
|
16
|
-
| [
|
|
17
|
-
| [
|
|
16
|
+
| [threadProfile](../threadProfile.md) | Creates a periodic thread profile for the shaft-locked helical mesher. |
|
|
17
|
+
| [getMetricClearanceHoleDiameter](../getMetricClearanceHoleDiameter.md) | Returns one recommended metric clearance-hole diameter in millimetres. |
|
|
18
18
|
| [getMetricFastenerStandard](../getMetricFastenerStandard.md) | Returns the immutable standards record for one supported metric size. |
|
|
19
19
|
| [measureInternalCylindricalGearPairMotion](../measureInternalCylindricalGearPairMotion.md) | Measures sampled kinematic interference over one tooth cycle of an internal gear pair. |
|
|
20
20
|
| [minimumCylindricalGearToothCountWithoutUndercut](../minimumCylindricalGearToothCountWithoutUndercut.md) | Returns the smallest unshifted full-depth external tooth count that avoids rack-cutter undercut. |
|
|
@@ -68,7 +68,7 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
|
|
|
68
68
|
| [ThreadedRodOptions](../ThreadedRodOptions.md) | Options for a compensated external threaded rod along +Z. |
|
|
69
69
|
| [ThreadEndTreatmentOptions](../ThreadEndTreatmentOptions.md) | Axial end controls for a generated ridge. |
|
|
70
70
|
| [ThreadHelixOptions](../ThreadHelixOptions.md) | Conventional helix options: `pitch` is adjacent spacing and lead is `pitch * starts`. |
|
|
71
|
-
| [ThreadProfile](../ThreadProfile.md) | A validated immutable periodic thread profile in `[axial, radial]` millimetres. |
|
|
71
|
+
| [ThreadProfile](../ThreadProfile-type.md) | A validated immutable periodic thread profile in `[axial, radial]` millimetres. |
|
|
72
72
|
| [ThreadProfileBaseSpec](../ThreadProfileBaseSpec.md) | Fields shared by all thread profile specifications. |
|
|
73
73
|
| [TrapezoidalThreadProfileSpec](../TrapezoidalThreadProfileSpec.md) | Trapezoidal thread profile with a configurable included angle. |
|
|
74
74
|
| [TriangularThreadProfileSpec](../TriangularThreadProfileSpec.md) | ISO/UTS-like 60-degree truncated triangular profile. |
|
|
@@ -98,4 +98,4 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
|
|
|
98
98
|
| [METRIC_FASTENER_STANDARDS](../METRIC_FASTENER_STANDARDS.md) | Curated metric modeling dimensions for clearance holes, regular hex nuts, and socket-head cap screws. |
|
|
99
99
|
| [PRINTABLE_THREAD_FIT_POLICIES](../PRINTABLE_THREAD_FIT_POLICIES.md) | Conservative baseline print-fit policies in millimetres. |
|
|
100
100
|
|
|
101
|
-
Package: `@metamesh/modeling@0.
|
|
101
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -11,11 +11,10 @@ Manufacturing meshes use Float32 XYZ positions and Uint32 triangle indices. Clos
|
|
|
11
11
|
| [analyzeTriangleMesh](../analyzeTriangleMesh.md) | Validates and measures a mesh in one position and one triangle traversal. |
|
|
12
12
|
| [analyzeTriangleMeshQuality](../analyzeTriangleMeshQuality.md) | Measures triangle shape, edge topology, vertex concentration, and connected planar patches. |
|
|
13
13
|
| [heightfieldMesh](../heightfieldMesh.md) | Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base. Heights run once per grid point after preflight; center-error adds one evaluation per cell. Top winding is +Z, the base is -Z, and sides face outward. Coordinates and heights must fit Float32 storage. Explicit axes are captured before sampling; shared wall vertices prevent cracks. |
|
|
14
|
-
| [
|
|
14
|
+
| [computeTriangleMeshSignature](../computeTriangleMeshSignature.md) | Creates an order-independent regression signature for a manufacturing mesh. |
|
|
15
15
|
| [joinTriangleMeshes](../joinTriangleMeshes.md) | Concatenates meshes into one indexed mesh without welding coincident vertices. |
|
|
16
|
-
| [extrudeMesh](../extrudeMesh.md) | Linearly extrudes one simple profile along +Z with robust ear-clipped caps. |
|
|
16
|
+
| [extrudeMesh](../extrudeMesh.md) | Linearly extrudes one simple profile along +Z with robust ear-clipped caps. Path2 profiles must be closed; raw point collections have an implicit closing edge. |
|
|
17
17
|
| [loftMesh](../loftMesh.md) | Lofts simple point loops at z heights or explicit right-handed frames, in input order. |
|
|
18
|
-
| [measureTriangleMesh](../measureTriangleMesh.md) | Measures bounds, surface area, and signed volume without changing the mesh. |
|
|
19
18
|
| [preflightHeightfield](../preflightHeightfield.md) | Checks grid dimensions, coordinate precision, and allocation bounds before evaluating heights. |
|
|
20
19
|
| [reverseTriangleMesh](../reverseTriangleMesh.md) | Returns a copy of a mesh with every triangle winding reversed. |
|
|
21
20
|
| [sweepMesh](../sweepMesh.md) | Sweeps one explicitly ordered point loop, with caps or a geometrically matching closed seam. |
|
|
@@ -70,4 +69,4 @@ Manufacturing meshes use Float32 XYZ positions and Uint32 triangle indices. Clos
|
|
|
70
69
|
| [meshBounds](../meshBounds.md) | Computes axis-aligned bounds for a non-empty mesh. |
|
|
71
70
|
| [revolveMesh](../revolveMesh.md) | Revolves a non-duplicated closed `[radius, z]` profile around +Z. |
|
|
72
71
|
|
|
73
|
-
Package: `@metamesh/modeling@0.
|
|
72
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -2,33 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
Calculate pure linear, radial, grid, and path transforms.
|
|
4
4
|
|
|
5
|
-
Pure pattern transforms use the same counts, spacing, centering and frames as root pattern operations.
|
|
5
|
+
Pure pattern transforms use the same counts, spacing, centering and frames as root pattern operations. Transform3Matrix values can place points, meshes or explicit geometry without a native engine. Linear and grid spacing use millimetres; radial angles use degrees. Paths use physical arc-length intervals and omit the seam when closed.
|
|
6
6
|
|
|
7
7
|
## Functions
|
|
8
8
|
|
|
9
9
|
| API | Summary |
|
|
10
10
|
| --- | --- |
|
|
11
|
-
| [linearPatternTransforms](../linearPatternTransforms.md) |
|
|
11
|
+
| [linearPatternTransforms](../linearPatternTransforms.md) | Spatial XYZ matrix placements in millimetres, including the original at the origin. |
|
|
12
12
|
| [radialPatternTransforms](../radialPatternTransforms.md) | Rotations about an explicit axis; angles use degrees and the first placement is identity. |
|
|
13
|
-
| [gridPatternTransforms](../gridPatternTransforms.md) | XY or XYZ grid
|
|
13
|
+
| [gridPatternTransforms](../gridPatternTransforms.md) | Spatial XYZ matrices for an XY or XYZ grid, in X-fastest order. |
|
|
14
14
|
| [pathPatternTransforms](../pathPatternTransforms.md) | Equal physical arc-length placements along a sampled XYZ path. Tangent orientation maps +Z onto the local path tangent; fixed orientation only translates. Closed paths omit a repeated seam. Explicit sampling ceilings bound both input points and output placements. |
|
|
15
15
|
|
|
16
16
|
## Interfaces
|
|
17
17
|
|
|
18
18
|
| API | Summary |
|
|
19
19
|
| --- | --- |
|
|
20
|
-
| [RadialPatternOptions](../RadialPatternOptions.md) | Options for repeating one solid around an axis through a center point. |
|
|
21
20
|
| [PathPatternOptions](../PathPatternOptions.md) | Equal physical arc-length placements along an open or implicitly closed sampled path. |
|
|
22
21
|
|
|
23
22
|
## Type aliases
|
|
24
23
|
|
|
25
24
|
| API | Summary |
|
|
26
25
|
| --- | --- |
|
|
27
|
-
| [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. |
|
|
28
|
-
| [
|
|
26
|
+
| [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. Dimension defaults to 3; Section patterns use 2 and accept XY vector directions. |
|
|
27
|
+
| [RadialPatternOptions](../RadialPatternOptions.md) | Degree rotations about a fixed world-space pivot; XY patterns use the implicit +Z axis. |
|
|
28
|
+
| [GridPatternOptions](../GridPatternOptions.md) | XY or XYZ grid with X varying fastest. The first item starts at the local origin. Dimension 2 restricts counts and spacing to XY; any frame must preserve the XY plane. |
|
|
29
29
|
|
|
30
30
|
## Guides
|
|
31
31
|
|
|
32
32
|
- [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
|
|
33
33
|
|
|
34
|
-
Package: `@metamesh/modeling@0.
|
|
34
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Share one option contract for dimensional primitives and edge treatments.
|
|
4
4
|
|
|
5
|
-
Dimensional shapes share object options, millimetre units and explicit placement. Boxes use scalar or XYZ size; cylinders use scalar or bottom/top radii and independent end treatments. Circular shapes share exact segments, physical resolution and vertex/face radial sizing where applicable. EdgeTreatment distinguishes circular radius from equal or unequal setbacks, smooth cubic transitions and exact custom setback profiles.
|
|
5
|
+
Dimensional shapes share object options, millimetre units and explicit placement. Boxes use scalar or XYZ size; cylinders use scalar or bottom/top radii and independent end treatments. Circular shapes share exact segments, physical resolution and vertex/face radial sizing where applicable. EdgeTreatment distinguishes circular radius from equal or unequal setbacks, smooth cubic transitions and exact custom setback profiles. PrimitiveAttachmentOptions maps a local anchor to a target with alignment, gap and degree spin.
|
|
6
6
|
|
|
7
7
|
## Interfaces
|
|
8
8
|
|
|
@@ -15,8 +15,8 @@ Dimensional shapes share object options, millimetre units and explicit placement
|
|
|
15
15
|
| [TorusOptions](../TorusOptions.md) | Dimensions and independent ring/profile tessellation for a torus around the Z axis. |
|
|
16
16
|
| [TubeOptions](../TubeOptions.md) | Dimensions, placement, and tessellation for a hollow Z-axis tube. |
|
|
17
17
|
| [EndTreatments](../EndTreatments.md) | Independent inward finishing on primitive or straight convex extrusion ends. Zero amounts leave the end untreated, including when all ends are disabled. |
|
|
18
|
-
| [
|
|
19
|
-
| [
|
|
18
|
+
| [PrimitiveAttachment](../PrimitiveAttachment.md) | Anchor attachment shared by solid and filled-section factories. |
|
|
19
|
+
| [PrimitiveAttachmentOptions](../PrimitiveAttachmentOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
|
|
20
20
|
| [RadialSizingOptions](../RadialSizingOptions.md) | Nominal radial sizing shared by circular and regular polygon construction. |
|
|
21
21
|
| [SmoothEdgeTreatment](../SmoothEdgeTreatment.md) | A cubic corner transition with zero curvature at its straight tangent joins. |
|
|
22
22
|
| [ProfiledEdgeTreatment](../ProfiledEdgeTreatment.md) | A deliberately sampled, inward-only corner profile with exact polyline geometry. |
|
|
@@ -33,4 +33,4 @@ Dimensional shapes share object options, millimetre units and explicit placement
|
|
|
33
33
|
| [BoxEdgeSelection](../BoxEdgeSelection.md) | Named individual edges or top/bottom rims and all four vertical edges. |
|
|
34
34
|
| [BoxEdgeTreatments](../BoxEdgeTreatments.md) | Independent treatments for disjoint named edge selections; overlapping selections fail. |
|
|
35
35
|
|
|
36
|
-
Package: `@metamesh/modeling@0.
|
|
36
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Define winding, holes, stable profile landmarks, and reusable planar boundaries.
|
|
4
4
|
|
|
5
|
-
Outer contours are counterclockwise and holes clockwise in Y-up coordinates, with implicit closing edges.
|
|
5
|
+
Outer contours are counterclockwise and holes clockwise in Y-up coordinates, with implicit closing edges. Contour factories return point data; regularPolygonContour uses degree rotation and explicit vertex/face sizing. Path2.transform preserves traversal, while transformRegionData accepts a Transform2 placement or canonical Transform2Matrix data and retains reflection-safe filled winding. Use Section.transform for ordinary filled-shape authoring; transformRegionData serves serialized data preparation. `rectangleProfile({ size, treatment, id })` returns identified spans for family matching, not sampled points. Profile families preserve component, contour and span identities; matchProfiles returns CorrespondingProfile values with stable shared landmarks. No automatic topology guessing or reordering occurs. closeToAxis closes an open upward radius/height outline into a solid-body contour; hollow walls and bores require explicit material contours.
|
|
6
6
|
|
|
7
7
|
## Functions
|
|
8
8
|
|
|
@@ -21,8 +21,7 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
|
|
|
21
21
|
| [sampleSideProfile](../sampleSideProfile.md) | Samples 1–31 line/cubic segments into a deeply immutable open [radius,height] polyline. Anchors must progress strictly upward; nonnegative-radius cubic controls must have ordered heights between their endpoints. Cubics use de Casteljau subdivision with a conservative control-hull chord-error bound. Lines also obey the optional physical edge-length ceiling. Neither normalized coordinates nor editor metadata are required. Endpoints are retained once; no axis closure, winding normalization, or manufacturing repair is performed. |
|
|
22
22
|
| [sampleContour](../sampleContour.md) | Samples 2–32 connected line/cubic segments into a simple, nonzero-area, immutable CCW XY loop. Physical scaling precedes adaptive curve sampling; the final end must repeat start exactly. Shared anchors and the closing seam are emitted once. Winding normalization may change the starting vertex. The sampled loop is checked for self-intersection and degeneracy by `normalizeContour`; this is a single contour without holes. No editor modes or normalized coordinate range are required. No native engine, SDK, or ambient resolution is used. |
|
|
23
23
|
| [signedContourArea](../signedContourArea.md) | Returns the signed area of a non-duplicated loop; positive means CCW. |
|
|
24
|
-
| [
|
|
25
|
-
| [transformRegion](../transformRegion.md) | Transforms an explicit outer/hole region with reflection-safe winding correction. |
|
|
24
|
+
| [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. |
|
|
26
25
|
| [triangulateContour](../triangulateContour.md) | Ear-clips one normalized simple CCW loop into stable local vertex indices. |
|
|
27
26
|
| [closeToAxis](../closeToAxis.md) | Closes an open, strictly upward [radius, height] side outline to the radius-zero axis. Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once. Returns a counterclockwise filled-boundary contour without a repeated seam vertex. Radii must be nonnegative; the result must enclose nonzero area without touching itself. This is a solid-body closure, not a hollow-wall or mounting-bore construction. |
|
|
28
27
|
|
|
@@ -36,7 +35,7 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
|
|
|
36
35
|
| [ContourCurve](../ContourCurve.md) | One explicitly closed planar contour, independent of editor metadata and parameter contracts. |
|
|
37
36
|
| [ContourPoint](../ContourPoint.md) | Planar X and upward Y in millimetres, or in units converted by sampling scales. |
|
|
38
37
|
| [SideProfilePoint](../SideProfilePoint.md) | Radius and upward height in millimetres, or in units converted by sampling scales. |
|
|
39
|
-
| [
|
|
38
|
+
| [PolygonData](../PolygonData.md) | One bounded two-dimensional polygon. |
|
|
40
39
|
| [Profile](../Profile.md) | An explicit component/contour/span topology, before shared family sampling. |
|
|
41
40
|
| [ProfileComponent2](../ProfileComponent2.md) | One component and its explicitly identified holes. |
|
|
42
41
|
| [ProfileContour2](../ProfileContour2.md) | Ordered, closed spans. Outer winding is CCW and hole winding is CW. |
|
|
@@ -59,7 +58,7 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
|
|
|
59
58
|
| [ContourSegment](../ContourSegment.md) | Straight or cubic Bézier segment in one closed planar contour. |
|
|
60
59
|
| [SideProfileSegment](../SideProfileSegment.md) | One straight or cubic segment of an open, upward-progressing radius/height outline. |
|
|
61
60
|
| [ProfileSpan2](../ProfileSpan2.md) | An identified line, circular arc, or cubic Bézier between corresponding landmarks. |
|
|
62
|
-
| [
|
|
61
|
+
| [RegionData](../RegionData.md) | A two-dimensional region represented by disjoint filled polygons. |
|
|
63
62
|
| [RectangleCornerTreatment](../RectangleCornerTreatment.md) | A rectangle corner, including an explicitly untreated corner in a treatment tuple. |
|
|
64
63
|
| [RectangleCornerTreatments](../RectangleCornerTreatments.md) | Corner treatments ordered top-right, top-left, bottom-left, bottom-right. |
|
|
65
64
|
|
|
@@ -71,4 +70,4 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
|
|
|
71
70
|
| [regularPolygonContour](../regularPolygonContour.md) | Creates a centered CCW point loop with vertex or face radial sizing and an implicit seam. |
|
|
72
71
|
| [starContour](../starContour.md) | Creates a centered CCW alternating-radius star within the selected profile sampling ceiling. |
|
|
73
72
|
|
|
74
|
-
Package: `@metamesh/modeling@0.
|
|
73
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Resolve physical sampling, numerical tolerances, and contextual failures.
|
|
4
4
|
|
|
5
|
-
Defaults are 0.05 mm maximum circular chord error and 16–512 segments per complete circle. Exact local counts win. Algorithm limits fail explicitly. GeometryError supplies structured codes and operation context; no ambient resolution state exists.
|
|
5
|
+
Defaults are 0.05 mm maximum circular chord error and 16–512 segments per complete circle. Face-sized circular sampling bounds outward radial excess and actual edge lengths. Exact local counts win. Algorithm limits fail explicitly. GeometryError supplies structured codes and operation context; no ambient resolution state exists.
|
|
6
6
|
|
|
7
7
|
## Functions
|
|
8
8
|
|
|
@@ -25,6 +25,7 @@ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per comp
|
|
|
25
25
|
| API | Summary |
|
|
26
26
|
| --- | --- |
|
|
27
27
|
| [AlignedCircularSegmentsOptions](../AlignedCircularSegmentsOptions.md) | Controls full-circle sampling that must satisfy one or more topology alignments. |
|
|
28
|
+
| [CircularResolutionOptions](../CircularResolutionOptions.md) | Circular sampling measured from the nominal inscribed or circumscribed radius. |
|
|
28
29
|
| [GeometryErrorContext](../GeometryErrorContext.md) | Serializable context attached to a geometry failure. |
|
|
29
30
|
| [GeometryResolution](../GeometryResolution.md) | Tessellation policy for sampled geometry measured in millimetres. |
|
|
30
31
|
| [GeometryToleranceOptions](../GeometryToleranceOptions.md) | Optional overrides for MetaMesh's geometry comparison policy. |
|
|
@@ -43,4 +44,4 @@ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per comp
|
|
|
43
44
|
| --- | --- |
|
|
44
45
|
| [DEFAULT_GEOMETRY_TOLERANCE](../DEFAULT_GEOMETRY_TOLERANCE.md) | Default absolute, relative, and angular tolerances for millimetre-scale models. |
|
|
45
46
|
|
|
46
|
-
Package: `@metamesh/modeling@0.
|
|
47
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
# Transforms and vector math
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Build immutable reusable placements and calculate with fluent vectors or tuple kernels.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Use immutable vector2/vector3 and transform2/transform3 values for ordinary authoring. Operations return new values; tuples remain convenient inputs. dot, length and distance return numbers; cross returns a signed scalar in 2D and a right-handed vector in 3D. Normalization rejects zero vectors; fluent values reject nonfinite inputs and results. Rotations use degrees and named optional `{ pivot }` points in world coordinates. Calls and andThen composition apply in execution order. Points include translation; directions exclude it and retain scale; normals use inverse-transpose normalization. Shape methods and path helpers accept matching transforms directly. toArray and toMatrix serve interchange using Vector2Tuple/Vector3Tuple and canonical Transform2Matrix/Transform3Matrix data. to3D/to2D convert dimensions explicitly; XY restriction requires a preserved plane. Raw tuple kernels avoid fluent object allocation in hot loops, and matrix constructors provide lower-level interoperability. rotationTransform3 requires an explicit degrees or radians object; composeTransform3(after, before) applies before first. Attachment matches source and target frames; physical clearance is an application decision.
|
|
6
6
|
|
|
7
7
|
## Functions
|
|
8
8
|
|
|
9
9
|
| API | Summary |
|
|
10
10
|
| --- | --- |
|
|
11
|
+
| [transform2](../transform2.md) | Creates an immutable XY transform, identity by default. Matrices are copied and validated. Pass it directly to Section.transform() and planar data helpers; to3D() explicitly crosses into XYZ. Zero scales and singular matrices throw GeometryError; negative scales reflect. |
|
|
12
|
+
| [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. Matrices are copied and validated. Calls apply in written order; rotations use degrees and pivots use current world coordinates. Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError. Use frameTransform3(frame) as the input for existing orthonormal frame placement. |
|
|
13
|
+
| [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform2().applyDirection(value) for rotations and nonuniform scaling. |
|
|
14
|
+
| [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform3().applyDirection(value) for rotations and nonuniform scaling. |
|
|
11
15
|
| [applyTransformDirection3](../applyTransformDirection3.md) | Applies only the linear component of an affine transform to a direction. |
|
|
12
16
|
| [applyTransformPoint3](../applyTransformPoint3.md) | Applies an affine transform to a point, including translation. |
|
|
13
|
-
| [
|
|
17
|
+
| [attachmentTransform3](../attachmentTransform3.md) | Builds the transform that moves a source anchor onto a target anchor. |
|
|
14
18
|
| [boxAnchor3](../boxAnchor3.md) | Creates an outward face-center anchor using the same local origin convention as box(). |
|
|
15
19
|
| [composeTransform3](../composeTransform3.md) | Composes two affine transforms without mutating either matrix. |
|
|
16
|
-
| [
|
|
20
|
+
| [anchor3](../anchor3.md) | Constructs a normalized immutable attachment anchor. |
|
|
17
21
|
| [cylinderAnchor3](../cylinderAnchor3.md) | Creates a cap-center or radial-side anchor using cylinder()'s construction origin. |
|
|
18
22
|
| [eulerTransform3](../eulerTransform3.md) | Creates an immutable right-handed XYZ Euler rotation transform. |
|
|
19
23
|
| [frameTransform3](../frameTransform3.md) | Converts a right-handed orthonormal frame into a local-to-world transform. |
|
|
@@ -28,8 +32,14 @@ Lengths are millimetres. Pure rotation constructors require a degrees or radians
|
|
|
28
32
|
|
|
29
33
|
| API | Summary |
|
|
30
34
|
| --- | --- |
|
|
31
|
-
| [
|
|
32
|
-
| [
|
|
35
|
+
| [Transform2](../Transform2-type.md) | Immutable reusable XY placement. Methods apply in written order; angles are degrees. |
|
|
36
|
+
| [Transform3](../Transform3-type.md) | Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. |
|
|
37
|
+
| [Pivot2Options](../Pivot2Options.md) | A fixed XY point in world coordinates; omitted pivots use the coordinate origin. |
|
|
38
|
+
| [Pivot3Options](../Pivot3Options.md) | A fixed XYZ point in world coordinates; omitted pivots use the coordinate origin. |
|
|
39
|
+
| [Vector2](../Vector2-type.md) | Immutable XY arithmetic; vector operations return new values and measurements return numbers. |
|
|
40
|
+
| [Vector3](../Vector3-type.md) | Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. |
|
|
41
|
+
| [Anchor3](../Anchor3-type.md) | An attachment pose on a solid or assembly. |
|
|
42
|
+
| [AttachOptions](../AttachOptions.md) | Options controlling how one anchor is attached to another. |
|
|
33
43
|
| [BoxAnchorOptions](../BoxAnchorOptions.md) | Box dimensions and construction origin for one named face anchor. |
|
|
34
44
|
| [CylinderAnchorOptions](../CylinderAnchorOptions.md) | Cylinder dimensions and construction origin for one named face anchor. |
|
|
35
45
|
|
|
@@ -37,27 +47,46 @@ Lengths are millimetres. Pure rotation constructors require a degrees or radians
|
|
|
37
47
|
|
|
38
48
|
| API | Summary |
|
|
39
49
|
| --- | --- |
|
|
50
|
+
| [Transform2Input](../Transform2Input.md) | An immutable XY transform or its canonical row-major matrix for interchange. |
|
|
51
|
+
| [Transform3Input](../Transform3Input.md) | An immutable XYZ transform or its canonical row-major matrix for interchange. |
|
|
52
|
+
| [Vector2Input](../Vector2Input.md) | An XY tuple or immutable fluent vector accepted by vector operations. |
|
|
53
|
+
| [Vector3Input](../Vector3Input.md) | An XYZ tuple or immutable fluent vector accepted by vector operations. |
|
|
40
54
|
| [AxisAngleRotation3](../AxisAngleRotation3.md) | One explicitly unit-labelled right-handed axis-angle rotation. |
|
|
41
55
|
| [BoxAnchorFace](../BoxAnchorFace.md) | Named face on an axis-aligned box. |
|
|
42
56
|
| [CylinderAnchorFace](../CylinderAnchorFace.md) | Named face on a cylinder parallel to +Z. |
|
|
43
|
-
| [
|
|
44
|
-
| [
|
|
45
|
-
| [
|
|
57
|
+
| [Transform2Matrix](../Transform2Matrix.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]`. |
|
|
58
|
+
| [Transform3Matrix](../Transform3Matrix.md) | A row-major affine 4x4 matrix applied to column vectors. |
|
|
59
|
+
| [Vector2Tuple](../Vector2Tuple.md) | A two-dimensional Cartesian vector or point. |
|
|
60
|
+
| [Vector3Tuple](../Vector3Tuple.md) | A three-dimensional Cartesian vector or point. |
|
|
46
61
|
|
|
47
62
|
## Values
|
|
48
63
|
|
|
49
64
|
| API | Summary |
|
|
50
65
|
| --- | --- |
|
|
66
|
+
| [add2](../add2.md) | Adds two finite XY vectors component-wise. |
|
|
51
67
|
| [add3](../add3.md) | Adds two finite XYZ vectors component-wise. |
|
|
52
68
|
| [cross3](../cross3.md) | Returns the right-handed cross product. |
|
|
69
|
+
| [cross2](../cross2.md) | Returns the signed scalar cross product; positive means `b` is counter-clockwise from `a`. |
|
|
70
|
+
| [distance2](../distance2.md) | Returns Euclidean point distance without allocating an intermediate difference vector. |
|
|
71
|
+
| [distance3](../distance3.md) | Returns Euclidean point distance without allocating an intermediate difference vector. |
|
|
53
72
|
| [dot3](../dot3.md) | Returns the scalar dot product. |
|
|
73
|
+
| [dot2](../dot2.md) | Returns the scalar dot product. |
|
|
54
74
|
| [IDENTITY_TRANSFORM3](../IDENTITY_TRANSFORM3.md) | Identity transform, safe to share because it is frozen. |
|
|
55
75
|
| [length3](../length3.md) | Returns Euclidean vector length in the vector's coordinate units. |
|
|
76
|
+
| [length2](../length2.md) | Returns Euclidean vector length in the vector's coordinate units. |
|
|
56
77
|
| [lerp3](../lerp3.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
|
|
57
|
-
| [
|
|
78
|
+
| [lerp2](../lerp2.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
|
|
79
|
+
| [normalize3](../normalize3.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively. |
|
|
80
|
+
| [normalize2](../normalize2.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively. |
|
|
58
81
|
| [projectOntoPlane3](../projectOntoPlane3.md) | Removes the component parallel to a normalized plane normal. |
|
|
59
|
-
| [
|
|
82
|
+
| [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. |
|
|
60
83
|
| [scale3](../scale3.md) | Multiplies a vector by a dimensionless scalar. |
|
|
84
|
+
| [scale2](../scale2.md) | Multiplies a vector by a dimensionless scalar. |
|
|
61
85
|
| [subtract3](../subtract3.md) | Subtracts `b` from `a`. |
|
|
86
|
+
| [subtract2](../subtract2.md) | Subtracts `b` from `a` component-wise. |
|
|
62
87
|
|
|
63
|
-
|
|
88
|
+
## Guides
|
|
89
|
+
|
|
90
|
+
- [Reusable transforms and vector math](../../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
|
|
91
|
+
|
|
92
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -10,14 +10,14 @@ SVG input is bounded and rejects unsupported resources or content contextually.
|
|
|
10
10
|
| --- | --- |
|
|
11
11
|
| [preflightSvgRegion](../preflightSvgRegion.md) | Preflights bounded SVG geometry without browser or Manifold dependencies. |
|
|
12
12
|
| [sampleTextContours](../sampleTextContours.md) | Samples a prepared text layout without shaping text again or loading a font. |
|
|
13
|
-
| [
|
|
13
|
+
| [strokeRegionData](../strokeRegionData.md) | Converts a sampled millimetre path into the filled region covered by a centered stroke. |
|
|
14
14
|
| [fitTextLayout](../fitTextLayout.md) | Uniformly fits visible text ink inside finite XY bounds, centering it on the target. Transforms retained vector paths before sampling, so later textSection/sampleTextContours resolution remains in final millimetres. Logical advances scale without translation; line count is unchanged. The input layout is preserved. |
|
|
15
15
|
|
|
16
16
|
## Interfaces
|
|
17
17
|
|
|
18
18
|
| API | Summary |
|
|
19
19
|
| --- | --- |
|
|
20
|
-
| [
|
|
20
|
+
| [StrokeOptions](../StrokeOptions.md) | Physical stroke and topology controls shared by pure regions and native Sections. |
|
|
21
21
|
| [SvgImportOptions](../SvgImportOptions.md) | Sampling controls for deterministic SVG-to-region conversion. |
|
|
22
22
|
| [SvgRegionPreflight](../SvgRegionPreflight.md) | Exact normalized SVG region plus bounded source, geometry, and safe-repair diagnostics. |
|
|
23
23
|
| [SvgRegionPreflightRepairs](../SvgRegionPreflightRepairs.md) | Visible, appearance-preserving cleanup counters from bounded SVG import. |
|
|
@@ -34,7 +34,7 @@ SVG input is bounded and rejects unsupported resources or content contextually.
|
|
|
34
34
|
|
|
35
35
|
| API | Summary |
|
|
36
36
|
| --- | --- |
|
|
37
|
-
| [
|
|
38
|
-
| [
|
|
37
|
+
| [StrokeCap](../StrokeCap.md) | End-cap treatment for an open stroked path. |
|
|
38
|
+
| [StrokeJoin](../StrokeJoin.md) | Join treatment where adjacent stroked path segments meet. |
|
|
39
39
|
|
|
40
|
-
Package: `@metamesh/modeling@0.
|
|
40
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Closes an open, strictly upward [radius, height] side outline to the radius-zero axis. Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once. Returns a counterclockwise filled-boundary contour without a repeated seam vertex. Radii must be nonnegative; the result must enclose nonzero area without touching itself. This is a solid-body closure, not a hollow-wall or mounting-bore construction.
|
|
4
4
|
|
|
5
|
-
**closeToAxis**(`side`: readonly [`
|
|
5
|
+
**closeToAxis**(`side`: readonly [`Vector2Tuple`](Vector2Tuple.md)[], `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>): [`Contour`](Contour.md)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@ Closes an open, strictly upward [radius, height] side outline to the radius-zero
|
|
|
10
10
|
|
|
11
11
|
<a id="side"></a>
|
|
12
12
|
|
|
13
|
-
**`side`** · readonly [`
|
|
13
|
+
**`side`** · readonly [`Vector2Tuple`](Vector2Tuple.md)[] · Required
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
@@ -29,6 +29,6 @@ Closes an open, strictly upward [radius, height] side outline to the radius-zero
|
|
|
29
29
|
|
|
30
30
|
- [Contour](Contour.md)
|
|
31
31
|
- [GeometrySamplingLimits](GeometrySamplingLimits.md)
|
|
32
|
-
- [
|
|
32
|
+
- [Vector2Tuple](Vector2Tuple.md)
|
|
33
33
|
|
|
34
|
-
Package: `@metamesh/modeling@0.
|
|
34
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Applies axial fit allowance to a validated periodic profile.
|
|
4
4
|
|
|
5
|
-
**compensateThreadProfileAxially**(`profile`: [`ThreadProfile`](ThreadProfile.md), `axialBacklash`: `number`, `role`: `"female"` \| `"male"`): [`ThreadProfile`](ThreadProfile.md)
|
|
5
|
+
**compensateThreadProfileAxially**(`profile`: [`ThreadProfile`](ThreadProfile-type.md), `axialBacklash`: `number`, `role`: `"female"` \| `"male"`): [`ThreadProfile`](ThreadProfile-type.md)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -14,7 +14,7 @@ change. The returned profile is a new deeply immutable value.
|
|
|
14
14
|
|
|
15
15
|
<a id="profile"></a>
|
|
16
16
|
|
|
17
|
-
**`profile`** · [`ThreadProfile`](ThreadProfile.md) · Required
|
|
17
|
+
**`profile`** · [`ThreadProfile`](ThreadProfile-type.md) · Required
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
@@ -32,11 +32,11 @@ change. The returned profile is a new deeply immutable value.
|
|
|
32
32
|
|
|
33
33
|
## Returns
|
|
34
34
|
|
|
35
|
-
[`ThreadProfile`](ThreadProfile.md)
|
|
35
|
+
[`ThreadProfile`](ThreadProfile-type.md)
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
## Related APIs
|
|
39
39
|
|
|
40
|
-
- [ThreadProfile](ThreadProfile.md)
|
|
40
|
+
- [ThreadProfile](ThreadProfile-type.md)
|
|
41
41
|
|
|
42
|
-
Package: `@metamesh/modeling@0.
|
|
42
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Applies printable axial fit plus the conservative phase allowance required by circular facets.
|
|
4
4
|
|
|
5
|
-
**compensateThreadProfileForFaceting**(`profile`: [`ThreadProfile`](ThreadProfile.md), `axialBacklash`: `number`, `role`: `"female"` \| `"male"`, `starts`: `number`, `circularSegments`: `number`): [`ThreadProfile`](ThreadProfile.md)
|
|
5
|
+
**compensateThreadProfileForFaceting**(`profile`: [`ThreadProfile`](ThreadProfile-type.md), `axialBacklash`: `number`, `role`: `"female"` \| `"male"`, `starts`: `number`, `circularSegments`: `number`): [`ThreadProfile`](ThreadProfile-type.md)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ it exactly.
|
|
|
16
16
|
|
|
17
17
|
<a id="profile"></a>
|
|
18
18
|
|
|
19
|
-
**`profile`** · [`ThreadProfile`](ThreadProfile.md) · Required
|
|
19
|
+
**`profile`** · [`ThreadProfile`](ThreadProfile-type.md) · Required
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
@@ -46,11 +46,11 @@ it exactly.
|
|
|
46
46
|
|
|
47
47
|
## Returns
|
|
48
48
|
|
|
49
|
-
[`ThreadProfile`](ThreadProfile.md)
|
|
49
|
+
[`ThreadProfile`](ThreadProfile-type.md)
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
## Related APIs
|
|
53
53
|
|
|
54
|
-
- [ThreadProfile](ThreadProfile.md)
|
|
54
|
+
- [ThreadProfile](ThreadProfile-type.md)
|
|
55
55
|
|
|
56
|
-
Package: `@metamesh/modeling@0.
|
|
56
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Composes two affine transforms without mutating either matrix.
|
|
4
4
|
|
|
5
|
-
**composeTransform3**(`after`: [`
|
|
5
|
+
**composeTransform3**(`after`: [`Transform3Matrix`](Transform3Matrix.md), `before`: [`Transform3Matrix`](Transform3Matrix.md)): [`Transform3Matrix`](Transform3Matrix.md)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -12,7 +12,7 @@ Composes two affine transforms without mutating either matrix.
|
|
|
12
12
|
|
|
13
13
|
<a id="after"></a>
|
|
14
14
|
|
|
15
|
-
**`after`** · [`
|
|
15
|
+
**`after`** · [`Transform3Matrix`](Transform3Matrix.md) · Required
|
|
16
16
|
|
|
17
17
|
Transform applied second.
|
|
18
18
|
|
|
@@ -20,7 +20,7 @@ Transform applied second.
|
|
|
20
20
|
|
|
21
21
|
<a id="before"></a>
|
|
22
22
|
|
|
23
|
-
**`before`** · [`
|
|
23
|
+
**`before`** · [`Transform3Matrix`](Transform3Matrix.md) · Required
|
|
24
24
|
|
|
25
25
|
Transform applied first.
|
|
26
26
|
|
|
@@ -28,13 +28,17 @@ Transform applied first.
|
|
|
28
28
|
|
|
29
29
|
## Returns
|
|
30
30
|
|
|
31
|
-
[`
|
|
31
|
+
[`Transform3Matrix`](Transform3Matrix.md)
|
|
32
32
|
|
|
33
33
|
A new frozen transform equal to `after * before`.
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
## Related APIs
|
|
37
37
|
|
|
38
|
-
- [
|
|
38
|
+
- [Transform3Matrix](Transform3Matrix.md)
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
## Guides
|
|
41
|
+
|
|
42
|
+
- [Reusable transforms and vector math](../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
|
|
43
|
+
|
|
44
|
+
Package: `@metamesh/modeling@0.15.0`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Builds rotation-minimizing frames for a non-duplicated closed path.
|
|
4
4
|
|
|
5
|
-
`const` **computeClosedParallelTransportFrames**: (`
|
|
5
|
+
`const` **computeClosedParallelTransportFrames**: (`input`: [`Path3Input`](Path3Input.md), `initialNormal?`: [`Vector3Input`](Vector3Input.md), `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>) => readonly [`PathFrame`](PathFrame.md)[]
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -10,18 +10,21 @@ Centered cyclic tangents are parallel-transported around the loop. Transporting
|
|
|
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
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
|
+
Nonfinite initial normals reject; finite parallel preferences select a canonical fallback.
|
|
13
16
|
|
|
14
17
|
## Parameters
|
|
15
18
|
|
|
16
|
-
<a id="
|
|
19
|
+
<a id="input"></a>
|
|
17
20
|
|
|
18
|
-
**`
|
|
21
|
+
**`input`** · [`Path3Input`](Path3Input.md) · Required
|
|
19
22
|
|
|
20
23
|
|
|
21
24
|
|
|
22
25
|
<a id="initialnormal"></a>
|
|
23
26
|
|
|
24
|
-
**`initialNormal`** · [`
|
|
27
|
+
**`initialNormal`** · [`Vector3Input`](Vector3Input.md) · Optional
|
|
25
28
|
|
|
26
29
|
|
|
27
30
|
|
|
@@ -39,7 +42,8 @@ readonly [`PathFrame`](PathFrame.md)[]
|
|
|
39
42
|
## Related APIs
|
|
40
43
|
|
|
41
44
|
- [GeometrySamplingLimits](GeometrySamplingLimits.md)
|
|
45
|
+
- [Path3Input](Path3Input.md)
|
|
42
46
|
- [PathFrame](PathFrame.md)
|
|
43
|
-
- [
|
|
47
|
+
- [Vector3Input](Vector3Input.md)
|
|
44
48
|
|
|
45
|
-
Package: `@metamesh/modeling@0.
|
|
49
|
+
Package: `@metamesh/modeling@0.15.0`.
|