PrimMesher: implement profile, path, and extrusion geometry #42

Closed
opened 2026-08-08 08:17:26 +00:00 by hugo · 1 comment
Owner

Objective

Implement Coord/Quat compatibility plus profiles, paths, faces, and linear/circular extrusion.

Deliverables

  • Preserve cuts, hollow, sides, twist, taper, shear, revolutions, radius/skew, face numbering, winding, normals, UVs, and viewer mode.
  • Use checked index arithmetic and original tolerances.
  • Keep geometry deterministic for identical inputs.

Validation

  • All owned Coord/Quat and extrusion tests pass.
  • Every emitted face index is in range and finite-value checks pass.
  • Golden mesh summaries match the reference.

Prerequisite

Types and StructuredData are implemented and the global API/test gates are complete.

Project constraints

  • Native Rust implementation only; optional third-party native codecs stay behind documented features.
  • Keep mapped signatures fixed and preserve translated geometry/pixel assertions exactly.
  • Enforce checked sizes and indices, then update docs and coverage status.
## Objective Implement Coord/Quat compatibility plus profiles, paths, faces, and linear/circular extrusion. ## Deliverables - Preserve cuts, hollow, sides, twist, taper, shear, revolutions, radius/skew, face numbering, winding, normals, UVs, and viewer mode. - Use checked index arithmetic and original tolerances. - Keep geometry deterministic for identical inputs. ## Validation - All owned Coord/Quat and extrusion tests pass. - Every emitted face index is in range and finite-value checks pass. - Golden mesh summaries match the reference. ## Prerequisite Types and StructuredData are implemented and the global API/test gates are complete. ## Project constraints - Native Rust implementation only; optional third-party native codecs stay behind documented features. - Keep mapped signatures fixed and preserve translated geometry/pixel assertions exactly. - Enforce checked sizes and indices, then update docs and coverage status.
hugo added this to the 06 - Imaging and PrimMesher implementation milestone 2026-08-08 08:17:26 +00:00
hugo added the enhancement label 2026-08-08 08:17:26 +00:00
Author
Owner

Implemented and pushed in commit 5b3950c.

Implementation:

  • Replaced the failure-only Coord, Quat, UVCoord, Face, ViewerFace, Profile, Path, PathNode, and PrimMesh shells with native Rust ports of the pinned PrimMesher.cs behavior.
  • Implemented special 3/4/24-side profile tables, arbitrary-side cuts, hollow triangulation, cap/side winding, linear/flexible/circular paths, twist, taper, shear, skew, radius, revolutions, normals, UVs, viewer faces, prim-face numbering, copying, transforms, raw output, and viewer indexing.
  • Added checked size/index arithmetic, 65,536 profile/path limits, a 16,777,216 mesh-vertex limit, finite-value validation, deterministic construction, and typed errors.
  • Updated generated shim coverage, the controlled-suite baseline, the rendering shim smoke test, and README documentation.

Verification:

  • 45 owned translated Coord/Quat/PrimMesh tests pass: 8 Coord, 10 Quat, and 27 PrimMesh.
  • 4 native tests pass, including box/torus golden summaries, normalized special-profile UVs, deterministic complex circular extrusion, index/finite checks, and hostile-size rejection.
  • Controlled workspace audit: 257 passed, 1,155 expected standardized failures, 0 ignored, live credentials enabled.
  • cargo fmt, mapping/shim generation checks, API coverage, reviewed test parity, default and all-feature workspace checks, default and all-feature workspace clippy with warnings denied, rustdoc with warnings denied, and package-list verification all pass.

Post-implementation review found no production placeholders, panic paths, or unchecked unwrap/expect calls in the native mesher. Every emitted face is range-checked and every emitted coordinate/normal is checked for finiteness.

Implemented and pushed in commit 5b3950c. Implementation: - Replaced the failure-only Coord, Quat, UVCoord, Face, ViewerFace, Profile, Path, PathNode, and PrimMesh shells with native Rust ports of the pinned PrimMesher.cs behavior. - Implemented special 3/4/24-side profile tables, arbitrary-side cuts, hollow triangulation, cap/side winding, linear/flexible/circular paths, twist, taper, shear, skew, radius, revolutions, normals, UVs, viewer faces, prim-face numbering, copying, transforms, raw output, and viewer indexing. - Added checked size/index arithmetic, 65,536 profile/path limits, a 16,777,216 mesh-vertex limit, finite-value validation, deterministic construction, and typed errors. - Updated generated shim coverage, the controlled-suite baseline, the rendering shim smoke test, and README documentation. Verification: - 45 owned translated Coord/Quat/PrimMesh tests pass: 8 Coord, 10 Quat, and 27 PrimMesh. - 4 native tests pass, including box/torus golden summaries, normalized special-profile UVs, deterministic complex circular extrusion, index/finite checks, and hostile-size rejection. - Controlled workspace audit: 257 passed, 1,155 expected standardized failures, 0 ignored, live credentials enabled. - cargo fmt, mapping/shim generation checks, API coverage, reviewed test parity, default and all-feature workspace checks, default and all-feature workspace clippy with warnings denied, rustdoc with warnings denied, and package-list verification all pass. Post-implementation review found no production placeholders, panic paths, or unchecked unwrap/expect calls in the native mesher. Every emitted face is range-checked and every emitted coordinate/normal is checked for finiteness.
hugo closed this issue 2026-08-09 04:41:40 +00:00
Sign in to join this conversation.