@metamesh/modeling 0.8.0 → 0.9.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 +12 -0
- package/README.md +10 -1
- package/dist/api/geometry.d.ts +1005 -931
- package/dist/geometry/index.js +1 -0
- package/dist/geometry/profiles/cross-section.js +102 -0
- package/dist/geometry/svg-import.js +8 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @metamesh/modeling
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- e405876: Add a bounded closed XY cross-section parameter with immutable values, strict validation,
|
|
8
|
+
normalization, presets, and runtime compatibility checks. Add `sampleCrossSection` for physical
|
|
9
|
+
curve sampling and validated closed-loop geometry. Existing side-profile values remain compatible.
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- e405876: Ignore fully transparent CSS color fills and strokes when importing SVG geometry.
|
|
14
|
+
|
|
3
15
|
## 0.8.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -210,7 +210,13 @@ so the requested radius reaches the faces. `CylinderOptions` uses the same sizin
|
|
|
210
210
|
## Profiles and mechanical construction
|
|
211
211
|
|
|
212
212
|
`sampleOpenProfile` samples upward radius/height line and cubic chains. Consumers own closure and
|
|
213
|
-
product constraints. `
|
|
213
|
+
product constraints. `sampleCrossSection` samples 2–32 explicitly closed XY line/cubic segments
|
|
214
|
+
after positive width/height scaling, using the shared physical curve policy. It returns one
|
|
215
|
+
immutable CCW loop without a repeated seam, rejecting sampled self-intersections, zero area,
|
|
216
|
+
nonfinite coordinates, and exhausted budgets. Its default unique vertex ceiling is the smaller of
|
|
217
|
+
4096 and `limits.maxProfilePoints`; each segment also obeys `limits.maxPathPoints`. It accepts plain
|
|
218
|
+
curve coordinates without an SDK dependency, editor modes, or a normalized-range requirement.
|
|
219
|
+
`circleLoop`, `rectangleLoop`, and other point factories return ordered loops.
|
|
214
220
|
`Profile` owns identified components, contours, and landmarks; `CorrespondingProfile` retains their
|
|
215
221
|
shared sampled slots.
|
|
216
222
|
|
|
@@ -416,6 +422,9 @@ Install `fontkit` to use `prepareVectorFont` from `/text`, and `woff2-encoder` w
|
|
|
416
422
|
|
|
417
423
|
`svgSection` imports bounded painted SVG documents; `svgPathSection` imports filled path data. Y-down coordinates convert to Y-up; nonzero/even-odd filling preserves counters. Sampling applies after transforms and unit conversion. Basic shapes, groups, affine transforms, physical units, viewBox, fills, and strokes are supported. Text must be outlined. External resources, scripts, clipping, masks, filters, and unsupported content fail contextually. Pure parsers are shared with validation and the vector editor.
|
|
418
424
|
|
|
425
|
+
Zero-alpha colors and zero-opacity paint channels contribute no geometry. Positive alpha contributes
|
|
426
|
+
the full painted region; presentation transparency does not reduce its physical area.
|
|
427
|
+
|
|
419
428
|
## Final triangle topology
|
|
420
429
|
|
|
421
430
|
`analyzeTriangleMesh` validates and supplies bounds, counts, area, and signed volume in one traversal, with optional edge/component facts. Measurements, bounds, and signatures are independent immutable snapshots; external mutable buffers are inspected freshly on each call. Closed-edge checks require two oppositely wound faces per edge; they do not detect every geometric self-intersection. `createTriangleMeshSignature` adds quantized bounds, volume, topology, and a regression fingerprint, not a cryptographic digest.
|