That is a followup-to my commit last year:
| ------------------------------------------------------------------------
| r63198 | lrineau | 2011-04-28 19:45:22 +0200 (Thu, 28 Apr 2011) | 5 lines
|
| Try to fix my last revision about cmake_policy, with CMake-2.6.x
|
| CMake gives an error if one tries to use cmake_policy(VERSION x.y.z) if
| x.y.z is greater than the current CMake version.
|
| ------------------------------------------------------------------------
The following check:
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" VERSION_GREATER 2.6)
is useless just after a call to:
cmake_minimum_required(VERSION 2.6.2)
The script used to fix that was:
#!/usr/bin/env perl
$replacement=<<'END';
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER 2.8.3)
cmake_policy(VERSION 2.8.4)
else()
cmake_policy(VERSION 2.6)
endif()
END
while(<>) {
if(/if\("\${CMAKE_MAJOR_VERSION}.\${CMAKE_MINOR_VERSION}" VERSION_GREATER 2.6\)/) {
while(<>) {
if(/^endif\(\)/) {
print "$replacement";
while(<>) {
print;
}
exit 0
}
}
}
print;
}
-Wunused-local-typedefs is a new warning flag of gcc-4.7, and it will enabled
by -Wall since gcc-4.8 (not yet released).
The fix is a big set of removals of unused typedefs (or comments, or moves,
depending on the context).
We declare
cmake_minimum_required(VERSION 2.6.2)
but we also use
cmake_policy(VERSION 2.8.4)
to declare that our CMake scripts are OK with all the defaults of CMake policies
as of CMake-2.8.4. That shuts down the warnings of CMake-2.8.4.
That way, we no longer need any declaration of specific policies.
Those two lines must be present and maintained in all our CMakeLists.txt
files (the one for the libraries, and also the one for examples and demos,
and maybe tests).
The documentation of CGAL says that the minimal version of CMake must be
CMake-2.6.2.
- change cmake_minimum_required to VERSION 2.6.2
- no longer any need for the policy CMP0003 (was for 2.4.x)
- no longer any need for CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS (was for 2.4)
Surface_reconstruction_points_3:
- [ "a" == "b" ] is a syntax of Bash. The POSIX way if with a single '='.
- do not override MAKE_CMD if it is already set (to jom, for example).
* Poisson_reconstruction_function::compute_implicit_function() gets a new parameter = the solver to use (TAUCS by default).
* It uses SparseLinearAlgebraTraits_d traits classes and not Taucs_solver anymore.
* poisson_reconstruction example accepts a new parameter -solver = taucs or mkl.
(Windows) developers compiling Surface_reconstruction_points_3 with CGAL 3.5 beta 1 need to compile with Surface_mesher package from svn in order to get r51028 bug fix (orientation of reconstructed meshes).
* The bug could be reproduce by:
> poisson_reconstruction Compressor_top_clean_65kpoints.pwn out.off -sm_distance 0.75
or
> APSS_reconstruction robocat_deci.off out.off -smooth 6
(try several times)
* The fix is to set Implicit_surface_3's dichotomy error to make_surface_mesh's approximation distance/1000 (instead of /10). This makes make_surface_mesh() behavior more reproductible.
* My guess is that in both implicit functions are not smooth, and that make_surface_mesh's parameters must be tuned to make them appear smooth to the algorithm.
* The bug could be reproduced on Linux/g++ 4.3.1 by:
> poisson_reconstruction Compressor_top_clean_30kpoints.pwn Compressor-poisson.off
or
> APSS_reconstruction robocat_deci.off robocat_deci-apss.off
=> infinite loop that crashes when the process max memory is reached, or
assertion failure "(x,y,z) is already inserted on surface", or
assertion failure "A facet is not in conflict with its refinement point"
* The fix was to use Manifold_with_boundary_tag.
CGAL 3.5 will include TAUCS/BLAS/LAPACK precompiled libraries for Visual C++ 8.0 and 9.0.
Auto-link is modified accordingly.
* Also fixed compatibility of cgal_test_with_cmake.bat scripts with VC++ 9.0.
* Default Surface Mesher parameters for Poisson are now
- triangle radius = 100 * point set average spacing and
- approximation distance = 0.25 * point set average spacing
(instead of 0.1 * point set radius and 0.002 * point set radius).
As Poisson is a function piecewise linear in the tetrahedra of the underlying triangulation, the goal of this change is to ensure that the Surface Mesher creates a mesh with triangles larger than the underlying tetrahedra.
* Default Surface Mesher parameters for APSS are now the same as Poisson to ease comparison among both methods, and simplify code maintenance
(instead of APSS distance = 1.5 * Poisson distance to get reconstructed surfaces of roughly the same number of faces).
* Fixed size of splats for nicer screenshots:
- knn parameter allows now to change the size of splats
- fixed offset by 1 in use of knn
- knn default changed from 18 (medium) to 6 (small)
- knn min changed from 6 (small) to 1 (tiny)
* Compute reconstruction error after APSS and Poisson (in fact the distance from input points to reconstructed mesh).