[Bf-blender-cvs] [e0597baed57] master: Remove Carve boolean

Sergey Sharybin noreply at git.blender.org
Thu Feb 8 15:41:50 CET 2018


Commit: e0597baed57fa7a9dfaf6dff6d0fa120784d21ea
Author: Sergey Sharybin
Date:   Wed Feb 7 14:44:59 2018 +0100
Branches: master
https://developer.blender.org/rBe0597baed57fa7a9dfaf6dff6d0fa120784d21ea

Remove Carve boolean

We've got quite comprehensive BMesh based implementation, which is way easier
for maintenance than abandoned Carve library.

After all the time BMesh implementation was working on the same level of
limitations about manifold meshes and touching edges than Carve. Is better
to focus on maintaining one boolean implementation now.

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3050

===================================================================

M	CMakeLists.txt
M	build_files/cmake/config/blender_full.cmake
M	build_files/cmake/config/blender_lite.cmake
M	build_files/cmake/config/blender_release.cmake
M	build_files/cmake/macros.cmake
M	extern/CMakeLists.txt
D	extern/carve/CMakeLists.txt
D	extern/carve/LICENSE.GPL2
D	extern/carve/LICENSE.GPL3
D	extern/carve/README.blender
D	extern/carve/bundle.sh
D	extern/carve/carve-capi.cc
D	extern/carve/carve-capi.h
D	extern/carve/carve-util.cc
D	extern/carve/carve-util.h
D	extern/carve/files.txt
D	extern/carve/include/carve/aabb.hpp
D	extern/carve/include/carve/aabb_impl.hpp
D	extern/carve/include/carve/carve.hpp
D	extern/carve/include/carve/cbrt.h
D	extern/carve/include/carve/classification.hpp
D	extern/carve/include/carve/collection.hpp
D	extern/carve/include/carve/collection/unordered.hpp
D	extern/carve/include/carve/collection/unordered/boost_impl.hpp
D	extern/carve/include/carve/collection/unordered/fallback_impl.hpp
D	extern/carve/include/carve/collection/unordered/libstdcpp_impl.hpp
D	extern/carve/include/carve/collection/unordered/std_impl.hpp
D	extern/carve/include/carve/collection/unordered/tr1_impl.hpp
D	extern/carve/include/carve/collection/unordered/vcpp_impl.hpp
D	extern/carve/include/carve/collection_types.hpp
D	extern/carve/include/carve/colour.hpp
D	extern/carve/include/carve/config.h
D	extern/carve/include/carve/convex_hull.hpp
D	extern/carve/include/carve/csg.hpp
D	extern/carve/include/carve/csg_triangulator.hpp
D	extern/carve/include/carve/debug_hooks.hpp
D	extern/carve/include/carve/djset.hpp
D	extern/carve/include/carve/edge_decl.hpp
D	extern/carve/include/carve/edge_impl.hpp
D	extern/carve/include/carve/exact.hpp
D	extern/carve/include/carve/face_decl.hpp
D	extern/carve/include/carve/face_impl.hpp
D	extern/carve/include/carve/faceloop.hpp
D	extern/carve/include/carve/geom.hpp
D	extern/carve/include/carve/geom2d.hpp
D	extern/carve/include/carve/geom3d.hpp
D	extern/carve/include/carve/geom_impl.hpp
D	extern/carve/include/carve/gnu_cxx.h
D	extern/carve/include/carve/heap.hpp
D	extern/carve/include/carve/input.hpp
D	extern/carve/include/carve/interpolator.hpp
D	extern/carve/include/carve/intersection.hpp
D	extern/carve/include/carve/iobj.hpp
D	extern/carve/include/carve/kd_node.hpp
D	extern/carve/include/carve/math.hpp
D	extern/carve/include/carve/math_constants.hpp
D	extern/carve/include/carve/matrix.hpp
D	extern/carve/include/carve/mesh.hpp
D	extern/carve/include/carve/mesh_impl.hpp
D	extern/carve/include/carve/mesh_ops.hpp
D	extern/carve/include/carve/mesh_simplify.hpp
D	extern/carve/include/carve/octree_decl.hpp
D	extern/carve/include/carve/octree_impl.hpp
D	extern/carve/include/carve/pointset.hpp
D	extern/carve/include/carve/pointset_decl.hpp
D	extern/carve/include/carve/pointset_impl.hpp
D	extern/carve/include/carve/pointset_iter.hpp
D	extern/carve/include/carve/poly.hpp
D	extern/carve/include/carve/poly_decl.hpp
D	extern/carve/include/carve/poly_impl.hpp
D	extern/carve/include/carve/polyhedron_base.hpp
D	extern/carve/include/carve/polyhedron_decl.hpp
D	extern/carve/include/carve/polyhedron_impl.hpp
D	extern/carve/include/carve/polyline.hpp
D	extern/carve/include/carve/polyline_decl.hpp
D	extern/carve/include/carve/polyline_impl.hpp
D	extern/carve/include/carve/polyline_iter.hpp
D	extern/carve/include/carve/random/random.h
D	extern/carve/include/carve/rescale.hpp
D	extern/carve/include/carve/rtree.hpp
D	extern/carve/include/carve/spacetree.hpp
D	extern/carve/include/carve/tag.hpp
D	extern/carve/include/carve/timing.hpp
D	extern/carve/include/carve/tree.hpp
D	extern/carve/include/carve/triangle_intersection.hpp
D	extern/carve/include/carve/triangulator.hpp
D	extern/carve/include/carve/triangulator_impl.hpp
D	extern/carve/include/carve/util.hpp
D	extern/carve/include/carve/vcpp_config.h
D	extern/carve/include/carve/vector.hpp
D	extern/carve/include/carve/vertex_decl.hpp
D	extern/carve/include/carve/vertex_impl.hpp
D	extern/carve/include/carve/win32.h
D	extern/carve/lib/carve.cpp
D	extern/carve/lib/convex_hull.cpp
D	extern/carve/lib/csg.cpp
D	extern/carve/lib/csg_collector.cpp
D	extern/carve/lib/csg_collector.hpp
D	extern/carve/lib/csg_data.hpp
D	extern/carve/lib/csg_detail.hpp
D	extern/carve/lib/face.cpp
D	extern/carve/lib/geom2d.cpp
D	extern/carve/lib/geom3d.cpp
D	extern/carve/lib/intersect.cpp
D	extern/carve/lib/intersect_classify_common.hpp
D	extern/carve/lib/intersect_classify_common_impl.hpp
D	extern/carve/lib/intersect_classify_edge.cpp
D	extern/carve/lib/intersect_classify_group.cpp
D	extern/carve/lib/intersect_common.hpp
D	extern/carve/lib/intersect_debug.cpp
D	extern/carve/lib/intersect_debug.hpp
D	extern/carve/lib/intersect_face_division.cpp
D	extern/carve/lib/intersect_group.cpp
D	extern/carve/lib/intersect_half_classify_group.cpp
D	extern/carve/lib/intersection.cpp
D	extern/carve/lib/math.cpp
D	extern/carve/lib/mesh.cpp
D	extern/carve/lib/octree.cpp
D	extern/carve/lib/pointset.cpp
D	extern/carve/lib/polyhedron.cpp
D	extern/carve/lib/polyline.cpp
D	extern/carve/lib/tag.cpp
D	extern/carve/lib/timing.cpp
D	extern/carve/lib/triangulator.cpp
D	extern/carve/mkfiles.sh
D	extern/carve/patches/clang_is_heap_fix.patch
D	extern/carve/patches/face_hole_merge_workaround.patch
D	extern/carve/patches/files/config.h
D	extern/carve/patches/files/random.h
D	extern/carve/patches/gcc46.patch
D	extern/carve/patches/includes.patch
D	extern/carve/patches/interpolator_reorder.patch
D	extern/carve/patches/memory_leak_fix.patch
D	extern/carve/patches/mesh_iterator.patch
D	extern/carve/patches/mesh_simplify_dissolve_edges.patch
D	extern/carve/patches/mesh_simplify_uninitialized_var.patch
D	extern/carve/patches/msvc_fix.patch
D	extern/carve/patches/random.patch
D	extern/carve/patches/series
D	extern/carve/patches/strict_flags.patch
D	extern/carve/patches/win32.patch
M	release/scripts/startup/bl_ui/properties_data_modifier.py
M	source/blender/makesdna/DNA_modifier_types.h
M	source/blender/makesrna/intern/rna_modifier.c
M	source/blender/modifiers/CMakeLists.txt
M	source/blender/modifiers/intern/MOD_boolean.c
D	source/blender/modifiers/intern/MOD_boolean_util.c
D	source/blender/modifiers/intern/MOD_boolean_util.h
M	source/blender/python/intern/CMakeLists.txt
M	source/blender/python/intern/bpy_app_build_options.c
M	source/blenderplayer/CMakeLists.txt

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5c4ce5030ac..c0a0b4bd27f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -310,7 +310,6 @@ endif()
 # Modifiers
 option(WITH_MOD_FLUID           "Enable Elbeem Modifier (Fluid Simulation)" ON)
 option(WITH_MOD_SMOKE           "Enable Smoke Modifier (Smoke Simulation)" ON)
