Commit Graph

40 Commits

Author SHA1 Message Date
Nader Salman 96e2418555 Corrected a big compilation bug
:= When Point type is a pair or a tuple compute_average_spacing, jet_estimate_normal, jet_smooth_point_set,
pca_estimate_normals, pca_smooth_point_set, remove_outliers and remove_outliers_wrt_median_knn_sq_distance 
files couldn't compile. Now they can!

Written a detailed example (average_spacing_example.cpp) that uses the tuples type.
==> Pairs and tuples are now used in the examples.
2009-06-17 12:39:51 +00:00
Laurent Saboret ac7d0971c2 Bug fix (by Mac Glisse): bring std::distance() to scope. 2009-06-17 08:11:47 +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
Nader Salman 9f60273060 Added Property maps in read_write_xyz_point_set_example.cpp
Fixed bug in read_off_points_and_normals and  read_xyz_points_and_normals : Initialization of Normals to NULL_VECTOR when normal information is missing in the input file.
2009-06-15 14:15:59 +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 489b84a5e6 Changes after Surface_reconstruction_points_3/Point_set_processing_3 submission review by AF (9):
* Improvements in C++ code:
- erase_small_connected_components() is renamed keep_largest_connected_components() and takes as new parameter the number of large components to keep.
- get_polyhedron_connected_components() writes the list of components found in an output iterator.

* Improvements in the User Manuals:
- Removed page number in links.
- New images for grid simplification and normal orientation (hopefully clearer).
- Added citation of OFF file format.

* Improvements in the Reference Manuals:
- Removed output_surface_facets_to_triangle_soup() (obsolete).
- Removed get_polyhedron_connected_components() from documentation.
- Set manually the classes/structs/concepts marging to get a pretty alignment of types, constructors and methods.

* Automatic documentation improvements by generate_reference_manual 1.3:
- Reduced left margin of free functions description.
- Fixed bug: fixed vertical alignment in methods/functions description.
- Fixed bug: does not remove anymore EOLs in methods/functions description.
- Fixed bug #7515: removed "[protected]", "[static]" and "[virtual]" comments.
2009-06-11 08:36:48 +00:00
Laurent Saboret c4708afb9f Improved traces related to memory footprint 2009-06-02 16:29:20 +00:00
Laurent Saboret d59491ea6e Fixed compilation error with VC++ 8 2009-05-26 13:35:26 +00:00
Nader Salman fa878c8e2d Fixed bugs : smoothing removes normals and cameras in points... 2009-05-19 13:24:23 +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 d4be110f43 Rename merge_simplify_nearest_point_set() as grid_simplify_nearest_point_set() [Gyroviz] 2009-05-18 14:19:03 +00:00
Nader Salman b8bf301de3 Smoothing function that uses plane fitting quicker in many cases that the jet fitting smoothing. 2009-05-13 13:45:38 +00:00
Laurent Saboret fd085cef66 PointWithNormal_3 concept does not exist anymore 2009-05-11 17:14:07 +00:00
Laurent Saboret ca88e7d556 Fixed compilation errors 2009-05-11 17:02:35 +00:00
Laurent Saboret d9f0d7ba6d Fixed compilation errors 2009-05-11 17:01:48 +00:00
Laurent Saboret 8b2eb017af Use assert macros in point_set_processing_assertions.h 2009-05-11 17:00:20 +00:00
Laurent Saboret 0eba7cdc1f 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.

* Fixed compilation error with g++ 4.3.1
* Updated mst_orient_normals() documentation
* Added property_map_multiple_streams.cpp to dont_submit

TODO: delete property_map_multiple_streams.cpp
2009-05-07 13:59:54 +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 44d4b6ebb0 Changed comments and variables name. 2009-05-05 10:07:52 +00:00
Nader Salman 7b9599a6a1 Added improved_jet_smoothing_3.h 2009-05-05 09:09:49 +00:00
Laurent Saboret 1086632c10 Changes after Surface_reconstruction_points_3/Point_set_processing_3 submission review by AF (5):
Updated the documentation wrt the next changes:
- removed OrientableNormal_3, PointWithOrientableNormal_3, ReconstructionTriangulation_3, Reconstructio
nVertexBase_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.
2009-04-28 14:36:24 +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
Gaël Guennebaud 12769c1304 fix compilation 2009-04-26 17:02:50 +00:00
Andreas Fabri acd07b594f That's how it could look like with boost property maps 2009-04-23 15:34:17 +00:00
Laurent Saboret 7ca11c448a Small documentation fixes 2009-04-22 15:06:24 +00:00
Laurent Saboret 685664588b Fixed compiler warnings (g++ 4.3) 2009-04-22 15:05:44 +00:00
Gaël Guennebaud ea51809b4d add sorted neighborhood option 2009-04-22 14:03:23 +00:00
Gaël Guennebaud f27579ddc6 replace custom kdtree by a fast version of Orthogonal_k_neighbor_search 2009-04-22 13:56:59 +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 abeb50070f Changes after submission review by AF (2):
* Moved Lightweight_vector_3 from Point_set_processing_3 to Surface_reconstruction_points_3. It is now undocumented.
* Point_set_processing_3 User Manual does not have a structure of "pipeline" anymore.
* New introduction figures for Surface_reconstruction_points_3 and Point_set_processing_3.
* Deleted poisson.jpg/eps in Surface_reconstruction_points_3.
* INPUT and STEINER constants are now an enum.
* Removed obsolete code:
  - mst_normal_orientation(max_angle)
* PointWithNormal_3::set_position() renamed as position().
* Fixed misspellings.
* and many other improvements to the documentation (and C++ comments).
2009-04-20 16:49:53 +00:00
Nader Salman 9e4d56ec47 Bug corrections (03/04/2009) 2009-04-07 13:03:42 +00:00
Laurent Saboret a2878834ac Changes after submission review by AF (1):
* Port to Linux/g++
2009-04-03 13:53:27 +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
Nader Salman 9fe8881ed7 New algorithm to smooth 3D point cloud inspired y Improved Laplacian smoothing of noisy surface meshes 2009-04-02 16:27:01 +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