Files
ViewDesignEngine/python/CMakeLists.txt
T
茂之钳 e469ef75ef
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
feat(v5-M4): industrial formats + GPU acceleration + Python bindings
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

32 lines
921 B
CMake

cmake_minimum_required(VERSION 3.16)
# ── Fetch pybind11 ──────────────────────────────────
include(FetchContent)
FetchContent_Declare(
pybind11
URL https://github.com/pybind/pybind11/archive/refs/tags/v2.11.1.tar.gz
URL_HASH SHA256=d475978da0cdc2d43dd73e309f0f53263607dd08f31d5facb02c8110e4a1ebd8
)
FetchContent_MakeAvailable(pybind11)
# ── _vde native module ─────────────────────────────
pybind11_add_module(_vde
src/bind_module.cpp
src/bind_core.cpp
src/bind_curves.cpp
src/bind_mesh.cpp
src/vde_brep.cpp
src/vde_sdf.cpp
src/vde_cam.cpp
src/vde_assembly.cpp
)
target_include_directories(_vde
PRIVATE ../include
)
target_link_libraries(_vde PRIVATE vde)
# Python 3.8+ compatibility
target_compile_features(_vde PRIVATE cxx_std_17)