-option(WITH_MOD_BOOLEAN         "Enable Boolean Modifier" ON)
 option(WITH_MOD_REMESH          "Enable Remesh Modifier" ON)
 # option(WITH_MOD_CLOTH_ELTOPO    "Enable Experimental cloth solver" OFF)  # this is now only available in a branch
 # mark_as_advanced(WITH_MOD_CLOTH_ELTOPO)
@@ -645,13 +644,12 @@ if(NOT WITH_BOOST)
 	set_and_warn(WITH_INTERNATIONAL  OFF)
 	set_and_warn(WITH_OPENVDB        OFF)
 	set_and_warn(WITH_OPENCOLORIO    OFF)
-	set_and_warn(WITH_MOD_BOOLEAN    OFF)
 
 	set_and_warn(WITH_OPENAL         OFF)  # depends on AUDASPACE
 	set_and_warn(WITH_GAMEENGINE     OFF)  # depends on AUDASPACE
 	set_and_warn(WITH_PLAYER         OFF)  # depends on GAMEENGINE
 elseif(WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_AUDASPACE OR WITH_INTERNATIONAL OR
-       WITH_OPENVDB OR WITH_OPENCOLORIO OR WITH_MOD_BOOLEAN)
+       WITH_OPENVDB OR WITH_OPENCOLORIO)
 	# Keep enabled
 else()
 	# New dependency graph needs either Boost or C++11 for function bindings.
