Commit Graph

63 Commits

Author SHA1 Message Date
Laurent Saboret 8f1e17abcf Added CGAL_TRACE_STREAM object (== cerr if DEBUG_TRACE is defined, else nothing) 2008-08-28 13:48:50 +00:00
Laurent Saboret a43c578eeb Fixed memory leaks 2008-08-28 13:10:31 +00:00
Laurent Saboret 76f008d27b Enforced CGAL_NDEBUG rule:
- code under include/CGAL/ and src/ must not use NDEBUG and assert(), but CGAL_NDEBUG and CGAL assertion macros.
- code under demo/, examples/ and test/ must use NDEBUG and assert().
2008-08-28 13:06:14 +00:00
Laurent Saboret e6316826b3 Removed unnecessary includes of CGAL/basic.h.
Enforced CGAL_NDEBUG rule:
- code under include/CGAL/ and src/ must not use NDEBUG and assert(), but CGAL_NDEBUG and CGAL assertion macros.
- code under demo/, examples/ and test/ must use NDEBUG and assert().

Added _HAS_ITERATOR_DEBUGGING=0 to .vcproj makefiles to speed up VC++ 2005 debugger.

Removed CGAL_SURFACE_RECONSTRUCTION_CHECK_EXPENSIVE from .vcproj makefiles (unused).
2008-08-21 12:21:20 +00:00
Laurent Saboret 54c707b1b0 Added traces of the memory currently allocated (using CGAL::Memory_sizer) 2008-08-11 15:42:07 +00:00
Laurent Saboret 17b5a1f42a OnAlgorithmsOrientNormalsWithMST() selects non-oriented (instead of flipped) normals 2008-07-31 14:06:44 +00:00
Sylvain Pion 79864c0c8e Remove Arity_tag. 2008-07-22 12:29:01 +00:00
Laurent Saboret 6c99061fa7 Fixed bug introduced in previous revision 2008-07-09 15:40:58 +00:00
Laurent Saboret 382f4df403 Package:
Integrated point set simplification by clustering.
Implemented random point set simplification.
Implemented variant mutating the point set for point set simplification and outliers removal algorithms.

MFC demo:
Point set simplification and outliers removal algorithms select now the points to delete, instead of deleting them directly. This gives a chance to adjust the parameters before deletion.
2 new menu items related: "Delete selection" and "Reset selection".
Normals orientation algorithms select now flipped normals.
Fixed bug in merge_epsilon_nearest_points_3().
2008-07-08 15:01:10 +00:00
Laurent Saboret f944600045 Huge APSS optimization (times are divided by 3 for the command line test and by 7 for the MFC demo) after profiling with AQtime:
- The Surface_mesher distance parameter is set to 0.005 for APSS (0.002 for Poisson). Both values are editable in the Options dialog.
- Removed the "APPS projection error" field in the Options dialog (unused).
- APSS kd-tree contains Point_with_normal_3 points instead of Gyroviz_point_3 objects (faster copy constructor).
- The number of neighbors is 7 by default (was 10).
- APSS caches the previous nearest neighbor to speed up the isValid() method (test if close to surface).
- If point is far from surface, APSS computes only the nearest neighbor (used to compute twice K nearest neighbors).
2008-07-04 14:56:20 +00:00
Amit Gupta bc0ff05088 Added data-fitting term and normalization of divergence in the poisson surface reconstruction. 2008-07-01 13:09:35 +00:00
Laurent Saboret a6ae5efe8b To be compatible with MatchMover, 3D points have now a unique label in .g23 format.
I updated surface_reconstruction_read_g23() accordingly.
2008-06-30 16:35:40 +00:00
Laurent Saboret 5897f3e0de Added support of a INRIA/Gyroviz format .g23.
Former format .pwc is now deprecated.
2008-06-26 13:36:30 +00:00
Laurent Saboret 9c331bfcb7 Surface Mesher's error_bound = 1e-3 * bounding sphere's radius (default value) 2008-06-20 15:46:50 +00:00
Laurent Saboret 1b3ed3a8c3 Added 2 items in Options dialog: Surface Mesher's dichotomy error and APSS projection error.
Default values are previous hard-coded values.

