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
57 lines
1.5 KiB
Rust
57 lines
1.5 KiB
Rust
//! Mesh algorigthms, include tessellations of the shape.
|
|
|
|
// SolveCraft: compiler warnings no longer fail the build.
|
|
#![deny(clippy::all, rust_2018_idioms)]
|
|
#![warn(
|
|
missing_docs,
|
|
missing_debug_implementations,
|
|
trivial_casts,
|
|
trivial_numeric_casts,
|
|
unsafe_code,
|
|
unstable_features,
|
|
unused_import_braces,
|
|
unused_qualifications
|
|
)]
|
|
|
|
use common::*;
|
|
|
|
/// re-export polymesh
|
|
pub mod rexport_polymesh {
|
|
pub use truck_polymesh::*;
|
|
}
|
|
use truck_polymesh::{StandardVertex as Vertex, *};
|
|
|
|
/// polygon mesh analizers, including
|
|
///
|
|
/// - determines topological properties: connectivity, boundary extraction, or shell conditions (closed or oriented)
|
|
/// - detects collisions between two meshes and extracts interference lines
|
|
/// - investigates positional relations between mesh and point clouds.
|
|
#[cfg(feature = "analyzers")]
|
|
pub mod analyzers;
|
|
mod common;
|
|
/// Edits meshes. Add normals, optimizing data, and so on.
|
|
#[cfg(feature = "filters")]
|
|
pub mod filters;
|
|
/// Tessellates shapes.
|
|
#[cfg(feature = "tessellation")]
|
|
pub mod tessellation;
|
|
|
|
/// VTK Output
|
|
#[cfg(feature = "vtk")]
|
|
#[cfg(not(target_arch = "wasm32"))]
|
|
pub mod vtk;
|
|
|
|
/// This module contains all traits and re-exports `truck_polymesh`.
|
|
pub mod prelude {
|
|
#[cfg(feature = "analyzers")]
|
|
pub use crate::analyzers::*;
|
|
#[cfg(feature = "filters")]
|
|
pub use crate::filters::*;
|
|
pub use crate::rexport_polymesh::*;
|
|
#[cfg(feature = "tessellation")]
|
|
pub use crate::tessellation::*;
|
|
#[cfg(feature = "vtk")]
|
|
#[cfg(not(target_arch = "wasm32"))]
|
|
pub use crate::vtk::*;
|
|
}
|