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.
- 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.