Use KNN from Options dialog in APSS. 
Default value is now 10 to match previous APSS KNN.
2008-06-20 14:04:47 +00:00
Laurent Saboret 370b493d3e Added comments 2008-06-20 10:56:50 +00:00
Laurent Saboret f13c455085 Added Gyroviz "Remove outliers wrt cameras cone angle" algorithm. 2008-06-19 15:37:32 +00:00
Nader Salman ac2beb5ddc Update from same files in Gyroviz package 2008-06-19 11:44:56 +00:00
Laurent Saboret ee1222919b Fixed CMake error on Surface_reconstruction_3/demo/Surface_reconstruction_3/ (empty folder) 2008-06-18 14:28:53 +00:00
Laurent Saboret 5386e4836c Adapt VC++ makefiles to CGAL 3.4 2008-06-17 08:28:21 +00:00
Laurent Saboret d1ff93f6dc Remove Isidore_only_equalized_KLT_5000_with_normals.xyz from test suite as the Surface Mesher/APSS bug is fixed and processing Isidore_only_equalized_KLT_5000_with_normals.xyz is very slow 2008-06-17 07:54:24 +00:00
Laurent Saboret 8ddc20bce0 Added trace 2008-06-05 17:03:08 +00:00
Laurent Saboret 49964c07f9 Fixed crashing bug (or infinite loop) when Poisson reconstructs polygirl model:
- added Implicit_fct_delaunay_triangulation_3::input_points_bounding_box() (resp. sphere)
- these methods are called by Poisson_implicit_function::bounding_box() (resp. sphere), which are now accurate
- no need anymore to divide by 2 the bounding sphere radius (which cashed the Surface Mesher)
2008-06-04 13:20:49 +00:00
Laurent Saboret 0777153ae6 Changed accelerators because I was running out of keys. The new rule is:
- items in Render menu use Shift modifier
- other items have no modifier
2008-06-04 13:13:29 +00:00
Laurent Saboret eca8d0e22c Added "APSS mode" icon to toolbar 2008-06-02 12:31:46 +00:00
Laurent Saboret 12f8218125 Added "APSS mode" icon to toolbar 2008-06-02 12:22:55 +00:00
Laurent Saboret 81d01f5d6e Fixed crash when saving reconstructed surface 2008-06-02 12:21:22 +00:00
Laurent Saboret dfa04d3e8e APSS is integrated in MFC demo. 2008-05-29 17:07:09 +00:00
Laurent Saboret daa45ce124 APSS is integrated in MFC demo. 2008-05-29 17:02:20 +00:00
Laurent Saboret c9589121a1 Fixed infinite loop in APSS by replacing ApssOracle par the default class Implicit_surface_oracle_3.
Fixed bug in bounding sphere computation.
Deleted ApssOracle.
Renamed class APSS as APSS_implicit_function.
Code cleaning: store normals in Vector_3 objects instead of Point_3.
2008-05-28 12:46:27 +00:00
Laurent Saboret e1743e75ca Added traces:
- update_status() and status_message() write to cerr (besides the status bar)
- added new method prompt_message() that calls AfxMessageBox() + writes to cerr.
2008-05-23 13:06:08 +00:00
Laurent Saboret 702a956aff Merge Gyroviz code with Surface_reconstruction_3: Enriched_polyhedron, Gyroviz_point_3, surface_reconstruction_read_pwc(). 2008-05-06 18:29:37 +00:00
Laurent Saboret ad2f2e1407 Added test suite for:
- orient_normals_minimum_spanning_tree_3()
- remove_outliers_wrt_avg_knn_sq_distance_3()
2008-04-30 13:58:51 +00:00
Laurent Saboret 99baf24a78 Code cleaning:
- PoissonDoc methods have better names
- Removed code related to Gyroviz from Poisson_dt3
- Fixed compilation error on poisson_reconstruction_test.cpp

