Commit Graph

247 Commits

Author SHA1 Message Date
Laurent Rineau 61329abd7f Fix bugs in test/Point_set_processing_3/read_test.cpp
1/ A compilation bug: in C++03, the constructor of std::ifstream cannot
take a std::string as filename argument. That constructor is available only
from C++11.

2/ The paths to the data files were wrong.

3/ Remove the useless commited cgal_test_with_cmake! As a matter of fact,
read_test.cpp was never tested by the daily testsuite because that file
cgal_test_with_cmake was commited and unmaintained.
2013-02-08 16:21:19 +01:00
Andreas Fabri 5bc73b4c3f move files for read_test.cpp in a subdirectory as other test files read all xyz and off files 2013-01-17 11:23:39 +01:00
Andreas Fabri 89f9f21cc4 Avoid parsing x,y,z twice and add a testsuite 2013-01-16 16:01:29 +01:00
Philipp Möller 1adf441b18 Convert all CRLF files to LF 2012-12-03 18:44:24 +01:00
Laurent Rineau 2db4effa7e CMake: Fix the handling of cmake_policy
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;
}
2012-08-22 12:35:03 +00:00
Sébastien Loriot e702f20986 Eigen 3-1 is out.
Require Eigen 3.1.0 in CMake scripts.
2012-06-27 12:38:32 +00:00
Sébastien Loriot 13a3434734 merge from next 2012-01-23 16:28:28 +00:00
Andreas Fabri 37c999bf18 Switch off iterator debugging as this testsuite takes too long and gets killed 2012-01-23 12:46:23 +00:00
Sébastien Loriot 2865113c8c Point_set_processing test/example also uses lapack 2012-01-16 15:15:34 +00:00
Laurent Rineau 3c02e07b23 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.
2011-04-28 17:45:22 +00:00
Laurent Rineau c97205f085 Global handling of CMake policies (second part)
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).
2011-04-28 10:55:56 +00:00
Laurent Rineau 0631943153 Uniform capitalization in our CMake script: use lowercase for commands 2011-04-28 10:36:18 +00:00
Laurent Rineau ca5c92e034 Global maintenance of CMakeLists.txt: CMake minimal version is -2.6.2
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)
2011-04-27 17:58:27 +00:00
Laurent Rineau 32f6d6d555 Fix cgal_test_with_cmake from Point_set_processing_3 and
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).
2010-08-11 09:10:46 +00:00
Laurent Rineau 08a4aa0b0e Fix this commited cgal_test_with_cmake 2010-05-25 08:24:19 +00:00
Sébastien Loriot cdee61ee96 Replace M_PI by CGAL_PI 2010-01-19 07:27:33 +00:00
Laurent Saboret fe8353441a Port to Windows 64 2009-09-02 12:10:05 +00:00
Laurent Saboret be09d80d95 * Bug fix: fixed compatibility of TAUCS/BLAS/LAPACK precompiled libraries with Visual C++ 9.0 2008:
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.
2009-08-26 16:23:28 +00:00
Laurent Saboret d43c10552a Improved traces 2009-08-24 16:05:08 +00:00
Laurent Saboret 977aceca2d * Updated Point_set_processing_3 reference manual to describe the influence of each knn parameter.
* Fixed bug in Point_set_processing_3 examples/tests: use reasonable default knn parameters (0.1 or 0.15% of point set was overkill.* Updated the Point Set demo to use the recommended knn values by default.
2009-07-17 14:42:18 +00:00
Laurent Saboret d879d0191a Fixed potential conflicts with third party libraries (Visual C++ only):
Removed _HAS_ITERATOR_DEBUGGING=0 setting to go back to default settings.
This setting could create conflicts with third party libraries like _SECURE_SCL=0 crashes boost program options.

Note that no conflict with _HAS_ITERATOR_DEBUGGING was reported. This is just a safety change.
2009-07-16 18:16:24 +00:00
Laurent Saboret 11cb5a223f Fixed bug in cgal_test_with_cmake and compiler warning on platform Cygwin/Visual C++/NMake. 2009-07-08 08:51:56 +00:00
Laurent Saboret 205446a67a Port to g++/Linux 2009-07-02 11:37:36 +00:00
Laurent Saboret 92e5ef0499 Fixed bugs in cgal_test_with_cmake when executed by CGAL test suite:
* cgal_test_with_cmake does not work when $MAKE_CMD environment variable exists.
* cgal_test_with_cmake returns an error when an application cannot be compiled.
2009-06-24 13:36:01 +00:00
Laurent Saboret e3aea2e92d Changes after Surface_reconstruction_points_3/Point_set_processing_3 submission review by AF (12):
Document property maps and move them to Support Lib:

* Added new chapter "CGAL abd Boost Property Maps" (Property_map) to Support Lib:
- it is located in Point_set_processing_3/doc_tex/Property_map.
- it documents Dereference_property_map, First_of_pair_property_map, Second_of_pair_property_map and Nth_of_tuple_property_map.

* Renamed point_set_property_map.h as property_map.h

* Moved Normal_vector_property_map to Point_with_normal_3.h and renamed it Normal_of_point_with_normal_pmap.
2009-06-17 07:49:35 +00:00
Laurent Saboret 1625af0907 Changes after Surface_reconstruction_points_3/Point_set_processing_3 submission review by AF (11):
Changes requested by AF on 06/12/2009:

* Point_set_processing_3:
- Fixed description of grid_simplify_point_set()
- Fixed description of read_xyz_points(), write_xyz_points(), read_off_points(), write_off_points()
- Added grid_simplify_example.cpp. It replaces random_simplify_example.cpp in Point_set_processing_3 User Manual.

* Surface_reconstruction_points_3:
- Small fixes in the User Manual.
2009-06-15 08:04:42 +00:00
Laurent Saboret a15b486d24 Changes after Surface_reconstruction_points_3/Point_set_processing_3 submission review by AF (10):
Removed IndexPMap parameter of mst_orient_normals():

* Removed IndexPMap parameter of mst_orient_normals(). Instead, mst_orient_normals() creates internaly an Index_property_map object.

* Index_property_map is a template class "index" property map, which associates a 0-based index (unsigned int) to Iter iterators.
2 specializations exist:
- if Iter is a random access iterator (typically vector and deque), get() just calls std::distance() and is very efficient;
- else, the property map allocates a std::map to store indices and get() requires a lookup in the map.

* Index_property_map is moved to an independent header Index_property_map.h but is not documented.
2009-06-12 09:05:03 +00:00
Laurent Saboret 66332c8646 Fixed bugs on Cygwin/Visual C++ platform:
* The compiler output is now correctly logged.
* Fixed make clean call.
2009-06-12 08:58:26 +00:00
Laurent Saboret eef69acca3 Modified version of cgal_test_with_cmake which:
- is cross-platform Unix/make and Cygwin/VisualC++
- concats all log files to cgal_test_with_cmake.log
- does not clean up object files and executables (too slow when called by developer)
2009-06-08 13:46:39 +00:00
Laurent Saboret cb58a26a32 Modified version of cgal_test_with_cmake which:
- is cross-platform Unix/make and Cygwin/VisualC++
- concats all log files to cgal_test_with_cmake.log
- does not clean up object files and executables (too slow when called by developer)
2009-06-08 11:52:56 +00:00
Laurent Saboret 30a5f7be9b Scott Meyer's "swap trick" to trim excess capacity 2009-06-02 16:28:18 +00:00
Nader Salman 31afd00f94 Updated memory issue on normal estimation code 2009-06-02 10:50:17 +00:00
Nader Salman 593a5a8be3 Corrected memory issue using Scott Meyer's "swap trick" to trim excess capacity 2009-06-02 08:46:23 +00:00
Laurent Saboret bfc3fa82d6 Compare logs with Beyond Compare 2009-05-26 17:06:30 +00:00
Laurent Saboret 45998fee86 Added /FR option to turn on VC++ IntelliSense
Added -DDEBUG_TRACE to print memory footprint
2009-05-26 17:05:36 +00:00
Laurent Saboret 3f72786f2a Changes after Surface_reconstruction_points_3/Point_set_processing_3 submission review by AF (8):
* Port to g++ 4.3.1/Linux
* Update automatic documentation
2009-05-18 17:41:58 +00:00
Laurent Saboret 521b24b556 Changes after Surface_reconstruction_points_3/Point_set_processing_3 submission review by AF (8):
* The code matches the documentation and uses the new API with property maps:
- The code uses the new API with property maps.
- The test suites work.
- The MFC and Qt demos work.
- Copied Pierre's comments in Reference Manual to C++ comments.

* Renaming:
- merge_simplify_point_set -> grid_simplify_point_set.
- read_xyz_point_set split() as read_xyz_points() + read_xyz_points_and_normals().

* Gyroviz stuff:
- merge_simplify_nearest_point_set renamed as grid_simplify_nearest_point_set and moved to Poisson demo (as it is limited to Gyroviz_point_3 points).
- The code in Point_set_processing_3 uses the new API with property maps.
2009-05-18 15:42:15 +00:00
Laurent Saboret 85c602c7dc Changes after Surface_reconstruction_points_3/Point_set_processing_3 submission review by AF (6):
Proof of concept of the new API with property maps.

* Proof of concept: 
- mst_orient_normals() is implemented using the new API with property maps. It returns an iterator over the first non oriented normal.
- Same thing for radial_orient_normals() [private API].
- the test suite works fine.
- removed Orientable_normal_3 class.

* point_set_property_map.h contains all property map classes of Point_set_processing_3:
- Former property maps in property_map.h are modified to take an iterator as key instead of a value type. This is more general (works if key = int), safer (no bug if key passed by value) and coherent with Boost Graph Library.
- identity_property_map and Point_set_vertex_point_const_map are merged as Dereference_property_map.
- Point_set_vertex_normal_map is moved from Point_set_3.h and renamed Normal_vector_property_map.
- Random_access_container_index_pmap is moved from Random_access_container_index_pmap.h and renamed Index_property_map.
- added free functions make_*() to create these property maps.
- removed get() functions to create these property maps.

* Demos:
- fixed Poisson MFC demo.

Gyroviz code is limited to containers of Gyroviz_point_3 (no property maps):
- removed class class Point_set_vertex_cameras_const_map.
- changed implementation of orient_normal_wrt_cameras().

TODO:
- update documentation.
- change API of all other functions of these packages to use property maps.
2009-05-07 13:13:56 +00:00
Laurent Saboret 39552d040f Changes after Surface_reconstruction_points_3/Point_set_processing_3 submission review by AF (5):
Simplified the API:
- removed OrientableNormal_3, PointWithOrientableNormal_3, ReconstructionTriangulation_3, ReconstructionVertexBase_3 concepts.
- classes Orientable_normal_3, Reconstruction_triangulation_3 abd Reconstruction_vertex_base_3 are not documented anymore.
- For free functions provided with 2 variants mutable/non mutable, removed the non mutable one.

TODO:
- remove Orientable_normal_3 class.
- modify mst_orient_normals() to return an iterator over the first non oriented normal.
- fix Poisson MFC demo which does not compile anymore.
2009-04-28 14:10:05 +00:00
Laurent Saboret e580938c7f Updated Point_set_processing_3 's CMakeLists.txt files 2009-04-22 15:04:20 +00:00
Laurent Saboret 17dea5f329 Backup previous log file 2009-04-22 15:03:07 +00:00
Laurent Saboret 87e3e65ddb Changes after Surface_reconstruction_points_3/Point_set_processing_3 submission review by AF (3):
* Renamed functions part of the public API:
average_spacing_3 -> compute_average_spacing
read_off_point_set -> read_off_point_set
read_xyz_point_set -> read_xyz_point_set
write_off_point_set -> write_off_point_set
write_xyz_point_set -> write_xyz_point_set
jet_normal_estimation -> jet_estimate_normals
pca_normal_estimation -> pca_estimate_normals
jet_smoothing_3 -> jet_smooth_point_set
merge_simplification_3 -> merge_simplify_point_set
random_simplification_3 -> random_simplify_point_set
mst_normal_orientation -> mst_orient_normals
outlier_removal_3 -> remove_outliers
surface_reconstruction_output_surface_facets -> output_surface_facets_to_polyhedron and output_surface_facets_to_triangle_soup 

* and similar renaming for private/Gyroviz functions:
poisson_refinement_3 -> poisson_refine_triangulation
improved_laplacian_smoothing_3 -> improved_laplacian_smooth_point_set
merge_simplification_nearest_points_3 -> merge_simplify_nearest_point_set
outlier_removal_wrt_median_knn_sq_distance_3 -> remove_outliers_wrt_median_knn_sq_distance
outlier_removal_wrt_camera_cone_angle_3 -> remove_outliers_wrt_camera_cone_angle_3
radial_normal_orientation_3 -> radial_orient_normals
2009-04-21 14:10:02 +00:00
Laurent Saboret 8556fa0452 Changes after submission review by AF (1):
* Point_set_processing_3 IO functions take now as parameter a std::istream instead of a filename.
* Removed read/write_pwn_point_set() which are replaced by read/write_xyz_point_set().
* Removed read_pnb_point_set() which obsolete.
2009-04-03 12:47:33 +00:00
Laurent Saboret 62e4c1e36f * Simplified normal_estimation.cpp example (moved code comparing the computed normals to the original ones to normal_estimation_test.cpp).
* Fixed test suite (test sphere926.pwn instead of ChineseDragon-10kv.off which is too difficult).
2009-03-17 12:03:16 +00:00
Laurent Saboret d0ff567259 Split Surface_reconstruction_3 into Point_set_processing_3 and Surface_reconstruction_points_3 (part 1):
* Move/rename files and folders.
* Rename point set IO functions.

Status: 
* Both packages compile on Unix/g++ 4.1.2. The test suite is OK.
* The documentation compiles for both packages.

TODO:
* Update the documentation and package_info
* Update Groviz
* Delete Surface_reconstruction_3
2009-03-13 15:50:14 +00:00
Laurent Saboret d3374184d7 Split Surface_reconstruction_3 into Point_set_processing_3 and Surface_reconstruction_points_3 (part 1):Move/rename files and folders 2009-03-12 15:19:49 +00:00
Laurent Saboret cb6e40b653 Split Surface_reconstruction_3 into Point_set_processing_3 and Surface_reconstruction_points_3 (part 1):Move/rename files and folders 2009-03-12 15:16:09 +00:00