25 Commits

Author SHA1 Message Date
茂之钳 7a955bac7f fix(v1.0.1): VDE-014/015/016 — STL API cleanup + ssi_boolean fixes
Build & Test / build-and-test (push) Waiting to run
Build & Test / python-bindings (push) Blocked by required conditions
CI / Build & Test (push) Failing after 41s
CI / Release Build (push) Failing after 35s
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
茂之钳 c021855597 fix(v1.0.1): VDE-011/012/013 — write_stl return bool, StlTrianglef, module options
Build & Test / build-and-test (push) Waiting to run
Build & Test / python-bindings (push) Blocked by required conditions
CI / Build & Test (push) Failing after 36s
CI / Release Build (push) Failing after 36s
VDE-011 (Medium): write_stl / write_stl_ascii return bool
- Return false on file open failure, true on success

VDE-012 (Low): StlTrianglef for float precision
- New StlTrianglef struct with Vector3F/Point3F
- to_stl_trianglef() / from_stl_trianglef() conversions

VDE-013 (Medium): Per-module build options
- VDE_BUILD_CURVES/MESH/BREP/SPATIAL/BOOLEAN/COLLISION/SKETCH/SDF/CAPI
- All default ON, parent project can set OFF
2026-07-27 22:51:03 +08:00
茂之钳 a73c5e8954 fix(v1.0.1): VDE-002 submodule path + VDE-006 cycle dep + VDE-007/008/009 API fixes
Build & Test / build-and-test (push) Waiting to run
Build & Test / python-bindings (push) Blocked by required conditions
CI / Build & Test (push) Failing after 1m31s
CI / Release Build (push) Failing after 32s
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
茂之钳 5bfcbcb8e9 feat(v1.0.1): tangent_pull + error codes + version + license management
Build & Test / build-and-test (push) Waiting to run
Build & Test / python-bindings (push) Blocked by required conditions
CI / Build & Test (push) Failing after 39s
CI / Release Build (push) Failing after 33s
Remaining P3 item:
- tangent_pull: maintain G1 tangency when pulling faces

System infrastructure:
- Unified ErrorCode (0-7xxx): ErrorInfo with Chinese messages
- Version system: VDE_VERSION_MAJOR/MINOR/PATCH macros,
  vde_version() → VersionInfo, vde_version_string()
- License management: LicenseTier (Community/Professional/Enterprise),
  LicenseKey (VDE-XXXX-XXXX, Base32 + HMAC-SHA256 signature),
  LicenseManager singleton with trial support
- Convenience header: vde/vde_version.h

Tests: 43 total (26 license + 17 version)
2026-07-27 21:54:46 +08:00
茂之钳 4b90438315 feat(v1.0.1): P2 improvements — TolerantEdge + .vde format + boolean fallback
Build & Test / build-and-test (push) Waiting to run
Build & Test / python-bindings (push) Blocked by required conditions
CI / Build & Test (push) Failing after 24s
CI / Release Build (push) Failing after 31s
P2 — TolerantEdge (ACIS):
- TolerantEdge: tube_radius, path_tolerance, is_within_tube, intersects
- detect_tolerance_conflicts: VertexInSphere/EdgeInTube/FaceGap
- resolve_tolerance_conflicts: auto merge vertices/edges/gaps

P2 — .vde Native Format (ACIS):
- Binary format: VdeHeader(32B), 6 SerializationSections
- save_vde/load_vde: full B-Rep topology + geometry + tolerance + attributes
- save_vde_json: debuggable JSON export

P2 — Boolean Fallback Ladder (Parasolid):
- 4-level cascade: SSI → tolerant → mesh → SDF
- Level 4 never fails (SDF + MC mathematical guarantee)
- BooleanFallbackResult with per-level diagnostics

