@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/model/operations.js
CHANGED
|
@@ -168,13 +168,20 @@ export function anchor(shape, name) {
|
|
|
168
168
|
export function polygon(input) {
|
|
169
169
|
return invoke("polygon", [input]);
|
|
170
170
|
}
|
|
171
|
-
/**
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
171
|
+
/**
|
|
172
|
+
* Creates a centered-width native Section along a sampled XY path.
|
|
173
|
+
*
|
|
174
|
+
* Shares caps, joins and physical sampling with Geometry's strokePathRegion. Native union
|
|
175
|
+
* resolves overlapping stroke primitives. Session resolution and resource ceilings apply;
|
|
176
|
+
* closed paths omit the duplicated seam. Returns an immutable deferred recipe.
|
|
177
|
+
*
|
|
178
|
+
* @example Extrude a rounded track
|
|
179
|
+
* ```ts
|
|
180
|
+
* stroke([[0, 0], [20, 0], [20, 10]], { width: 3, join: "round", cap: "round" }).extrude({ height: 2 });
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
export function stroke(path, options) {
|
|
184
|
+
return invoke("stroke", [path, options]);
|
|
178
185
|
}
|
|
179
186
|
/**
|
|
180
187
|
* Filled rectangular section with uniform or independently treated corners.
|
|
@@ -317,7 +324,7 @@ export function inspectSolid(solid) {
|
|
|
317
324
|
return invoke("inspectSolid", [solid]);
|
|
318
325
|
}
|
|
319
326
|
/**
|
|
320
|
-
* Checks whether a
|
|
327
|
+
* Checks whether a solid or filled section contains no geometry during host execution.
|
|
321
328
|
*
|
|
322
329
|
* Accepts a 3D Solid or 2D Section handle, not a finalized model or raw triangle mesh.
|
|
323
330
|
* Useful after a Boolean operation whose inputs may not overlap; no mesh is extracted.
|
|
@@ -339,7 +346,7 @@ export function isEmpty(shape) {
|
|
|
339
346
|
* Uses actual geometry, not bounding-box separation or distance between object origins.
|
|
340
347
|
* Contact or overlapping material returns zero, including one solid inside another.
|
|
341
348
|
* The kernel's search range is managed internally; the result is not capped at a caller limit.
|
|
342
|
-
* Empty
|
|
349
|
+
* Empty geometry and component selections from another session reject. Results follow native numeric precision.
|
|
343
350
|
*
|
|
344
351
|
* @example Measure the gap between two blocks
|
|
345
352
|
* ```ts
|
|
@@ -358,13 +365,17 @@ export function rayCast(solid, origin, endpoint) {
|
|
|
358
365
|
export function components(shape) {
|
|
359
366
|
return invoke("components", [shape]);
|
|
360
367
|
}
|
|
361
|
-
/**
|
|
368
|
+
/**
|
|
369
|
+
* Bounded positive-inside implicit field constructor.
|
|
370
|
+
* The retained callback must capture independent immutable inputs, not live session readers or parameters.
|
|
371
|
+
*/
|
|
362
372
|
export function implicit(options) {
|
|
363
373
|
return invoke("implicit", [options]);
|
|
364
374
|
}
|
|
365
375
|
/**
|
|
366
376
|
* Closed rectilinear top above a flat base, with uniform or explicit XY coordinates.
|
|
367
377
|
* Samples each grid height once; center-error triangulation also samples each cell centre.
|
|
378
|
+
* The retained callback must capture independent immutable inputs, not live session readers or parameters.
|
|
368
379
|
*
|
|
369
380
|
* @example Heightfield
|
|
370
381
|
* ```ts
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { GeometryError } from "../geometry/errors.js";
|
|
2
|
+
import { defaultModelingLimits } from "../geometry/model-limits.js";
|
|
3
|
+
import { gridPatternPlan, linearPatternPlan, pathPatternPlan, radialPatternPlan, } from "../geometry/patterns/placements.js";
|
|
4
|
+
import { restrictTransform3 } from "../geometry/transform2.js";
|
|
5
|
+
import { geometryRecipe, recordGeometryRecipe, } from "./geometry-recipes.js";
|
|
6
|
+
import { captureRecipeInputs } from "./immutable-generation-data.js";
|
|
7
|
+
// Every public operation must explicitly choose its realization and result behavior.
|
|
8
|
+
const operationBehaviors = {
|
|
9
|
+
withResolution: "resolution",
|
|
10
|
+
box: "solid",
|
|
11
|
+
cylinder: "solid",
|
|
12
|
+
tube: "solid",
|
|
13
|
+
sphere: "solid",
|
|
14
|
+
torus: "solid",
|
|
15
|
+
heightfield: "solid",
|
|
16
|
+
implicit: "solid",
|
|
17
|
+
extrude: "solid",
|
|
18
|
+
revolve: "solid",
|
|
19
|
+
loft: "solid",
|
|
20
|
+
sweep: "solid",
|
|
21
|
+
compose: "solid",
|
|
22
|
+
minkowskiSum: "solid",
|
|
23
|
+
solidFromMesh: "solid",
|
|
24
|
+
setTolerance: "solid",
|
|
25
|
+
threadRidge: "solid",
|
|
26
|
+
threadedRod: "solid",
|
|
27
|
+
threadedNut: "solid",
|
|
28
|
+
internalThreadCutter: "solid",
|
|
29
|
+
polygon: "section",
|
|
30
|
+
stroke: "section",
|
|
31
|
+
rectangle: "section",
|
|
32
|
+
circle: "section",
|
|
33
|
+
ellipse: "section",
|
|
34
|
+
regularPolygon: "section",
|
|
35
|
+
star: "section",
|
|
36
|
+
projectSection: "section",
|
|
37
|
+
sliceSection: "section",
|
|
38
|
+
textSection: "section",
|
|
39
|
+
svgSection: "section",
|
|
40
|
+
svgPathSection: "section",
|
|
41
|
+
translate: "preserve",
|
|
42
|
+
rotate: "preserve",
|
|
43
|
+
scale: "preserve",
|
|
44
|
+
mirror: "preserve",
|
|
45
|
+
transform: "preserve",
|
|
46
|
+
offset: "preserve",
|
|
47
|
+
simplify: "preserve",
|
|
48
|
+
withAnchors: "preserve",
|
|
49
|
+
attach: "preserve",
|
|
50
|
+
union: "preserve",
|
|
51
|
+
intersect: "preserve",
|
|
52
|
+
subtract: "preserve",
|
|
53
|
+
hull: "preserve",
|
|
54
|
+
toTriangleMesh: "observation",
|
|
55
|
+
toRegionData: "observation",
|
|
56
|
+
inspectSection: "observation",
|
|
57
|
+
inspectSolid: "observation",
|
|
58
|
+
isEmpty: "observation",
|
|
59
|
+
distance: "observation",
|
|
60
|
+
rayCast: "observation",
|
|
61
|
+
anchor: "observation",
|
|
62
|
+
matchProfiles: "observation",
|
|
63
|
+
preflightThreadedRod: "observation",
|
|
64
|
+
preflightInternalThreadCutter: "observation",
|
|
65
|
+
preflightThreadedNut: "observation",
|
|
66
|
+
split: "split",
|
|
67
|
+
splitByPlane: "split",
|
|
68
|
+
components: "components",
|
|
69
|
+
linearPattern: "pattern",
|
|
70
|
+
radialPattern: "pattern",
|
|
71
|
+
gridPattern: "pattern",
|
|
72
|
+
pathPattern: "pattern",
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Creates the shared declaration surface for portable recipes or one active revision.
|
|
76
|
+
* Handles retain captured inputs; native results remain private to the host realization owner.
|
|
77
|
+
*/
|
|
78
|
+
export function createRecipeContext(resolution, declaration) {
|
|
79
|
+
return Object.freeze(Object.fromEntries(Object.keys(operationBehaviors).map((key) => [
|
|
80
|
+
key,
|
|
81
|
+
(...supplied) => declareRecipeOperation(key, resolution, supplied, declaration),
|
|
82
|
+
])));
|
|
83
|
+
}
|
|
84
|
+
/** Captures and validates inputs before deciding whether an operation needs native geometry now. */
|
|
85
|
+
export function declareRecipeOperation(operation, resolution, supplied, declaration) {
|
|
86
|
+
declaration.assertActive?.();
|
|
87
|
+
const behavior = operationBehaviors[operation];
|
|
88
|
+
if (behavior === "observation" || behavior === "components")
|
|
89
|
+
requireRealization(declaration, operation);
|
|
90
|
+
if (behavior === "resolution") {
|
|
91
|
+
const nextResolution = Object.freeze({ ...resolution, ...supplied[0] });
|
|
92
|
+
return createRecipeContext(nextResolution, declaration);
|
|
93
|
+
}
|
|
94
|
+
if (behavior === "pattern")
|
|
95
|
+
return declarePattern(operation, resolution, supplied, declaration);
|
|
96
|
+
const args = captureRecipeInputs(supplied);
|
|
97
|
+
const call = { method: operation, args, resolution };
|
|
98
|
+
if (behavior === "observation")
|
|
99
|
+
return requireRealization(declaration, operation).invoke(call);
|
|
100
|
+
const recipe = {
|
|
101
|
+
kind: resultKind(behavior, args[0]),
|
|
102
|
+
call,
|
|
103
|
+
};
|
|
104
|
+
if (behavior === "split")
|
|
105
|
+
return Object.freeze([
|
|
106
|
+
recordGeometryRecipe({ ...recipe, index: 0 }, declaration.dispatch),
|
|
107
|
+
recordGeometryRecipe({ ...recipe, index: 1 }, declaration.dispatch),
|
|
108
|
+
]);
|
|
109
|
+
if (behavior === "components") {
|
|
110
|
+
// Cardinality and ordering are observations of this session's sampled geometry.
|
|
111
|
+
// Retain native precision rather than baking the selected component through mesh interchange.
|
|
112
|
+
const realization = requireRealization(declaration, operation);
|
|
113
|
+
const values = realization.evaluate(call);
|
|
114
|
+
return Object.freeze(values.map((_value, index) => recordGeometryRecipe({ ...recipe, index, observedSession: realization.session }, declaration.dispatch)));
|
|
115
|
+
}
|
|
116
|
+
return recordGeometryRecipe(recipe, declaration.dispatch);
|
|
117
|
+
}
|
|
118
|
+
/** Declares a portable recipe without resolving an engine, resolution or session identity. */
|
|
119
|
+
export function declarePortableOperation(operation, args, dispatch) {
|
|
120
|
+
return declareRecipeOperation(operation, undefined, args, {
|
|
121
|
+
limits: defaultModelingLimits,
|
|
122
|
+
dispatch,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
function requireRealization(declaration, operation) {
|
|
126
|
+
if (declaration.realization === undefined)
|
|
127
|
+
throw new GeometryError("INVALID_ARGUMENT", "Geometry observations require an active model execution.", { operation });
|
|
128
|
+
return declaration.realization;
|
|
129
|
+
}
|
|
130
|
+
function resultKind(behavior, input) {
|
|
131
|
+
if (behavior === "section")
|
|
132
|
+
return "section";
|
|
133
|
+
if (behavior === "preserve" || behavior === "components")
|
|
134
|
+
return inputKind(input);
|
|
135
|
+
return "solid";
|
|
136
|
+
}
|
|
137
|
+
function inputKind(value) {
|
|
138
|
+
if (Array.isArray(value))
|
|
139
|
+
return inputKind(value[0]);
|
|
140
|
+
if (typeof value !== "object" || value === null)
|
|
141
|
+
return "solid";
|
|
142
|
+
const recipe = geometryRecipe(value);
|
|
143
|
+
if (recipe !== undefined)
|
|
144
|
+
return recipe.kind;
|
|
145
|
+
if ("sections" in value)
|
|
146
|
+
return "section";
|
|
147
|
+
if ("points" in value &&
|
|
148
|
+
Array.isArray(value.points) &&
|
|
149
|
+
Array.isArray(value.points[0]) &&
|
|
150
|
+
value.points[0].length === 2)
|
|
151
|
+
return "section";
|
|
152
|
+
return "solid";
|
|
153
|
+
}
|
|
154
|
+
/** Runs every factory during declaration; each placed copy stays deferred until it is used. */
|
|
155
|
+
function declarePattern(operation, resolution, supplied, declaration) {
|
|
156
|
+
const plan = patternPlan(operation, supplied, declaration.limits);
|
|
157
|
+
if (plan.count > declaration.limits.maxVertices)
|
|
158
|
+
throw new GeometryError("COMPLEXITY_LIMIT", "Pattern declaration exceeds execution limits.", {
|
|
159
|
+
operation,
|
|
160
|
+
});
|
|
161
|
+
const source = supplied[0];
|
|
162
|
+
const copies = [];
|
|
163
|
+
let kind;
|
|
164
|
+
for (let index = 0; index < plan.count; index++) {
|
|
165
|
+
const shape = typeof source === "function"
|
|
166
|
+
? source(index)
|
|
167
|
+
: source;
|
|
168
|
+
const currentKind = inputKind(shape);
|
|
169
|
+
if (kind !== undefined && kind !== currentKind)
|
|
170
|
+
throw new GeometryError("INVALID_ARGUMENT", "Pattern factories must return one shape dimension.", {
|
|
171
|
+
operation,
|
|
172
|
+
});
|
|
173
|
+
kind = currentKind;
|
|
174
|
+
const matrix = plan.transformAt(index);
|
|
175
|
+
copies.push(declareRecipeOperation("transform", resolution, [shape, kind === "section" ? restrictTransform3(matrix) : matrix], declaration));
|
|
176
|
+
}
|
|
177
|
+
return Object.freeze(copies);
|
|
178
|
+
}
|
|
179
|
+
function patternPlan(operation, supplied, limits) {
|
|
180
|
+
const options = supplied[1];
|
|
181
|
+
switch (operation) {
|
|
182
|
+
case "linearPattern":
|
|
183
|
+
return linearPatternPlan(options);
|
|
184
|
+
case "radialPattern":
|
|
185
|
+
return radialPatternPlan(options);
|
|
186
|
+
case "gridPattern":
|
|
187
|
+
return gridPatternPlan(options);
|
|
188
|
+
case "pathPattern":
|
|
189
|
+
return pathPatternPlan(options, supplied[2], limits);
|
|
190
|
+
default:
|
|
191
|
+
throw new Error(`Operation ${operation} does not declare a pattern.`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { currentModelContext } from "./execution-binding.js";
|
|
2
|
+
const dispatchers = new WeakMap();
|
|
2
3
|
// Resolve the current transaction on every call: cached recipes outlive the revision that
|
|
3
4
|
// created them. Neither instances nor these shared methods retain an execution or native value.
|
|
4
5
|
function forward(name) {
|
|
5
6
|
return function (...args) {
|
|
7
|
+
const dispatch = dispatchers.get(this);
|
|
8
|
+
if (dispatch !== undefined)
|
|
9
|
+
return dispatch(name, [this, ...args]);
|
|
6
10
|
const context = currentModelContext(name);
|
|
7
11
|
return Reflect.apply(context[name], undefined, [this, ...args]);
|
|
8
12
|
};
|
|
@@ -29,16 +33,23 @@ const solidPrototype = prototype({
|
|
|
29
33
|
});
|
|
30
34
|
const sectionPrototype = prototype({
|
|
31
35
|
...common,
|
|
36
|
+
toRegionData: forward("toRegionData"),
|
|
32
37
|
offset: forward("offset"),
|
|
33
38
|
extrude: forward("extrude"),
|
|
34
39
|
revolve: forward("revolve"),
|
|
35
40
|
sweep: forward("sweep"),
|
|
36
41
|
});
|
|
37
42
|
/** Creates only the immutable public facade; the caller owns its private geometry identity. */
|
|
38
|
-
export function createSolidHandle() {
|
|
39
|
-
|
|
43
|
+
export function createSolidHandle(dispatch, properties) {
|
|
44
|
+
const handle = Object.freeze(Object.create(solidPrototype, properties ?? {}));
|
|
45
|
+
if (dispatch !== undefined)
|
|
46
|
+
dispatchers.set(handle, dispatch);
|
|
47
|
+
return handle;
|
|
40
48
|
}
|
|
41
49
|
/** Creates only the immutable public facade; the caller owns its private geometry identity. */
|
|
42
|
-
export function createSectionHandle() {
|
|
43
|
-
|
|
50
|
+
export function createSectionHandle(dispatch, properties) {
|
|
51
|
+
const handle = Object.freeze(Object.create(sectionPrototype, properties ?? {}));
|
|
52
|
+
if (dispatch !== undefined)
|
|
53
|
+
dispatchers.set(handle, dispatch);
|
|
54
|
+
return handle;
|
|
44
55
|
}
|
package/package.json
CHANGED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Transform3
|
|
2
|
-
|
|
3
|
-
A row-major affine 4x4 matrix applied to column vectors.
|
|
4
|
-
|
|
5
|
-
**Transform3** = readonly \[`m00`: `number`, `m01`: `number`, `m02`: `number`, `m03`: `number`, `m10`: `number`, `m11`: `number`, `m12`: `number`, `m13`: `number`, `m20`: `number`, `m21`: `number`, `m22`: `number`, `m23`: `number`, `m30`: `number`, `m31`: `number`, `m32`: `number`, `m33`: `number`\]
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Translation occupies indices 3, 7, and 11. The final row must be
|
|
10
|
-
`[0, 0, 0, 1]` within the active geometry tolerance.
|
|
11
|
-
|
|
12
|
-
Package: `@metamesh/modeling@0.13.0`.
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# rotateAroundAxis3
|
|
2
|
-
|
|
3
|
-
Rotates a vector right-handed around an axis by `angle` radians.
|
|
4
|
-
|
|
5
|
-
`const` **rotateAroundAxis3**: (`vector`: [`Vector3`](Vector3.md), `axis`: [`Vector3`](Vector3.md), `angle`: `number`) => [`Vector3`](Vector3.md)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## Parameters
|
|
10
|
-
|
|
11
|
-
<a id="vector"></a>
|
|
12
|
-
|
|
13
|
-
**`vector`** · [`Vector3`](Vector3.md) · Required
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<a id="axis"></a>
|
|
18
|
-
|
|
19
|
-
**`axis`** · [`Vector3`](Vector3.md) · Required
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
<a id="angle"></a>
|
|
24
|
-
|
|
25
|
-
**`angle`** · `number` · Required
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
## Returns
|
|
30
|
-
|
|
31
|
-
[`Vector3`](Vector3.md)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
## Related APIs
|
|
35
|
-
|
|
36
|
-
- [Vector3](Vector3.md)
|
|
37
|
-
|
|
38
|
-
Package: `@metamesh/modeling@0.13.0`.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# transformRegion
|
|
2
|
-
|
|
3
|
-
Transforms an explicit outer/hole region with reflection-safe winding correction.
|
|
4
|
-
|
|
5
|
-
**transformRegion**(`region`: [`Region`](Region.md), `transform`: [`Transform3`](Transform3.md), `tolerance?`: [`GeometryToleranceOptions`](GeometryToleranceOptions.md)): [`Region`](Region.md)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## Parameters
|
|
10
|
-
|
|
11
|
-
<a id="region"></a>
|
|
12
|
-
|
|
13
|
-
**`region`** · [`Region`](Region.md) · Required
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<a id="transform"></a>
|
|
18
|
-
|
|
19
|
-
**`transform`** · [`Transform3`](Transform3.md) · Required
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
<a id="tolerance"></a>
|
|
24
|
-
|
|
25
|
-
**`tolerance`** · [`GeometryToleranceOptions`](GeometryToleranceOptions.md) · Optional
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
## Returns
|
|
30
|
-
|
|
31
|
-
[`Region`](Region.md)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
## Related APIs
|
|
35
|
-
|
|
36
|
-
- [GeometryToleranceOptions](GeometryToleranceOptions.md)
|
|
37
|
-
- [Region](Region.md)
|
|
38
|
-
- [Transform3](Transform3.md)
|
|
39
|
-
|
|
40
|
-
Package: `@metamesh/modeling@0.13.0`.
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Transform2
|
|
2
|
-
|
|
3
|
-
Row-major affine XY matrix. Translation occupies m02/m12; final row is [0, 0, 1].
|
|
4
|
-
|
|
5
|
-
**Transform2** = readonly \[`m00`: `number`, `m01`: `number`, `m02`: `number`, `m10`: `number`, `m11`: `number`, `m12`: `number`, `m20`: `number`, `m21`: `number`, `m22`: `number`\]
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## Guides
|
|
11
|
-
|
|
12
|
-
- [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
|
|
13
|
-
- [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
|
|
14
|
-
|
|
15
|
-
Package: `@metamesh/modeling@0.13.0`.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# toRegion
|
|
2
|
-
|
|
3
|
-
Explicit copied topology inspection; not needed for section operations.
|
|
4
|
-
|
|
5
|
-
**toRegion**(`section`: [`Section`](Section.md)): [`Region`](Region.md)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## Parameters
|
|
10
|
-
|
|
11
|
-
<a id="section"></a>
|
|
12
|
-
|
|
13
|
-
**`section`** · [`Section`](Section.md) · Required
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## Returns
|
|
18
|
-
|
|
19
|
-
[`Region`](Region.md)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## Related APIs
|
|
23
|
-
|
|
24
|
-
- [Region](Region.md)
|
|
25
|
-
- [Section](Section.md)
|
|
26
|
-
|
|
27
|
-
## Guides
|
|
28
|
-
|
|
29
|
-
- [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
|
|
30
|
-
- [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
|
|
31
|
-
- [Text and font variability](../../guides/concepts.md#text-and-font-variability)
|
|
32
|
-
|
|
33
|
-
Package: `@metamesh/modeling@0.13.0`.
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { createSectionHandle, createSolidHandle } from "../model/shape-handles.js";
|
|
2
|
-
const recipes = new WeakMap();
|
|
3
|
-
/** Reads private recipe metadata without requiring an execution context. */
|
|
4
|
-
export const geometryRecipe = (value) => recipes.get(value);
|
|
5
|
-
/** Recognizes only opaque recipe handles issued by this engine. */
|
|
6
|
-
export const isGeometryRecipe = (value) => typeof value === "object" && value !== null && recipes.has(value);
|
|
7
|
-
/** Creates an immutable opaque handle for a recorded operation. */
|
|
8
|
-
export function recordGeometryRecipe(recipe) {
|
|
9
|
-
const handle = recipe.kind === "solid" ? createSolidHandle() : createSectionHandle();
|
|
10
|
-
recipes.set(handle, recipe);
|
|
11
|
-
return handle;
|
|
12
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { GeometryError } from "../geometry/errors.js";
|
|
2
|
-
/** Converts only plane-preserving pattern placements to a Section's affine XY transform. */
|
|
3
|
-
export function sectionPatternTransform(matrix, operation) {
|
|
4
|
-
if (Math.abs(matrix[8]) > 1e-10 || Math.abs(matrix[9]) > 1e-10 || Math.abs(matrix[11]) > 1e-10)
|
|
5
|
-
throw new GeometryError("INVALID_ARGUMENT", "Section patterns must preserve the XY plane.", {
|
|
6
|
-
operation,
|
|
7
|
-
});
|
|
8
|
-
return [matrix[0], matrix[1], matrix[3], matrix[4], matrix[5], matrix[7], 0, 0, 1];
|
|
9
|
-
}
|