- 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().
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).
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().
- 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).
- 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)
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.
- update_status() and status_message() write to cerr (besides the status bar)
- added new method prompt_message() that calls AfxMessageBox() + writes to cerr.
- 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
- 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.
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.