茂之钳
477d13dc80
fix(v1.0.1): VDE-016 — using declarations at vde::brep scope, not inside anonymous ns
...
CI / Build & Test (push) Failing after 34s
CI / Release Build (push) Failing after 25s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
Root cause: using declarations inside anonymous namespace don't propagate
to public functions defined after the anonymous namespace closes.
Fix:
- using SSICurveData; and using ClassResult; at vde::brep scope
- Remove self-referencing using vde::brep::ClassResult
- Remove duplicate using from inside anonymous namespace
2026-07-28 07:48:28 +08:00
茂之钳
a10b1ffe3a
fix(v1.0.1): VDE-016 — anonymous namespace needs fully-qualified names
...
CI / Build & Test (push) Failing after 26s
CI / Release Build (push) Failing after 35s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
Root cause: GCC two-phase lookup requires fully-qualified names
when accessing enclosing namespace types from inside anonymous namespace.
Fix: add using vde::brep::SSICurveData and using vde::brep::ClassResult
inside both anonymous namespaces in ssi_boolean.cpp
2026-07-28 07:17:13 +08:00
茂之钳
b48ffec290
fix(v1.0.1): VDE-016 root cause + VDE-017 submodule path
...
CI / Build & Test (push) Failing after 32s
CI / Release Build (push) Failing after 31s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
VDE-016 (High): GCC two-phase lookup — root cause is anonymous namespace
- Move SSICurveData OUT of anonymous namespace into vde::brep
- Add #include <iterator> for std::begin/end
- Add using vde::brep::ClassResult
VDE-017 (Medium): Root CMakeLists configure_file CMAKE_SOURCE_DIR
- Change to CMAKE_CURRENT_SOURCE_DIR for submodule compatibility
2026-07-27 23:34:18 +08:00
茂之钳
7a955bac7f
fix(v1.0.1): VDE-014/015/016 — STL API cleanup + ssi_boolean fixes
...
CI / Build & Test (push) Failing after 41s
CI / Release Build (push) Failing after 35s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
VDE-014 (High): Remove duplicate void write_stl/write_stl_ascii declarations
VDE-015 (Medium): Fix Vector3F→Vector3f, Point3F→Point3f case sensitivity
VDE-016 (High): Add forward declarations for face_bounds/face_normal/SSICurveData
in ssi_boolean.cpp — fixes two-phase name lookup in GCC
2026-07-27 23:20:46 +08:00
茂之钳
a73c5e8954
fix(v1.0.1): VDE-002 submodule path + VDE-006 cycle dep + VDE-007/008/009 API fixes
...
CI / Build & Test (push) Failing after 1m31s
CI / Release Build (push) Failing after 32s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
VDE-002 (High): Fix submodule include path
- All target_include_directories: CMAKE_SOURCE_DIR → BUILD_INTERFACE
- Works as both standalone project and add_subdirectory()
VDE-006 (High): Break vde_mesh ↔ vde_brep circular dependency
- Move mesh-dependent code from brep to mesh module
- vde_brep no longer links vde_mesh
VDE-007 (Low): Add mirror() and mirror_about_plane() to transform.h
VDE-008 (Low): Add convenience accessors to StlTriangle (.x()/.y()/.z())
VDE-009 (Medium): Full Doxygen docs for C API + examples/capi/basic_usage.cpp
Pending: VDE-001/003/004/005/010 GCC compatibility (agent still running)
2026-07-27 22:29:06 +08:00
茂之钳
1aa753ba50
feat(v1.0.1): Parasolid + ACIS boolean robustness improvements
...
CI / Build & Test (push) Failing after 29s
CI / Release Build (push) Failing after 36s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
P0 — Boolean Robustness (Parasolid):
- 7-class degenerate taxonomy: surface_overlap, curve_overlap, high_order,
boundary_contact, vertex_contact, non_manifold_contact
- Multi-point sampling: N=sqrt(area/tol²) points, >75% voting,
exact_orient3d fallback on boundary cases
- PrecisionTracker: accumulated loss, threshold warning
P0 — Auto-Heal Pipeline (ACIS):
- 5-step pipeline: Stitch→Simplify→Regularize→Orient→Check
- AutoHealReport with per-step status, element counts, overall score
P1 — Direct Modeling (ACIS):
- fill_hole: edge loop → plane fit → NURBS insert
- pull_up_to_face: push_pull to target face alignment
Total: +~1500 lines across 6 files
2026-07-27 20:14:52 +08:00
茂之钳
63fba5389a
feat(v10): tolerant modeling + Class-A deep + hex mesh + constraint solver + drawing standards
...
CI / Build & Test (push) Failing after 31s
CI / Release Build (push) Failing after 31s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
v10.1 — Tolerant Modeling (对标 Parasolid):
- tolerant_modeling.h/.cpp: TolerantVertex/Edge, merge_within_tolerance (BFS)
- gap_bridging (free edge detection → triangle filling)
- overlap_resolution (normal+centroid+AABB detection)
- tolerant_boolean (heal→degenerate detect→boolean→heal) + BooleanDiagnostic
- import_heal_pipeline (STEP one-shot repair)
- ssi_boolean enhanced: coplanar/collinear/tangent detection, GMP on all classify paths
- step_import enhanced: broken file recovery, non-standard entity mapping, diagnostic report
- 30 tests, 4112 total lines
v10.2 — Class-A Deep + Hex Mesh (对标 CGM + ANSYS):
- class_a_surfacing enhanced: g3_blend_with_constraints, surface_energy_minimization
- curvature_continuity_optimization, reflection_line_discontinuity (+720 lines)
- fea_mesh enhanced: mapped_hex, submapped_hex, multi_block_hex (TFI), hex_quality_optimization (+522 lines)
- 22 tests
v10.3 — Constraint Solver + Drawing Standards (对标 D-Cubed + AutoCAD):
- constraint_solver enhanced: DOFAnalyzer, RedundancyDetector, ConstraintPropagator, KinematicChainSolver
- drawing_standards.h/.cpp: IsoStandard (ISO 128/129), AnsiStandard (ASME Y14.5), JisStandard (JIS B 0001)
- 12 tests
12 files, ~5000 lines, 64 tests. Target: 87% → 93%
2026-07-27 00:33:30 +08:00
茂之钳
05b62e8238
feat(v5-M1): TrimmedSurface integration + SSI boolean + topology healing + tolerance system
...
CI / Build & Test (push) Failing after 48s
CI / Release Build (push) Failing after 40s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
M1.1 — TrimmedSurface 深度集成 (Agent #0 ):
- trimmed_surface.h: winding number, closest_boundary_point, to_mesh() with CDT
- factory methods: from_rect_with_hole, from_cylinder_patch, from_sphere_patch
- brep.h: TopoFace +trimmed_surface_id, add_trimmed_surface()
- brep.cpp: to_mesh() prefers TrimmedSurface path
- modeling.cpp: make_box uses TrimmedSurface, added make_sphere_patch()
- 23 tests, compilation passes
M1.2 — SSI 基布尔运算 (Agent #1 ):
- ssi_boolean.h/.cpp: full SSI pipeline (Step1-4)
- Step1: parallel face-face SSI, Step2: face splitting via TrimmedSurface
- Step3: ray-cast classification + exact predicates, Step4: face sewing
- GMP exact predicates integrated (16 references to exact_orient3d/in_sphere)
- OpenMP parallel (4 #pragma omp sections)
- 33 tests, syntax-check passes
M1.3 — 拓扑修复 + 容差系统 (Agent #2 ):
- brep_heal.h/.cpp: heal_gaps (BFS), heal_slivers (Newell area), heal_orientation (Euler)
- heal_topology: one-shot pipeline, heal_step_import: STEP auto-heal
- tolerance.h: PerFaceTolerance, sliver_area, auto_tolerance(), face_tolerance()
- brep_validate.cpp: all hardcoded 1e-6/1e-9 → ToleranceConfig
- Tests: tolerance 34/34, heal 24/24, validate 16/16 (all passing)
- Fixed: face_area_approx Newell formula bug, heal_step_import reporting
19 files, ~3200 lines net new code, 90+ new tests
2026-07-26 20:35:24 +08:00