@@ -1758,7 +1756,6 @@ if(FIRST_RUN)
 	endif()
 
 	info_cfg_text("Modifiers:")
-	info_cfg_option(WITH_MOD_BOOLEAN)
 	info_cfg_option(WITH_MOD_REMESH)
 	info_cfg_option(WITH_MOD_FLUID)
 	info_cfg_option(WITH_MOD_OCEANSIM)
diff --git a/build_files/cmake/config/blender_full.cmake b/build_files/cmake/config/blender_full.cmake
index 35eba1e6a41..c896c0452b3 100644
--- a/build_files/cmake/config/blender_full.cmake
+++ b/build_files/cmake/config/blender_full.cmake
@@ -34,7 +34,6 @@ set(WITH_INTERNATIONAL       ON  CACHE BOOL "" FORCE)
 set(WITH_JACK                ON  CACHE BOOL "" FORCE)
 set(WITH_LZMA                ON  CACHE BOOL "" FORCE)
 set(WITH_LZO                 ON  CACHE BOOL "" FORCE)
-set(WITH_MOD_BOOLEAN         ON  CACHE BOOL "" FORCE)
 set(WITH_MOD_FLUID           ON  CACHE BOOL "" FORCE)
 set(WITH_MOD_REMESH          ON  CACHE BOOL "" FORCE)
 set(WITH_MOD_SMOKE           ON  CACHE BOOL "" FORCE)
diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake
index 98818d4ab50..7db26c3f7c0 100644
--- a/build_files/cmake/config/blender_lite.cmake
+++ b/build_files/cmake/config/blender_lite.cmake
@@ -38,7 +38,6 @@ set(WITH_INTERNATIONAL       OFF CACHE BOOL "" FORCE)
 set(WITH_JACK                OFF CACHE BOOL "" FORCE)
 set(WITH_LZMA                OFF CACHE BOOL "" FORCE)
 set(WITH_LZO                 OFF CACHE BOOL "" FORCE)