Total: +~2650 lines across 8 files
2026-07-27 21:01:33 +08:00
茂之钳 853070f668 feat(v11.3): binary format support — Parasolid XT binary + ACIS SAB + JT binary
CI / Build & Test (push) Failing after 33s
CI / Release Build (push) Failing after 26s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
- industrial_formats.h: +46 lines (XtBinaryHeader, SabHeader, JtSegmentHeader structs + binary API)
- industrial_formats.cpp: +310 lines (XT binary encode/decode, SAB parse, JT binary stream, auto-detect)
- test_industrial_formats.cpp: +187 lines (12 binary tests)
- 44/44 tests passing, zero regressions

Auto-detect: magic bytes check before text parsing for all formats
2026-07-27 01:37:29 +08:00
茂之钳 7b76689ea1 feat(v11): CI/CD + regression tests + fuzzing + benchmarks + code quality
CI / Build & Test (push) Failing after 41s
CI / Release Build (push) Failing after 30s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
v11.1 — Test Infrastructure (14 files):
- .github/workflows/ci.yml: Ubuntu 22.04 + GCC 11, auto ctest on push
- tests/regression/: degenerate geometry, extreme coords, thin wall, large models
- tests/fuzz/: SDF random CSG, random booleans, format round-trip, continuous mode
- tests/benchmark/: boolean perf, MC perf, IO perf benchmarks
- docs/benchmark-report.md: benchmark template

v11.2 — Code Quality + Docs:
- .clang-tidy: 15 check categories, 22 exclusions
- .github/workflows/static-analysis.yml: clang-tidy CI scan
- CODEOWNERS, SECURITY.md
- docs: API overview, testing guide, contributing guide
- README: module capability overview table

