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
69 lines
1.6 KiB
Markdown
69 lines
1.6 KiB
Markdown
# truck-meshalgo
|
|
|
|
[](https://crates.io/crates/truck-meshalgo) [](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.
|