@metamesh/modeling 0.13.0 → 0.14.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 +13 -0
- package/README.md +52 -9
- package/dist/api/engine.d.ts +3 -3
- package/dist/api/geometry.d.ts +521 -185
- package/dist/api/index.d.ts +414 -145
- package/dist/api/text.d.ts +3 -3
- package/dist/docs/guides/concepts.md +114 -11
- package/dist/docs/guides/fonts.md +8 -0
- package/dist/docs/guides/fundamentals.md +4 -2
- package/dist/docs/guides/generation.md +6 -4
- package/dist/docs/guides/hosting.md +7 -4
- package/dist/docs/guides/recipes.md +52 -2
- package/dist/docs/manifest.json +1246 -394
- 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 +1 -1
- package/dist/docs/reference/engine/ModelSession.md +1 -1
- package/dist/docs/reference/engine/ModelSnapshot.md +1 -1
- package/dist/docs/reference/engine/SessionOptions.md +1 -1
- package/dist/docs/reference/engine/SnapshotPart.md +3 -3
- package/dist/docs/reference/engine/categories/host-lifecycle.md +1 -1
- package/dist/docs/reference/engine/createModelEngine.md +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +14 -1
- package/dist/docs/reference/geometry/Anchor3.md +9 -5
- package/dist/docs/reference/geometry/ArcCurve2.md +3 -3
- package/dist/docs/reference/geometry/ArcCurve3.md +5 -5
- package/dist/docs/reference/geometry/AttachTransformOptions.md +5 -1
- 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 +3 -3
- 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/ClosestPointOnPathOptions.md +34 -0
- package/dist/docs/reference/geometry/ClosestPointOnPathResult.md +65 -0
- 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 +1 -1
- 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 +7 -3
- package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearDimensions.md +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +3 -3
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +3 -3
- 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 +10 -1
- 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 +4 -4
- 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 +1 -1
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +1 -1
- 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 +1 -1
- 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 +3 -3
- package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/geometry/LoftMeshStation.md +1 -1
- 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.md +3 -3
- package/dist/docs/reference/geometry/Path3.md +3 -3
- package/dist/docs/reference/geometry/PathFrame.md +5 -5
- package/dist/docs/reference/geometry/PathNormalGuide.md +5 -5
- package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/PathPlacement.md +4 -4
- 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 +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/PrimitivePlacement.md +1 -1
- package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/RadialPatternOptions.md +4 -4
- 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 +1 -1
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/RevolveOptions.md +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/SphereOptions.md +1 -1
- package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/StrokePathCap.md +1 -1
- package/dist/docs/reference/geometry/StrokePathJoin.md +1 -1
- package/dist/docs/reference/geometry/StrokePathRegionOptions.md +2 -2
- 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 +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +1 -1
- package/dist/docs/reference/geometry/SweepOptions.md +3 -3
- 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 +1 -1
- 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 +1 -1
- 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 +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 +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/TorusOptions.md +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/TriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignature.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/anchorFrame3.md +1 -1
- package/dist/docs/reference/geometry/applyTransformDirection3.md +11 -7
- package/dist/docs/reference/geometry/applyTransformPoint3.md +11 -7
- package/dist/docs/reference/geometry/attachTransform.md +8 -4
- 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 +7 -3
- package/dist/docs/reference/geometry/buildHelicalThreadRidgeMesh.md +1 -1
- package/dist/docs/reference/geometry/buildHelicalThreadSolidMesh.md +1 -1
- package/dist/docs/reference/geometry/categories/bounds-layout.md +1 -1
- package/dist/docs/reference/geometry/categories/curves-paths.md +6 -3
- package/dist/docs/reference/geometry/categories/mechanical.md +1 -1
- package/dist/docs/reference/geometry/categories/meshes.md +1 -1
- package/dist/docs/reference/geometry/categories/pattern-placement.md +2 -2
- package/dist/docs/reference/geometry/categories/primitive-options.md +1 -1
- package/dist/docs/reference/geometry/categories/profiles-regions.md +6 -6
- package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -2
- package/dist/docs/reference/geometry/categories/transforms-math.md +37 -8
- package/dist/docs/reference/geometry/categories/vector-import.md +2 -2
- package/dist/docs/reference/geometry/circleContour.md +1 -1
- package/dist/docs/reference/geometry/closeToAxis.md +4 -4
- package/dist/docs/reference/geometry/closestPointOnPath.md +110 -0
- package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +1 -1
- package/dist/docs/reference/geometry/composeTransform3.md +10 -6
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +5 -5
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +5 -5
- package/dist/docs/reference/geometry/computeTriangleMeshCentroid.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/createAnchor3.md +10 -6
- package/dist/docs/reference/geometry/createThreadProfile.md +1 -1
- package/dist/docs/reference/geometry/createTriangleMeshSignature.md +1 -1
- package/dist/docs/reference/geometry/cross2.md +36 -0
- package/dist/docs/reference/geometry/cross3.md +10 -6
- package/dist/docs/reference/geometry/cumulativePathLengths.md +4 -4
- package/dist/docs/reference/geometry/cylinderAnchor3.md +6 -2
- 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 +4 -4
- 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 +2 -2
- 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 +1 -1
- package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/gridPatternTransforms.md +4 -4
- package/dist/docs/reference/geometry/heightfieldMesh.md +1 -1
- 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 +4 -4
- package/dist/docs/reference/geometry/loftMesh.md +1 -1
- package/dist/docs/reference/geometry/matchProfiles.md +1 -1
- package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +3 -2
- package/dist/docs/reference/geometry/measureTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/meshBounds.md +1 -1
- package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/pathLength.md +4 -4
- package/dist/docs/reference/geometry/pathPatternTransforms.md +6 -6
- package/dist/docs/reference/geometry/preflightHeightfield.md +1 -1
- package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +1 -1
- package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +1 -1
- package/dist/docs/reference/geometry/preflightSvgRegion.md +1 -1
- package/dist/docs/reference/geometry/preflightThreadedNut.md +1 -1
- package/dist/docs/reference/geometry/preflightThreadedRod.md +1 -1
- package/dist/docs/reference/geometry/projectOntoPlane3.md +10 -6
- package/dist/docs/reference/geometry/radialPatternTransforms.md +6 -6
- 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 +4 -4
- package/dist/docs/reference/geometry/resamplePolyline2.md +4 -4
- package/dist/docs/reference/geometry/resamplePolyline3.md +4 -4
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +5 -1
- package/dist/docs/reference/geometry/resolveArcSegments.md +4 -4
- 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 +5 -5
- 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 +1 -1
- package/dist/docs/reference/geometry/reverseTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/revolveMesh.md +4 -4
- 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 +5 -5
- package/dist/docs/reference/geometry/sampleContour.md +1 -1
- package/dist/docs/reference/geometry/sampleCurve2.md +1 -1
- package/dist/docs/reference/geometry/sampleCurve3.md +1 -1
- package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleHelix.md +4 -4
- package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleRackToothPath.md +1 -1
- package/dist/docs/reference/geometry/sampleSideProfile.md +4 -4
- package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
- package/dist/docs/reference/geometry/sampleThreadHelices.md +1 -1
- 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/strokePathRegion.md +4 -4
- 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 +5 -5
- package/dist/docs/reference/geometry/transform2.md +38 -0
- package/dist/docs/reference/geometry/transform3.md +38 -0
- package/dist/docs/reference/geometry/transformContour.md +5 -5
- package/dist/docs/reference/geometry/transformDeterminant3.md +8 -4
- package/dist/docs/reference/geometry/transformPath2.md +5 -5
- package/dist/docs/reference/geometry/transformPath3.md +5 -5
- package/dist/docs/reference/geometry/transformRegionData.md +40 -0
- package/dist/docs/reference/geometry/transformTriangleMesh.md +4 -4
- 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 +1 -1
- 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 +2 -2
- package/dist/docs/reference/model/Anchor3.md +5 -5
- package/dist/docs/reference/model/AttachOptions.md +1 -1
- 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 +3 -3
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/docs/reference/model/EndTreatments.md +1 -1
- package/dist/docs/reference/model/ExtrudeOptions.md +3 -3
- package/dist/docs/reference/model/FinalizedModel.md +1 -1
- 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 +1 -1
- 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 +4 -4
- package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
- package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +1 -1
- 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 +1 -1
- package/dist/docs/reference/model/LinearPatternOptions.md +3 -3
- 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 +2 -2
- 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/{fromRegion.md → Path2.md} +5 -18
- package/dist/docs/reference/model/PathNormalGuide.md +5 -5
- package/dist/docs/reference/model/PathPatternOptions.md +1 -1
- 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 +81 -4
- package/dist/docs/reference/model/PrimitivePlacement.md +1 -1
- package/dist/docs/reference/model/PrimitivePlacementOptions.md +1 -1
- 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 +4 -4
- 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 +3 -3
- package/dist/docs/reference/model/{Region.md → RegionData.md} +4 -4
- package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
- package/dist/docs/reference/model/RevolveOptions.md +1 -1
- package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Section.md +75 -35
- package/dist/docs/reference/model/SectionHullOptions.md +7 -7
- package/dist/docs/reference/model/SectionInspection.md +4 -4
- 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 +44 -21
- package/dist/docs/reference/model/SolidInspection.md +4 -4
- package/dist/docs/reference/model/SolidRayHit.md +4 -4
- package/dist/docs/reference/model/SphereOptions.md +1 -1
- package/dist/docs/reference/model/StarOptions.md +1 -1
- package/dist/docs/reference/model/StrokeOptions.md +91 -0
- package/dist/docs/reference/model/StrokePathCap.md +16 -0
- package/dist/docs/reference/model/StrokePathJoin.md +16 -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 +3 -3
- 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 +1 -1
- 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 +1 -1
- package/dist/docs/reference/model/TorusOptions.md +1 -1
- 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 +1 -1
- package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/model/TubeOptions.md +1 -1
- 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 +2 -2
- 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 +1 -1
- package/dist/docs/reference/model/categories/core-values-errors.md +5 -5
- package/dist/docs/reference/model/categories/explicit-profiles.md +2 -2
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +1 -1
- package/dist/docs/reference/model/categories/generation.md +1 -1
- package/dist/docs/reference/model/categories/inspection.md +5 -5
- package/dist/docs/reference/model/categories/mesh-inspection.md +2 -2
- package/dist/docs/reference/model/categories/primitives.md +2 -2
- package/dist/docs/reference/model/categories/resolution.md +1 -1
- package/dist/docs/reference/model/categories/sections.md +11 -8
- package/dist/docs/reference/model/categories/threads.md +1 -1
- package/dist/docs/reference/model/categories/transforms-placement.md +21 -7
- package/dist/docs/reference/model/circle.md +1 -1
- package/dist/docs/reference/model/components.md +7 -4
- 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 +2 -2
- package/dist/docs/reference/model/generate.md +1 -1
- package/dist/docs/reference/model/gridPattern.md +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/docs/reference/model/loft.md +1 -1
- package/dist/docs/reference/model/matchProfiles.md +1 -1
- package/dist/docs/reference/model/minkowskiSum.md +1 -1
- package/dist/docs/reference/model/pathPattern.md +6 -6
- package/dist/docs/reference/model/polygon.md +1 -1
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +1 -1
- package/dist/docs/reference/model/preflightThreadedNut.md +1 -1
- package/dist/docs/reference/model/preflightThreadedRod.md +1 -1
- package/dist/docs/reference/model/radialPattern.md +5 -5
- package/dist/docs/reference/model/rayCast.md +5 -5
- package/dist/docs/reference/model/rectangle.md +2 -2
- package/dist/docs/reference/model/regularPolygon.md +1 -1
- package/dist/docs/reference/model/revolve.md +1 -1
- 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 +1 -1
- 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 +5 -5
- package/dist/docs/reference/model/textSection.md +1 -1
- package/dist/docs/reference/model/threadRidge.md +1 -1
- package/dist/docs/reference/model/threadedNut.md +1 -1
- package/dist/docs/reference/model/threadedRod.md +1 -1
- package/dist/docs/reference/model/toTriangleMesh.md +1 -1
- package/dist/docs/reference/model/torus.md +1 -1
- 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 +1 -1
- 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 +7 -7
- 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 +1 -1
- package/dist/docs/reference/text/VectorFontOptions.md +1 -1
- package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
- 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 +2 -2
- package/dist/docs/reference/text/prepareVectorFont.md +1 -1
- package/dist/docs/reference/text.md +1 -1
- package/dist/engine/deferred-context.js +11 -181
- package/dist/engine/native/transforms.js +6 -1
- package/dist/engine/pattern-operations.js +2 -2
- package/dist/engine/primitive-profiles.js +1 -0
- package/dist/engine/recipe-realization.js +29 -21
- package/dist/engine/section-operations.js +19 -3
- package/dist/engine/session-graph.js +1 -1
- package/dist/engine/session-native.js +1 -1
- package/dist/engine/session-snapshot.js +3 -2
- package/dist/engine/session.js +3 -3
- package/dist/engine/shape-anchors.js +3 -9
- package/dist/engine/transform-operations.js +42 -25
- package/dist/geometry/index.js +6 -2
- 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 +7 -4
- package/dist/geometry/mesh/mesh-solid-intersections.js +5 -1
- package/dist/geometry/paths/closest-point.js +74 -0
- package/dist/geometry/paths/frames.js +3 -3
- package/dist/geometry/primitive-resolution.js +4 -1
- package/dist/geometry/resolution.js +17 -5
- package/dist/geometry/stroke-path.js +48 -44
- package/dist/geometry/sweeps/stations.js +4 -4
- package/dist/geometry/sweeps/sweep-closed.js +3 -3
- package/dist/geometry/sweeps/sweep-open.js +3 -3
- package/dist/geometry/transform-chain.js +172 -0
- package/dist/geometry/transform-geometry.js +28 -24
- 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 +3 -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 +25 -3
- package/dist/model/operation-dispatch.js +10 -3
- package/dist/model/operations.js +21 -10
- package/dist/model/recipe-declaration.js +193 -0
- package/dist/model/shape-handles.js +15 -4
- package/package.json +1 -1
- package/dist/docs/reference/geometry/Region.md +0 -14
- 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/rotateAroundAxis3.md +0 -38
- package/dist/docs/reference/geometry/transformRegion.md +0 -40
- package/dist/docs/reference/model/Transform2.md +0 -15
- package/dist/docs/reference/model/toRegion.md +0 -33
- 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/api/text.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/** Axis-aligned bounds in two-dimensional model space. */
|
|
2
2
|
export declare interface Bounds2 {
|
|
3
3
|
/** Inclusive maximum X/Y coordinates. */
|
|
4
|
-
readonly max:
|
|
4
|
+
readonly max: Vector2Tuple;
|
|
5
5
|
/** Inclusive minimum X/Y coordinates. */
|
|
6
|
-
readonly min:
|
|
6
|
+
readonly min: Vector2Tuple;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
/** Limits apply before parsing or shaping untrusted font data. */
|
|
@@ -26,7 +26,7 @@ export declare function prepareVectorFont(
|
|
|
26
26
|
): Promise<VectorFont>;
|
|
27
27
|
|
|
28
28
|
/** A two-dimensional Cartesian vector or point. */
|
|
29
|
-
export declare type
|
|
29
|
+
export declare type Vector2Tuple = readonly [x: number, y: number];
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* A prepared font owns its parsed bytes; keep handles local to their Worker or invocation.
|
|
@@ -14,7 +14,7 @@ import { generate } from "@metamesh/project";
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
Studio supplies this API and its runtime to code Projects. Standalone applications use the same
|
|
17
|
-
|
|
17
|
+
values in a generation program. The [Model API reference](../reference/model.md) provides
|
|
18
18
|
exact signatures; this guide explains how the concepts fit together.
|
|
19
19
|
|
|
20
20
|
## Choose the module for your host
|
|
@@ -26,8 +26,9 @@ exact signatures; this guide explains how the concepts fit together.
|
|
|
26
26
|
| [`@metamesh/modeling/engine`](../reference/engine.md) | Standalone initialization, model finalization, and 3MF export | Your Node application or browser Worker |
|
|
27
27
|
| [`@metamesh/modeling/text`](../reference/text.md) | Prepare exact font bytes and vector layouts outside Studio | Your host acquires the font bytes |
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
Construct immutable shapes, vectors, and transforms in ordinary TypeScript and reuse them in
|
|
30
|
+
synchronous generation. A host evaluates geometry and owns observations and export. Add pure
|
|
31
|
+
geometry helpers for custom calculations.
|
|
31
32
|
|
|
32
33
|
## Use Modeling outside Studio
|
|
33
34
|
|
|
@@ -42,8 +43,8 @@ The public API names values by modeling role:
|
|
|
42
43
|
- A `Path3` is an ordered 3D trajectory.
|
|
43
44
|
- A `Path2` is an ordered 2D trajectory.
|
|
44
45
|
- A `Contour` is plain point data for a closed 2D boundary, without a repeated closing point.
|
|
45
|
-
-
|
|
46
|
-
|
|
46
|
+
- `PolygonData` contains one outer contour and its holes. `RegionData` is the plain serialized
|
|
47
|
+
representation of filled 2D geometry, including disconnected polygons.
|
|
47
48
|
- A `Profile` specifies identified components, contours and spans for a related shape family.
|
|
48
49
|
- A `CorrespondingProfile` contains the shared sampled landmarks produced by `matchProfiles`.
|
|
49
50
|
- A `Section` is a filled 2D shape used for section Booleans, offsets, extrusion, revolution,
|
|
@@ -51,11 +52,16 @@ The public API names values by modeling role:
|
|
|
51
52
|
- A `Solid` is a valid three-dimensional result that can participate in solid Booleans and become
|
|
52
53
|
model output.
|
|
53
54
|
- An `Anchor3` is an explicit local frame used to place one solid against another.
|
|
54
|
-
- `Vector2` and `Vector3` are
|
|
55
|
+
- `Vector2` and `Vector3` are immutable arithmetic values created by `vector2` and `vector3`.
|
|
56
|
+
- `Vector2Tuple` and `Vector3Tuple` are fixed numeric tuples for coordinate interchange and kernels.
|
|
55
57
|
- `Bounds2` and `Bounds3` contain finite minimum and maximum tuples for measurements and placement.
|
|
56
58
|
|
|
57
|
-
`Section` and `Solid` are opaque
|
|
58
|
-
|
|
59
|
+
`Section` and `Solid` are opaque immutable recipes. Construction and composition need no engine;
|
|
60
|
+
ordinary recipes can be reused across sessions regardless of where they were constructed.
|
|
61
|
+
Explicitly supplied resolution settings are captured; unspecified settings inherit the evaluating
|
|
62
|
+
host's defaults. The host owns evaluation caches and native kernel values. `components()` is an
|
|
63
|
+
observation: its selected shapes, and recipes using them, can only be evaluated in the originating
|
|
64
|
+
session because component identity depends on evaluated topology.
|
|
59
65
|
|
|
60
66
|
Ordinary models use root Sections for shapes, Booleans, extrusion, sweeps, and lofts. The pure
|
|
61
67
|
`/geometry` entry supplies point data through `circleContour`, `rectangleContour`, and other contour factories
|
|
@@ -66,8 +72,10 @@ reflects the operation's role.
|
|
|
66
72
|
Use [`polygon(points)`](../reference/model/polygon.md) to fill one contour. The explicit
|
|
67
73
|
`polygon({ outer, holes })` form validates exterior/hole topology and normalizes winding.
|
|
68
74
|
`polygon({ contours, fillRule })` resolves compound paths with `"nonzero"` fill by default or
|
|
69
|
-
explicit `"evenodd"` fill.
|
|
70
|
-
`rectangle`; subsequent Booleans may
|
|
75
|
+
explicit `"evenodd"` fill. Use `polygon({ polygons: data })` for existing `RegionData`.
|
|
76
|
+
Every form returns the same `Section` type as `circle` or `rectangle`; subsequent Booleans may
|
|
77
|
+
produce holes or disconnected components. `section.toRegionData()` observes the evaluated shape
|
|
78
|
+
inside synchronous generation. Keep serialized point data for interchange or pure preparation.
|
|
71
79
|
|
|
72
80
|
`rectangleProfile({ size: [width, height], treatment: { kind: "round", radius }, id })` describes
|
|
73
81
|
identified spans for custom geometry. Prepare a complete explicit family with `matchProfiles`
|
|
@@ -112,6 +120,9 @@ degree twist, uniform/XY/per-station scales and an explicit compatible closed se
|
|
|
112
120
|
|
|
113
121
|
MetaMesh uses a right-handed coordinate system with **+Z up**. Authored dimensions and curve
|
|
114
122
|
tolerances are millimetres; angular arguments such as `rotate` use degrees.
|
|
123
|
+
Pure [`rotate2`](../reference/geometry/rotate2.md) and transform-chain rotations also take degrees.
|
|
124
|
+
The low-level [`rotationTransform3`](../reference/geometry/rotationTransform3.md) constructor
|
|
125
|
+
requires an explicit `{ degrees }` or `{ radians }` angle.
|
|
115
126
|
|
|
116
127
|
`GeometryResolution` controls sampled curves in physical space. The default maximum chord error is
|
|
117
128
|
`0.05 mm`, with 16–512 segments for a complete circle and no default maximum segment length. An
|
|
@@ -139,6 +150,94 @@ including holes and twist.
|
|
|
139
150
|
`placement` maps a named or explicit shape-local anchor to a world anchor after local
|
|
140
151
|
construction, using alignment, millimetre gap and degree spin. Section placement must stay in XY.
|
|
141
152
|
|
|
153
|
+
## Reuse a transform across shapes and coordinates
|
|
154
|
+
|
|
155
|
+
Use [`transform2`](../reference/geometry/transform2.md) and
|
|
156
|
+
[`transform3`](../reference/geometry/transform3.md) chains for reusable placements. They are immutable
|
|
157
|
+
and pure; no engine initialization is needed. Calls apply in written order. A rotation followed
|
|
158
|
+
by a translation rotates around the origin, then moves the result:
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
import { transform3, vector3 } from "@metamesh/modeling";
|
|
164
|
+
|
|
165
|
+
// Calls apply in written order: rotate, then translate.
|
|
166
|
+
const placement = transform3().rotate([0, 0, 90]).translate([20, 0, 5]);
|
|
167
|
+
export const placedPoint = placement.applyPoint([10, 0, 0]); // approximately [20, 10, 5]
|
|
168
|
+
export const placedDirection = placement.applyDirection([10, 0, 0]); // approximately [0, 10, 0]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
Pass a transform directly to `solid.transform(placement)`, `section.transform(placement)` and
|
|
174
|
+
matching path helpers. `toMatrix()` supplies a canonical matrix when another system needs it.
|
|
175
|
+
Construct the placement once and reuse it across point collections.
|
|
176
|
+
|
|
177
|
+
`current.andThen(next)` applies `current` first and `next` second, accepting another chain or a
|
|
178
|
+
same-dimensional matrix. `inverse()` returns the reverse placement. Transform-building operations
|
|
179
|
+
return new chains, so shared placements can branch safely.
|
|
180
|
+
|
|
181
|
+
Use `rotate(degrees, { pivot })` or `scale(factors, { pivot })` to work around a world-space pivot after
|
|
182
|
+
the preceding operations. In 3D, `rotate` takes XYZ Euler degrees, applied about global X, Y, then
|
|
183
|
+
Z; `rotateAxis(axis, degrees, { pivot })` normalizes its nonzero axis. Omitted pivots use the
|
|
184
|
+
coordinate origin. Uniform and per-axis scales
|
|
185
|
+
must be finite and nonzero; negative factors reflect. Nonfinite inputs, invalid axes, and singular
|
|
186
|
+
matrices throw `GeometryError`.
|
|
187
|
+
|
|
188
|
+
`applyPoint` includes translation. `applyDirection` excludes translation and preserves scale;
|
|
189
|
+
its result is not normalized. `applyNormal` applies the inverse transpose and returns a unit normal,
|
|
190
|
+
including under nonuniform scaling; it rejects zero normals. All three return fluent vectors.
|
|
191
|
+
|
|
192
|
+
`Transform2` works directly with Sections and pure XY helpers; its `Transform2Matrix` is the same
|
|
193
|
+
canonical 3x3 representation throughout. Use `to3D()` when that XY placement
|
|
194
|
+
also needs to position a Solid or 3D path. The reverse `to2D()` conversion rejects transforms
|
|
195
|
+
that move the XY plane or collapse its dimensions; it does not project 3D points.
|
|
196
|
+
See the [2D placement recipe](recipes.md#reuse-a-2d-placement).
|
|
197
|
+
|
|
198
|
+
For low-level matrix interoperability, the factories accept existing canonical matrices. Use
|
|
199
|
+
`transform3(frameTransform3(frame))` for an orthonormal frame. The raw constructors and
|
|
200
|
+
`composeTransform3(after, before)` remain available; composition applies `before` first.
|
|
201
|
+
|
|
202
|
+
## Calculate with vectors
|
|
203
|
+
|
|
204
|
+
Use [`vector2`](../reference/geometry/vector2.md) and [`vector3`](../reference/geometry/vector3.md)
|
|
205
|
+
for readable arithmetic chains. Operands accept tuples or vectors; `dot`, `length` and `distance`
|
|
206
|
+
return numbers. `cross` returns a signed scalar in 2D and a right-handed vector in 3D.
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
```ts
|
|
211
|
+
export const direction = vector3([1, 2, 3]).add([4, 0, 0]).normalize().scale(10);
|
|
212
|
+
export const alignment = direction.dot([0, 0, 1]); // number
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
Values snapshot their input and operations return new values. `toArray()` returns the value's
|
|
218
|
+
frozen coordinate tuple without allocating another copy. Normalization rejects zero-length vectors;
|
|
219
|
+
nonfinite coordinates, scalar parameters and overflowing results throw `GeometryError`.
|
|
220
|
+
|
|
221
|
+
For rotations and nonuniform scaling, use a reusable transform's `applyDirection`. Use
|
|
222
|
+
`applyNormal` for surface normals:
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
```ts
|
|
227
|
+
const stretched = transform3().scale([2, 1, 1]);
|
|
228
|
+
export const normal = stretched.applyNormal([1, 1, 0]);
|
|
229
|
+
export const tangent = stretched.applyDirection([1, -1, 0]);
|
|
230
|
+
export const perpendicular = normal.dot(tangent); // approximately 0
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
The tuple arithmetic kernels remain available for dense numerical loops. Fluent values add
|
|
236
|
+
validation and immutable object allocation; they are an authoring convenience, not a speedup.
|
|
237
|
+
Fluent math, shape transforms and part placement accept vector values directly; geometry
|
|
238
|
+
specifications and point collections use canonical tuples.
|
|
239
|
+
Keep simple coordinate expressions and equations intrinsic to the model beside the model.
|
|
240
|
+
|
|
142
241
|
## SVG sections: fills and strokes are different inputs
|
|
143
242
|
|
|
144
243
|
[`svgSection`](../reference/model/svgSection.md) converts a bounded complete SVG document into one
|
|
@@ -169,7 +268,8 @@ ambient font provider or repeated shaping during export. Declare a Text control
|
|
|
169
268
|
and a Font control for the face and weight.
|
|
170
269
|
|
|
171
270
|
Font size is the em size in millimetres, not the height of a particular letter. Layout supports
|
|
172
|
-
|
|
271
|
+
horizontal lines, spacing, and alignment, or a single circular baseline through
|
|
272
|
+
[`VectorTextArcBaseline`](../reference/text/VectorTextArcBaseline.md). Follow the
|
|
173
273
|
[text recipe](recipes.md#text-from-a-font-parameter) for the control setup,
|
|
174
274
|
layout conventions, and font availability limits.
|
|
175
275
|
|
|
@@ -189,6 +289,9 @@ values. Use
|
|
|
189
289
|
`inspectSection()` and `inspectSolid()` for supported bounds, topology counts, area, and volume
|
|
190
290
|
measurements.
|
|
191
291
|
|
|
292
|
+
Observations, including `section.toRegionData()`, require the host's active synchronous generation.
|
|
293
|
+
Constructing or composing a recipe outside generation does not evaluate it.
|
|
294
|
+
|
|
192
295
|
An inspection result describes the generated geometry; it does not certify wall thickness,
|
|
193
296
|
overhangs, fits, loads, or manufacturability. Keep those product decisions in parameters,
|
|
194
297
|
validation, and your downstream manufacturing checks.
|
|
@@ -18,6 +18,9 @@ pnpm add woff2-encoder
|
|
|
18
18
|
TTF, OTF, and WOFF input use fontkit directly. WOFF2 decoding loads only when needed. The library
|
|
19
19
|
does not fetch fonts; your application supplies their bytes.
|
|
20
20
|
|
|
21
|
+
For a static face whose actual weight is not 400, pass that weight through `staticWeight` when
|
|
22
|
+
preparing it. This identifies the supplied face; it does not synthesize another weight.
|
|
23
|
+
|
|
21
24
|
## Prepare one reusable layout
|
|
22
25
|
|
|
23
26
|
|
|
@@ -47,5 +50,10 @@ Call `makeLabelLayout(fontBytes)` with the acquired bytes. It returns a `layout`
|
|
|
47
50
|
section with the ordinary modeling operations. A host can prepare layouts ahead of time or inject
|
|
48
51
|
a deterministic text service and cache layouts with `computed`.
|
|
49
52
|
|
|
53
|
+
The same layout options support horizontal lines or one circular line through
|
|
54
|
+
[`VectorTextArcBaseline`](../reference/text/VectorTextArcBaseline.md). The
|
|
55
|
+
[text recipe](recipes.md#text-from-a-font-parameter) explains units, alignment,
|
|
56
|
+
metrics, and circular-text constraints.
|
|
57
|
+
|
|
50
58
|
Use the [Font preparation reference](../reference/text.md) for font and layout options, or
|
|
51
59
|
[Run Modeling in your application](hosting.md) for the host lifecycle.
|
|
@@ -119,8 +119,10 @@ those resources for each run and cleans them up deterministically. Authored code
|
|
|
119
119
|
initialize the kernel or manually delete a `Section` or `Solid`.
|
|
120
120
|
|
|
121
121
|
Use `inspectSection()` or `inspectSolid()` when you need supported measurements such as bounds,
|
|
122
|
-
area,
|
|
123
|
-
|
|
122
|
+
area, or volume. A Section's `parts` count describes disconnected filled components; a Solid's
|
|
123
|
+
`parts` count describes connected surface shells, including inward cavity shells. Neither counts
|
|
124
|
+
the named output parts you declare with `part(...)`. Return one declaration or an array of them
|
|
125
|
+
to hand the final result back to Studio for preview and export.
|
|
124
126
|
|
|
125
127
|
|
|
126
128
|
|
|
@@ -199,10 +199,12 @@ instance limits, including cache hits. Empty output is invalid.
|
|
|
199
199
|
|
|
200
200
|
## Ownership and recovery
|
|
201
201
|
|
|
202
|
-
Solids and Sections describe deferred recipes
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
202
|
+
Solids and Sections describe immutable deferred recipes. Ordinary recipes are reusable across
|
|
203
|
+
sessions regardless of where constructed; unspecified resolution settings inherit the evaluating
|
|
204
|
+
host's defaults. Observations such as `inspectSolid` realize required geometry synchronously and
|
|
205
|
+
return copied facts. `components()` selections, and recipes using them, can only be evaluated in
|
|
206
|
+
the originating session because their identity depends on evaluated topology. The host owns
|
|
207
|
+
native allocations and cleanup on success and failure. Nested or asynchronous execution rejects.
|
|
206
208
|
Apply local resolution explicitly to each affected constructor or Section operation.
|
|
207
209
|
|
|
208
210
|
Source/control-definition changes invalidate the program session. Parameter edits reuse it.
|
|
@@ -32,12 +32,15 @@ export async function makePlate3mf(): Promise<ArrayBuffer> {
|
|
|
32
32
|
return [part("plate", { geometry: plate.subtract([bore]), color: "#67e8f9" })];
|
|
33
33
|
})
|
|
34
34
|
);
|
|
35
|
-
const model = session.run({});
|
|
36
|
-
// Generation already disposed native handles. These finalized meshes remain usable.
|
|
37
35
|
try {
|
|
38
|
-
|
|
36
|
+
const model = session.run({});
|
|
37
|
+
// Generation already disposed native handles. These finalized meshes remain usable.
|
|
38
|
+
try {
|
|
39
|
+
return await engine.export3mf(model.parts, { name: "Plate" });
|
|
40
|
+
} finally {
|
|
41
|
+
model.dispose();
|
|
42
|
+
}
|
|
39
43
|
} finally {
|
|
40
|
-
model.dispose();
|
|
41
44
|
session.dispose();
|
|
42
45
|
}
|
|
43
46
|
}
|
|
@@ -261,6 +261,49 @@ Exact signatures: [`box`](../reference/model/box.md),
|
|
|
261
261
|
[`cylinder`](../reference/model/cylinder.md), and
|
|
262
262
|
[`radialPattern`](../reference/model/radialPattern.md).
|
|
263
263
|
|
|
264
|
+
## Reuse a 2D placement
|
|
265
|
+
|
|
266
|
+
Build one [`transform2`](../reference/geometry/transform2.md) chain when the same placement applies
|
|
267
|
+
to a Section and its plain point data. This placement rotates around `[2, 1]`, then translates:
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
```ts
|
|
272
|
+
import { polygon, transform2 } from "@metamesh/modeling";
|
|
273
|
+
import { transformContour } from "@metamesh/modeling/geometry";
|
|
274
|
+
|
|
275
|
+
const planarPlacement = transform2()
|
|
276
|
+
.rotate(90, { pivot: [2, 1] })
|
|
277
|
+
.translate([10, 0]);
|
|
278
|
+
const outline = [
|
|
279
|
+
[0, 0],
|
|
280
|
+
[4, 0],
|
|
281
|
+
[0, 2],
|
|
282
|
+
] as const;
|
|
283
|
+
|
|
284
|
+
// Shape construction and composition are pure; the host evaluates the finished body.
|
|
285
|
+
export const placedBody = polygon({ outer: outline, holes: [] })
|
|
286
|
+
.transform(planarPlacement)
|
|
287
|
+
.extrude({ height: 8 });
|
|
288
|
+
|
|
289
|
+
// Point-data helpers accept the same placement. Matrices remain available for interchange.
|
|
290
|
+
export const sectionMatrix = planarPlacement.toMatrix();
|
|
291
|
+
export const placedContour = transformContour(outline, planarPlacement);
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
Pass the placement directly to `section.transform(planarPlacement)`. The same placement works with
|
|
297
|
+
[`transformContour`](../reference/geometry/transformContour.md),
|
|
298
|
+
[`transformRegionData`](../reference/geometry/transformRegionData.md), and
|
|
299
|
+
[`transformPath2`](../reference/geometry/transformPath2.md).
|
|
300
|
+
|
|
301
|
+
A negative scale factor reflects the placement. Paths retain their supplied point order;
|
|
302
|
+
contours restore their original winding, and regions restore outer and hole winding. Choose the
|
|
303
|
+
helper that matches the data's role. `andThen(next)` composes another placement in execution order;
|
|
304
|
+
reuse the placement instead of building a chain inside each point iteration. `toMatrix()` is
|
|
305
|
+
available for matrix interchange.
|
|
306
|
+
|
|
264
307
|
## Rotation-minimizing path sweep
|
|
265
308
|
|
|
266
309
|
|
|
@@ -599,10 +642,17 @@ export function fitLabel(layout: VectorTextLayout): FittedTextLayout {
|
|
|
599
642
|
| `font` | The complete Font control value, including the exact face revision and weight |
|
|
600
643
|
| `fontSize` | Em size in millimetres; visible capital height depends on the font |
|
|
601
644
|
| `letterSpacing` | Extra millimetres between shaped glyph clusters |
|
|
602
|
-
| `align` | Left, center, or right alignment using
|
|
645
|
+
| `align` | Left, center, or right alignment using the text's advance |
|
|
603
646
|
| `verticalAlign` | First-line baseline by default, or top, center, or bottom using visible bounds |
|
|
604
647
|
| `lineHeight` | Baseline-spacing multiplier; omitted uses the font's natural line spacing |
|
|
605
648
|
|
|
649
|
+
For a circular label, add a [`baseline`](../reference/text/VectorTextArcBaseline.md) with
|
|
650
|
+
`kind: "arc"` and a positive `radius` in millimetres to the layout options. The baseline is centered
|
|
651
|
+
at the XY origin; `centerAngleDegrees` chooses its alignment datum and `direction` chooses the
|
|
652
|
+
reading direction. Each shaped glyph group rotates without bending. Circular text requires one
|
|
653
|
+
line and baseline vertical alignment; its default horizontal alignment is centered. Arbitrary
|
|
654
|
+
path text and automatic wrapping are outside this API.
|
|
655
|
+
|
|
606
656
|
Text uses positive Y upward and supports line breaks, with at most 512 UTF-16 units and 16 lines.
|
|
607
657
|
Empty or whitespace-only text can be measured but cannot create a section. Return a parameter error
|
|
608
658
|
for that expected input; a missing glyph also requires different wording or a font that supports it.
|
|
@@ -612,7 +662,7 @@ Studio loads declared fonts before generation. Export uses the captured visible
|
|
|
612
662
|
preserves the exact selection, including its revision, without embedding font bytes. Fonts beyond
|
|
613
663
|
the bundled starters can require internet; ordinary browser caching does not guarantee them offline.
|
|
614
664
|
If loading fails, Studio preserves the selection and last valid model so you can retry or choose a
|
|
615
|
-
replacement.
|
|
665
|
+
replacement. Studio does not support custom font uploads.
|
|
616
666
|
|
|
617
667
|
## Solid inspection
|
|
618
668
|
|