[Bf-blender-cvs] [57e55906f04] master: Add QuadriFlow remesher

Sebastian Parborg noreply at git.blender.org
Fri Sep 13 10:37:07 CEST 2019


Commit: 57e55906f04a48a951fbbcfd7c197eef35ad4387
Author: Sebastian Parborg
Date:   Mon Aug 26 18:34:11 2019 +0200
Branches: master
https://developer.blender.org/rB57e55906f04a48a951fbbcfd7c197eef35ad4387

Add QuadriFlow remesher

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

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	extern/CMakeLists.txt
A	extern/quadriflow/3rd/lemon-1.3.1/AUTHORS
A	extern/quadriflow/3rd/lemon-1.3.1/CMakeLists.txt
A	extern/quadriflow/3rd/lemon-1.3.1/INSTALL
A	extern/quadriflow/3rd/lemon-1.3.1/LICENSE
A	extern/quadriflow/3rd/lemon-1.3.1/NEWS
A	extern/quadriflow/3rd/lemon-1.3.1/README
A	extern/quadriflow/3rd/lemon-1.3.1/cmake/FindCOIN.cmake
A	extern/quadriflow/3rd/lemon-1.3.1/cmake/FindGLPK.cmake
A	extern/quadriflow/3rd/lemon-1.3.1/cmake/FindGhostscript.cmake
A	extern/quadriflow/3rd/lemon-1.3.1/cmake/FindILOG.cmake
A	extern/quadriflow/3rd/lemon-1.3.1/cmake/FindSOPLEX.cmake
A	extern/quadriflow/3rd/lemon-1.3.1/cmake/LEMONConfig.cmake.in
A	extern/quadriflow/3rd/lemon-1.3.1/cmake/nsis/lemon.ico
A	extern/quadriflow/3rd/lemon-1.3.1/cmake/nsis/uninstall.ico
A	extern/quadriflow/3rd/lemon-1.3.1/cmake/version.cmake
A	extern/quadriflow/3rd/lemon-1.3.1/cmake/version.cmake.in
A	extern/quadriflow/3rd/lemon-1.3.1/contrib/CMakeLists.txt
A	extern/quadriflow/3rd/lemon-1.3.1/demo/CMakeLists.txt
A	extern/quadriflow/3rd/lemon-1.3.1/demo/arg_parser_demo.cc
A	extern/quadriflow/3rd/lemon-1.3.1/demo/digraph.lgf
A	extern/quadriflow/3rd/lemon-1.3.1/demo/graph_to_eps_demo.cc
A	extern/quadriflow/3rd/lemon-1.3.1/demo/lgf_demo.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/CMakeLists.txt
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/adaptors.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/arg_parser.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/arg_parser.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/assert.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/base.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bellman_ford.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bfs.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bin_heap.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/binomial_heap.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/alteration_notifier.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/array_map.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/bezier.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/default_map.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/edge_set_extender.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/enable_if.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/graph_adaptor_extender.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/graph_extender.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/lock.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/map_extender.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/path_dump.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/solver_bits.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/traits.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/variant.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/vector_map.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/windows.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bits/windows.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/bucket_heap.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/capacity_scaling.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/cbc.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/cbc.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/christofides_tsp.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/circulation.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/clp.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/clp.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/color.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/color.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/concept_check.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/concepts/bpgraph.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/concepts/digraph.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/concepts/graph.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/concepts/graph_components.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/concepts/heap.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/concepts/maps.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/concepts/path.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/config.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/config.h.in
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/connectivity.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/core.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/cost_scaling.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/counter.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/cplex.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/cplex.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/cycle_canceling.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/dfs.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/dheap.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/dijkstra.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/dim2.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/dimacs.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/edge_set.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/edmonds_karp.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/elevator.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/error.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/euler.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/fib_heap.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/fractional_matching.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/full_graph.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/glpk.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/glpk.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/gomory_hu.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/graph_to_eps.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/greedy_tsp.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/grid_graph.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/grosso_locatelli_pullan_mc.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/hao_orlin.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/hartmann_orlin_mmc.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/howard_mmc.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/hypercube_graph.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/insertion_tsp.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/karp_mmc.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/kruskal.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/lemon.pc.in
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/lgf_reader.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/lgf_writer.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/list_graph.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/lp.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/lp_base.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/lp_base.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/lp_skeleton.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/lp_skeleton.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/maps.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/matching.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/math.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/max_cardinality_search.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/min_cost_arborescence.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/nagamochi_ibaraki.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/nauty_reader.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/nearest_neighbor_tsp.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/network_simplex.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/opt2_tsp.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/pairing_heap.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/path.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/planarity.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/preflow.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/quad_heap.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/radix_heap.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/radix_sort.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/random.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/random.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/smart_graph.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/soplex.cc
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/soplex.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/static_graph.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/suurballe.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/time_measure.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/tolerance.h
A	extern/quadriflow/3rd/lemon-1.3.1/lemon/unionfind.h
A	extern/quadriflow/3rd/lemon-1.3.1/scripts/unify-sources.sh
A	extern/quadriflow/3rd/lemon-1.3.1/scripts/valgrind-wrapper.sh
A	extern/quadriflow/3rd/lemon-1.3.1/test/CMakeLists.txt
A	extern/quadriflow/3rd/lemon-1.3.1/test/adaptors_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/arc_look_up_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/bellman_ford_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/bfs_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/bpgraph_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/circulation_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/connectivity_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/counter_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/dfs_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/digraph_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/dijkstra_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/dim_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/edge_set_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/error_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/euler_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/fractional_matching_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/gomory_hu_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/graph_copy_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/graph_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/graph_test.h
A	extern/quadriflow/3rd/lemon-1.3.1/test/graph_utils_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/hao_orlin_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/heap_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/kruskal_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/lgf_reader_writer_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/lgf_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/lp_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/maps_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/matching_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/max_cardinality_search_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/max_clique_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/max_flow_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/min_cost_arborescence_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/min_cost_flow_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/min_mean_cycle_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/mip_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/nagamochi_ibaraki_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/path_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/planarity_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/radix_sort_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/random_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/suurballe_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/test_tools.h
A	extern/quadriflow/3rd/lemon-1.3.1/test/test_tools_fail.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/test_tools_pass.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/time_measure_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/tsp_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/test/unionfind_test.cc
A	extern/quadriflow/3rd/lemon-1.3.1/tools/CMakeLists.txt
A	extern/quadriflow/3rd/lemon-1.3.1/tools/dimacs-solver.cc
A	extern/quadriflow/3rd/lemon-1.3.1/tools/dimacs-to-lgf.cc
A	extern/quadriflow/3rd/lemon-1.3.1/tools/lemon-0.x-to-1.x.sh
A	extern/quadriflow/3rd/lemon-1.3.1/tools/lgf-gen.cc
A	extern/quadriflow/3rd/pcg32/pcg32/pcg32.h
A	extern/quadriflow/3rd/pss/pss/parallel_stable_sort.h
A	extern/quadriflow/3rd/pss/pss/pss_common.h
A	extern/quadriflow/CMakeLists.txt
A	extern/quadriflow/LICENSE.txt
A	extern/quadriflow/README.md
A	extern/quadriflow/src/Optimizer.cu
A	extern/quadriflow/src/adjacent-matrix.cpp
A	extern/quadriflow/src/adjacent-matrix.hpp
A	extern/quadriflow/src/compare-key.hpp
A	extern/quadriflow/src/config.hpp
A	extern/quadriflow/src/dedge.cpp
A	extern/quadriflow/src/dedge.hpp
A	extern/quadriflow/src/disajoint-tree.hpp
A	extern/quadriflow/src/dset.hpp
A	extern/quadriflow/src/field-math.hpp
A	extern/quadriflow/src/flow.hpp
A	extern/quadriflow/src/hierarchy.cpp
A	extern/quadriflow/src/hierarchy.hpp
A	extern/quadriflow/src/loader.cpp
A	extern/quadriflow/src/loader.hpp
A	extern/quadriflow/src/localsat.cpp
A	extern/quadriflow/src/localsat.hpp
A	extern/quadriflow/src/main.cpp
A	extern/quadriflow/src/merge-vertex.cpp
A	extern/quadriflow/src/merge-vertex.hpp
A	extern/quadriflow/src/optimizer.cpp
A	extern/quadriflow/src/optimizer.hpp
A	extern/quadriflow/src/parametrizer-flip.cpp
A	extern/quadriflow/src/parametrizer-int.cpp
A	extern/quadriflow/src/parametrizer-mesh.cpp
A	extern/quadriflow/src/parametrizer-scale.cpp
A	extern/quadriflow/src/parametrizer-sing.cpp
A	extern/quadriflow/src/parametrizer.cpp
A	extern/quadriflow/src/parametrizer.hpp
A	extern/quadriflow/src/post-solver.cpp
A	extern/quadriflow/src/post-solver.hpp
A	extern/quadriflow/src/serialize.hpp
A	extern/quadriflow/src/subdivide.cpp
A	extern/quadriflow/src/subdivide.hpp
M	intern/CMakeLists.txt
A	intern/quadriflow/CMakeLists.txt
A	intern/quadriflow/quadriflow_capi.cpp
A	intern/quadriflow/quadriflow_capi.hpp
M	release/scripts/startup/bl_ui/properties_data_mesh.py
M	source/blender/blenkernel/BKE_mesh_remesh_voxel.h
M	source/blender/blenkernel/CMakeLists.txt
M	source/blender/blenkernel/intern/mesh_remesh_voxel.c
M	source/blender/editors/object/object_intern.h
M	source/blender/editors/object/object_ops.c
M	source/blender/editors/object/object_remesh.c
M	source/blender/makesdna/DNA_mesh_types.h
M	source/blender/makesrna/intern/rna_mesh.c
M	source/blender/windowmanager/WM_api.h

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

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 747acf27c64..ad705821596 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -263,6 +263,8 @@ endif()
 option(WITH_HEADLESS      "Build without graphical support (renderfarm, server mode only)" OFF)
 mark_as_advanced(WITH_HEADLESS)
 
