feat(v4.4): complete remaining v4.1-v4.4 features + precision tolerance + Euler ops
v4.1 收尾: - IncrementalUpdateEngine: dirty flag propagation, cache invalidation - LargeAssembly: InstanceCache, assembly instancing - STEP import: robust/graceful parsing with skip tracking v4.3 分析工具: - Mass properties (volume, centroid, inertia tensor) - Clearance analysis, wall thickness analysis - Enhanced drawing: hidden-line removal, offset sections, BOM - DXF import (LINE/CIRCLE/ARC/LWPOLYLINE/SPLINE → B-Rep extrusion) v4.4 地基加固: - ToleranceChain: RSS cumulative tolerance propagation (7 tests) - Euler operations: MEV/KEV/MEF/KEF/KEMR/MEKR (20 tests) - Replace hardcoded tolerances with ToleranceConfig in validate - Fix incremental_update test API mismatch (15/15 pass on Linux) Docs: - v4.1-v4.4 development plans + roadmap updated - v4.4 marked complete on Linux 30 files, +3424/-210
This commit is contained in:
@@ -22,4 +22,26 @@ double model_tolerance(const BrepModel& body) {
|
||||
return adaptive_tolerance(extent);
|
||||
}
|
||||
|
||||
// ── ToleranceChain ──
|
||||
|
||||
void ToleranceChain::push(const std::string& op_name, double tol) {
|
||||
steps_.emplace_back(op_name, tol);
|
||||
}
|
||||
|
||||
double ToleranceChain::cumulative() const {
|
||||
double sum_sq = 0.0;
|
||||
for (auto& [_, tol] : steps_) {
|
||||
sum_sq += tol * tol;
|
||||
}
|
||||
return std::sqrt(sum_sq);
|
||||
}
|
||||
|
||||
double ToleranceChain::max_step() const {
|
||||
double m = 0.0;
|
||||
for (auto& [_, tol] : steps_) {
|
||||
m = std::max(m, tol);
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
} // namespace vde::brep
|
||||
|
||||
Reference in New Issue
Block a user