b7419a7881
S11-A: SDF 图元库 - 14 种基础形状(inline header) - sphere/box/round_box/torus/capsule/cylinder/cone/plane/ellipsoid - triangular_prism/hex_prism/link/wedge - 2D 挤出(extrusion/extrusion_bounded/revolution) S11-B: SDF 操作 + 域变形 - 锐利布尔: union/intersection/difference - 平滑布尔: smooth_union/smooth_intersection/smooth_difference - 修饰器: round/onion - 域变形: repeat/mirror/rotate/translate/scale/twist/bend/elongate/displace/cheap_bend - 24 项测试 S11-C: CSG 表达式树 + 网格转换 + Python 绑定 - SdfNode 树结构 — 工厂构造函数,递归求值 - sdf_to_mesh — 基于 marching_cubes 的 SDF→网格 - bind_sdf — pybind11 Python 绑定 文件: 14 文件,2,545 行(测试 1,296 行)
29 lines
873 B
CMake
29 lines
873 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/bind_sdf.cpp
|
|
)
|
|
|
|
target_include_directories(_vde
|
|
PRIVATE ${CMAKE_SOURCE_DIR}/include
|
|
)
|
|
|
|
target_link_libraries(_vde PRIVATE vde)
|
|
|
|
# Python 3.8+ compatibility
|
|
target_compile_features(_vde PRIVATE cxx_std_17)
|