Skip to content

Commit e378535

Browse files
petrasvestartasjf---
authored andcommitted
dependecies change and cgal boolean issue reflection
1 parent cf1949d commit e378535

6 files changed

Lines changed: 393 additions & 328 deletions

File tree

docs/examples/example_boolean_difference_mesh_meshes.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@
1515
#
1616
# All five meshes are sent to C++ in a single boolean_chain() call. Each
1717
# step's intermediate Surface_mesh stays in C++ — there is no Python ↔ C++
18-
# round-tripping between operations. The default kernel is EPECK
19-
# (exact=True), which handles the degenerate triple intersection at the
20-
# origin where the three axis-aligned cylinders meet — no shifts, no snap
21-
# rounding. Set exact=False to use EPICK with autorefine_triangle_soup snap
22-
# rounding instead (faster but less robust on degenerate input).
18+
# round-tripping between operations. The chain runs in CGAL's exact-
19+
# constructions kernel (EPECK), which handles the degenerate triple
20+
# intersection at the origin where the three axis-aligned cylinders meet —
21+
# no shifts needed. Pass `hybrid=True` to switch to the hybrid kernel
22+
# scheme (EPICK mesh + EPECK vertex_point_map) from CGAL's "consecutive
23+
# boolean operations with exact point maps" example.
2324
# =============================================================================
2425

2526
cube = Box(2).to_vertices_and_faces(triangulated=True)
@@ -44,7 +45,6 @@ def cylinder_along(axis, radius=0.8):
4445
V, F = boolean_chain(
4546
[cube, sphere, cylinder_along("x"), cylinder_along("y"), cylinder_along("z")],
4647
["intersection", "difference", "difference", "difference"],
47-
exact=True,
4848
)
4949
shape = Polyhedron(V.tolist(), F.tolist()).to_mesh()
5050

docs/examples/example_booleans_with_face_source.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@
2020
# call. A CGAL corefinement visitor propagates a per-face tag through every
2121
# step so every output triangle carries [mesh_id, face_id] of its origin.
2222
#
23-
# The default kernel is EPECK (exact=True). Constructions are computed in
24-
# CGAL's Exact_predicates_exact_constructions_kernel, which handles the
25-
# degenerate triple intersection where the three axis-aligned cylinders meet
26-
# at the origin without any geometric workarounds. Set exact=False to use
27-
# EPICK, in which case the cylinders should be shifted by a sub-millimetre
28-
# amount to avoid the "Non-handled triple intersection" precondition.
23+
# The chain runs in CGAL's exact-constructions kernel (EPECK), which
24+
# handles the degenerate triple intersection where the three axis-aligned
25+
# cylinders meet at the origin without any geometric workarounds. Pass
26+
# `hybrid=True` to switch to the EPICK mesh + EPECK vertex_point_map
27+
# scheme from CGAL's "consecutive boolean operations with exact point
28+
# maps" example.
2929
# =============================================================================
3030

3131
cube = Box(2).to_vertices_and_faces(triangulated=True)
@@ -50,7 +50,6 @@ def cylinder_along(axis, radius=0.8):
5050
V, F, S = boolean_chain_with_face_source(
5151
[cube, sphere, cyl_x, cyl_y, cyl_z],
5252
["intersection", "difference", "difference", "difference"],
53-
exact=False,
5453
)
5554

5655
# =============================================================================

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ CMAKE_POLICY_DEFAULT_CMP0135 = "NEW"
8282
[tool.cibuildwheel]
8383
# build = ["cp38-*", "cp39-*", "cp31?-*"] # Build for specific Python versions.
8484
build-verbosity = 3
85-
test-requires = ["numpy>=1.24", "compas>=2.15,<3", "pytest", "build"]
86-
test-command = "pip install 'numpy>=1.24' 'compas>=2.15,<3' && pip list && pytest {project}/tests"
85+
test-requires = ["numpy>=1.24", "compas>=2.15", "pytest", "build"]
86+
test-command = "pip list && pytest {project}/tests"
8787
build-frontend = "pip"
8888
manylinux-x86_64-image = "manylinux_2_28"
8989
skip = ["*_i686", "*-musllinux_*", "*-win32", "pp*"]

0 commit comments

Comments
 (0)