-set(WITH_MOD_BOOLEAN         OFF CACHE BOOL "" FORCE)
 set(WITH_MOD_FLUID           OFF CACHE BOOL "" FORCE)
 set(WITH_MOD_REMESH          OFF CACHE BOOL "" FORCE)
 set(WITH_MOD_SMOKE           OFF CACHE BOOL "" FORCE)
diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake
index 3cdbfdfcf3b..1d1793e0aba 100644
--- a/build_files/cmake/config/blender_release.cmake
+++ b/build_files/cmake/config/blender_release.cmake
@@ -34,7 +34,6 @@ set(WITH_INTERNATIONAL       ON  CACHE BOOL "" FORCE)
 set(WITH_JACK                ON  CACHE BOOL "" FORCE)
 set(WITH_LZMA                ON  CACHE BOOL "" FORCE)
 set(WITH_LZO                 ON  CACHE BOOL "" FORCE)
-set(WITH_MOD_BOOLEAN         ON  CACHE BOOL "" FORCE)
 set(WITH_MOD_FLUID           ON  CACHE BOOL "" FORCE)
 set(WITH_MOD_REMESH          ON  CACHE BOOL "" FORCE)
 set(WITH_MOD_SMOKE           ON  CACHE BOOL "" FORCE)
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 8ec2b1c6da5..e3eb4d9241a 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -721,10 +721,6 @@ function(SETUP_BLENDER_SORTED_LIBS)
 		list(APPEND BLENDER_SORTED_LIBS bf_intern_itasc)
 	endif()
 
-	if(WITH_MOD_BOOLEAN)
-		list(APPEND BLENDER_SORTED_LIBS extern_carve)
-	endif()
-
 	if(WITH_GHOST_XDND)
 		list(APPEND BLENDER_SORTED_LIBS extern_xdnd)
 	endif()
diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt
index 91919adb4a2..2e8589ffd17 100644
--- a/extern/CMakeLists.txt
+++ b/extern/CMakeLists.txt
@@ -86,10 +86,6 @@ if(WITH_CYCLES OR WITH_COMPOSITOR OR WITH_OPENSUBDIV)
 	endif()
 endif()
 
-if(WITH_MOD_BOOLEAN)
-	add_subdirectory(carve)
-endif()
-
 if(WITH_X11 AND WITH_GHOST_XDND)
 	add_subdirectory(xdnd)
 endif()