+option(WITH_QUADRIFLOW    "Build with quadriflow remesher support" ON)
+
 option(WITH_AUDASPACE    "Build with blenders audio library (only disable if you know what you're doing!)" ON)
 option(WITH_SYSTEM_AUDASPACE "Build with external audaspace library installed on the system (only enable if you know what you're doing!)" OFF)
 mark_as_advanced(WITH_AUDASPACE)
@@ -673,6 +675,7 @@ 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_QUADRIFLOW     OFF)
 elseif(WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
        WITH_OPENVDB OR WITH_OPENCOLORIO)
   # Keep enabled
@@ -1765,6 +1768,7 @@ if(FIRST_RUN)
   info_cfg_option(WITH_OPENIMAGEDENOISE)
   info_cfg_option(WITH_OPENVDB)
   info_cfg_option(WITH_ALEMBIC)
+  info_cfg_option(WITH_QUADRIFLOW)
 
   info_cfg_text("Compiler Options:")
   info_cfg_option(WITH_BUILDINFO)
diff --git a/build_files/cmake/config/blender_full.cmake b/build_files/cmake/config/blender_full.cmake
index 75c5e0f34c1..403d38f6a05 100644
--- a/build_files/cmake/config/blender_full.cmake
+++ b/build_files/cmake/config/blender_full.cmake
@@ -46,6 +46,7 @@ set(WITH_OPENSUBDIV          ON  CACHE BOOL "" FORCE)
 set(WITH_OPENVDB             ON  CACHE BOOL "" FORCE)
 set(WITH_OPENVDB_BLOSC       ON  CACHE BOOL "" FORCE)
 set(WITH_PYTHON_INSTALL      ON  CACHE BOOL "" FORCE)