Updated concepts.

UI:
- updated the toolbar
- added menu item "1-step Poisson reconstruction"
- improved code that enables/disables menu items
2008-04-29 16:24:21 +00:00
Pierre Alliez 1fbbf92df7 Reconstruction: enrich demo with
- outlier removal 
- average spacing
2008-04-29 12:07:09 +00:00
Laurent Saboret 0df22bb093 Edited points exist now under 2 forms in CPoissonDoc:
- m_points[] array of points + normals.
- the m_poisson_dt 3D triangulation used by the m_poisson_function implicit function.
Only 1 form is visible on screen and editable at a given time. This is controlled by m_edit_mode.

A new class Point_set_3 represents an array of points + normals of type PointWithNormal_3 (in fact Gyroviz_point_3 to support algorithms specific to Gyroviz). It provides accessors (points and normals iterators, property maps), OpenGL rendering and bounding box.

File >> Open fills the point_set.
Algorithms menu is split into:
- Processing menu which modifies a point,
- Reconstruction >> Poisson sub-menu which converts the point set to a triangulation 3 and then solves the Poisson equation over it.
2008-04-29 10:57:58 +00:00
Laurent Saboret f6e9627800 Minor changes (mostly replaced tabs by spaces). 2008-04-24 12:18:12 +00:00
Nader Salman aead16f135 Move Gyroviz from trunk to experimental-packages. 2008-04-23 12:56:03 +00:00
Nader Salman 648ac40838 Smoothing by jet fitting integrated.
Coming Next : Tests Outlier Elimination + Smoothing till pseudo optimal result.
2008-04-23 12:20:57 +00:00
Nader Salman 4fc10cb15e Outliers removal tests. Based on greatest_camera_angle between 3D vertices and the corresponding list of cameras.
It seems that if the Greatest_camera_angle is small the vertex is an outlier.

Next step : Noise Reduction (Jet_fitting)
2008-04-23 10:53:38 +00:00
Pierre Alliez 6fa7586137 Reconstruction: added a menu smoothing (still empty) 2008-04-22 15:11:23 +00:00
Laurent Saboret 27ac5cf1a6 Removed Visual C++ 7.1 makefiles (obsolete). The VC++ 8.0 ones are up to date. The plan is to generate back the VC++ 7.1 ones via CMake. 2008-04-22 13:34:41 +00:00
Laurent Saboret 384c8a185a Port to Visual C++ 8.0 (using CGAL 3.3.1). 2008-04-22 13:15:41 +00:00
Laurent Saboret 997af6370f Test model for Gyroviz 2008-04-22 08:28:57 +00:00
Nader Salman 5da23b3631 Image Sequence + Feature points files are converted into a Soup of 3D triangles using 2D constrained Delaunay triangulations.
In this version we use the insert_constraint function on a couple of vertex_handle.

One issue :
(TODO)
A point appears in 3d when we draw the soup of triangles.
This might be an error due to the intersection of constraints in the 2D triangulation.
2008-04-14 11:28:21 +00:00
Laurent Saboret ff6320e506 Fixed file format for Flipper 2008-04-11 15:02:08 +00:00
Laurent Saboret af266e7cca Fixed compilation error: removed $convert from path (unused anyway). 2008-04-11 07:39:01 +00:00
Laurent Saboret 4957487b7f Implemented normals orientation algorithm described in "Surface reconstruction from unorganized points" (Hoppe92) using a Minimum Spanning Tree. 2008-04-10 18:25:48 +00:00
Laurent Saboret e345f54884 Added Windows console to display stdin, stdout and stderr 2008-04-10 18:21:36 +00:00
Laurent Saboret 1aca985a7a Change file name accordingly to number of vertices 2008-04-10 18:12:13 +00:00