Files
OneCAD/vendor/truck-meshalgo/README.md
T
bherbruckandClaude Opus 5.5 08cf223ced STEP export: unique ids, plain curves, right revolution senses; seams on split faces
Vendored truck-stepio (writer only): an intersection curve's second surface
was written at the first one's id (duplicate ids for every boolean edge),
and revolved surfaces lost their orientation (the modeling-surface sense was
always true; inverted or mirrored revolutions came out inside out). Export
now writes intersection edges as C1 cubic B-splines through exact points,
so files carry plain 3D curves and no redundant surfaces.

Vendored truck-meshalgo: hinted parameter searches that run off a B-spline's
domain are rejected or clamped (meshing their grid never finished).

STEP import: straight revolution profiles are bounded in the meridian plane
and stop at the axis; loops on revolutions start away from the axis; face
extents include edge end points. Edges between pieces of one split surface
draw as seams.

kernel::step_validate checks a STEP file (duplicate ids, dangling
references, dense numbering); the oracle replay now exports every rebuilt
part, validates it and re-imports it with no warnings and the same volume
(all 32 rebuildable cases pass).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
2026-10-07 23:40:07 +00:00

1.6 KiB

truck-meshalgo

Crates.io Docs.rs

Mesh algorigthms, include tessellations of the shape.

Sample Codes

filleted-cube

An experiment to decompose a mesh into elements for future NURBS-shape approximation of the mesh. Contains doc(hidden) methods.

  • Input: filleted_cube.obj
  • Output: planes.obj, lower.obj, upper.obj

irregular-sphere

Add the normal to the sphere containing the irregular normal generated from the NURBS containing the critical point.

  • Input: irregular_sphere.obj
  • Output: regular_sphere.obj

octahedron-subdivision

Apply loop subdivision to regular octahedron.

  • Input: hardcoded octahedron
  • Output: octahedron.obj, subdivision-octahedron.obj

requadrangulate-buddha

A benchmark that reads in heavy mesh data, applies triangulation and quadrangulation, and writes it out.

  • Input: happy-buddha.obj
  • Output: requadrangulated-buddha.obj

smoothing-bunny

Adds smooth normals to the stanford bunny.

  • Input: bunny.obj
  • Output: smooth_bunny.obj

splitting-sample

An experiment to decompose a mesh into elements for future NURBS-shape approximation of the mesh.

  • Input: sample.obj
  • Output: planes_parts_#.obj, others_parts_#.obj

teapot

Adds smooth normals to and quadrangulate the famous teapot.

  • Input: teapot.obj
  • Output: quaded_pot.obj

tessellate-shape

Tessellate a shape and output an obj file.

usage: tessellate-shape <input json file> <output json file>

The default <output file> is output.obj.