+set(WITH_QUADRIFLOW          ON  CACHE BOOL "" FORCE)
 set(WITH_RAYOPTIMIZATION     ON  CACHE BOOL "" FORCE)
 set(WITH_SDL                 ON  CACHE BOOL "" FORCE)
 set(WITH_X11_XINPUT          ON  CACHE BOOL "" FORCE)
diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake
index 6596d1db674..e98f4f098bb 100644
--- a/build_files/cmake/config/blender_lite.cmake
+++ b/build_files/cmake/config/blender_lite.cmake
@@ -50,6 +50,7 @@ set(WITH_OPENIMAGEIO         OFF CACHE BOOL "" FORCE)
 set(WITH_OPENMP              OFF CACHE BOOL "" FORCE)
 set(WITH_OPENSUBDIV          OFF CACHE BOOL "" FORCE)
 set(WITH_OPENVDB             OFF CACHE BOOL "" FORCE)
+set(WITH_QUADRIFLOW          OFF CACHE BOOL "" FORCE)
 set(WITH_RAYOPTIMIZATION     OFF CACHE BOOL "" FORCE)
 set(WITH_SDL                 OFF CACHE BOOL "" FORCE)
 set(WITH_X11_XINPUT          OFF CACHE BOOL "" FORCE)
diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake
index 08218a5e57c..2d7b167764b 100644
--- a/build_files/cmake/config/blender_release.cmake
+++ b/build_files/cmake/config/blender_release.cmake
@@ -47,6 +47,7 @@ set(WITH_OPENSUBDIV          ON  CACHE BOOL "" FORCE)
 set(WITH_OPENVDB             ON  CACHE BOOL "" FORCE)
 set(WITH_OPENVDB_BLOSC       ON  CACHE BOOL "" FORCE)
 set(WITH_PYTHON_INSTALL      ON  CACHE BOOL "" FORCE)