diff --git a/extern/carve/CMakeLists.txt b/extern/carve/CMakeLists.txt
deleted file mode 100644
index bb81332917e..00000000000
--- a/extern/carve/CMakeLists.txt
+++ /dev/null
@@ -1,170 +0,0 @@
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# The Original Code is Copyright (C) 2006, Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): Jacques Beaurai, Erwin Coumans
-#
-# ***** END GPL LICENSE BLOCK *****
-
-# NOTE: This file is automatically generated by bundle.sh script
-#       If you're doing changes in this file, please update template
-#       in that script too
-
-set(INC
-	include
-)
-
-set(INC_SYS
-)
-
-set(SRC
-	carve-capi.cc
-	carve-util.cc
-	lib/carve.cpp
-	lib/convex_hull.cpp
-	lib/csg_collector.cpp
-	lib/csg.cpp
-	lib/face.cpp
-	lib/geom2d.cpp
-	lib/geom3d.cpp
-	lib/intersect_classify_edge.cpp
-	lib/intersect_classify_group.cpp
-	lib/intersect.cpp
-	lib/intersect_debug.cpp
-	lib/intersect_face_division.cpp
-	lib/intersect_group.cpp
-	lib/intersect_half_classify_group.cpp
-	lib/intersection.cpp
-	lib/math.cpp
-	lib/mesh.cpp
-	lib/octree.cpp
-	lib/pointset.cpp
-	lib/polyhedron.cpp
-	lib/polyline.cpp
-	lib/tag.cpp
-	lib/timing.cpp
-	lib/triangulator.cpp
-
-	carve-capi.h
-	carve-util.h
-	lib/csg_collector.hpp
-	lib/csg_data.hpp
-	lib/csg_detail.hpp
-	lib/intersect_classify_common.hpp
-	lib/intersect_classify_common_impl.hpp
-	lib/intersect_common.hpp
-	lib/intersect_debug.hpp
-
-	include/carve/aabb.hpp
-	include/carve/aabb_impl.hpp
-	include/carve/carve.hpp
-	include/carve/cbrt.h
-	include/carve/classification.hpp
-	include/carve/collection.hpp
-	include/carve/collection_types.hpp
-	include/carve/collection/unordered/boost_impl.hpp
-	include/carve/collection/unordered/fallback_impl.hpp
-	include/carve/collection/unordered.hpp
-	include/carve/collection/unordered/libstdcpp_impl.hpp
-	include/carve/collection/unordered/std_impl.hpp
-	include/carve/collection/unordered/tr1_impl.hpp
-	include/carve/collection/unordered/vcpp_impl.hpp
-	include/carve/colour.hpp
-	include/carve/convex_hull.hpp
-	include/carve/csg.hpp
-	include/carve/csg_triangulator.hpp
-	include/carve/debug_hooks.hpp
-	include/carve/djset.hpp
-	include/carve/edge_decl.hpp
-	include/carve/edge_impl.hpp
-	include/carve/exact.hpp
-	include/carve/face_decl.hpp
-	include/carve/face_impl.hpp
-	include/carve/faceloop.hpp
-	include/carve/geom2d.hpp
-	include/carve/geom3d.hpp
-	include/carve/geom.hpp
-	include/carve/geom_impl.hpp
-	include/carve/gnu_cxx.h
-	include/carve/heap.hpp
-	include/carve/input.hpp
-	include/carve/interpolator.hpp
-	include/carve/intersection.hpp
-	include/carve/iobj.hpp
-	include/carve/kd_node.hpp
-	include/carve/math_constants.hpp
-	include/carve/math.hpp
-	include/carve/matrix.hpp
-	include/carve/mesh.hpp
-	include/carve/mesh_impl.hpp
-	include/carve/mesh_ops.hpp
-	include/carve/mesh_simplify.hpp
-	include/carve/octree_decl.hpp
-	include/carve/octree_impl.hpp
-	include/carve/pointset_decl.hpp
-	include/carve/pointset.hpp
-	include/carve/pointset_impl.hpp
-	include/carve/pointset_iter.hpp
-	include/carve/poly_decl.hpp
-	include/carve/polyhedron_base.hpp
-	include/carve/polyhedron_decl.hpp
-	include/carve/polyhedron_impl.hpp
-	include/carve/poly.hpp
-	include/carve/poly_impl.hpp
-	include/carve/polyline_decl.hpp
-	include/carve/polyline.hpp
-	include/carve/polyline_impl.hpp
-	include/carve/polyline_iter.hpp
-	include/carve/rescale.hpp
-	include/carve/rtree.hpp
-	include/carve/spacetree.hpp
-	include/carve/tag.hpp
-	include/carve/timing.hpp
-	include/carve/tree.hpp
-	include/carve/triangle_intersection.hpp
-	include/carve/triangulator.hpp
-	include/carve/triangulator_impl.hpp
-	include/carve/util.hpp
-	include/carve/vcpp_config.h
-	include/carve/vector.hpp
-	include/carve/vertex_decl.hpp
-	include/carve/vertex_impl.hpp
-	include/carve/win32.h
-)
-
-if(WITH_BOOST)
-	if(NOT MSVC)
-		# Boost is setting as preferred collections library in the Carve code when using MSVC compiler
-		add_definitions(
-			-DHAVE_BOOST_UNORDERED_COLLECTIONS
-		)
-	endif()
-
-	add_definitions(
-		-DCARVE_SYSTEM_BOOST
-		-DHAVE_BOOST_LIBRARY
-	)
-
-	list(APPEND INC_SYS
-		${BOOST_INCLUDE_DIR}
-	)
-endif()
-
-blender_add_lib(extern_carve "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/extern/carve/LICENSE.GPL2 b/extern/carve/LICENSE.GPL2
deleted file mode 100644
index 792acb92f6a..00000000000
--- a/extern/carve/LICENSE.GPL2
+++ /dev/null
@@ -1,361 +0,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-
- The Qt GUI Toolkit is Copyright (C) 1994-2008 Trolltech ASA.
-
- You may use, distribute and copy the Qt GUI Toolkit under the terms of
- GNU General Public License version 2, which is displayed below.
-
--------------------------------------------------------------------------
-
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list