[Bf-blender-cvs] [3832a09ea8f] temp-fracture-modifier-2.8: bring back carve as boolean alternative for FM 2.8 (and boolean modifier too)
Martin Felke
noreply at git.blender.org
Sat Mar 9 20:40:53 CET 2019
Commit: 3832a09ea8f4e019da01c859cede41c7287c978a
Author: Martin Felke
Date: Sat Mar 9 20:40:29 2019 +0100
Branches: temp-fracture-modifier-2.8
https://developer.blender.org/rB3832a09ea8f4e019da01c859cede41c7287c978a
bring back carve as boolean alternative for FM 2.8 (and boolean modifier too)
Users should keep the solver as choice, since Bmesh boolean is not finished yet.
===================================================================
M CMakeLists.txt
M build_files/cmake/config/blender_full.cmake
A build_files/cmake/config/blender_full.cmake.orig
M build_files/cmake/config/blender_lite.cmake
A build_files/cmake/config/blender_lite.cmake.orig
M build_files/cmake/config/blender_release.cmake
A build_files/cmake/config/blender_release.cmake.orig
M build_files/cmake/macros.cmake
M extern/CMakeLists.txt
A extern/carve/CMakeLists.txt
A extern/carve/LICENSE.GPL2
A extern/carve/LICENSE.GPL3
A extern/carve/README.blender
A extern/carve/bundle.sh
A extern/carve/carve-capi.cc
A extern/carve/carve-capi.h
A extern/carve/carve-util.cc
A extern/carve/carve-util.h
A extern/carve/files.txt
A extern/carve/include/carve/aabb.hpp
A extern/carve/include/carve/aabb_impl.hpp
A extern/carve/include/carve/carve.hpp
A extern/carve/include/carve/cbrt.h
A extern/carve/include/carve/classification.hpp
A extern/carve/include/carve/collection.hpp
A extern/carve/include/carve/collection/unordered.hpp
A extern/carve/include/carve/collection/unordered/boost_impl.hpp
A extern/carve/include/carve/collection/unordered/fallback_impl.hpp
A extern/carve/include/carve/collection/unordered/libstdcpp_impl.hpp
A extern/carve/include/carve/collection/unordered/std_impl.hpp
A extern/carve/include/carve/collection/unordered/tr1_impl.hpp
A extern/carve/include/carve/collection/unordered/vcpp_impl.hpp
A extern/carve/include/carve/collection_types.hpp
A extern/carve/include/carve/colour.hpp
A extern/carve/include/carve/config.h
A extern/carve/include/carve/convex_hull.hpp
A extern/carve/include/carve/csg.hpp
A extern/carve/include/carve/csg_triangulator.hpp
A extern/carve/include/carve/debug_hooks.hpp
A extern/carve/include/carve/djset.hpp
A extern/carve/include/carve/edge_decl.hpp
A extern/carve/include/carve/edge_impl.hpp
A extern/carve/include/carve/exact.hpp
A extern/carve/include/carve/face_decl.hpp
A extern/carve/include/carve/face_impl.hpp
A extern/carve/include/carve/faceloop.hpp
A extern/carve/include/carve/geom.hpp
A extern/carve/include/carve/geom2d.hpp
A extern/carve/include/carve/geom3d.hpp
A extern/carve/include/carve/geom_impl.hpp
A extern/carve/include/carve/gnu_cxx.h
A extern/carve/include/carve/heap.hpp
A extern/carve/include/carve/input.hpp
A extern/carve/include/carve/interpolator.hpp
A extern/carve/include/carve/intersection.hpp
A extern/carve/include/carve/iobj.hpp
A extern/carve/include/carve/kd_node.hpp
A extern/carve/include/carve/math.hpp
A extern/carve/include/carve/math_constants.hpp
A extern/carve/include/carve/matrix.hpp
A extern/carve/include/carve/mesh.hpp
A extern/carve/include/carve/mesh_impl.hpp
A extern/carve/include/carve/mesh_ops.hpp
A extern/carve/include/carve/mesh_simplify.hpp
A extern/carve/include/carve/octree_decl.hpp
A extern/carve/include/carve/octree_impl.hpp
A extern/carve/include/carve/pointset.hpp
A extern/carve/include/carve/pointset_decl.hpp
A extern/carve/include/carve/pointset_impl.hpp
A extern/carve/include/carve/pointset_iter.hpp
A extern/carve/include/carve/poly.hpp
A extern/carve/include/carve/poly_decl.hpp
A extern/carve/include/carve/poly_impl.hpp
A extern/carve/include/carve/polyhedron_base.hpp
A extern/carve/include/carve/polyhedron_decl.hpp
A extern/carve/include/carve/polyhedron_impl.hpp
A extern/carve/include/carve/polyline.hpp
A extern/carve/include/carve/polyline_decl.hpp
A extern/carve/include/carve/polyline_impl.hpp
A extern/carve/include/carve/polyline_iter.hpp
A extern/carve/include/carve/random/random.h
A extern/carve/include/carve/rescale.hpp
A extern/carve/include/carve/rtree.hpp
A extern/carve/include/carve/spacetree.hpp
A extern/carve/include/carve/tag.hpp
A extern/carve/include/carve/timing.hpp
A extern/carve/include/carve/tree.hpp
A extern/carve/include/carve/triangle_intersection.hpp
A extern/carve/include/carve/triangulator.hpp
A extern/carve/include/carve/triangulator_impl.hpp
A extern/carve/include/carve/util.hpp
A extern/carve/include/carve/vcpp_config.h
A extern/carve/include/carve/vector.hpp
A extern/carve/include/carve/vertex_decl.hpp
A extern/carve/include/carve/vertex_impl.hpp
A extern/carve/include/carve/win32.h
A extern/carve/lib/carve.cpp
A extern/carve/lib/convex_hull.cpp
A extern/carve/lib/csg.cpp
A extern/carve/lib/csg_collector.cpp
A extern/carve/lib/csg_collector.hpp
A extern/carve/lib/csg_data.hpp
A extern/carve/lib/csg_detail.hpp
A extern/carve/lib/face.cpp
A extern/carve/lib/geom2d.cpp
A extern/carve/lib/geom3d.cpp
A extern/carve/lib/intersect.cpp
A extern/carve/lib/intersect_classify_common.hpp
A extern/carve/lib/intersect_classify_common_impl.hpp
A extern/carve/lib/intersect_classify_edge.cpp
A extern/carve/lib/intersect_classify_group.cpp
A extern/carve/lib/intersect_common.hpp
A extern/carve/lib/intersect_debug.cpp
A extern/carve/lib/intersect_debug.hpp
A extern/carve/lib/intersect_face_division.cpp
A extern/carve/lib/intersect_group.cpp
A extern/carve/lib/intersect_half_classify_group.cpp
A extern/carve/lib/intersection.cpp
A extern/carve/lib/math.cpp
A extern/carve/lib/mesh.cpp
A extern/carve/lib/octree.cpp
A extern/carve/lib/pointset.cpp
A extern/carve/lib/polyhedron.cpp
A extern/carve/lib/polyline.cpp
A extern/carve/lib/tag.cpp
A extern/carve/lib/timing.cpp
A extern/carve/lib/triangulator.cpp
A extern/carve/mkfiles.sh
A extern/carve/patches/clang_is_heap_fix.patch
A extern/carve/patches/face_hole_merge_workaround.patch
A extern/carve/patches/files/config.h
A extern/carve/patches/files/random.h
A extern/carve/patches/gcc46.patch
A extern/carve/patches/includes.patch
A extern/carve/patches/interpolator_reorder.patch
A extern/carve/patches/memory_leak_fix.patch
A extern/carve/patches/mesh_iterator.patch
A extern/carve/patches/mesh_simplify_dissolve_edges.patch
A extern/carve/patches/mesh_simplify_uninitialized_var.patch
A extern/carve/patches/msvc_fix.patch
A extern/carve/patches/random.patch
A extern/carve/patches/series
A extern/carve/patches/strict_flags.patch
A extern/carve/patches/win32.patch
M release/scripts/startup/bl_ui/properties_data_modifier.py
M release/scripts/startup/bl_ui/properties_physics_fracture.py
M source/blender/blenkernel/BKE_boolean.h
M source/blender/blenkernel/BKE_fracture_util.h
M source/blender/blenkernel/CMakeLists.txt
M source/blender/blenkernel/intern/boolean.c
M source/blender/blenkernel/intern/fracture_util.c
M source/blender/makesdna/DNA_modifier_types.h
M source/blender/makesrna/intern/rna_fracture.c
M source/blender/makesrna/intern/rna_modifier.c
M source/blender/modifiers/intern/MOD_boolean.c
M source/blender/python/intern/CMakeLists.txt
M source/blender/python/intern/bpy_app_build_options.c
===================================================================
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c5063e2d619..d4ba88da81d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -304,6 +304,7 @@ 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)
@@ -658,8 +659,9 @@ 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)
elseif(WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
- WITH_OPENVDB OR WITH_OPENCOLORIO)
+ WITH_OPENVDB OR WITH_OPENCOLORIO OR WITH_MOD_BOOLEAN)
# Keep enabled
else()
# Disable boost if not needed.
@@ -1715,6 +1717,7 @@ 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 9dffc01cf2a..e1eadbbc5cc 100644
--- a/build_files/cmake/config/blender_full.cmake
+++ b/build_files/cmake/config/blender_full.cmake
@@ -31,6 +31,7 @@ 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_full.cmake b/build_files/cmake/config/blender_full.cmake.orig
similarity index 100%
copy from build_files/cmake/config/blender_full.cmake
copy to build_files/cmake/config/blender_full.cmake.orig
diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake
index d440dbf2821..5b1b7175318 100644
--- a/build_files/cmake/config/blender_lite.cmake
+++ b/build_files/cmake/config/blender_lite.cmake
@@ -36,6 +36,7 @@ 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_lite.cmake b/build_files/cmake/config/blender_lite.cmake.orig
similarity index 100%
copy from build_files/cmake/config/blender_lite.cmake
copy to build_files/cmake/config/blender_lite.cmake.orig
diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake
index 74417ea3151..bba07acee3b 100644
--- a/build_files/cmake/config/blender_release.cmake
+++ b/build_files/cmake/config/blender_release.cmake
@@ -32,6 +32,7 @@ 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_release.cmake b/build_files/cmake/config/blender_release.cmake.orig
similarity index 100%
copy from build_files/cmake/config/blender_release.cmake
copy to build_files/cmake/config/blender_release.cmake.orig
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 40ebfd7329d..986d7285e80 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -739,6 +739,10 @@ 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 db8691018a7..38c37fdbfb5 100644
--- a/extern/CMakeLists.txt
+++ b/extern/CMakeLists.txt
@@ -73,6 +73,10 @@ 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
new file mode 100644
index 00000000000..bb81332917e
--- /dev/null
+++ b/extern/carve/CMakeLists.txt
@@ -0,0 +1,170 @@
+# ***** 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
new file mode 100644
index 00000000000..792acb92f6a
--- /dev/null
+++ b/extern/carve/LICENSE.GPL2
@@ -0,0 +1,361 @@
+ GNU GENERAL PUBLIC LICENSE
+
+ The Qt GUI Toolkit is Copyright (C) 1994-2008 Trolltech ASA.
+
+ You may use, distrib
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list