[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