@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/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** Immutable modeling recipes and math values; the host owns geometry evaluation. @packageDocumentation */
|
|
2
2
|
|
|
3
3
|
/** ACME 29-degree included-angle profile. */
|
|
4
4
|
declare interface AcmeThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
@@ -30,11 +30,11 @@ export declare function anchor(shape: Solid | Section, name: string): Anchor3;
|
|
|
30
30
|
*/
|
|
31
31
|
export declare interface Anchor3 {
|
|
32
32
|
/** Unit outward normal used as the anchor's local +Z direction. */
|
|
33
|
-
readonly direction:
|
|
33
|
+
readonly direction: Vector3Tuple;
|
|
34
34
|
/** World-space attachment position. */
|
|
35
|
-
readonly position:
|
|
35
|
+
readonly position: Vector3Tuple;
|
|
36
36
|
/** Roll guide projected into the plane perpendicular to `direction`. */
|
|
37
|
-
readonly up:
|
|
37
|
+
readonly up: Vector3Tuple;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
@@ -54,17 +54,17 @@ export declare interface AttachOptions {
|
|
|
54
54
|
/** Axis-aligned bounds in two-dimensional model space. */
|
|
55
55
|
export declare interface Bounds2 {
|
|
56
56
|
/** Inclusive maximum X/Y coordinates. */
|
|
57
|
-
readonly max:
|
|
57
|
+
readonly max: Vector2Tuple;
|
|
58
58
|
/** Inclusive minimum X/Y coordinates. */
|
|
59
|
-
readonly min:
|
|
59
|
+
readonly min: Vector2Tuple;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
/** Axis-aligned bounds in three-dimensional model space. */
|
|
63
63
|
export declare interface Bounds3 {
|
|
64
64
|
/** Inclusive maximum X/Y/Z coordinates. */
|
|
65
|
-
readonly max:
|
|
65
|
+
readonly max: Vector3Tuple;
|
|
66
66
|
/** Inclusive minimum X/Y/Z coordinates. */
|
|
67
|
-
readonly min:
|
|
67
|
+
readonly min: Vector3Tuple;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
/**
|
|
@@ -112,7 +112,7 @@ export declare interface BoxOptions extends PrimitivePlacement {
|
|
|
112
112
|
*/
|
|
113
113
|
readonly center?: boolean;
|
|
114
114
|
/** Positive uniform size or explicit `[X, Y, Z]` extents in millimetres. */
|
|
115
|
-
readonly size: number |
|
|
115
|
+
readonly size: number | Vector3Tuple;
|
|
116
116
|
/** Uniform treatment or independent disjoint nominal edge/group treatments. */
|
|
117
117
|
readonly treatment?: EdgeTreatment | BoxEdgeTreatments;
|
|
118
118
|
}
|
|
@@ -200,11 +200,13 @@ export declare interface CircularPrimitiveOptions {
|
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
/**
|
|
203
|
-
*
|
|
203
|
+
* Observes a solid's disconnected surface shells as session-restricted solid selections.
|
|
204
204
|
*
|
|
205
205
|
* For solids without enclosed cavities, these shells are the disconnected material islands.
|
|
206
206
|
* Enclosed cavities produce separate inward shells with negative signed volume; these cannot
|
|
207
207
|
* be finalized alone as manufacturing parts. This does not cut connected geometry.
|
|
208
|
+
* Selection order and cardinality depend on evaluated topology. Results and recipes using them
|
|
209
|
+
* can only be evaluated in this session; composition itself requires no engine.
|
|
208
210
|
*
|
|
209
211
|
* @example Move disconnected pieces independently
|
|
210
212
|
* ```ts
|
|
@@ -216,7 +218,10 @@ export declare interface CircularPrimitiveOptions {
|
|
|
216
218
|
*/
|
|
217
219
|
export declare function components(solid: Solid): readonly Solid[];
|
|
218
220
|
|
|
219
|
-
/**
|
|
221
|
+
/**
|
|
222
|
+
* Observes filled 2D islands, retaining each island's holes; empty gives [].
|
|
223
|
+
* Selections and recipes using them can only be evaluated in this session.
|
|
224
|
+
*/
|
|
220
225
|
export declare function components(section: Section): readonly Section[];
|
|
221
226
|
|
|
222
227
|
/** Combines disjoint components without resolving overlap. */
|
|
@@ -241,7 +246,7 @@ export declare type ComputedValue<T> = T | Computed<T>;
|
|
|
241
246
|
* Polygon exteriors are counter-clockwise and holes are clockwise. Algorithms
|
|
242
247
|
* may reject duplicate adjacent points or fewer than three effective vertices.
|
|
243
248
|
*/
|
|
244
|
-
export declare type Contour = readonly
|
|
249
|
+
export declare type Contour = readonly Vector2Tuple[];
|
|
245
250
|
|
|
246
251
|
/** One sampled component retaining contour identities and logical point correspondence. */
|
|
247
252
|
export declare interface CorrespondingComponent {
|
|
@@ -283,7 +288,7 @@ declare interface CustomThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
283
288
|
* Open path spanning exactly `[-pitch/2, pitch/2]`, with both endpoints on the minor envelope,
|
|
284
289
|
* one connected ridge, one contiguous crest, and radial zero at the major envelope.
|
|
285
290
|
*/
|
|
286
|
-
readonly points: readonly
|
|
291
|
+
readonly points: readonly Vector2Tuple[];
|
|
287
292
|
}
|
|
288
293
|
|
|
289
294
|
/**
|
|
@@ -343,7 +348,7 @@ export declare interface DiagnosticOptions<P> {
|
|
|
343
348
|
* Uses actual geometry, not bounding-box separation or distance between object origins.
|
|
344
349
|
* Contact or overlapping material returns zero, including one solid inside another.
|
|
345
350
|
* The kernel's search range is managed internally; the result is not capped at a caller limit.
|
|
346
|
-
* Empty
|
|
351
|
+
* Empty geometry and component selections from another session reject. Results follow native numeric precision.
|
|
347
352
|
*
|
|
348
353
|
* @example Measure the gap between two blocks
|
|
349
354
|
* ```ts
|
|
@@ -380,13 +385,13 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
|
|
|
380
385
|
(
|
|
381
386
|
| {
|
|
382
387
|
/** Positive XY radii in millimetres; mutually exclusive with size. */
|
|
383
|
-
readonly radius:
|
|
388
|
+
readonly radius: Vector2Tuple;
|
|
384
389
|
/** Full XY extents are unavailable when radius is supplied. */
|
|
385
390
|
readonly size?: never;
|
|
386
391
|
}
|
|
387
392
|
| {
|
|
388
393
|
/** Positive full XY extents in millimetres; mutually exclusive with radius. */
|
|
389
|
-
readonly size:
|
|
394
|
+
readonly size: Vector2Tuple;
|
|
390
395
|
/** XY radii are unavailable when size is supplied. */
|
|
391
396
|
readonly radius?: never;
|
|
392
397
|
}
|
|
@@ -447,7 +452,7 @@ declare interface ExtrusionSamplingOptions {
|
|
|
447
452
|
/** Operation-level physical policy over the nearest model scope. */
|
|
448
453
|
readonly resolution?: GeometryResolution;
|
|
449
454
|
/** Finite uniform or XY scale of the top profile; defaults to one. */
|
|
450
|
-
readonly scaleTop?: number |
|
|
455
|
+
readonly scaleTop?: number | Vector2Tuple;
|
|
451
456
|
/** Finite rotation of the top profile about +Z, in degrees; defaults to zero. */
|
|
452
457
|
readonly twistDegrees?: number;
|
|
453
458
|
}
|
|
@@ -490,18 +495,15 @@ export declare interface FinalizedPart extends TriangleMesh {
|
|
|
490
495
|
/** A right-handed orthonormal coordinate frame expressed in world coordinates. */
|
|
491
496
|
export declare interface Frame3 {
|
|
492
497
|
/** World-space origin of the local frame. */
|
|
493
|
-
readonly origin:
|
|
498
|
+
readonly origin: Vector3Tuple;
|
|
494
499
|
/** Unit vector defining the local +X axis. */
|
|
495
|
-
readonly xAxis:
|
|
500
|
+
readonly xAxis: Vector3Tuple;
|
|
496
501
|
/** Unit vector defining the local +Y axis. */
|
|
497
|
-
readonly yAxis:
|
|
502
|
+
readonly yAxis: Vector3Tuple;
|
|
498
503
|
/** Unit vector defining the local +Z axis. */
|
|
499
|
-
readonly zAxis:
|
|
504
|
+
readonly zAxis: Vector3Tuple;
|
|
500
505
|
}
|
|
501
506
|
|
|
502
|
-
/** Imports explicit region topology once. */
|
|
503
|
-
export declare function fromRegion(region: Region): Section;
|
|
504
|
-
|
|
505
507
|
/**
|
|
506
508
|
* Defines a typed model without executing it. Use `computed` only for work worth reusing.
|
|
507
509
|
*
|
|
@@ -644,21 +646,22 @@ export declare type GridPatternOptions = {
|
|
|
644
646
|
} & (
|
|
645
647
|
| {
|
|
646
648
|
/** Positive integer counts on X and Y. */
|
|
647
|
-
readonly count:
|
|
649
|
+
readonly count: Vector2Tuple;
|
|
648
650
|
/** Signed millimetres between adjacent copies on X and Y. */
|
|
649
|
-
readonly spacing:
|
|
651
|
+
readonly spacing: Vector2Tuple;
|
|
650
652
|
}
|
|
651
653
|
| {
|
|
652
654
|
/** Positive integer counts on X, Y and Z. */
|
|
653
|
-
readonly count:
|
|
655
|
+
readonly count: Vector3Tuple;
|
|
654
656
|
/** Signed millimetres between adjacent copies on X, Y and Z. */
|
|
655
|
-
readonly spacing:
|
|
657
|
+
readonly spacing: Vector3Tuple;
|
|
656
658
|
}
|
|
657
659
|
);
|
|
658
660
|
|
|
659
661
|
/**
|
|
660
662
|
* Closed rectilinear top above a flat base, with uniform or explicit XY coordinates.
|
|
661
663
|
* Samples each grid height once; center-error triangulation also samples each cell centre.
|
|
664
|
+
* The retained callback must capture independent immutable inputs, not live session readers or parameters.
|
|
662
665
|
*
|
|
663
666
|
* @example Heightfield
|
|
664
667
|
* ```ts
|
|
@@ -681,7 +684,7 @@ export declare function heightfield(options: HeightfieldOptions): Solid;
|
|
|
681
684
|
*/
|
|
682
685
|
export declare type HeightfieldOptions = {
|
|
683
686
|
/** Absolute top Z at the supplied XY point. Every sample must be above baseZ. */
|
|
684
|
-
readonly height: (point:
|
|
687
|
+
readonly height: (point: Vector2Tuple) => number;
|
|
685
688
|
/** Flat bottom Z. Defaults to zero. */
|
|
686
689
|
readonly baseZ?: number;
|
|
687
690
|
/**
|
|
@@ -694,11 +697,11 @@ export declare type HeightfieldOptions = {
|
|
|
694
697
|
} & (
|
|
695
698
|
| {
|
|
696
699
|
/** Positive XY footprint for uniform sampling. */
|
|
697
|
-
readonly size:
|
|
700
|
+
readonly size: Vector2Tuple;
|
|
698
701
|
/** Exact positive integer X/Y interval counts. */
|
|
699
702
|
readonly segments: readonly [x: number, y: number];
|
|
700
703
|
/** Lower-left footprint XY. Omitted centers the footprint on XY. */
|
|
701
|
-
readonly origin?:
|
|
704
|
+
readonly origin?: Vector2Tuple;
|
|
702
705
|
/** Explicit coordinates cannot be combined with uniform sampling. */
|
|
703
706
|
readonly coordinates?: never;
|
|
704
707
|
}
|
|
@@ -773,19 +776,19 @@ export declare interface HelicalThreadSolidMeshPreflight {
|
|
|
773
776
|
*/
|
|
774
777
|
export declare function hull(options: HullOptions): Solid;
|
|
775
778
|
|
|
776
|
-
/** Convex filled XY hull of finite points or
|
|
779
|
+
/** Convex filled XY hull of finite points or filled section recipes. */
|
|
777
780
|
export declare function hull(options: SectionHullOptions): Section;
|
|
778
781
|
|
|
779
|
-
/** Hull inputs are either finite points or
|
|
782
|
+
/** Hull inputs are either finite points or solid recipes. */
|
|
780
783
|
export declare type HullOptions =
|
|
781
784
|
| {
|
|
782
785
|
/** Finite millimetre XYZ points to include in the convex hull. */
|
|
783
|
-
readonly points: readonly
|
|
786
|
+
readonly points: readonly Vector3Tuple[];
|
|
784
787
|
/** Point input excludes solid input. */
|
|
785
788
|
readonly solids?: never;
|
|
786
789
|
}
|
|
787
790
|
| {
|
|
788
|
-
/**
|
|
791
|
+
/** Solid recipes to include in the convex hull. */
|
|
789
792
|
readonly solids: readonly Solid[];
|
|
790
793
|
/** Solid input excludes point input. */
|
|
791
794
|
readonly points?: never;
|
|
@@ -847,13 +850,16 @@ export declare interface ImmutableTriangleMesh {
|
|
|
847
850
|
readonly indices: ImmutableBuffer<Uint32Array>;
|
|
848
851
|
}
|
|
849
852
|
|
|
850
|
-
/**
|
|
853
|
+
/**
|
|
854
|
+
* Bounded positive-inside implicit field constructor.
|
|
855
|
+
* The retained callback must capture independent immutable inputs, not live session readers or parameters.
|
|
856
|
+
*/
|
|
851
857
|
export declare function implicit(options: ImplicitOptions): Solid;
|
|
852
858
|
|
|
853
859
|
/** Positive-inside sampling, bounded to 4M native BCC grid slots and 8M field calls. */
|
|
854
860
|
export declare interface ImplicitOptions {
|
|
855
861
|
/** Positive-inside scalar field evaluated at finite XYZ points. */
|
|
856
|
-
readonly field: (point:
|
|
862
|
+
readonly field: (point: Vector3Tuple) => number;
|
|
857
863
|
/** Axis-aligned XYZ bounds in millimetres. */
|
|
858
864
|
readonly bounds: Bounds3;
|
|
859
865
|
/** Positive sampling edge length in millimetres. */
|
|
@@ -928,7 +934,7 @@ export declare function intersect(solids: readonly Solid[]): Solid;
|
|
|
928
934
|
export declare function intersect(sections: readonly Section[]): Section;
|
|
929
935
|
|
|
930
936
|
/**
|
|
931
|
-
* Checks whether a
|
|
937
|
+
* Checks whether a solid or filled section contains no geometry during host execution.
|
|
932
938
|
*
|
|
933
939
|
* Accepts a 3D Solid or 2D Section handle, not a finalized model or raw triangle mesh.
|
|
934
940
|
* Useful after a Boolean operation whose inputs may not overlap; no mesh is extracted.
|
|
@@ -967,7 +973,7 @@ export declare function linearPattern(
|
|
|
967
973
|
*/
|
|
968
974
|
export declare type LinearPatternOptions = {
|
|
969
975
|
/** Direction of repetition; magnitude is ignored. Defaults to +X. */
|
|
970
|
-
readonly direction?:
|
|
976
|
+
readonly direction?: Vector3Tuple;
|
|
971
977
|
} & (
|
|
972
978
|
| {
|
|
973
979
|
/** Positive copy count, including the original. */
|
|
@@ -1072,7 +1078,7 @@ export declare type LoftPlacement =
|
|
|
1072
1078
|
* A Section or point loop at an explicit height or frame.
|
|
1073
1079
|
*/
|
|
1074
1080
|
export declare type LoftStation = LoftPlacement & {
|
|
1075
|
-
/**
|
|
1081
|
+
/** Filled Section recipe or ordered XY boundary point data. */
|
|
1076
1082
|
readonly profile: Section | Contour;
|
|
1077
1083
|
};
|
|
1078
1084
|
|
|
@@ -1124,14 +1130,17 @@ export declare type PartGeometry = Solid | TriangleMesh | ImmutableTriangleMesh;
|
|
|
1124
1130
|
export declare interface PartOptions {
|
|
1125
1131
|
/** Local geometry or a lazy reader; native objects never cross a revision. */
|
|
1126
1132
|
readonly geometry: ComputedValue<PartGeometry>;
|
|
1127
|
-
/** XYZ translation in millimetres, applied after rotation; defaults to zero. */
|
|
1128
|
-
readonly position?: ComputedValue<
|
|
1129
|
-
/**
|
|
1130
|
-
readonly rotation?: ComputedValue<
|
|
1133
|
+
/** XYZ vector or tuple translation in millimetres, applied after rotation; defaults to zero. */
|
|
1134
|
+
readonly position?: ComputedValue<Vector3Input>;
|
|
1135
|
+
/** XYZ vector or tuple of fixed global X, Y, Z rotations in degrees; defaults to zero. */
|
|
1136
|
+
readonly rotation?: ComputedValue<Vector3Input>;
|
|
1131
1137
|
/** Optional six-digit hexadecimal semantic part color. */
|
|
1132
1138
|
readonly color?: string;
|
|
1133
1139
|
}
|
|
1134
1140
|
|
|
1141
|
+
/** An ordered, open sequence of two-dimensional points. */
|
|
1142
|
+
export declare type Path2 = readonly Vector2Tuple[];
|
|
1143
|
+
|
|
1135
1144
|
/**
|
|
1136
1145
|
* Supplies a profile-X orientation guide for each original normalized sweep station.
|
|
1137
1146
|
*
|
|
@@ -1140,9 +1149,9 @@ export declare interface PartOptions {
|
|
|
1140
1149
|
* @returns A finite guide vector that is not parallel to the local path tangent.
|
|
1141
1150
|
*/
|
|
1142
1151
|
export declare type PathNormalGuide = (
|
|
1143
|
-
point:
|
|
1152
|
+
point: Vector3Tuple,
|
|
1144
1153
|
index: number,
|
|
1145
|
-
) =>
|
|
1154
|
+
) => Vector3Tuple;
|
|
1146
1155
|
|
|
1147
1156
|
/**
|
|
1148
1157
|
* Physical arc-length copies along a sampled path, with optional tangent orientation.
|
|
@@ -1154,7 +1163,7 @@ export declare type PathNormalGuide = (
|
|
|
1154
1163
|
*/
|
|
1155
1164
|
export declare function pathPattern(
|
|
1156
1165
|
source: PatternSource,
|
|
1157
|
-
path: readonly
|
|
1166
|
+
path: readonly Vector3Tuple[],
|
|
1158
1167
|
options: PathPatternOptions,
|
|
1159
1168
|
): readonly Solid[];
|
|
1160
1169
|
|
|
@@ -1164,7 +1173,7 @@ export declare function pathPattern(
|
|
|
1164
1173
|
*/
|
|
1165
1174
|
export declare function pathPattern(
|
|
1166
1175
|
source: PatternSource<Section>,
|
|
1167
|
-
path: readonly
|
|
1176
|
+
path: readonly Vector3Tuple[],
|
|
1168
1177
|
options: PathPatternOptions,
|
|
1169
1178
|
): readonly Section[];
|
|
1170
1179
|
|
|
@@ -1179,19 +1188,43 @@ export declare interface PathPatternOptions {
|
|
|
1179
1188
|
}
|
|
1180
1189
|
|
|
1181
1190
|
/**
|
|
1182
|
-
* One
|
|
1191
|
+
* One immutable shape, or a synchronous factory called once per copy in index order.
|
|
1183
1192
|
*/
|
|
1184
1193
|
export declare type PatternSource<T extends Solid | Section = Solid> =
|
|
1185
1194
|
T | ((index: number) => T);
|
|
1186
1195
|
|
|
1196
|
+
/** A fixed XY point in world coordinates; omitted pivots use the coordinate origin. */
|
|
1197
|
+
export declare interface Pivot2Options {
|
|
1198
|
+
/** World-space point left fixed by rotation or scaling. */
|
|
1199
|
+
readonly pivot?: Vector2Input;
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
/** A fixed XYZ point in world coordinates; omitted pivots use the coordinate origin. */
|
|
1203
|
+
export declare interface Pivot3Options {
|
|
1204
|
+
/** World-space point left fixed by rotation or scaling. */
|
|
1205
|
+
readonly pivot?: Vector3Input;
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1187
1208
|
/** A world-space cutting plane, retaining the half-space in the normal's direction. */
|
|
1188
1209
|
export declare interface PlaneOptions {
|
|
1189
1210
|
/** Finite nonzero plane normal; magnitude does not affect the plane. */
|
|
1190
|
-
readonly normal:
|
|
1211
|
+
readonly normal: Vector3Tuple;
|
|
1191
1212
|
/** Signed millimetre distance from the origin along the unit normal. Defaults to zero. */
|
|
1192
1213
|
readonly offset?: number;
|
|
1193
1214
|
}
|
|
1194
1215
|
|
|
1216
|
+
/**
|
|
1217
|
+
* Fills one closed millimetre XY outline, explicit outer/hole topology, or compound contours.
|
|
1218
|
+
* Closing edges are implicit. Compound contours use nonzero fill unless selected otherwise.
|
|
1219
|
+
* Explicit topology must be simple and disjoint; compound winding may resolve overlaps.
|
|
1220
|
+
*
|
|
1221
|
+
* @example Extrude a triangular plate
|
|
1222
|
+
* ```ts
|
|
1223
|
+
* polygon([[0, 0], [20, 0], [10, 12]]).extrude({ height: 3 });
|
|
1224
|
+
* ```
|
|
1225
|
+
*/
|
|
1226
|
+
export declare function polygon(input: Contour | PolygonOptions): Section;
|
|
1227
|
+
|
|
1195
1228
|
/**
|
|
1196
1229
|
* One bounded two-dimensional polygon.
|
|
1197
1230
|
*
|
|
@@ -1199,25 +1232,13 @@ export declare interface PlaneOptions {
|
|
|
1199
1232
|
* their duplicated closing point. Holes must lie inside `outer` and must not
|
|
1200
1233
|
* intersect each other or the exterior.
|
|
1201
1234
|
*/
|
|
1202
|
-
export declare interface
|
|
1235
|
+
export declare interface PolygonData {
|
|
1203
1236
|
/** Clockwise interior boundaries, each omitting its duplicated closing point. */
|
|
1204
1237
|
readonly holes: readonly Contour[];
|
|
1205
1238
|
/** Counter-clockwise exterior boundary, omitting its duplicated closing point. */
|
|
1206
1239
|
readonly outer: Contour;
|
|
1207
1240
|
}
|
|
1208
1241
|
|
|
1209
|
-
/**
|
|
1210
|
-
* Fills one closed millimetre XY outline, explicit outer/hole topology, or compound contours.
|
|
1211
|
-
* Closing edges are implicit. Compound contours use nonzero fill unless selected otherwise.
|
|
1212
|
-
* Explicit topology must be simple and disjoint; compound winding may resolve overlaps.
|
|
1213
|
-
*
|
|
1214
|
-
* @example Extrude a triangular plate
|
|
1215
|
-
* ```ts
|
|
1216
|
-
* polygon([[0, 0], [20, 0], [10, 12]]).extrude({ height: 3 });
|
|
1217
|
-
* ```
|
|
1218
|
-
*/
|
|
1219
|
-
export declare function polygon(input: Contour | PolygonOptions): Section;
|
|
1220
|
-
|
|
1221
1242
|
/** Explicit polygon topology or compound contours; all closing edges are implicit. */
|
|
1222
1243
|
export declare type PolygonOptions =
|
|
1223
1244
|
| {
|
|
@@ -1229,6 +1250,8 @@ export declare type PolygonOptions =
|
|
|
1229
1250
|
readonly contours?: never;
|
|
1230
1251
|
/** Explicit topology determines fill without a winding rule. */
|
|
1231
1252
|
readonly fillRule?: never;
|
|
1253
|
+
/** Explicit topology excludes serialized multi-polygon data. */
|
|
1254
|
+
readonly polygons?: never;
|
|
1232
1255
|
}
|
|
1233
1256
|
| {
|
|
1234
1257
|
/** Compound boundaries; may overlap or contain holes according to the fill rule. */
|
|
@@ -1239,6 +1262,20 @@ export declare type PolygonOptions =
|
|
|
1239
1262
|
readonly outer?: never;
|
|
1240
1263
|
/** Compound contours determine their own holes. */
|
|
1241
1264
|
readonly holes?: never;
|
|
1265
|
+
/** Compound fill excludes serialized multi-polygon data. */
|
|
1266
|
+
readonly polygons?: never;
|
|
1267
|
+
}
|
|
1268
|
+
| {
|
|
1269
|
+
/** Explicit filled polygons for serialization and interchange; an empty array is empty. */
|
|
1270
|
+
readonly polygons: RegionData;
|
|
1271
|
+
/** Serialized topology excludes a standalone outer contour. */
|
|
1272
|
+
readonly outer?: never;
|
|
1273
|
+
/** Each serialized polygon owns its own holes. */
|
|
1274
|
+
readonly holes?: never;
|
|
1275
|
+
/** Serialized topology excludes compound contours. */
|
|
1276
|
+
readonly contours?: never;
|
|
1277
|
+
/** Serialized polygons define fill explicitly. */
|
|
1278
|
+
readonly fillRule?: never;
|
|
1242
1279
|
};
|
|
1243
1280
|
|
|
1244
1281
|
/** Allocation-free internal-thread facts. */
|
|
@@ -1332,7 +1369,7 @@ export declare interface ProfiledEdgeTreatment {
|
|
|
1332
1369
|
* First coordinates decrease and second coordinates increase. Cylinder/extrusion ends use
|
|
1333
1370
|
* cap inset first, side setback second; planar corners use incoming then outgoing edges.
|
|
1334
1371
|
*/
|
|
1335
|
-
readonly profile: readonly
|
|
1372
|
+
readonly profile: readonly Vector2Tuple[];
|
|
1336
1373
|
}
|
|
1337
1374
|
|
|
1338
1375
|
/** An identified line, circular arc, or cubic Bézier between corresponding landmarks. */
|
|
@@ -1348,15 +1385,15 @@ export declare type ProfileSpan2 = {
|
|
|
1348
1385
|
/** Selects a straight span. */
|
|
1349
1386
|
readonly kind: "line";
|
|
1350
1387
|
/** Start point in millimetres. */
|
|
1351
|
-
readonly start:
|
|
1388
|
+
readonly start: Vector2Tuple;
|
|
1352
1389
|
/** End point in millimetres. */
|
|
1353
|
-
readonly end:
|
|
1390
|
+
readonly end: Vector2Tuple;
|
|
1354
1391
|
}
|
|
1355
1392
|
| {
|
|
1356
1393
|
/** Selects the geometric curve or span family. */
|
|
1357
1394
|
readonly kind: "arc";
|
|
1358
1395
|
/** Center point in millimetres. */
|
|
1359
|
-
readonly center:
|
|
1396
|
+
readonly center: Vector2Tuple;
|
|
1360
1397
|
/** Circular radius in millimetres. */
|
|
1361
1398
|
readonly radius: number;
|
|
1362
1399
|
/** Initial counterclockwise angle in degrees. */
|
|
@@ -1368,13 +1405,13 @@ export declare type ProfileSpan2 = {
|
|
|
1368
1405
|
/** Selects a cubic Bézier span with the same coordinates as CubicBezierCurve2. */
|
|
1369
1406
|
readonly kind: "cubic";
|
|
1370
1407
|
/** Start point in millimetres. */
|
|
1371
|
-
readonly start:
|
|
1408
|
+
readonly start: Vector2Tuple;
|
|
1372
1409
|
/** First control point in millimetres. */
|
|
1373
|
-
readonly control1:
|
|
1410
|
+
readonly control1: Vector2Tuple;
|
|
1374
1411
|
/** Second control point in millimetres. */
|
|
1375
|
-
readonly control2:
|
|
1412
|
+
readonly control2: Vector2Tuple;
|
|
1376
1413
|
/** End point in millimetres. */
|
|
1377
|
-
readonly end:
|
|
1414
|
+
readonly end: Vector2Tuple;
|
|
1378
1415
|
}
|
|
1379
1416
|
);
|
|
1380
1417
|
|
|
@@ -1405,16 +1442,14 @@ export declare interface RadialPatternOptions {
|
|
|
1405
1442
|
/** Number of solids to return, including the original. */
|
|
1406
1443
|
readonly count: number;
|
|
1407
1444
|
/** Axis of the right-handed rotation. Its magnitude is ignored. */
|
|
1408
|
-
readonly axis:
|
|
1445
|
+
readonly axis: Vector3Tuple;
|
|
1409
1446
|
/** Signed rotation from one copy to the next, in degrees. */
|
|
1410
1447
|
readonly angleDegrees: number;
|
|
1411
1448
|
/** Rotation center in world coordinates. Defaults to the origin. */
|
|
1412
|
-
readonly center?:
|
|
1449
|
+
readonly center?: Vector3Tuple;
|
|
1413
1450
|
}
|
|
1414
1451
|
|
|
1415
|
-
/**
|
|
1416
|
-
* Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces.
|
|
1417
|
-
*/
|
|
1452
|
+
/** Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces. */
|
|
1418
1453
|
export declare type RadialSizing = "vertex" | "face";
|
|
1419
1454
|
|
|
1420
1455
|
/**
|
|
@@ -1430,8 +1465,8 @@ export declare interface RadialSizingOptions {
|
|
|
1430
1465
|
/** Copies intersections along the finite directed origin-to-endpoint segment. */
|
|
1431
1466
|
export declare function rayCast(
|
|
1432
1467
|
solid: Solid,
|
|
1433
|
-
origin:
|
|
1434
|
-
endpoint:
|
|
1468
|
+
origin: Vector3Tuple,
|
|
1469
|
+
endpoint: Vector3Tuple,
|
|
1435
1470
|
): readonly SolidRayHit[];
|
|
1436
1471
|
|
|
1437
1472
|
/**
|
|
@@ -1449,7 +1484,7 @@ export declare function rectangle(options: RectangleOptions): Section;
|
|
|
1449
1484
|
*/
|
|
1450
1485
|
export declare interface RectangleContourOptions {
|
|
1451
1486
|
/** Positive uniform size or explicit XY extents in millimetres. */
|
|
1452
|
-
readonly size: number |
|
|
1487
|
+
readonly size: number | Vector2Tuple;
|
|
1453
1488
|
/** Center on XY; otherwise the minimum corner is the origin. Defaults to true. */
|
|
1454
1489
|
readonly center?: boolean;
|
|
1455
1490
|
/** Uniform treatment or four corner treatments. Exact round segments describe a complete circle and must divide by four. */
|
|
@@ -1481,22 +1516,7 @@ export declare interface RectangleOptions
|
|
|
1481
1516
|
extends RectangleContourOptions, PrimitivePlacement {}
|
|
1482
1517
|
|
|
1483
1518
|
/** A two-dimensional region represented by disjoint filled polygons. */
|
|
1484
|
-
export declare type
|
|
1485
|
-
|
|
1486
|
-
/** Clipper2 join styles accepted by robust region offsets. */
|
|
1487
|
-
export declare type RegionOffsetJoin = "miter" | "round" | "square";
|
|
1488
|
-
|
|
1489
|
-
/** Options controlling robust Clipper2 region offsets. */
|
|
1490
|
-
export declare interface RegionOffsetOptions {
|
|
1491
|
-
/** Number of segments per full circle for round joins. */
|
|
1492
|
-
readonly circularSegments?: number;
|
|
1493
|
-
/** Corner treatment; defaults to `round`. */
|
|
1494
|
-
readonly join?: RegionOffsetJoin;
|
|
1495
|
-
/** Maximum miter extension in offset-distance multiples; at least two. */
|
|
1496
|
-
readonly miterLimit?: number;
|
|
1497
|
-
/** Operation-level physical tessellation policy over the active model-wide policy. */
|
|
1498
|
-
readonly resolution?: GeometryResolution;
|
|
1499
|
-
}
|
|
1519
|
+
export declare type RegionData = readonly PolygonData[];
|
|
1500
1520
|
|
|
1501
1521
|
/**
|
|
1502
1522
|
* Regular polygon with a vertex on +X.
|
|
@@ -1566,10 +1586,12 @@ export declare interface RoundedEdgeTreatment extends CircularPrimitiveOptions {
|
|
|
1566
1586
|
}
|
|
1567
1587
|
|
|
1568
1588
|
/**
|
|
1569
|
-
* Immutable deferred filled XY section recipe
|
|
1570
|
-
*
|
|
1571
|
-
*
|
|
1572
|
-
*
|
|
1589
|
+
* Immutable deferred filled XY section recipe. Construction and composition require no engine.
|
|
1590
|
+
* Ordinary recipes may be reused across sessions regardless of where constructed.
|
|
1591
|
+
* Observed components and recipes using them can only be evaluated in their originating session.
|
|
1592
|
+
* Methods leave the source unchanged; observations require a synchronous model execution.
|
|
1593
|
+
* Distances use millimetres; rotations use counterclockwise degrees.
|
|
1594
|
+
* Explicit resolution settings are captured; unspecified settings inherit the evaluating host's defaults.
|
|
1573
1595
|
*
|
|
1574
1596
|
* @example Extrude an outline with a border
|
|
1575
1597
|
* ```ts
|
|
@@ -1580,20 +1602,30 @@ export declare interface RoundedEdgeTreatment extends CircularPrimitiveOptions {
|
|
|
1580
1602
|
* ```
|
|
1581
1603
|
*/
|
|
1582
1604
|
export declare interface Section {
|
|
1583
|
-
/** Compile-time
|
|
1605
|
+
/** Compile-time identity brand for an immutable filled section recipe. */
|
|
1584
1606
|
readonly [sectionBrand]: "Section";
|
|
1585
1607
|
/** Translates XY coordinates in millimetres. */
|
|
1586
|
-
translate(this: Section, offset:
|
|
1587
|
-
/** Rotates counterclockwise about the origin by a scalar angle in degrees. */
|
|
1588
|
-
rotate(this: Section, degrees: number): Section;
|
|
1608
|
+
translate(this: Section, offset: Vector2Input): Section;
|
|
1589
1609
|
/**
|
|
1590
|
-
*
|
|
1610
|
+
* Rotates counterclockwise in degrees.
|
|
1611
|
+
* `options.pivot` is a fixed world-space point; omission uses the coordinate origin.
|
|
1591
1612
|
*/
|
|
1592
|
-
|
|
1613
|
+
rotate(this: Section, degrees: number, options?: Pivot2Options): Section;
|
|
1614
|
+
/**
|
|
1615
|
+
* Uniform or per-axis nonsingular scaling; negative factors reflect geometry.
|
|
1616
|
+
* `options.pivot` is a fixed world-space point; omission uses the coordinate origin.
|
|
1617
|
+
*/
|
|
1618
|
+
scale(
|
|
1619
|
+
this: Section,
|
|
1620
|
+
factors: number | Vector2Input,
|
|
1621
|
+
options?: Pivot2Options,
|
|
1622
|
+
): Section;
|
|
1593
1623
|
/** Reflection across an origin line/plane. */
|
|
1594
|
-
mirror(this: Section, normal:
|
|
1595
|
-
/**
|
|
1596
|
-
transform(this: Section,
|
|
1624
|
+
mirror(this: Section, normal: Vector2Input): Section;
|
|
1625
|
+
/** Applies a reusable XY placement or canonical row-major matrix. */
|
|
1626
|
+
transform(this: Section, placement: Transform2Input): Section;
|
|
1627
|
+
/** Copies canonical filled polygons for interchange; requires an active model execution. */
|
|
1628
|
+
toRegionData(this: Section): RegionData;
|
|
1597
1629
|
/** Native section difference; an empty cutter array preserves the source. */
|
|
1598
1630
|
subtract(this: Section, cutters: readonly Section[]): Section;
|
|
1599
1631
|
/**
|
|
@@ -1604,7 +1636,7 @@ export declare interface Section {
|
|
|
1604
1636
|
*/
|
|
1605
1637
|
simplify(this: Section, tolerance: number): Section;
|
|
1606
1638
|
/**
|
|
1607
|
-
* Returns a new
|
|
1639
|
+
* Returns a new recipe with copied named anchors; existing names may be replaced.
|
|
1608
1640
|
*/
|
|
1609
1641
|
withAnchors(
|
|
1610
1642
|
this: Section,
|
|
@@ -1616,7 +1648,7 @@ export declare interface Section {
|
|
|
1616
1648
|
offset(
|
|
1617
1649
|
this: Section,
|
|
1618
1650
|
distance: number,
|
|
1619
|
-
options?:
|
|
1651
|
+
options?: SectionOffsetOptions,
|
|
1620
1652
|
): Section;
|
|
1621
1653
|
/**
|
|
1622
1654
|
* Extrudes along +Z with degree twist and top scaling.
|
|
@@ -1629,21 +1661,25 @@ export declare interface Section {
|
|
|
1629
1661
|
/**
|
|
1630
1662
|
* Sweeps this filled section using the selected frame policy and degree twist.
|
|
1631
1663
|
*/
|
|
1632
|
-
sweep(
|
|
1664
|
+
sweep(
|
|
1665
|
+
this: Section,
|
|
1666
|
+
path: readonly Vector3Tuple[],
|
|
1667
|
+
options?: SweepOptions,
|
|
1668
|
+
): Solid;
|
|
1633
1669
|
}
|
|
1634
1670
|
|
|
1635
1671
|
declare const sectionBrand: unique symbol;
|
|
1636
1672
|
|
|
1637
|
-
/** Planar convex hull inputs are finite XY points or
|
|
1673
|
+
/** Planar convex hull inputs are finite XY points or filled section recipes. */
|
|
1638
1674
|
export declare type SectionHullOptions =
|
|
1639
1675
|
| {
|
|
1640
1676
|
/** At least three finite millimetre XY points spanning positive area. */
|
|
1641
|
-
readonly points: readonly
|
|
1677
|
+
readonly points: readonly Vector2Tuple[];
|
|
1642
1678
|
/** Point input excludes section input. */
|
|
1643
1679
|
readonly sections?: never;
|
|
1644
1680
|
}
|
|
1645
1681
|
| {
|
|
1646
|
-
/** One through 1000
|
|
1682
|
+
/** One through 1000 filled section recipes to include in the convex hull. */
|
|
1647
1683
|
readonly sections: readonly Section[];
|
|
1648
1684
|
/** Section input excludes point input. */
|
|
1649
1685
|
readonly points?: never;
|
|
@@ -1661,15 +1697,30 @@ export declare interface SectionInspection {
|
|
|
1661
1697
|
/** Number of extracted outer and hole contours. */
|
|
1662
1698
|
readonly contours: number;
|
|
1663
1699
|
/** Inclusive maximum coordinates in millimetres. */
|
|
1664
|
-
readonly max:
|
|
1700
|
+
readonly max: Vector2Tuple;
|
|
1665
1701
|
/** Inclusive minimum coordinates in millimetres. */
|
|
1666
|
-
readonly min:
|
|
1702
|
+
readonly min: Vector2Tuple;
|
|
1667
1703
|
/** Number of disconnected filled section components. */
|
|
1668
1704
|
readonly parts: number;
|
|
1669
1705
|
/** Number of native section vertices. */
|
|
1670
1706
|
readonly vertices: number;
|
|
1671
1707
|
}
|
|
1672
1708
|
|
|
1709
|
+
/** Clipper2 join styles accepted by robust region offsets. */
|
|
1710
|
+
export declare type SectionOffsetJoin = "miter" | "round" | "square";
|
|
1711
|
+
|
|
1712
|
+
/** Options controlling robust Clipper2 region offsets. */
|
|
1713
|
+
export declare interface SectionOffsetOptions {
|
|
1714
|
+
/** Number of segments per full circle for round joins. */
|
|
1715
|
+
readonly circularSegments?: number;
|
|
1716
|
+
/** Corner treatment; defaults to `round`. */
|
|
1717
|
+
readonly join?: SectionOffsetJoin;
|
|
1718
|
+
/** Maximum miter extension in offset-distance multiples; at least two. */
|
|
1719
|
+
readonly miterLimit?: number;
|
|
1720
|
+
/** Operation-level physical tessellation policy over the active model-wide policy. */
|
|
1721
|
+
readonly resolution?: GeometryResolution;
|
|
1722
|
+
}
|
|
1723
|
+
|
|
1673
1724
|
/** A cubic corner transition with zero curvature at its straight tangent joins. */
|
|
1674
1725
|
export declare interface SmoothEdgeTreatment {
|
|
1675
1726
|
/** Selects continuous-curvature cubic rounding, rather than a circular radius. */
|
|
@@ -1685,8 +1736,11 @@ export declare interface SmoothEdgeTreatment {
|
|
|
1685
1736
|
}
|
|
1686
1737
|
|
|
1687
1738
|
/**
|
|
1688
|
-
* Immutable deferred solid recipe
|
|
1689
|
-
*
|
|
1739
|
+
* Immutable deferred solid recipe. Construction and composition require no engine.
|
|
1740
|
+
* Ordinary recipes may be reused across sessions regardless of where constructed.
|
|
1741
|
+
* Explicit resolution settings are captured; unspecified settings inherit the evaluating host's defaults.
|
|
1742
|
+
* Observed components and recipes using them can only be evaluated in their originating session.
|
|
1743
|
+
* Methods leave the source unchanged and use millimetres and degrees.
|
|
1690
1744
|
* A no-op may reuse the receiver; final part placement belongs in `part` options.
|
|
1691
1745
|
*
|
|
1692
1746
|
* @example Shape a body with a through bore
|
|
@@ -1697,26 +1751,32 @@ export declare interface SmoothEdgeTreatment {
|
|
|
1697
1751
|
* ```
|
|
1698
1752
|
*/
|
|
1699
1753
|
export declare interface Solid {
|
|
1700
|
-
/** Compile-time
|
|
1754
|
+
/** Compile-time identity brand for an immutable solid recipe. */
|
|
1701
1755
|
readonly [solidBrand]: "Solid";
|
|
1702
1756
|
/**
|
|
1703
1757
|
* Translates XYZ coordinates in millimetres.
|
|
1704
1758
|
*/
|
|
1705
|
-
translate(this: Solid, offset:
|
|
1759
|
+
translate(this: Solid, offset: Vector3Input): Solid;
|
|
1706
1760
|
/**
|
|
1707
|
-
* Rotates about
|
|
1761
|
+
* Rotates about global X, then Y, then Z in degrees.
|
|
1762
|
+
* `options.pivot` is a fixed world-space point; omission uses the coordinate origin.
|
|
1708
1763
|
*/
|
|
1709
|
-
rotate(this: Solid, degrees:
|
|
1764
|
+
rotate(this: Solid, degrees: Vector3Input, options?: Pivot3Options): Solid;
|
|
1710
1765
|
/**
|
|
1711
|
-
*
|
|
1766
|
+
* Uniform or per-axis nonsingular scaling; negative factors reflect geometry.
|
|
1767
|
+
* `options.pivot` is a fixed world-space point; omission uses the coordinate origin.
|
|
1712
1768
|
*/
|
|
1713
|
-
scale(
|
|
1769
|
+
scale(
|
|
1770
|
+
this: Solid,
|
|
1771
|
+
factors: number | Vector3Input,
|
|
1772
|
+
options?: Pivot3Options,
|
|
1773
|
+
): Solid;
|
|
1714
1774
|
/**
|
|
1715
1775
|
* Reflection across an origin line/plane.
|
|
1716
1776
|
*/
|
|
1717
|
-
mirror(this: Solid, normal:
|
|
1718
|
-
/**
|
|
1719
|
-
transform(this: Solid,
|
|
1777
|
+
mirror(this: Solid, normal: Vector3Input): Solid;
|
|
1778
|
+
/** Applies a reusable XYZ placement or canonical row-major matrix. */
|
|
1779
|
+
transform(this: Solid, placement: Transform3Input): Solid;
|
|
1720
1780
|
/**
|
|
1721
1781
|
* Robust difference; an empty cutter array preserves the source.
|
|
1722
1782
|
*/
|
|
@@ -1729,7 +1789,7 @@ export declare interface Solid {
|
|
|
1729
1789
|
*/
|
|
1730
1790
|
simplify(this: Solid, tolerance: number): Solid;
|
|
1731
1791
|
/**
|
|
1732
|
-
* Returns a new
|
|
1792
|
+
* Returns a new recipe with copied named anchors; existing names may be replaced.
|
|
1733
1793
|
*/
|
|
1734
1794
|
withAnchors(this: Solid, anchors: Readonly<Record<string, Anchor3>>): Solid;
|
|
1735
1795
|
/**
|
|
@@ -1775,9 +1835,9 @@ export declare interface SolidInspection {
|
|
|
1775
1835
|
/** Whether this native solid contains no material. */
|
|
1776
1836
|
readonly isEmpty: boolean;
|
|
1777
1837
|
/** Inclusive maximum coordinates in millimetres. */
|
|
1778
|
-
readonly max:
|
|
1838
|
+
readonly max: Vector3Tuple;
|
|
1779
1839
|
/** Inclusive minimum coordinates in millimetres. */
|
|
1780
|
-
readonly min:
|
|
1840
|
+
readonly min: Vector3Tuple;
|
|
1781
1841
|
/** Number of connected surface shells; inward cavity shells count separately. */
|
|
1782
1842
|
readonly parts: number;
|
|
1783
1843
|
/** Enclosed native solid volume in cubic millimetres. */
|
|
@@ -1795,9 +1855,9 @@ export declare interface SolidRayHit {
|
|
|
1795
1855
|
/** Distance from the ray origin in millimetres. */
|
|
1796
1856
|
readonly distance: number;
|
|
1797
1857
|
/** Intersection position in millimetres. */
|
|
1798
|
-
readonly position:
|
|
1858
|
+
readonly position: Vector3Tuple;
|
|
1799
1859
|
/** Outward unit surface normal at the intersection. */
|
|
1800
|
-
readonly normal:
|
|
1860
|
+
readonly normal: Vector3Tuple;
|
|
1801
1861
|
}
|
|
1802
1862
|
|
|
1803
1863
|
/**
|
|
@@ -1913,6 +1973,42 @@ export declare interface StarOptions extends PrimitivePlacement {
|
|
|
1913
1973
|
readonly rotationDegrees?: number;
|
|
1914
1974
|
}
|
|
1915
1975
|
|
|
1976
|
+
/**
|
|
1977
|
+
* Creates a centered-width native Section along a sampled XY path.
|
|
1978
|
+
*
|
|
1979
|
+
* Shares caps, joins and physical sampling with Geometry's strokePathRegion. Native union
|
|
1980
|
+
* resolves overlapping stroke primitives. Session resolution and resource ceilings apply;
|
|
1981
|
+
* closed paths omit the duplicated seam. Returns an immutable deferred recipe.
|
|
1982
|
+
*
|
|
1983
|
+
* @example Extrude a rounded track
|
|
1984
|
+
* ```ts
|
|
1985
|
+
* stroke([[0, 0], [20, 0], [20, 10]], { width: 3, join: "round", cap: "round" }).extrude({ height: 2 });
|
|
1986
|
+
* ```
|
|
1987
|
+
*/
|
|
1988
|
+
export declare function stroke(path: Path2, options: StrokeOptions): Section;
|
|
1989
|
+
|
|
1990
|
+
/** Physical stroke and topology controls shared by pure regions and native Sections. */
|
|
1991
|
+
export declare interface StrokeOptions {
|
|
1992
|
+
/** Explicit path, circular and expanded-profile allocation ceilings. */
|
|
1993
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
1994
|
+
/** Treat the path as a closed non-duplicated loop. Default: `false`. */
|
|
1995
|
+
readonly closed?: boolean;
|
|
1996
|
+
/** End-cap treatment for an open path. Ignored for closed paths. Default: `butt`. */
|
|
1997
|
+
readonly cap?: StrokePathCap;
|
|
1998
|
+
/** Corner treatment; miters exceeding SVG's default limit of 4 become bevels. Default: `miter`. */
|
|
1999
|
+
readonly join?: StrokePathJoin;
|
|
2000
|
+
/** Physical tessellation policy for round caps and joins. */
|
|
2001
|
+
readonly resolution?: GeometryResolution;
|
|
2002
|
+
/** Positive total stroke width in millimetres, centered on the sampled path. */
|
|
2003
|
+
readonly width: number;
|
|
2004
|
+
}
|
|
2005
|
+
|
|
2006
|
+
/** End-cap treatment for an open stroked path. */
|
|
2007
|
+
export declare type StrokePathCap = "butt" | "round" | "square";
|
|
2008
|
+
|
|
2009
|
+
/** Join treatment where adjacent stroked path segments meet. */
|
|
2010
|
+
export declare type StrokePathJoin = "bevel" | "miter" | "round";
|
|
2011
|
+
|
|
1916
2012
|
/** Placement of painted SVG geometry after SVG Y-axis inversion. */
|
|
1917
2013
|
export declare type SvgOrigin = "center" | "document";
|
|
1918
2014
|
|
|
@@ -1990,7 +2086,7 @@ export declare interface SvgSectionOptions {
|
|
|
1990
2086
|
*/
|
|
1991
2087
|
export declare function sweep(
|
|
1992
2088
|
shape: CorrespondingProfile,
|
|
1993
|
-
path: readonly
|
|
2089
|
+
path: readonly Vector3Tuple[],
|
|
1994
2090
|
options?: SweepOptions,
|
|
1995
2091
|
): Solid;
|
|
1996
2092
|
|
|
@@ -2011,7 +2107,7 @@ export declare interface SweepOptions {
|
|
|
2011
2107
|
/** Twist advances by physical path length (default), or normalized authored station position, including a closed seam gap. */
|
|
2012
2108
|
readonly twistBy?: "length" | "stations";
|
|
2013
2109
|
/** Positive uniform/XY scale, or one XY pair per path station. Defaults to one. */
|
|
2014
|
-
readonly scale?: number |
|
|
2110
|
+
readonly scale?: number | Vector2Tuple | readonly Vector2Tuple[];
|
|
2015
2111
|
/** Corresponding point-index advance at a rotationally equivalent closed seam. */
|
|
2016
2112
|
readonly seamProfileOffset?: number;
|
|
2017
2113
|
}
|
|
@@ -2024,13 +2120,13 @@ export declare type SweepOrientation =
|
|
|
2024
2120
|
/** Minimizes frame rotation by parallel transport. */
|
|
2025
2121
|
readonly kind: "transport";
|
|
2026
2122
|
/** Initial profile +X guide, projected perpendicular to the first tangent. */
|
|
2027
|
-
readonly initialNormal?:
|
|
2123
|
+
readonly initialNormal?: Vector3Tuple;
|
|
2028
2124
|
}
|
|
2029
2125
|
| {
|
|
2030
2126
|
/** Projects one fixed world-space normal at every path station. */
|
|
2031
2127
|
readonly kind: "fixed-normal";
|
|
2032
2128
|
/** Directed profile +X guide; must not be parallel to any local tangent. */
|
|
2033
|
-
readonly normal:
|
|
2129
|
+
readonly normal: Vector3Tuple;
|
|
2034
2130
|
}
|
|
2035
2131
|
| {
|
|
2036
2132
|
/** Uses an explicitly directed normal callback at each original normalized station. */
|
|
@@ -2237,7 +2333,7 @@ export declare interface ThreadProfile {
|
|
|
2237
2333
|
/** Adjacent axial thread spacing in millimetres. */
|
|
2238
2334
|
readonly pitch: number;
|
|
2239
2335
|
/** Immutable open `[axial, radial]` path spanning one pitch. */
|
|
2240
|
-
readonly points: readonly
|
|
2336
|
+
readonly points: readonly Vector2Tuple[];
|
|
2241
2337
|
/** Axial width of the flat at the minor envelope. */
|
|
2242
2338
|
readonly rootFlatWidth: number;
|
|
2243
2339
|
}
|
|
@@ -2267,9 +2363,6 @@ export declare function threadRidge(options: ThreadRidgeOptions): Solid;
|
|
|
2267
2363
|
/** Parameters for a helical ridge before solid construction. */
|
|
2268
2364
|
export declare type ThreadRidgeOptions = HelicalThreadRidgeMeshOptions;
|
|
2269
2365
|
|
|
2270
|
-
/** Explicit copied topology inspection; not needed for section operations. */
|
|
2271
|
-
export declare function toRegion(section: Section): Region;
|
|
2272
|
-
|
|
2273
2366
|
/**
|
|
2274
2367
|
* Torus around +Z.
|
|
2275
2368
|
*
|
|
@@ -2301,8 +2394,51 @@ export declare interface TorusOptions extends PrimitivePlacement {
|
|
|
2301
2394
|
/** Copies a handle to manufacturing mesh buffers. */
|
|
2302
2395
|
export declare function toTriangleMesh(solid: Solid): TriangleMesh;
|
|
2303
2396
|
|
|
2304
|
-
/**
|
|
2305
|
-
export declare
|
|
2397
|
+
/** Immutable reusable XY placement. Methods apply in written order; angles are degrees. */
|
|
2398
|
+
export declare interface Transform2 {
|
|
2399
|
+
/** Applies a translation in model units after this placement. */
|
|
2400
|
+
translate(offset: Vector2Input): Transform2;
|
|
2401
|
+
/** Rotates counterclockwise in degrees about an optional world-space pivot (default origin). */
|
|
2402
|
+
rotate(degrees: number, options?: Pivot2Options): Transform2;
|
|
2403
|
+
/** Scales about an optional world-space pivot; finite nonzero factors may reflect. */
|
|
2404
|
+
scale(factors: number | Vector2Input, options?: Pivot2Options): Transform2;
|
|
2405
|
+
/** Applies this placement first, then `next`; neither operand is mutated. */
|
|
2406
|
+
andThen(next: Transform2Input): Transform2;
|
|
2407
|
+
/** Returns the inverse; singular and numerically unstable transforms throw GeometryError. */
|
|
2408
|
+
inverse(): Transform2;
|
|
2409
|
+
/** Transforms a finite point, including translation. Returns a fresh immutable vector. */
|
|
2410
|
+
applyPoint(point: Vector2Input): Vector2;
|
|
2411
|
+
/** Transforms a finite direction, excluding translation and retaining scale. This is not a normal transform. */
|
|
2412
|
+
applyDirection(direction: Vector2Input): Vector2;
|
|
2413
|
+
/** Applies the inverse transpose and normalizes. Ignores translation; rejects zero normals. */
|
|
2414
|
+
applyNormal(normal: Vector2Input): Vector2;
|
|
2415
|
+
/** Returns the frozen canonical row-major 3x3 matrix for interchange. */
|
|
2416
|
+
toMatrix(): Transform2Matrix;
|
|
2417
|
+
/** Embeds this placement in XYZ, leaving Z unchanged, for solids and 3D paths. */
|
|
2418
|
+
to3D(): Transform3;
|
|
2419
|
+
}
|
|
2420
|
+
|
|
2421
|
+
/**
|
|
2422
|
+
* Creates an immutable XY transform, identity by default. Matrices are copied and validated.
|
|
2423
|
+
* Pass it directly to Section.transform() and planar data helpers; to3D() explicitly crosses into XYZ.
|
|
2424
|
+
* Zero scales and singular matrices throw GeometryError; negative scales reflect.
|
|
2425
|
+
*
|
|
2426
|
+
* @example
|
|
2427
|
+
* ```ts
|
|
2428
|
+
* const placement = transform2().rotate(90).translate([10, 0]);
|
|
2429
|
+
* placement.applyPoint([1, 0]).toArray(); // approximately [10, 1]
|
|
2430
|
+
* ```
|
|
2431
|
+
*/
|
|
2432
|
+
export declare function transform2(matrix?: Transform2Matrix): Transform2;
|
|
2433
|
+
|
|
2434
|
+
/** An immutable XY transform or its canonical row-major matrix for interchange. */
|
|
2435
|
+
export declare type Transform2Input = Transform2 | Transform2Matrix;
|
|
2436
|
+
|
|
2437
|
+
/**
|
|
2438
|
+
* A row-major affine 3x3 XY matrix applied to column vectors.
|
|
2439
|
+
* Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`.
|
|
2440
|
+
*/
|
|
2441
|
+
export declare type Transform2Matrix = readonly [
|
|
2306
2442
|
m00: number,
|
|
2307
2443
|
m01: number,
|
|
2308
2444
|
m02: number,
|
|
@@ -2314,13 +2450,60 @@ export declare type Transform2 = readonly [
|
|
|
2314
2450
|
m22: number,
|
|
2315
2451
|
];
|
|
2316
2452
|
|
|
2453
|
+
/** Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. */
|
|
2454
|
+
export declare interface Transform3 {
|
|
2455
|
+
/** Applies a translation in model units after this placement. */
|
|
2456
|
+
translate(offset: Vector3Input): Transform3;
|
|
2457
|
+
/** Rotates about global X, then Y, then Z in degrees, about an optional world-space pivot. */
|
|
2458
|
+
rotate(degrees: Vector3Input, options?: Pivot3Options): Transform3;
|
|
2459
|
+
/** Rotates right-handed in degrees about a nonzero axis and optional world-space pivot. */
|
|
2460
|
+
rotateAxis(
|
|
2461
|
+
axis: Vector3Input,
|
|
2462
|
+
degrees: number,
|
|
2463
|
+
options?: Pivot3Options,
|
|
2464
|
+
): Transform3;
|
|
2465
|
+
/** Scales about an optional world-space pivot; finite nonzero factors may reflect. */
|
|
2466
|
+
scale(factors: number | Vector3Input, options?: Pivot3Options): Transform3;
|
|
2467
|
+
/** Applies this placement first, then `next`; equivalent to composeTransform3(next, current). */
|
|
2468
|
+
andThen(next: Transform3Input): Transform3;
|
|
2469
|
+
/** Returns the inverse; singular and numerically unstable transforms throw GeometryError. */
|
|
2470
|
+
inverse(): Transform3;
|
|
2471
|
+
/** Transforms a finite point, including translation. Returns a fresh immutable vector. */
|
|
2472
|
+
applyPoint(point: Vector3Input): Vector3;
|
|
2473
|
+
/** Transforms a finite direction, excluding translation and retaining scale. This is not a normal transform. */
|
|
2474
|
+
applyDirection(direction: Vector3Input): Vector3;
|
|
2475
|
+
/** Applies the inverse transpose and normalizes. Ignores translation; rejects zero normals. */
|
|
2476
|
+
applyNormal(normal: Vector3Input): Vector3;
|
|
2477
|
+
/** Returns the frozen canonical row-major 4x4 matrix for interchange. */
|
|
2478
|
+
toMatrix(): Transform3Matrix;
|
|
2479
|
+
/** Restricts to XY; throws GeometryError for a plane change or singular XY restriction. */
|
|
2480
|
+
to2D(): Transform2;
|
|
2481
|
+
}
|
|
2482
|
+
|
|
2483
|
+
/**
|
|
2484
|
+
* Creates an immutable XYZ transform, identity by default. Matrices are copied and validated.
|
|
2485
|
+
* Calls apply in written order; rotations use degrees and pivots use current world coordinates.
|
|
2486
|
+
* Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError.
|
|
2487
|
+
* Use frameTransform3(frame) as the input for existing orthonormal frame placement.
|
|
2488
|
+
*
|
|
2489
|
+
* @example
|
|
2490
|
+
* ```ts
|
|
2491
|
+
* const placement = transform3().rotate([0, 0, 90]).translate([10, 0, 0]);
|
|
2492
|
+
* placement.applyPoint([1, 0, 0]).toArray(); // approximately [10, 1, 0]
|
|
2493
|
+
* ```
|
|
2494
|
+
*/
|
|
2495
|
+
export declare function transform3(matrix?: Transform3Matrix): Transform3;
|
|
2496
|
+
|
|
2497
|
+
/** An immutable XYZ transform or its canonical row-major matrix for interchange. */
|
|
2498
|
+
export declare type Transform3Input = Transform3 | Transform3Matrix;
|
|
2499
|
+
|
|
2317
2500
|
/**
|
|
2318
2501
|
* A row-major affine 4x4 matrix applied to column vectors.
|
|
2319
2502
|
*
|
|
2320
2503
|
* Translation occupies indices 3, 7, and 11. The final row must be
|
|
2321
2504
|
* `[0, 0, 0, 1]` within the active geometry tolerance.
|
|
2322
2505
|
*/
|
|
2323
|
-
export declare type
|
|
2506
|
+
export declare type Transform3Matrix = readonly [
|
|
2324
2507
|
m00: number,
|
|
2325
2508
|
m01: number,
|
|
2326
2509
|
m02: number,
|
|
@@ -2452,11 +2635,97 @@ export declare function union(solids: readonly Solid[]): Solid;
|
|
|
2452
2635
|
/** Native filled section union; dimensions cannot be mixed. */
|
|
2453
2636
|
export declare function union(sections: readonly Section[]): Section;
|
|
2454
2637
|
|
|
2638
|
+
/** Immutable XY arithmetic; vector operations return new values and measurements return numbers. */
|
|
2639
|
+
export declare interface Vector2 {
|
|
2640
|
+
/** X coordinate in the vector's coordinate units. */
|
|
2641
|
+
readonly x: number;
|
|
2642
|
+
/** Y coordinate in the vector's coordinate units. */
|
|
2643
|
+
readonly y: number;
|
|
2644
|
+
/** Adds another vector component-wise. */
|
|
2645
|
+
add(other: Vector2Input): Vector2;
|
|
2646
|
+
/** Subtracts another vector component-wise. */
|
|
2647
|
+
subtract(other: Vector2Input): Vector2;
|
|
2648
|
+
/** Multiplies by a finite dimensionless scalar. */
|
|
2649
|
+
scale(factor: number): Vector2;
|
|
2650
|
+
/** Returns a unit vector; rejects length at or below finite nonnegative `epsilon` (default `1e-12`). */
|
|
2651
|
+
normalize(epsilon?: number): Vector2;
|
|
2652
|
+
/** Interpolates toward another vector by finite dimensionless `t`; extrapolation is allowed. */
|
|
2653
|
+
lerp(other: Vector2Input, t: number): Vector2;
|
|
2654
|
+
/** Returns the scalar dot product. */
|
|
2655
|
+
dot(other: Vector2Input): number;
|
|
2656
|
+
/** Returns the signed scalar cross product; positive means the other vector is counterclockwise. */
|
|
2657
|
+
cross(other: Vector2Input): number;
|
|
2658
|
+
/** Returns Euclidean length in the vector's coordinate units. */
|
|
2659
|
+
length(): number;
|
|
2660
|
+
/** Returns Euclidean distance to another vector in the same coordinate units. */
|
|
2661
|
+
distance(other: Vector2Input): number;
|
|
2662
|
+
/** Returns this value's frozen readonly tuple for interchange; repeated calls do not allocate. */
|
|
2663
|
+
toArray(): Vector2Tuple;
|
|
2664
|
+
}
|
|
2665
|
+
|
|
2666
|
+
/**
|
|
2667
|
+
* Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates.
|
|
2668
|
+
* Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates
|
|
2669
|
+
* and overflow throw `NON_FINITE_VALUE` GeometryError.
|
|
2670
|
+
* Use transform2().applyDirection(value) for rotations and nonuniform scaling.
|
|
2671
|
+
*/
|
|
2672
|
+
export declare function vector2(input: Vector2Input): Vector2;
|
|
2673
|
+
|
|
2674
|
+
/** An XY tuple or immutable fluent vector accepted by vector operations. */
|
|
2675
|
+
export declare type Vector2Input = Vector2Tuple | Vector2;
|
|
2676
|
+
|
|
2455
2677
|
/** A two-dimensional Cartesian vector or point. */
|
|
2456
|
-
export declare type
|
|
2678
|
+
export declare type Vector2Tuple = readonly [x: number, y: number];
|
|
2679
|
+
|
|
2680
|
+
/** Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. */
|
|
2681
|
+
export declare interface Vector3 {
|
|
2682
|
+
/** X coordinate in the vector's coordinate units. */
|
|
2683
|
+
readonly x: number;
|
|
2684
|
+
/** Y coordinate in the vector's coordinate units. */
|
|
2685
|
+
readonly y: number;
|
|
2686
|
+
/** Z coordinate in the vector's coordinate units. */
|
|
2687
|
+
readonly z: number;
|
|
2688
|
+
/** Adds another vector component-wise. */
|
|
2689
|
+
add(other: Vector3Input): Vector3;
|
|
2690
|
+
/** Subtracts another vector component-wise. */
|
|
2691
|
+
subtract(other: Vector3Input): Vector3;
|
|
2692
|
+
/** Multiplies by a finite dimensionless scalar. */
|
|
2693
|
+
scale(factor: number): Vector3;
|
|
2694
|
+
/** Returns a unit vector; rejects length at or below finite nonnegative `epsilon` (default `1e-12`). */
|
|
2695
|
+
normalize(epsilon?: number): Vector3;
|
|
2696
|
+
/** Interpolates toward another vector by finite dimensionless `t`; extrapolation is allowed. */
|
|
2697
|
+
lerp(other: Vector3Input, t: number): Vector3;
|
|
2698
|
+
/** Returns the scalar dot product. */
|
|
2699
|
+
dot(other: Vector3Input): number;
|
|
2700
|
+
/** Returns the right-handed cross product as a new vector. */
|
|
2701
|
+
cross(other: Vector3Input): Vector3;
|
|
2702
|
+
/** Returns Euclidean length in the vector's coordinate units. */
|
|
2703
|
+
length(): number;
|
|
2704
|
+
/** Returns Euclidean distance to another vector in the same coordinate units. */
|
|
2705
|
+
distance(other: Vector3Input): number;
|
|
2706
|
+
/** Returns this value's frozen readonly tuple for interchange; repeated calls do not allocate. */
|
|
2707
|
+
toArray(): Vector3Tuple;
|
|
2708
|
+
}
|
|
2709
|
+
|
|
2710
|
+
/**
|
|
2711
|
+
* Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates.
|
|
2712
|
+
* Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates
|
|
2713
|
+
* and overflow throw `NON_FINITE_VALUE` GeometryError.
|
|
2714
|
+
* Use transform3().applyDirection(value) for rotations and nonuniform scaling.
|
|
2715
|
+
*
|
|
2716
|
+
* @example
|
|
2717
|
+
* ```ts
|
|
2718
|
+
* const direction = vector3([1, 2, 3]).add([4, 0, 0]).normalize().scale(10);
|
|
2719
|
+
* const alignment = direction.dot([0, 0, 1]);
|
|
2720
|
+
* ```
|
|
2721
|
+
*/
|
|
2722
|
+
export declare function vector3(input: Vector3Input): Vector3;
|
|
2723
|
+
|
|
2724
|
+
/** An XYZ tuple or immutable fluent vector accepted by vector operations. */
|
|
2725
|
+
export declare type Vector3Input = Vector3Tuple | Vector3;
|
|
2457
2726
|
|
|
2458
2727
|
/** A three-dimensional Cartesian vector or point. */
|
|
2459
|
-
export declare type
|
|
2728
|
+
export declare type Vector3Tuple = readonly [x: number, y: number, z: number];
|
|
2460
2729
|
|
|
2461
2730
|
/**
|
|
2462
2731
|
* Immutable vector layout with no browser, font parser, or kernel ownership.
|