+set(WITH_QUADRIFLOW          ON  CACHE BOOL "" FORCE)
 set(WITH_RAYOPTIMIZATION     ON  CACHE BOOL "" FORCE)
 set(WITH_SDL                 ON  CACHE BOOL "" FORCE)
 set(WITH_X11_XINPUT          ON  CACHE BOOL "" FORCE)
diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt
index 3b2a8c172aa..0d9010b15ea 100644
--- a/extern/CMakeLists.txt
+++ b/extern/CMakeLists.txt
@@ -105,3 +105,8 @@ if(WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE)
   set(AUDASPACE_CMAKE_CFG ${CMAKE_CURRENT_SOURCE_DIR}/audaspace/blender_config.cmake)
   add_subdirectory(audaspace)
 endif()
+
+if(WITH_QUADRIFLOW)
+  set(QUADRIFLOW_CMAKE_CFG ${CMAKE_CURRENT_SOURCE_DIR}/quadriflow/blender_config.cmake)
+  add_subdirectory(quadriflow)
+endif()
diff --git a/extern/quadriflow/3rd/lemon-1.3.1/AUTHORS b/extern/quadriflow/3rd/lemon-1.3.1/AUTHORS
new file mode 100644
index 00000000000..4019ca6213a
--- /dev/null
+++ b/extern/quadriflow/3rd/lemon-1.3.1/AUTHORS
@@ -0,0 +1,26 @@
+The main developers of release series 1.x are
+
+ * Balazs Dezso <deba at inf.elte.hu>
+ * Alpar Juttner <alpar at cs.elte.hu>
+ * Peter Kovacs <kpeter at inf.elte.hu>
+ * Akos Ladanyi <ladanyi at tmit.bme.hu>
+
+For more complete list of contributors, please visit the history of
+the LEMON source code repository: http://lemon.cs.elte.hu/hg/lemon
+
+Moreover, this version is heavily based on version 0.x of LEMON. Here
+is the list of people who contributed to those versions.
+
+ * Mihaly Barasz <klao at cs.elte.hu>
+ * Johanna Becker <beckerjc at cs.elte.hu>
+ * Attila Bernath <athos at cs.elte.hu>
+ * Balazs Dezso <deba at inf.elte.hu>
+ * Peter Hegyi <hegyi at tmit.bme.hu>
+ * Alpar Juttner <alpar at cs.elte.hu>
+ * Peter Kovacs <kpeter at inf.elte.hu>
+ * Akos Ladanyi <ladanyi at tmit.bme.hu>
+ * Marton Makai <marci at cs.elte.hu>
+ * Jacint Szabo <jacint at cs.elte.hu>
+
+Again, please visit the history of the old LEMON repository for more
+details: http://lemon.cs.elte.hu/hg/lemon-0.x
\ No newline at end of file
diff --git a/extern/quadriflow/3rd/lemon-1.3.1/CMakeLists.txt b/extern/quadriflow/3rd/lemon-1.3.1/CMakeLists.txt
new file mode 100644
index 00000000000..7aa6d430906
--- /dev/null
+++ b/extern/quadriflow/3rd/lemon-1.3.1/CMakeLists.txt
@@ -0,0 +1,373 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
+
+SET(PROJECT_NAME "LEMON")
+PROJECT(${PROJECT_NAME})
+
+INCLUDE(FindPythonInterp)
+INCLUDE(FindWget)
+
+IF(EXISTS ${PROJECT_SOURCE_DIR}/cmake/version.cmake)
+  INCLUDE(${PROJECT_SOURCE_DIR}/cmake/version.cmake)
+ELSEIF(DEFINED ENV{LEMON_VERSION})
+  SET(LEMON_VERSION $ENV{LEMON_VERSION} CACHE STRING "LEMON version string.")
+ELSE()
+  EXECUTE_PROCESS(
+    COMMAND
+    hg log -r. --template "{latesttag}"
+    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+    OUTPUT_VARIABLE HG_REVISION_TAG
+    ERROR_QUIET
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+  )
+  EXECUTE_PROCESS(
+    COMMAND
+    hg log -r. --template "{latesttagdistance}"
+    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+    OUTPUT_VARIABLE HG_REVISION_DIST
+    ERROR_QUIET
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+  )
+  EXECUTE_PROCESS(
+    COMMAND
+    hg log -r. --template "{node|short}"
+    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+    OUTPUT_VARIABLE HG_REVISION_ID
+    ERROR_QUIET
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+  )
+
+  IF(HG_REVISION_TAG STREQUAL "")
+    SET(HG_REVISION_ID "hg-tip")
+  ELSE()
+    IF(HG_REVISION_TAG STREQUAL "null")
+      SET(HG_REVISION_TAG "trunk")
+    ELSEIF(HG_REVISION_TAG MATCHES "^r")
+      STRING(SUBSTRING ${HG_REVISION_TAG} 1 -1 HG_REVISION_TAG)
+    ENDIF()
+    IF(HG_REVISION_DIST STREQUAL "0")
+      SET(HG_REVISION ${HG_REVISION_TAG})
+    ELSE()
+      SET(HG_REVISION
+	"${HG_REVISION_TAG}+${HG_REVISION_DIST}-${HG_REVISION_ID}")
+    ENDIF()
+  ENDIF()
+
+  SET(LEMON_VERSION ${HG_REVISION} CACHE STRING "LEMON version string.")
+ENDIF()
+
+SET(PROJECT_VERSION ${LEMON_VERSION})
+
+SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+
+FIND_PACKAGE(Doxygen)
+FIND_PACKAGE(Ghostscript)
+
+SET(LEMON_ENABLE_GLPK YES CACHE STRING "Enable GLPK solver backend.")
+SET(LEMON_ENABLE_ILOG YES CACHE STRING "Enable ILOG (CPLEX) solver backend.")
+SET(LEMON_ENABLE_COIN YES CACHE STRING "Enable COIN solver backend.")
+SET(LEMON_ENABLE_SOPLEX YES CACHE STRING "Enable SoPlex solver backend.")
+
+IF(LEMON_ENABLE_GLPK) 
+  FIND_PACKAGE(GLPK 4.33)
+ENDIF(LEMON_ENABLE_GLPK)
+IF(LEMON_ENABLE_ILOG)
+  FIND_PACKAGE(ILOG)
+ENDIF(LEMON_ENABLE_ILOG)
+IF(LEMON_ENABLE_COIN)
+  FIND_PACKAGE(COIN)
+ENDIF(LEMON_ENABLE_COIN)
+IF(LEMON_ENABLE_SOPLEX)
+  FIND_PACKAGE(SOPLEX)
+ENDIF(LEMON_ENABLE_SOPLEX)
+
+IF(GLPK_FOUND)
+  SET(LEMON_HAVE_LP TRUE)
+  SET(LEMON_HAVE_MIP TRUE)
+  SET(LEMON_HAVE_GLPK TRUE)
+ENDIF(GLPK_FOUND)
+IF(ILOG_FOUND)
+  SET(LEMON_HAVE_LP TRUE)
+  SET(LEMON_HAVE_MIP TRUE)
+  SET(LEMON_HAVE_CPLEX TRUE)
+ENDIF(ILOG_FOUND)
+IF(COIN_FOUND)
+  SET(LEMON_HAVE_LP TRUE)
+  SET(LEMON_HAVE_MIP TRUE)
+  SET(LEMON_HAVE_CLP TRUE)
+  SET(LEMON_HAVE_CBC TRUE)
+ENDIF(COIN_FOUND)
+IF(SOPLEX_FOUND)
+  SET(LEMON_HAVE_LP TRUE)
+  SET(LEMON_HAVE_SOPLEX TRUE)
+ENDIF(SOPLEX_FOUND)
+
+IF(ILOG_FOUND)
+  SET(DEFAULT_LP "CPLEX")
+  SET(DEFAULT_MIP "CPLEX")
+ELSEIF(COIN_FOUND)
+  SET(DEFAULT_LP "CLP")
+  SET(DEFAULT_MIP "CBC")
+ELSEIF(GLPK_FOUND)
+  SET(DEFAULT_LP "GLPK")
+  SET(DEFAULT_MIP "GLPK")
+ELSEIF(SOPLEX_FOUND)
+  SET(DEFAULT_LP "SOPLEX")
+ENDIF()
+
+IF(NOT LEMON_DEFAULT_LP OR
+    (NOT ILOG_FOUND AND (LEMON_DEFAULT_LP STREQUAL "CPLEX")) OR
+    (NOT COIN_FOUND AND (LEMON_DEFAULT_LP STREQUAL "CLP")) OR
+    (NOT GLPK_FOUND AND (LEMON_DEFAULT_LP STREQUAL "GLPK")) OR
+    (NOT SOPLEX_FOUND AND (LEMON_DEFAULT_LP STREQUAL "SOPLEX")))
+  SET(LEMON_DEFAULT_LP ${DEFAULT_LP} CACHE STRING
+    "Default LP solver backend (GLPK, CPLEX, CLP or SOPLEX)" FORCE)
+ELSE()
+  SET(LEMON_DEFAULT_LP ${DEFAULT_LP} CACHE STRING
+    "Default LP solver backend (GLPK, CPLEX, CLP or SOPLEX)")
+ENDIF()
+IF(NOT LEMON_DEFAULT_MIP OR
+    (NOT ILOG_FOUND AND (LEMON_DEFAULT_MIP STREQUAL "CPLEX")) OR
+    (NOT COIN_FOUND AND (LEMON_DEFAULT_MIP STREQUAL "CBC")) OR
+    (NOT GLPK_FOUND AND (LEMON_DEFAULT_MIP STREQUAL "GLPK")))
+  SET(LEMON_DEFAULT_MIP ${DEFAULT_MIP} CACHE STRING
+    "Default MIP solver backend (GLPK, CPLEX or CBC)" FORCE)
+ELSE()
+  SET(LEMON_DEFAULT_MIP ${DEFAULT_MIP} CACHE STRING
+    "Default MIP solver backend (GLPK, CPLEX or CBC)")
+ENDIF()
+
+
+IF(DEFINED ENV{LEMON_CXX_WARNING})
+  SET(CXX_WARNING $ENV{LEMON_CXX_WARNING})
+ELSE()
+  IF(CMAKE_COMPILER_IS_GNUCXX)
+    SET(CXX_WARNING "-Wall -W -Wunused -Wformat=2 -Wctor-dtor-privacy -Wnon-virtual-dtor -Wno-char-subscripts -Wwrite-strings -Wno-char-subscripts -Wreturn-type -Wcast-qual -Wcast-align -Wsign-promo -Woverloaded-virtual -fno-strict-aliasing -Wold-style-cast -Wno-unknown-pragmas")
+    SET(CMAKE_CXX_FLAGS_DEBUG CACHE STRING "-ggdb")
+    SET(CMAKE_C_FLAGS_DEBUG CACHE STRING "-ggdb")
+  ELSEIF(MSVC)
+    # This part is unnecessary 'casue the same is set by the lemon/core.h.
+    # Still keep it as an example.
+    SET(CXX_WARNING "/wd4250 /wd4355 /wd4503 /wd4800 /wd4996")
+    # Suppressed warnings:
+    # C4250: 'class1' : inherits 'class2::member' via dominance
+    # C4355: 'this' : used in

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list