diff --git a/.gitignore b/.gitignore index 9a1d742f1fe..497b9aedf40 100644 --- a/.gitignore +++ b/.gitignore @@ -623,7 +623,6 @@ Point_set_processing_3/examples/Point_set_processing_3/normal_estimation Point_set_processing_3/examples/Point_set_processing_3/oni_copy.xyz Point_set_processing_3/examples/Point_set_processing_3/property_map Point_set_processing_3/examples/Point_set_processing_3/sphere_20k_copy.xyz -Point_set_processing_3/include/CGAL/*.Taucs_symmetric_solver_traits Point_set_processing_3/include/CGAL/*.object_pool Point_set_processing_3/include/CGAL/*.pool Point_set_processing_3/include/CGAL/*.reserve_RAM @@ -879,7 +878,6 @@ Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/APSS_re Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/AQtimeProject Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/Makefile Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/poisson_reconstruction -Surface_reconstruction_points_3/include/CGAL/*.Taucs_symmetric_solver_traits Surface_reconstruction_points_3/include/CGAL/*.object_pool Surface_reconstruction_points_3/include/CGAL/*.pool Surface_reconstruction_points_3/include/CGAL/*.reserve_RAM diff --git a/Documentation/doc/Documentation/Installation.txt b/Documentation/doc/Documentation/Installation.txt index 69b7bd5ff4e..e14d5f1c3de 100644 --- a/Documentation/doc/Documentation/Installation.txt +++ b/Documentation/doc/Documentation/Installation.txt @@ -703,7 +703,7 @@ cmake -DWITH_examples=OFF -DWITH_demos=OFF -DCMAKE_BUILD_TYPE=Release -- Build type: Release -- USING CXXFLAGS = ' -frounding-math -O3 -DNDEBUG' -- USING LDFLAGS = ' ' --- External libraries supported: GMP;GMPXX;MPFR;zlib;OpenGL;LEDA;MPFI;RS;RS3;OpenNL;TAUCS;EIGEN3;BLAS;LAPACK;QGLViewer;ESBTL;NTL +-- External libraries supported: GMP;GMPXX;MPFR;zlib;OpenGL;LEDA;MPFI;RS;RS3;OpenNL;EIGEN3;BLAS;LAPACK;QGLViewer;ESBTL;NTL -- Preconfiguring library: GMP ... -- GMP has been preconfigured: -- CGAL_UseGMP-file: diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index 8388edb6513..58ace08b910 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -512,7 +512,7 @@ endmacro() # External libs Qt3 and Qt34are configured when Qt3 or Qt4 as lib of cgal are required # Coin is used in KDS, but no FindCoin or FindCOIN exists # There exists FindF2C, FindIPE, FindMKL, but they are only used to support supporting libs -list (INSERT CGAL_SUPPORTING_3RD_PARTY_LIBRARIES 0 GMP MPFR ZLIB OpenGL LEDA MPFI RS RS3 OpenNL TAUCS Eigen3 BLAS LAPACK QGLViewer ESBTL Coin3D NTL IPE) +list (INSERT CGAL_SUPPORTING_3RD_PARTY_LIBRARIES 0 GMP MPFR ZLIB OpenGL LEDA MPFI RS RS3 OpenNL Eigen3 BLAS LAPACK QGLViewer ESBTL Coin3D NTL IPE) if (NOT WIN32) # GMPXX is not supported on WIN32 machines list (INSERT CGAL_SUPPORTING_3RD_PARTY_LIBRARIES 1 GMPXX) @@ -856,11 +856,6 @@ if ( GMP_IN_AUXILIARY ) install(DIRECTORY auxiliary/gmp/lib/ DESTINATION ${CGAL_INSTALL_LIB_DIR} ) endif() -if ( TAUCS_IN_AUXILIARY ) - install(DIRECTORY auxiliary/taucs/include/ DESTINATION ${CGAL_INSTALL_INC_DIR} ) - install(DIRECTORY auxiliary/taucs/lib/ DESTINATION ${CGAL_INSTALL_LIB_DIR} ) -endif() - if ( ZLIB_IN_AUXILIARY ) install(DIRECTORY auxiliary/zlib/include/ DESTINATION ${CGAL_INSTALL_INC_DIR} ) install(DIRECTORY auxiliary/zlib/lib/ DESTINATION ${CGAL_INSTALL_LIB_DIR} ) diff --git a/Installation/INSTALL b/Installation/INSTALL index 0684a1c3756..70f22546404 100644 --- a/Installation/INSTALL +++ b/Installation/INSTALL @@ -95,16 +95,6 @@ CGAL packages, some are only needed for demos. http://www.netlib.org/blas/, http://www.netlib.org/lapack/ or precompiled version that can be downloaded with CGAL-x.y-Setup.exe - - TAUCS (sparse matrix solver) - Required by the package (if EIGEN is not available): - o Surface Reconstruction from Point Sets - Accelerates the package: - o Planar Parameterization of Triangulated Surface Meshes - http://www.tau.ac.il/~stoledo/taucs/ - The version to used is available at - https://gforge.inria.fr/frs/download.php/24628/taucs_full.tgz - or automatically downloaded with CGAL-x.y-Setup.exe on Windows. - - MPFI Required by the package: o Algebraic Kernel diff --git a/Installation/auxiliary/taucs/include/README b/Installation/auxiliary/taucs/include/README deleted file mode 100644 index 865721a3964..00000000000 --- a/Installation/auxiliary/taucs/include/README +++ /dev/null @@ -1,2 +0,0 @@ -If the Windows installer is used, this directory will contain headers of -the BLAS, LAPACK, and TAUCS libraries. diff --git a/Installation/auxiliary/taucs/lib/README b/Installation/auxiliary/taucs/lib/README deleted file mode 100644 index 270d1640366..00000000000 --- a/Installation/auxiliary/taucs/lib/README +++ /dev/null @@ -1,2 +0,0 @@ -If the Windows installer is used, this directory will contain precompiled -binaries of the BLAS, LAPACK, and TAUCS libraries. diff --git a/Installation/config/support/print_TAUCS_version.cpp b/Installation/config/support/print_TAUCS_version.cpp deleted file mode 100644 index 6aaf3c149d4..00000000000 --- a/Installation/config/support/print_TAUCS_version.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) 2004 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org); you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public License as -// published by the Free Software Foundation; either version 3 of the License, -// or (at your option) any later version. -// -// Licensees holding a valid commercial license may use this file in -// accordance with the commercial license agreement provided with the software. -// -// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -// -// $URL: svn+ssh://fcacciola@scm.gforge.inria.fr/svn/cgal/trunk/Installation/config/support/test_TAUCS.cpp $ -// $Id: test_TAUCS.cpp 41686 2008-01-18 20:33:57Z spion $ -// -// Author(s) : Laurent Saboret - -// Test if TAUCS is available - - -#include - - -int main(int argc, char* argv[]) -{ - // TAUCS provides no version number :-( - // Version 1 is obsolete, thus we assume version 2 (latest is 2.2 on 03/2006) - std::cout << "version=2.x" << std::endl; - - return 0; -} diff --git a/Installation/config/support/test_TAUCS.cpp b/Installation/config/support/test_TAUCS.cpp deleted file mode 100644 index 746e17cba0e..00000000000 --- a/Installation/config/support/test_TAUCS.cpp +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) 2004 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org); you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public License as -// published by the Free Software Foundation; either version 3 of the License, -// or (at your option) any later version. -// -// Licensees holding a valid commercial license may use this file in -// accordance with the commercial license agreement provided with the software. -// -// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -// -// $URL$ -// $Id$ -// -// Author(s) : Laurent Saboret - -// Test if TAUCS is available - - -#include -#include -#include -#include -#include - -#define TAUCS_CORE_DOUBLE - -// In GCC 3.x, includes and -// complains if we include within "extern C {}" -#if defined(__GNUC__) - #undef __DEPRECATED - #include -#endif - -extern "C" -{ - // Include TAUCS main header taucs.h - #include -} - -// Avoid error with std::min() and std::max() -#undef min -#undef max - - -int main(int argc, char* argv[]) -{ - // Create a TAUCS matrix to link with TAUCS main library - int m = 4,n = 4,nnz = 4, i; - taucs_ccs_matrix* pMatrix = taucs_ccs_create(m, n, nnz, TAUCS_DOUBLE); - pMatrix->colptr[0] = 0; - pMatrix->colptr[1] = 4; - for ( i = 0; i < 4; i++ ) - { - pMatrix->rowind[i] = i; - pMatrix->taucs_values[i] = i; - } - - // Call a method needing TAUCS external library Metis - int* perm; - int* invperm; - taucs_ccs_order(pMatrix, - &perm, - &invperm, - (char*)"metis"); - - // Call dpotrf() Lapack routine (Cholesky factorization) - int sn_size = 0; - int lda = 1; - int info; - taucs_potrf((char*)"LOWER", - &sn_size, - NULL, - &lda, - &info); - - // ftime() is in compat lib. on FreeBSD and crypto lib. on MacOSX - struct timeb tb; - ftime(&tb); - - // TAUCS provides no version number :-( - // Version 1 is obsolete, thus we assume version 2 (latest is 2.2 on 03/2006) - std::cout << "version=2.x" << std::endl; - - // clean up - taucs_dccs_free(pMatrix); - - return 0; -} diff --git a/Maintenance/test_handling/to_zipped_format b/Maintenance/test_handling/to_zipped_format index 5fc0805a552..76103d53b96 100755 --- a/Maintenance/test_handling/to_zipped_format +++ b/Maintenance/test_handling/to_zipped_format @@ -84,18 +84,9 @@ sub reformat_results($) if (/ZLIB_VERSION = '([^']+)'/) { $ZLIB="$1"; } -# if (/BLAS_VERSION = '([^']+)'/) { -# $BLAS="+"; -# } -# if (/LAPACK_VERSION = '([^']+)'/) { -# $LAPACK="+"; -# } if (/OPENGL_VERSION = '([^']+)'/) { $OPENGL="$1"; } -# if (/TAUCS_VERSION = '([^']+)'/) { -# $TAUCS="$1"; -# } if (/GMP_VERSION = '([^']+)'/) { $GMP="$1"; } diff --git a/Point_set_processing_3/examples/Point_set_processing_3/CMakeLists.txt b/Point_set_processing_3/examples/Point_set_processing_3/CMakeLists.txt index 3a22cc8e781..49501a89822 100644 --- a/Point_set_processing_3/examples/Point_set_processing_3/CMakeLists.txt +++ b/Point_set_processing_3/examples/Point_set_processing_3/CMakeLists.txt @@ -27,10 +27,6 @@ if ( CGAL_FOUND ) # VisualC++ optimization for applications dealing with large data if (MSVC) - # Use /EHa option to catch stack overflows. - # Note: TAUCS needs a stack >= 2MB. CGAL default is 10MB. - string(REGEX REPLACE "/EH[asc]*" "/EHa" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - # Use /FR to turn on IntelliSense SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FR") diff --git a/Point_set_processing_3/test/Point_set_processing_3/CMakeLists.txt b/Point_set_processing_3/test/Point_set_processing_3/CMakeLists.txt index 0b5ca7d9625..f6a3ac83a5b 100644 --- a/Point_set_processing_3/test/Point_set_processing_3/CMakeLists.txt +++ b/Point_set_processing_3/test/Point_set_processing_3/CMakeLists.txt @@ -25,10 +25,6 @@ if ( CGAL_FOUND ) # VisualC++ optimization for applications dealing with large data if (MSVC) - # Use /EHa option to catch stack overflows. - # Note: TAUCS needs a stack >= 2MB. CGAL default is 10MB. - string(REGEX REPLACE "/EH[asc]*" "/EHa" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - # Use /FR to turn on IntelliSense SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FR") diff --git a/Polyhedron/demo/Polyhedron/CMakeLists.txt b/Polyhedron/demo/Polyhedron/CMakeLists.txt index 864d0144e73..fc1d9c11958 100644 --- a/Polyhedron/demo/Polyhedron/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/CMakeLists.txt @@ -61,14 +61,10 @@ endif(QT4_FOUND) -# Eigen is required by default find_package(Eigen3 3.1.0) #(requires 3.1.0 or greater) if (EIGEN3_FOUND) include( ${EIGEN3_USE_FILE} ) -else() - message(STATUS "NOTICE: parametrization, poisson reconstruction and curvatures estimation plugins require Eigen 3.1 (or greater) and will not be available.") -endif() - +endif(EIGEN3_FOUND) if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND) @@ -177,7 +173,7 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND) target_link_libraries(scene_combinatorial_map_item scene_polyhedron_item) add_item(scene_polylines_item Scene_polylines_item.cpp Scene_polylines_item.moc) - + add_item(scene_polyhedron_item_decorator Scene_polyhedron_item_decorator.cpp Scene_polyhedron_item_decorator.moc) target_link_libraries(scene_polyhedron_item_decorator scene_polyhedron_item) @@ -330,21 +326,11 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND) if(EIGEN3_FOUND) polyhedron_demo_plugin(parameterization_plugin Polyhedron_demo_parameterization_plugin) target_link_libraries(parameterization_plugin scene_polyhedron_item scene_textured_polyhedron_item ) - endif() - - if(EIGEN3_FOUND) + qt4_wrap_ui( poissonUI_FILES Polyhedron_demo_poisson_plugin.ui) polyhedron_demo_plugin(poisson_plugin Polyhedron_demo_poisson_plugin Polyhedron_demo_poisson_plugin_impl.cpp ${poissonUI_FILES}) target_link_libraries(poisson_plugin scene_polyhedron_item scene_points_with_normal_item) - endif() - - - # Link with BLAS and LAPACK only (optional), for Jet Fitting - if (NOT EIGEN3_FOUND AND LAPACK_FOUND) - include( ${LAPACK_USE_FILE} ) - endif() - - if(EIGEN3_FOUND OR LAPACK_FOUND) + qt4_wrap_ui( normal_estimationUI_FILES Polyhedron_demo_normal_estimation_plugin.ui) polyhedron_demo_plugin(normal_estimation_plugin Polyhedron_demo_normal_estimation_plugin ${normal_estimationUI_FILES}) target_link_libraries(normal_estimation_plugin scene_points_with_normal_item) @@ -357,10 +343,14 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND) polyhedron_demo_plugin(jet_fitting_plugin Polyhedron_demo_jet_fitting_plugin) target_link_libraries(jet_fitting_plugin scene_polyhedron_item scene_polylines_item) - - else(EIGEN3_FOUND OR LAPACK_FOUND) - message(STATUS "NOTICE: Normal estimation and smoothing plugins require Eigen 3.1 (or greater) or LAPACK libraries and will not be available.") - endif(EIGEN3_FOUND OR LAPACK_FOUND) + else(EIGEN3_FOUND) + message(STATUS "NOTICE: Eigen 3.1 (or greater) was not found. Parameterization plugin will not be available.") + message(STATUS "NOTICE: Eigen 3.1 (or greater) was not found. Poisson reconstruction plugin will not be available.") + message(STATUS "NOTICE: Eigen 3.1 (or greater) was not found. Normal estimation plugin will not be available.") + message(STATUS "NOTICE: Eigen 3.1 (or greater) was not found. Smoothing plugin will not be available.") + message(STATUS "NOTICE: Eigen 3.1 (or greater) was not found. Average spacing plugin will not be available.") + message(STATUS "NOTICE: Eigen 3.1 (or greater) was not found. Jet fitting plugin will not be available.") + endif(EIGEN3_FOUND) polyhedron_demo_plugin(self_intersection_plugin Polyhedron_demo_self_intersection_plugin) target_link_libraries(self_intersection_plugin scene_polyhedron_item) diff --git a/Polyhedron/demo/Polyhedron/Polyhedron_demo_poisson_plugin.cpp b/Polyhedron/demo/Polyhedron/Polyhedron_demo_poisson_plugin.cpp index 4dff15b0416..b6b5a03b69c 100644 --- a/Polyhedron/demo/Polyhedron/Polyhedron_demo_poisson_plugin.cpp +++ b/Polyhedron/demo/Polyhedron/Polyhedron_demo_poisson_plugin.cpp @@ -60,11 +60,7 @@ class Polyhedron_demo_poisson_plugin_dialog : public QDialog, private Ui::Poisso Polyhedron_demo_poisson_plugin_dialog(QWidget* /*parent*/ = 0) { setupUi(this); - - #ifdef CGAL_TAUCS_ENABLED - m_inputSolver->addItem("Taucs"); - #endif - + #ifdef CGAL_EIGEN3_ENABLED m_inputSolver->addItem("Eigen - built-in simplicial LDLt"); m_inputSolver->addItem("Eigen - built-in CG"); diff --git a/Polyhedron/demo/Polyhedron/Polyhedron_demo_poisson_plugin_impl.cpp b/Polyhedron/demo/Polyhedron/Polyhedron_demo_poisson_plugin_impl.cpp index 461f79e273e..c1232ec2e40 100644 --- a/Polyhedron/demo/Polyhedron/Polyhedron_demo_poisson_plugin_impl.cpp +++ b/Polyhedron/demo/Polyhedron/Polyhedron_demo_poisson_plugin_impl.cpp @@ -16,9 +16,6 @@ #include #include -#ifdef CGAL_TAUCS_ENABLED -#include -#endif #ifdef CGAL_EIGEN3_ENABLED #include #endif @@ -90,27 +87,7 @@ Polyhedron* poisson_reconstruct(const Point_set& points, points.begin(), points.end(), CGAL::make_normal_of_point_with_normal_pmap(Point_set::value_type())); - bool ok = false; - #ifdef CGAL_TAUCS_ENABLED - if(solver_name=="Taucs") - { - // Creates sparse linear solver: - // TAUCS out-of-core Multifrontal Supernodal Cholesky Factorization - const char* OOC_SUPERNODAL_CHOLESKY_FACTORIZATION[] = - { - "taucs.factor.LLT=true", - "taucs.factor.mf=true", - "taucs.factor.ordering=metis", - "taucs.ooc=true", "taucs.ooc.basename=taucs-ooc", - NULL - }; - unlink("taucs-ooc.0"); // make sure TAUCS ooc file does not exist - CGAL::Taucs_symmetric_solver_traits solver(OOC_SUPERNODAL_CHOLESKY_FACTORIZATION); - - ok = function.compute_implicit_function(solver, use_two_passes); - } - #endif - + bool ok = false; #ifdef CGAL_EIGEN3_ENABLED if(solver_name=="Eigen - built-in simplicial LDLt") { diff --git a/Scripts/developer_scripts/cgal_generate_cmake_script.cmake b/Scripts/developer_scripts/cgal_generate_cmake_script.cmake index 8d8a5aca698..0f870867754 100644 --- a/Scripts/developer_scripts/cgal_generate_cmake_script.cmake +++ b/Scripts/developer_scripts/cgal_generate_cmake_script.cmake @@ -123,7 +123,6 @@ foreach( component ${CGAL_COMPONENTS}) set(component ${rewrote_component}) string(REGEX REPLACE "([o|O][p|P][e|E][n|N][n|N][l|L])" "OpenNL" rewrote_component ${component}) set(component ${rewrote_component}) - string(REGEX REPLACE "([t|T][a|A][u|U][c|C][s|S])" "TAUCS" rewrote_component ${component}) set(component ${rewrote_component}) string(REGEX REPLACE "([b|B][l|L][a|A][s|S])" "BLAS" rewrote_component ${component}) set(component ${rewrote_component}) diff --git a/Scripts/scripts/cgal_create_CMakeLists b/Scripts/scripts/cgal_create_CMakeLists index c0e01cca64f..4304fa74c1b 100755 --- a/Scripts/scripts/cgal_create_CMakeLists +++ b/Scripts/scripts/cgal_create_CMakeLists @@ -33,7 +33,6 @@ #MPFR #MPFI #RS -#TAUCS #BLAS #LAPACK #OPENNL @@ -157,7 +156,6 @@ fi CGAL_COMPONENTS=${CGAL_COMPONENTS//[r|R][s|S]/RS} CGAL_COMPONENTS=${CGAL_COMPONENTS//[o|O][p|P][e|E][n|N][n|N][l|L]/OpenNL} - CGAL_COMPONENTS=${CGAL_COMPONENTS//[t|T][a|A][u|U][c|C][s|S]/TAUCS} CGAL_COMPONENTS=${CGAL_COMPONENTS//[b|B][l|L][a|A][s|S]/BLAS} CGAL_COMPONENTS=${CGAL_COMPONENTS//[l|L][a|A][p|P][a|A][c|C][k|K]/LAPACK} diff --git a/Solver_interface/include/CGAL/Eigen_matrix.h b/Solver_interface/include/CGAL/Eigen_matrix.h index f3480ff03fb..fe424666c8e 100644 --- a/Solver_interface/include/CGAL/Eigen_matrix.h +++ b/Solver_interface/include/CGAL/Eigen_matrix.h @@ -93,7 +93,7 @@ public: m_triplets.reserve(rows); } - /// Delete this object and the wrapped TAUCS matrix. + /// Delete this object and the wrapped matrix. ~Eigen_sparse_matrix() { } diff --git a/Solver_interface/include/CGAL/Eigen_vector.h b/Solver_interface/include/CGAL/Eigen_vector.h index 038cb1945df..6280e289be1 100644 --- a/Solver_interface/include/CGAL/Eigen_vector.h +++ b/Solver_interface/include/CGAL/Eigen_vector.h @@ -75,7 +75,7 @@ public: return this->size(); } - /// Get TAUCS vector wrapped by this object. + /// Get vector wrapped by this object. const EigenType& eigen_object() const { return *this; } diff --git a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/CMakeLists.txt b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/CMakeLists.txt index 5e637a95f92..2130b342647 100644 --- a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/CMakeLists.txt +++ b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/CMakeLists.txt @@ -26,10 +26,6 @@ if ( CGAL_FOUND ) # VisualC++ optimization for applications dealing with large data if (MSVC) - # Use /EHa option to catch stack overflows. - # Note: TAUCS needs a stack >= 2MB. CGAL default is 10MB. - string(REGEX REPLACE "/EH[asc]*" "/EHa" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - # Use /FR to turn on IntelliSense SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FR") @@ -70,41 +66,23 @@ if ( CGAL_FOUND ) list(APPEND CGAL_3RD_PARTY_LIBRARIES ${Boost_PROGRAM_OPTIONS_LIBRARY}) endif() - # Executables that do *not* use TAUCS + # Executables that do *not* require Eigen create_single_source_cgal_program( "Authalic_parameterization.cpp" ) create_single_source_cgal_program( "Mesh_cutting_parameterization.cpp" ) create_single_source_cgal_program( "Simple_parameterization.cpp" ) create_single_source_cgal_program( "Square_border_parameterization.cpp" ) - - # use either Eigen or TAUCS BLAS/LAPACK find_package(Eigen3 3.1.0) #(requires 3.1.0 or greater) - if (EIGEN3_FOUND) - include( ${EIGEN3_USE_FILE} ) - endif() - # Link with BLAS, LAPACK and TAUCS (optional) - find_package(TAUCS) - if(TAUCS_FOUND) - include( ${TAUCS_USE_FILE} ) - endif(TAUCS_FOUND) - if (EIGEN3_FOUND) # Executables that require Eigen 3.1 + include( ${EIGEN3_USE_FILE} ) create_single_source_cgal_program( "Complete_parameterization_example.cpp" ) create_single_source_cgal_program( "Eigen_parameterization.cpp" ) else(EIGEN3_FOUND) - message(STATUS "NOTICE: Example Complete_parameterization_example.cpp requires Eigen 3.1 (or greater) and will not be compiled.") + message(STATUS "NOTICE: Some examples require Eigen 3.1 (or greater) and will not be compiled.") endif(EIGEN3_FOUND) - - if (TAUCS_FOUND) - # Executables that require TAUCS (thus BLAS and LAPACK) - create_single_source_cgal_program( "Taucs_parameterization.cpp" ) - else(TAUCS_FOUND) - message(STATUS "NOTICE: Example Taucs_parameterization.cpp requires TAUCS and will not be compiled.") - endif(TAUCS_FOUND) - # Executable that can use TAUCS or not, depending on the macro CGAL_USE_TAUCS create_single_source_cgal_program( "polyhedron_ex_parameterization.cpp" ) else() diff --git a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/Complete_parameterization_example.cmd b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/Complete_parameterization_example.cmd index fcd3445e5a6..6e66b06f51f 100644 --- a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/Complete_parameterization_example.cmd +++ b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/Complete_parameterization_example.cmd @@ -1 +1 @@ -data/sphere966.off sphere966_authalic_square_taucs_parameterized.eps +data/sphere966.off sphere966_authalic_square_opennl_parameterized.eps diff --git a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/Taucs_parameterization.cmd b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/Taucs_parameterization.cmd deleted file mode 100644 index c85f1308eb3..00000000000 --- a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/Taucs_parameterization.cmd +++ /dev/null @@ -1 +0,0 @@ -data/mannequin-devil.off diff --git a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/Taucs_parameterization.cpp b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/Taucs_parameterization.cpp deleted file mode 100644 index 670c7e92d03..00000000000 --- a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/Taucs_parameterization.cpp +++ /dev/null @@ -1,122 +0,0 @@ -#include -#include -#include -#include -#include - -#include - -#include -#include -#include - - -// ---------------------------------------------------------------------------- -// Private types -// ---------------------------------------------------------------------------- - -typedef CGAL::Simple_cartesian Kernel; -typedef CGAL::Polyhedron_3 Polyhedron; - - -// ---------------------------------------------------------------------------- -// main() -// ---------------------------------------------------------------------------- - -int main(int argc, char * argv[]) -{ - std::cerr << "PARAMETERIZATION" << std::endl; - std::cerr << " Floater parameterization" << std::endl; - std::cerr << " Circle border" << std::endl; - std::cerr << " TAUCS solver" << std::endl; - - //*************************************** - // decode parameters - //*************************************** - - if (argc-1 != 1) - { - std::cerr << "Usage: " << argv[0] << " input_file.off" << std::endl; - return(EXIT_FAILURE); - } - - // File name is: - const char* input_filename = argv[1]; - - //*************************************** - // Read the mesh - //*************************************** - - // Read the mesh - std::ifstream stream(input_filename); - Polyhedron mesh; - stream >> mesh; - if(!stream || !mesh.is_valid() || mesh.empty()) - { - std::cerr << "Error: cannot read OFF file " << input_filename << std::endl; - return EXIT_FAILURE; - } - - //*************************************** - // Create Polyhedron adaptor - // Note: no cutting => we support only - // meshes that are topological disks - //*************************************** - - typedef CGAL::Parameterization_polyhedron_adaptor_3 - Parameterization_polyhedron_adaptor; - Parameterization_polyhedron_adaptor mesh_adaptor(mesh); - - //*************************************** - // Floater Mean Value Coordinates parameterization - // (circular border) with TAUCS solver - //*************************************** - - // Circular border parameterizer (the default) - typedef CGAL::Circular_border_arc_length_parameterizer_3 - Border_parameterizer; - // TAUCS solver - typedef CGAL::Taucs_solver_traits Solver; - - // Floater Mean Value Coordinates parameterization - // (circular border) with TAUCS solver - typedef CGAL::Mean_value_coordinates_parameterizer_3 - Parameterizer; - - Parameterizer::Error_code err = CGAL::parameterize(mesh_adaptor, Parameterizer()); - switch(err) { - case Parameterizer::OK: // Success - break; - case Parameterizer::ERROR_EMPTY_MESH: // Input mesh not supported - case Parameterizer::ERROR_NON_TRIANGULAR_MESH: - case Parameterizer::ERROR_NO_TOPOLOGICAL_DISC: - case Parameterizer::ERROR_BORDER_TOO_SHORT: - std::cerr << "Input mesh not supported: " << Parameterizer::get_error_message(err) << std::endl; - return EXIT_FAILURE; - break; - default: // Error - std::cerr << "Error: " << Parameterizer::get_error_message(err) << std::endl; - return EXIT_FAILURE; - break; - }; - - //*************************************** - // Output - //*************************************** - - // Raw output: dump (u,v) pairs - Polyhedron::Vertex_const_iterator pVertex; - for (pVertex = mesh.vertices_begin(); - pVertex != mesh.vertices_end(); - pVertex++) - { - // (u,v) pair is stored in any halfedge - double u = mesh_adaptor.info(pVertex->halfedge())->uv().x(); - double v = mesh_adaptor.info(pVertex->halfedge())->uv().y(); - std::cout << "(u,v) = (" << u << "," << v << ")" << std::endl; - } - - return EXIT_SUCCESS; -} diff --git a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/polyhedron_ex_parameterization.cpp b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/polyhedron_ex_parameterization.cpp index 8e52d4a3f4e..9fc63d2da68 100644 --- a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/polyhedron_ex_parameterization.cpp +++ b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/polyhedron_ex_parameterization.cpp @@ -11,15 +11,6 @@ //---------------------------------------------------------- // polyhedron_ex_parameterization -t conformal -b circle mesh.off mesh.eps -//---------------------------------------------------------- -// floater parameterization -// square border -// TAUCS solver -// output is a eps map -// input file is mesh.off -//---------------------------------------------------------- -// polyhedron_ex_parameterization -t floater -b square -s taucs mesh.off mesh.eps - //---------------------------------------------------------- // Least Squares Conformal Maps parameterization // two pinned vertices (automatically picked) @@ -44,9 +35,6 @@ #include #include -#ifdef CGAL_USE_TAUCS - #include -#endif #include "Polyhedron_ex.h" #include "Mesh_cutter.h" @@ -326,7 +314,7 @@ int main() ("border,b", po::value(&border)->default_value("circle"), "border shape: circle, square or 2pts (lscm only)") ("solver,s", po::value(&solver)->default_value("opennl"), - "solver: opennl or taucs") + "solver: opennl") ("input,i", po::value(&input)->default_value(""), "input mesh (OFF)") ("output,o", po::value(&output)->default_value("out.eps"), @@ -434,18 +422,6 @@ int main() OpenNL::SymmetricLinearSolverTraits >(mesh_patch, type, border); } - else if (solver == std::string("taucs")) - { -#ifdef CGAL_USE_TAUCS - err = parameterize, - CGAL::Taucs_symmetric_solver_traits - >(mesh_patch, type, border); -#else - std::cerr << "Error: TAUCS is not installed" << std::endl; - err = Parameterizer::ERROR_WRONG_PARAMETER; -#endif - } else { std::cerr << "Error: invalid solver parameter " << solver << std::endl; diff --git a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/quick_test_suite.sh b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/quick_test_suite.sh index 7b2feb59c6b..9db48f83902 100755 --- a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/quick_test_suite.sh +++ b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/quick_test_suite.sh @@ -91,7 +91,6 @@ else run polyhedron_ex_parameterization run Simple_parameterization run Square_border_parameterization - run Taucs_parameterization fi #---------------------------------------------------------------------# diff --git a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/test.sh b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/test.sh index 8af3e42f0d9..9ff903b3e47 100755 --- a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/test.sh +++ b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/test.sh @@ -3,7 +3,6 @@ # Utility script to run the surface parameterization example without knowing the executable name # Usage: test.sh parameterization-method border-parameterization solver output-format source-file-root # Example: test.sh floater circle opennl obj sphere966 -# Example: test.sh lscm 2pts taucs eps sphere966 # Find executable name (different on Windows and Unix) [ -f ./debug/polyhedron_ex_parameterization.exe ] && PARAM_APPLICATION="./debug/polyhedron_ex_parameterization.exe" diff --git a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/test_model.sh b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/test_model.sh index ef13e8ba92a..01c012231e3 100755 --- a/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/test_model.sh +++ b/Surface_mesh_parameterization/examples/Surface_mesh_parameterization/test_model.sh @@ -10,24 +10,14 @@ echo "" ./test.sh barycentric square opennl eps "$1" echo " -" -./test.sh barycentric circle taucs obj "$1" -echo " -" ./test.sh floater circle opennl obj "$1" echo " -" -./test.sh floater square taucs eps "$1" -echo " -" -./test.sh conformal circle taucs obj "$1" -echo " -" ./test.sh conformal square opennl eps "$1" echo " -" -./test.sh authalic square taucs obj "$1" -echo " -" # Skip authalic/opennl test which is very unstable # ./test.sh authalic circle opennl eps "$1" # echo " -" ./test.sh lscm 2pts opennl obj "$1" -echo " -" -./test.sh lscm 2pts taucs eps "$1" echo "" echo " ************************" diff --git a/Surface_mesh_parameterization/package_info/Surface_mesh_parameterization/description.txt b/Surface_mesh_parameterization/package_info/Surface_mesh_parameterization/description.txt index 1ab1cd80865..f07a8b2dc29 100644 --- a/Surface_mesh_parameterization/package_info/Surface_mesh_parameterization/description.txt +++ b/Surface_mesh_parameterization/package_info/Surface_mesh_parameterization/description.txt @@ -14,6 +14,6 @@ The package proposes currently an interface with CGAL Polyhedron_3 data structur Since parameterizing meshes require efficient representation of sparse matrices and efficient iterative or direct linear solvers, we provide links to standard -libraries (TAUCS) and propose a separate package devoted to OpenNL +libraries (Eigen3) and propose a separate package devoted to OpenNL sparse linear solver (Levy). diff --git a/Surface_mesh_parameterization/test/Surface_mesh_parameterization/CMakeLists.txt b/Surface_mesh_parameterization/test/Surface_mesh_parameterization/CMakeLists.txt index 3eddcab76f6..6cdad13b851 100644 --- a/Surface_mesh_parameterization/test/Surface_mesh_parameterization/CMakeLists.txt +++ b/Surface_mesh_parameterization/test/Surface_mesh_parameterization/CMakeLists.txt @@ -26,10 +26,6 @@ if ( CGAL_FOUND ) # VisualC++ optimization for applications dealing with large data if (MSVC) - # Use /EHa option to catch stack overflows. - # Note: TAUCS needs a stack >= 2MB. CGAL default is 10MB. - string(REGEX REPLACE "/EH[asc]*" "/EHa" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - # Use /FR to turn on IntelliSense SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FR") @@ -65,21 +61,11 @@ if ( CGAL_FOUND ) include( ${EIGEN3_USE_FILE} ) endif() - #find TAUCS - find_package(TAUCS) - if(TAUCS_FOUND) - include( ${TAUCS_USE_FILE} ) - endif(TAUCS_FOUND) - - if(NOT TAUCS_FOUND) - message(STATUS "NOTICE: This directory requires the TAUCS library, and some features will not be available.") - endif(NOT TAUCS_FOUND) - if(NOT EIGEN3_FOUND) message(STATUS "NOTICE: This directory requires Eigen 3.1 (or greater), and some features will not be available.") endif() - # Executable that can use EIGEN/TAUCS or not, depending on the macro CGAL_EIGEN3_ENABLED/CGAL_USE_TAUCS + # Executable that can use EIGEN or not, depending on the macro CGAL_EIGEN3_ENABLED create_single_source_cgal_program( "extensive_parameterization_test.cpp" ) else() diff --git a/Surface_mesh_parameterization/test/Surface_mesh_parameterization/extensive_parameterization_test.cpp b/Surface_mesh_parameterization/test/Surface_mesh_parameterization/extensive_parameterization_test.cpp index 66267da2607..5c61ef8b5cb 100644 --- a/Surface_mesh_parameterization/test/Surface_mesh_parameterization/extensive_parameterization_test.cpp +++ b/Surface_mesh_parameterization/test/Surface_mesh_parameterization/extensive_parameterization_test.cpp @@ -34,9 +34,6 @@ #ifdef CGAL_EIGEN3_ENABLED #include #endif -#ifdef CGAL_USE_TAUCS - #include -#endif // This test #include "Polyhedron_ex.h" @@ -359,121 +356,6 @@ int main(int argc, char * argv[]) std::cerr << "Parameterization: " << task_timer.time() << " seconds." << std::endl << std::endl; task_timer.reset(); -#ifdef CGAL_USE_TAUCS - - //*************************************** - // Discrete Conformal Map parameterization - // with circular arc length border parameterization - // TAUCS solver (if installed) - //*************************************** - - std::cerr << "Discrete Conformal Map parameterization" << std::endl; - std::cerr << "with circular arc length border parameterization" << std::endl; - std::cerr << "TAUCS solver" << std::endl; - - err = CGAL::parameterize( - mesh_patch, - CGAL::Discrete_conformal_map_parameterizer_3< - Mesh_patch_polyhedron, - CGAL::Circular_border_arc_length_parameterizer_3, - CGAL::Taucs_solver_traits - >()); - switch(err) { - case Parameterizer::OK: // Success - break; - case Parameterizer::ERROR_EMPTY_MESH: // Input mesh not supported - case Parameterizer::ERROR_NON_TRIANGULAR_MESH: - case Parameterizer::ERROR_NO_TOPOLOGICAL_DISC: - case Parameterizer::ERROR_BORDER_TOO_SHORT: - std::cerr << "Input mesh not supported: " << Parameterizer::get_error_message(err) << std::endl; - // this is not a bug => do not set accumulated_fatal_err - break; - default: // Error - std::cerr << "Error: " << Parameterizer::get_error_message(err) << std::endl; - accumulated_fatal_err = EXIT_FAILURE; - break; - }; - - std::cerr << "Parameterization: " << task_timer.time() << " seconds." << std::endl << std::endl; - task_timer.reset(); - - //*************************************** - // Discrete Authalic Parameterization - // with square arc length border parameterization - // TAUCS solver (if installed) - //*************************************** - - std::cerr << "Discrete Authalic Parameterization" << std::endl; - std::cerr << "with square arc length border parameterization" << std::endl; - std::cerr << "TAUCS solver" << std::endl; - - err = CGAL::parameterize( - mesh_patch, - CGAL::Discrete_authalic_parameterizer_3< - Mesh_patch_polyhedron, - CGAL::Square_border_arc_length_parameterizer_3, - CGAL::Taucs_solver_traits - >()); - switch(err) { - case Parameterizer::OK: // Success - break; - case Parameterizer::ERROR_EMPTY_MESH: // Input mesh not supported - case Parameterizer::ERROR_NON_TRIANGULAR_MESH: - case Parameterizer::ERROR_NO_TOPOLOGICAL_DISC: - case Parameterizer::ERROR_BORDER_TOO_SHORT: - std::cerr << "Input mesh not supported: " << Parameterizer::get_error_message(err) << std::endl; - // this is not a bug => do not set accumulated_fatal_err - break; - default: // Error - std::cerr << "Error: " << Parameterizer::get_error_message(err) << std::endl; - accumulated_fatal_err = EXIT_FAILURE; - break; - }; - - std::cerr << "Parameterization: " << task_timer.time() << " seconds." << std::endl << std::endl; - task_timer.reset(); - - //*************************************** - // Least Squares Conformal Maps parameterization - // TAUCS solver (if installed) - //*************************************** - - std::cerr << "Least Squares Conformal Maps parameterization" << std::endl; - std::cerr << "TAUCS solver" << std::endl; - - err = CGAL::parameterize( - mesh_patch, - CGAL::LSCM_parameterizer_3< - Mesh_patch_polyhedron, - CGAL::Two_vertices_parameterizer_3, - CGAL::Taucs_symmetric_solver_traits - >()); - switch(err) { - case Parameterizer::OK: // Success - break; - case Parameterizer::ERROR_EMPTY_MESH: // Input mesh not supported - case Parameterizer::ERROR_NON_TRIANGULAR_MESH: - case Parameterizer::ERROR_NO_TOPOLOGICAL_DISC: - case Parameterizer::ERROR_BORDER_TOO_SHORT: - std::cerr << "Input mesh not supported: " << Parameterizer::get_error_message(err) << std::endl; - // this is not a bug => do not set accumulated_fatal_err - break; - default: // Error - std::cerr << "Error: " << Parameterizer::get_error_message(err) << std::endl; - accumulated_fatal_err = EXIT_FAILURE; - break; - }; - - std::cerr << "Parameterization: " << task_timer.time() << " seconds." << std::endl << std::endl; - task_timer.reset(); - -#else - - std::cerr << "Skip TAUCS tests as TAUCS is not installed" << std::endl << std::endl; - // this is not a bug => do not set accumulated_fatal_err - -#endif // CGAL_USE_TAUCS - #ifdef CGAL_EIGEN3_ENABLED //*************************************** diff --git a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/CMakeLists.txt b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/CMakeLists.txt index 93aa5e2ed73..a2c823dbcf4 100644 --- a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/CMakeLists.txt +++ b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/CMakeLists.txt @@ -38,11 +38,6 @@ if(QT4_FOUND) find_package(QGLViewer ) endif(QT4_FOUND) -# Find BLAS, LAPACK and TAUCS (optional), for Poisson -find_package(TAUCS) - -# Find BLAS and LAPACK only (optional), for Jet Fitting -find_package(LAPACK) # Find Eigen3 (requires 3.1.0 or greater) find_package(Eigen3 3.1.0) @@ -55,28 +50,6 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND) include_directories ( ${QGLVIEWER_INCLUDE_DIR} ) - # Link with BLAS, LAPACK and TAUCS (optional), for Poisson - if(TAUCS_FOUND) - include( ${TAUCS_USE_FILE} ) - else(TAUCS_FOUND) - message(STATUS "NOTICE: TAUCS library is not found.") - endif(TAUCS_FOUND) - - if(EIGEN3_FOUND) - include( ${EIGEN3_USE_FILE} ) - else() - message(STATUS "NOTICE: Eigen library is not found.") - endif() - - # Link with BLAS and LAPACK only (optional), for Jet Fitting - if(LAPACK_FOUND) - include( ${LAPACK_USE_FILE} ) - else(LAPACK_FOUND) - if (NOT EIGEN3_FOUND) - message(STATUS "NOTICE: Nor Eigen 3.1 (or greater) nor LAPACK library were found. Normal estimation and smoothing will not be available.") - endif() - endif(LAPACK_FOUND) - if(GLEW_FOUND) include_directories ( ${GLEW_INCLUDE_DIR} ) add_definitions(-DCGAL_GLEW_ENABLED) @@ -86,10 +59,6 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND) # VisualC++ optimization for applications dealing with large data if (MSVC) - # Use /EHa option to catch stack overflows. - # Note: TAUCS needs a stack >= 2MB. CGAL default is 10MB. - string(REGEX REPLACE "/EH[asc]*" "/EHa" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - # Use /FR to turn on IntelliSense SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FR") @@ -237,15 +206,26 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND) target_link_libraries( ${plugin_name} ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} ) endmacro(point_set_demo_plugin) - if(TAUCS_FOUND OR EIGEN3_FOUND) + if(EIGEN3_FOUND) + include( ${EIGEN3_USE_FILE} ) + qt4_wrap_ui( POISSON_UI_FILES PS_demo_poisson_plugin.ui) point_set_demo_plugin(PS_demo_poisson_plugin PS_demo_poisson_plugin PS_demo_poisson_plugin_cgal_code.cpp ${POISSON_UI_FILES}) target_link_libraries(PS_demo_poisson_plugin PS_demo_scene_polyhedron_item point_set) + + point_set_demo_plugin(PS_demo_smoothing_plugin PS_demo_smoothing_plugin) + target_link_libraries(PS_demo_smoothing_plugin point_set) + + qt4_wrap_ui( NORMAL_UI_FILES PS_demo_normal_estimation_plugin.ui) + point_set_demo_plugin(PS_demo_normal_estimation_plugin + PS_demo_normal_estimation_plugin + ${NORMAL_UI_FILES}) + target_link_libraries(PS_demo_normal_estimation_plugin point_set) else() - message(STATUS "NOTICE: Neither TAUCS nor Eigen 3.1 (or greater) libraries have been found. Poisson reconstruction will not be available.") + message(STATUS "NOTICE: Eigen 3.1 (or greater) library has not been found. Poisson reconstruction, normal estimation and smoothing will not be available.") endif() point_set_demo_plugin(PS_demo_inside_out_plugin PS_demo_inside_out_plugin) @@ -269,19 +249,6 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND) point_set_demo_plugin(PS_demo_average_spacing_plugin PS_demo_average_spacing_plugin) target_link_libraries(PS_demo_average_spacing_plugin point_set) - if(LAPACK_FOUND OR EIGEN3_FOUND) - point_set_demo_plugin(PS_demo_smoothing_plugin PS_demo_smoothing_plugin) - target_link_libraries(PS_demo_smoothing_plugin point_set) - endif() - - if(LAPACK_FOUND) - qt4_wrap_ui( NORMAL_UI_FILES PS_demo_normal_estimation_plugin.ui) - point_set_demo_plugin(PS_demo_normal_estimation_plugin - PS_demo_normal_estimation_plugin - ${NORMAL_UI_FILES}) - target_link_libraries(PS_demo_normal_estimation_plugin point_set) - endif() - qt4_wrap_ui( CLEANING_UI_FILES PS_demo_cleaning_plugin.ui) point_set_demo_plugin(PS_demo_cleaning_plugin PS_demo_cleaning_plugin diff --git a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/PS_demo_poisson_plugin.cpp b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/PS_demo_poisson_plugin.cpp index 38cef43e64b..06148daa51b 100644 --- a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/PS_demo_poisson_plugin.cpp +++ b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/PS_demo_poisson_plugin.cpp @@ -59,11 +59,7 @@ class PS_demo_poisson_plugin_dialog : public QDialog, private Ui::PoissonDialog PS_demo_poisson_plugin_dialog(QWidget* /*parent*/ = 0) { setupUi(this); - - #ifdef CGAL_TAUCS_ENABLED - m_inputSolver->addItem("Taucs"); - #endif - + #ifdef CGAL_EIGEN3_ENABLED m_inputSolver->addItem("Eigen - built-in simplicial LDLt"); m_inputSolver->addItem("Eigen - built-in CG"); diff --git a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/PS_demo_poisson_plugin_cgal_code.cpp b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/PS_demo_poisson_plugin_cgal_code.cpp index b1306363019..0ca5be1037e 100644 --- a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/PS_demo_poisson_plugin_cgal_code.cpp +++ b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/PS_demo_poisson_plugin_cgal_code.cpp @@ -17,9 +17,6 @@ #include #include -#ifdef CGAL_TAUCS_ENABLED -#include -#endif #ifdef CGAL_EIGEN3_ENABLED #include #endif @@ -98,25 +95,6 @@ Polyhedron* poisson_reconstruct(const Point_set& points, ); bool ok = false; - #ifdef CGAL_TAUCS_ENABLED - if(solver_name=="Taucs") - { - // Creates sparse linear solver: - // TAUCS out-of-core Multifrontal Supernodal Cholesky Factorization - const char* OOC_SUPERNODAL_CHOLESKY_FACTORIZATION[] = - { - "taucs.factor.LLT=true", - "taucs.factor.mf=true", - "taucs.factor.ordering=metis", - "taucs.ooc=true", "taucs.ooc.basename=taucs-ooc", - NULL - }; - unlink("taucs-ooc.0"); // make sure TAUCS ooc file does not exist - CGAL::Taucs_symmetric_solver_traits solver(OOC_SUPERNODAL_CHOLESKY_FACTORIZATION); - - ok = function.compute_implicit_function(solver); - } - #endif #ifdef CGAL_EIGEN3_ENABLED if(solver_name=="Eigen - built-in simplicial LDLt") diff --git a/Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/CMakeLists.txt b/Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/CMakeLists.txt index e65e625f05d..a633ce8b4b8 100644 --- a/Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/CMakeLists.txt +++ b/Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/CMakeLists.txt @@ -28,10 +28,6 @@ if ( CGAL_FOUND ) # VisualC++ optimization for applications dealing with large data if (MSVC) - # Use /EHa option to catch stack overflows. - # Note: TAUCS needs a stack >= 2MB. CGAL default is 10MB. - string(REGEX REPLACE "/EH[asc]*" "/EHa" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - # Use /FR to turn on IntelliSense SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FR") @@ -55,19 +51,14 @@ if ( CGAL_FOUND ) find_package(Eigen3 3.1.0) if (EIGEN3_FOUND) include( ${EIGEN3_USE_FILE} ) - else() - find_package(TAUCS) - if(TAUCS_FOUND) - include( ${TAUCS_USE_FILE} ) - endif(TAUCS_FOUND) endif() - if (EIGEN3_FOUND OR TAUCS_FOUND) - # Executables that require Eigen 3 or TAUCS + if (EIGEN3_FOUND) + # Executables that require Eigen 3 create_single_source_cgal_program( "poisson_reconstruction_example.cpp" ) create_single_source_cgal_program( "poisson_reconstruction.cpp" ) else() - message(STATUS "NOTICE: The examples needs Eigen 3.1 (or greater) or the TAUCS library and will not be compiled.") + message(STATUS "NOTICE: The examples need Eigen 3.1 (or greater) will not be compiled.") endif() diff --git a/Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/poisson_reconstruction.cpp b/Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/poisson_reconstruction.cpp index afe4311863b..8aaa61bfeba 100644 --- a/Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/poisson_reconstruction.cpp +++ b/Surface_reconstruction_points_3/examples/Surface_reconstruction_points_3/poisson_reconstruction.cpp @@ -25,9 +25,6 @@ #include #include #include -#ifdef CGAL_TAUCS_ENABLED -#include -#endif #include "compute_normal.h" @@ -124,9 +121,6 @@ int main(int argc, char * argv[]) std::cerr << "Options:\n"; std::cerr << " -sm_radius Radius upper bound (default=100 * average spacing)\n"; std::cerr << " -sm_distance Distance upper bound (default=0.25 * average spacing)\n"; - #if defined(CGAL_EIGEN3_ENABLED) && defined(CGAL_TAUCS_ENABLED) - std::cerr << " -solver eigen|taucs Sparse linear solver (default=eigen)\n"; - #endif return EXIT_FAILURE; } @@ -135,15 +129,7 @@ int main(int argc, char * argv[]) FT sm_angle = 20.0; // Min triangle angle (degrees). FT sm_radius = 100; // Max triangle size w.r.t. point set average spacing. FT sm_distance = 0.25; // Approximation error w.r.t. point set average spacing. - #ifdef CGAL_EIGEN3_ENABLED std::string solver_name = "eigen"; // Sparse linear solver name. - #else - #ifdef CGAL_TAUCS_ENABLED - std::string solver_name = "taucs"; // Sparse linear solver name. - #else - std::string solver_name = "no_solver_available"; - #endif - #endif double approximation_ratio = 0.02; double average_spacing_ratio = 5; @@ -273,37 +259,6 @@ int main(int argc, char * argv[]) CGAL::make_normal_of_point_with_normal_pmap(PointList::value_type()), visitor); - #ifdef CGAL_TAUCS_ENABLED - if (solver_name == "taucs") - { - std::cerr << "Use TAUCS out-of-core Multifrontal Supernodal Cholesky Factorization\n"; - - // Creates sparse linear solver: - // TAUCS out-of-core Multifrontal Supernodal Cholesky Factorization - const char* OOC_SUPERNODAL_CHOLESKY_FACTORIZATION[] = - { - "taucs.factor.LLT=true", - "taucs.factor.mf=true", - "taucs.factor.ordering=metis", - "taucs.ooc=true", "taucs.ooc.basename=taucs-ooc", - NULL - }; - unlink("taucs-ooc.0"); // make sure TAUCS ooc file does not exist - CGAL::Taucs_symmetric_solver_traits solver(OOC_SUPERNODAL_CHOLESKY_FACTORIZATION); - - // Computes the Poisson indicator function f() - // at each vertex of the triangulation. - - if ( ! function.compute_implicit_function(solver, visitor, - approximation_ratio, - average_spacing_ratio) ) - { - std::cerr << "Error: cannot compute implicit function" << std::endl; - return EXIT_FAILURE; - } - } - else - #endif #ifdef CGAL_EIGEN3_ENABLED { if (solver_name == "eigen") diff --git a/Surface_reconstruction_points_3/include/CGAL/Poisson_reconstruction_function.h b/Surface_reconstruction_points_3/include/CGAL/Poisson_reconstruction_function.h index 0d18c39329e..9f060fc837b 100644 --- a/Surface_reconstruction_points_3/include/CGAL/Poisson_reconstruction_function.h +++ b/Surface_reconstruction_points_3/include/CGAL/Poisson_reconstruction_function.h @@ -38,9 +38,6 @@ #ifdef CGAL_EIGEN3_ENABLED #include #else -#ifdef CGAL_TAUCS_ENABLED -#include -#endif #endif #include #include @@ -532,26 +529,15 @@ public: else return compute_implicit_function(solver,Poisson_visitor()); } - + /// \cond SKIP_IN_MANUAL -#ifdef CGAL_EIGEN3_ENABLED // This variant provides the default sparse linear traits class = Eigen_solver_traits. bool compute_implicit_function(bool smoother_hole_filling = false) { typedef Eigen_solver_traits::EigenType> > Solver; return compute_implicit_function(Solver(), smoother_hole_filling); } -#else - #ifdef CGAL_TAUCS_ENABLED - // This variant provides the default sparse linear traits class = Taucs_symmetric_solver_traits. - bool compute_implicit_function(bool smoother_hole_filling = false) - { - typedef Taucs_symmetric_solver_traits Solver; - return compute_implicit_function(Solver(), smoother_hole_filling); - } - #endif -#endif - + boost::tuple special_func(const Point& p) const { m_hint = m_tr->locate(p ,m_hint ); // no hint when we use hierarchy diff --git a/Surface_reconstruction_points_3/test/Surface_reconstruction_points_3/CMakeLists.txt b/Surface_reconstruction_points_3/test/Surface_reconstruction_points_3/CMakeLists.txt index 31765778589..a316ddce626 100644 --- a/Surface_reconstruction_points_3/test/Surface_reconstruction_points_3/CMakeLists.txt +++ b/Surface_reconstruction_points_3/test/Surface_reconstruction_points_3/CMakeLists.txt @@ -27,10 +27,6 @@ if ( CGAL_FOUND ) # VisualC++ optimization for applications dealing with large data if (MSVC) - # Use /EHa option to catch stack overflows. - # Note: TAUCS needs a stack >= 2MB. CGAL default is 10MB. - string(REGEX REPLACE "/EH[asc]*" "/EHa" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - # Use /FR to turn on IntelliSense SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FR") @@ -51,23 +47,15 @@ if ( CGAL_FOUND ) ADD_DEFINITIONS( "-DDEBUG_TRACE" ) # turn on traces find_package(Eigen3 3.1.0) #(requires 3.1.0 or greater) - if (NOT EIGEN3_FOUND) - find_package(TAUCS) - if(TAUCS_FOUND) - include( ${TAUCS_USE_FILE} ) - endif(TAUCS_FOUND) - else() + if(EIGEN3_FOUND) include( ${EIGEN3_USE_FILE} ) - endif() - if(EIGEN3_FOUND OR TAUCS_FOUND) - - # Executables that require Eigen 3.1 or TAUCS (thus BLAS and LAPACK) + # Executables that require Eigen 3.1 create_single_source_cgal_program( "poisson_reconstruction_test.cpp" ) else() - message(STATUS "NOTICE: Some of the executables in this directory need Eigen 3.1 (or greater) or the TAUCS library and will not be compiled.") + message(STATUS "NOTICE: Some of the executables in this directory need Eigen 3.1 (or greater) and will not be compiled.") endif() diff --git a/wininst/developer_scripts/script_cgal.nsh b/wininst/developer_scripts/script_cgal.nsh index 9e341bfd203..210d2430b2c 100644 --- a/wininst/developer_scripts/script_cgal.nsh +++ b/wininst/developer_scripts/script_cgal.nsh @@ -19,7 +19,6 @@ !define ViaFTP Var Platform -;Var IsTAUCSInstalled !ifdef ViaFTP !define DownloadOK "OK" @@ -59,27 +58,6 @@ Var Platform !insertmacro DownloadFileFrom ${FTP_SRC} ${SRC_FOLDER} ${FILE} ${TGT} !macroend -!macro Install_LAPACK_TAUCS_libs PLATFORM - ; Headers are not platform dependent so we include this only once, but here since - ; we want to download headers only if at least one lib variant was selected. - ${If} $IsTAUCSInstalled = 0 - StrCpy $IsTAUCSInstalled 1 - - !insertmacro DownloadFile "auxiliary/$Platform/TAUCS-CGAL-3.7/" "taucs.h.zip" "$INSTDIR\auxiliary\taucs\include" - !insertmacro DownloadFile "auxiliary/$Platform/TAUCS-CGAL-3.7/" "taucs_private.h.zip" "$INSTDIR\auxiliary\taucs\include" - !insertmacro DownloadFile "auxiliary/$Platform/TAUCS-CGAL-3.7/" "taucs_config_tests.h.zip" "$INSTDIR\auxiliary\taucs\include" - !insertmacro DownloadFile "auxiliary/$Platform/TAUCS-CGAL-3.7/" "taucs_config_build.h.zip" "$INSTDIR\auxiliary\taucs\include" - !insertmacro DownloadFile "auxiliary/$Platform/TAUCS-CGAL-3.7/" "blaswrap.h.zip" "$INSTDIR\auxiliary\taucs\include" - - ${If} "$Platform" == "win32" - !insertmacro DownloadFile "auxiliary/win32/TAUCS-CGAL-3.7/" "taucs-common.zip" "$INSTDIR\auxiliary\taucs\lib" - ${Endif} - - ${Endif} - - !insertmacro DownloadFile "auxiliary/${PLATFORM}/TAUCS-CGAL-3.7/" "taucs-libs.zip" "$INSTDIR\auxiliary\taucs\lib" -!macroend - !macro Install_GMP_MPFR_bin PLATFORM !insertmacro DownloadFile "auxiliary/${PLATFORM}/GMP/5.0.1/" "gmp-all-CGAL-3.9.zip" "$INSTDIR\auxiliary\gmp" !insertmacro DownloadFile "auxiliary/${PLATFORM}/MPFR/3.0.0/" "mpfr-all-CGAL-3.9.zip" "$INSTDIR\auxiliary\gmp" diff --git a/wininst/developer_scripts/script_cgal.nsi b/wininst/developer_scripts/script_cgal.nsi index 358bae25c3a..b7805d2314f 100644 --- a/wininst/developer_scripts/script_cgal.nsi +++ b/wininst/developer_scripts/script_cgal.nsi @@ -229,17 +229,6 @@ Section "GMP and MPFR precompiled libs" GMP_LIB_Idx SectionEnd -; Download and install LAPACK and TAUCSbinaries. -; Depend only on the platform (one variant per platform) - -; Laurent Rineau, 2014/03/05: Remove TAUCS from the installer -;Section /o "LAPACK and TAUCS precompiled libs" TAUCS_LIB_Idx -; !ifndef FetchLocal -; !insertmacro Install_LAPACK_TAUCS_libs "$Platform" -; !endif -;SectionEnd - - ;-------------------------------- @@ -305,7 +294,6 @@ SectionEnd LangString DESC_MAIN ${LANG_ENGLISH} "The main components of the CGAL Library." LangString DESC_SAMPLES ${LANG_ENGLISH} "The CGAL demos and examples, for which you need Qt 4 in order to build them (and Qt 3 for some)." LangString DESC_GMP_LIB ${LANG_ENGLISH} "The precompiled GMP and MPFR libraries (needed for exact constructions)." - LangString DESC_TAUCS_LIB ${LANG_ENGLISH} "The precompiled LAPACK and TAUCS libraries." LangString DESC_DOC ${LANG_ENGLISH} "The HTML manuals." LangString DESC_ENVSET ${LANG_ENGLISH} "already set" @@ -314,8 +302,6 @@ SectionEnd !insertmacro MUI_DESCRIPTION_TEXT ${MAIN_Idx} $(DESC_MAIN) !insertmacro MUI_DESCRIPTION_TEXT ${SAMPLES_Idx} $(DESC_SAMPLES) !insertmacro MUI_DESCRIPTION_TEXT ${GMP_LIB_Idx} $(DESC_GMP_LIB) -; Laurent Rineau, 2014/03/05: Remove TAUCS from the installer -; !insertmacro MUI_DESCRIPTION_TEXT ${TAUCS_LIB_Idx} $(DESC_TAUCS_LIB) !insertmacro MUI_DESCRIPTION_TEXT ${DOC_Idx} $(DESC_DOC) !insertmacro MUI_FUNCTION_DESCRIPTION_END