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

69 lines
1.6 KiB
Markdown

# truck-meshalgo
[![Crates.io](https://img.shields.io/crates/v/truck-meshalgo.svg)](https://crates.io/crates/truck-meshalgo) [![Docs.rs](https://docs.rs/truck-meshalgo/badge.svg)](https://docs.rs/truck-meshalgo)
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.
```bash
usage: tessellate-shape <input json file> <output json file>
```
The default `<output file>` is output.obj.