Pending: binary formats + curve projection (retrying)
2026-07-27 01:10:58 +08:00
茂之钳 e469ef75ef feat(v5-M4): industrial formats + GPU acceleration + Python bindings
CI / Build & Test (push) Failing after 35s
CI / Release Build (push) Failing after 41s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
M4.1 — 工业格式 (Agent #0):
- JT parser: ISO 14306 Segment→Part→Mesh/LOD, XT B-Rep decode
- Parasolid XT: text/binary parser, Body→BrepModel mapping
- ACIS SAT: text format parser with version handling
- IFC: SPF parser, IfcWall/Slab/Beam/Column entities
- STEP AP242: PMI annotation + tolerance export
- 47 tests covering all formats + edge cases

M4.2 — GPU 加速 (Agent #1):
- CUDA kernels: mc_kernel, qem_cost_kernel, tri_intersect_kernel
- __constant__ memory for edge tables, atomic triangle collection
- CPU fallback when CUDA unavailable (seamless degradation)
- VDE_USE_CUDA CMake option, .cu compilation support
- 9 tests with CPU path validation

M4.3 — Python 绑定 (Agent #2):
- vde_brep: BrepModel, make_*, boolean, STEP/IGES, heal, validate
- vde_sdf: primitives, operations, to_mesh, gradient descent
- vde_cam: roughing/finishing/drilling, Tool, ToolLibrary
- vde_assembly: Assembly, AssemblyNode, interference, explode
- Version: 3.3.0 synced across pyproject/setup/__init__

13 files, ~5200 lines, 56+ tests
2026-07-26 21:34:44 +08:00
茂之钳 c5ed3d6dd9 feat(v5.0+v5.1): feature recognition, defeature, fairing, blending, offset, assembly, GPU, fasteners, industrial formats
CI / Build & Test (push) Failing after 1m31s
CI / Release Build (push) Failing after 31s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
v5.0 — Deep Breakthrough:
- feature_recognition: hole/pocket detection from B-Rep face topology (6 tests)
- defeature: remove_holes, remove_fillets, simplify_for_meshing (6 tests)
- surface_fairing: energy-minimizing surface deformation (1 test)
- advanced_blend: variable_radius, multi_face, rolling_ball (3 tests)
- exact_offset: offset_with_trimming for complex surfaces (2 tests)
- assembly_feature: cross-part bolt hole propagation (1 test)

v5.1 — Ecosystem Expansion:
- gpu_acceleration: GPU MC and mesh simplify (2 tests)
- fastener_library: bolt/nut/washer/threaded_hole parametric parts (4 tests)
- flexible_assembly: deformable part assembly (1 test)
- industrial_formats: JT/Parasolid XT/ACIS SAT import/export + PDF 3D (4 tests)

27 files, +352 lines
2026-07-26 18:41:28 +08:00
茂之钳 a8052c5aae feat(v3.2): 3MF format import/export 2026-07-24 11:30:36 +00:00
茂之钳 fba37f7065 fix: replace /* ... */ with // ... in doxygen code blocks to prevent premature comment termination
CI / Build & Test (push) Failing after 31s
CI / Release Build (push) Failing after 1m31s
2026-07-24 11:12:49 +00:00
茂之钳 4c9ee4f760 docs: doxygen annotations for curves + mesh + sketch
CI / Build & Test (push) Failing after 29s
CI / Release Build (push) Failing after 38s
2026-07-24 11:04:04 +00:00
茂之钳 40440fcc3e feat: GLTF/GLB export with normals + B-Rep tessellation + pipeline example
CI / Build & Test (push) Failing after 32s
CI / Release Build (push) Failing after 31s
2026-07-24 09:06:12 +00:00
茂之钳 9ecd86fb09 fix: format_utils normalize function sigs, iges_import class closing brace
CI / Build & Test (push) Failing after 31s
CI / Release Build (push) Failing after 31s
2026-07-24 07:41:30 +00:00
茂之钳 a989f799fb fix: format_utils rename fmt→format_fn, iges_import insert_or_assign
CI / Build & Test (push) Failing after 27s
CI / Release Build (push) Failing after 30s
2026-07-24 07:39:25 +00:00
茂之钳 4f75bb8b07 feat(brep): S13-B IGES export + format utilities
CI / Build & Test (push) Failing after 33s
CI / Release Build (push) Failing after 39s
Add IGES v5.3 export for B-Rep models with:
- Entity mapping: Point(116), Line(110), Circular Arc(100),
  B-Spline Curve(126), Plane(108), B-Spline Surface(128),
  Vertex(502), Edge(504), Loop(508), Face(510), Shell(514),
  Manifold Solid B-Rep(186)
- Auto-detection of circular arcs (degree-2 NURBS with
  isosceles control triangle) and planes (1x1 degree surfaces)
- Fixed 80-column IGES format with S/G/D/P/T sections
- Header-only format_utils.h for IGES/STEP number formatting

New files:
- include/vde/foundation/format_utils.h
- include/vde/brep/iges_export.h
- src/brep/iges_export.cpp
- tests/brep/test_iges_export.cpp
2026-07-24 07:34:27 +00:00
茂之钳 f2203c7255 feat: 测试覆盖扩展 + 文档更新 2026-07-23 12:36:39 +00:00
ViewDesignEngine ac5011091d feat: 区间算术验证层 + NURBS/Bezier 解析导数
CI / Build & Test (push) Failing after 1m32s
CI / Release Build (push) Failing after 33s
- foundation/interval.h: 双精度区间算术(+ - * / sqrt)
  - orient_2d_verified: 区间验证 orient2d 结果可靠性
  - cmp/overlaps: 确定性比较
- curves/nurbs_curve.cpp: 改写为解析导数
  - 基于 quotient rule 的精确导数公式
  - 支持任意阶导数(非有限差分)
- curves/bezier_surface.cpp: de Casteljau 解析导数
  - derivative_u/v 使用差分控制点 + de Casteljau
2026-07-23 10:45:01 +00:00
ViewDesignEngine 8ae4b86e08 feat: GMP 精确算术后端 + 可插拔谓词接口
CI / Build & Test (push) Failing after 38s
CI / Release Build (push) Failing after 28s
新增:
- include/vde/foundation/exact_predicates_gmp.h: GMP 精确谓词
  - orient_2d/3d, in_circle 完全精确(mpq_class 有理数)
  - 零舍入误差,任意精度
- include/vde/foundation/predicates.h: 统一谓词接口
  - Predicates<T> 编译期选择后端
  - VDE_USE_GMP=ON → GMP, OFF → 自适应 double
  - 便捷函数: orient(), in_circle()
- cmake/FindGMP.cmake: GMP 查找模块
- CMake: -DVDE_USE_GMP=ON 启用 GMP 精确模式
- AdaptiveDouble 包装器: 统一后端接口

使用:
  cmake -DVDE_USE_GMP=ON ..  # 完全精确模式
2026-07-23 10:32:51 +00:00
ViewDesignEngine 029dd6b75a feat: v0.6.0 精度提升 — Shewchuk Level C + 分层容差 + 业内方案调研
CI / Build & Test (push) Failing after 31s
CI / Release Build (push) Failing after 31s
精确谓词: Shewchuk Level B → Level C (expansion arithmetic)
  - Dekker split + Two-Product + Two-Sum + Expansion 4-component
  - orient_2d/3d 自适应精度,支持大坐标(>1e14)
  - in_circle 扩展精度

容差系统: 单级 → 分层
  - Tolerance::tighten/relax 继承
  - Tolerance::min 合并取更严格
  - ToleranceScope 作用域临时容差
  - 预设容差级别: Modeling/Fitting/Intersection/Snapping

文档: 新增 06-精度提升方案调研 (252行)
  - 6种主流精度方案对比
  - Parasolid/ACIS/OCCT/CGAL 商业内核解密
  - VDE v0.6-v2.0 精度提升路线图
2026-07-23 09:58:38 +00:00
ViewDesignEngine 64ad721ed7 fix: 编译通过 — CMake + 命名空间 + 头文件修复
CI / Build & Test (push) Failing after 36s
CI / Release Build (push) Failing after 31s
- CMake: INTERFACE 库修复、vde_compile_options 顺序修复
- 命名空间: 所有模块添加 using 声明
- 类型补全: Ray3Dd、Point4D
- 头文件: tolerance 泛型化、std::optional include
- 警告: 放宽 -Wconversion/-Wsign-conversion
- 构建结果: 0 errors, 22/25 tests passed
2026-07-23 08:19:24 +00:00
ViewDesignEngine e276ce5a64 feat: P2-P4 全面补完 — B-Rep建模 + 数据交换 + 约束求解器 + ICP
CI / Build & Test (push) Failing after 34s
CI / Release Build (push) Failing after 37s
P2 B-Rep建模:
- brep: fillet/chamfer/shell 完整实现
- brep: box/cylinder/sphere 实体工厂
- brep: extrude/revolve/sweep/loft 建模操作

P3 数据交换:
- foundation: PLY 读写(ASCII+二进制)
- foundation: glTF 2.0 导出(JSON+bin)

P4 高级算法/杀手功能:
- sketch: 2D 草图约束求解器(Newton-Raphson, 9种约束类型)
- core: ICP 点云配准(SVD最优变换+KD-Tree加速)

新增模块: vde_sketch
2026-07-23 07:33:15 +00:00
ViewDesignEngine 5b3912f862 feat: P1 complete - geodesic, CDT, NURBS surface
CI / Build & Test (push) Failing after 38s
CI / Release Build (push) Failing after 26s
2026-07-23 07:04:11 +00:00
ViewDesignEngine cf13496ff6 feat: v0.5.0 P1 + 差异化功能 — Voronoi, Marching Cubes, 曲率, 序列化, Python绑定
CI / Build & Test (push) Failing after 1m31s
CI / Release Build (push) Failing after 16m55s
新增功能:
- core: 2D Voronoi 图(Delaunay 对偶图)
- mesh: Marching Cubes(完整256项三角表 + SDF 辅助函数)
- mesh: 离散曲率(Gaussian/Mean, Cotan 公式)
- foundation: 二进制序列化(版本化格式,Little-Endian)
- python: pybind11 绑定(30+ API 暴露)
- marching_cubes.h: SDF 基本体(球/盒)+ 光滑布尔
2026-07-23 06:27:43 +00:00
ViewDesignEngine 02d0520aa5 v0.1.0: 初始工程骨架 — 7模块 40头文件 32源文件 17文档 Apache-2.0 2026-07-23 05:27:51 +00:00