mirror of https://github.com/CGAL/cgal
Update files with new package name (Poisson_surface_reconstruction_3)
This commit is contained in:
parent
43f7f3cdff
commit
d9d94f082e
|
|
@ -842,7 +842,7 @@ EXAMPLE_RECURSIVE = YES
|
||||||
IMAGE_PATH = ../Generator/doc/Generator/fig \
|
IMAGE_PATH = ../Generator/doc/Generator/fig \
|
||||||
../Straight_skeleton_2/doc/Straight_skeleton_2/fig \
|
../Straight_skeleton_2/doc/Straight_skeleton_2/fig \
|
||||||
../Polynomial/doc/Polynomial/fig \
|
../Polynomial/doc/Polynomial/fig \
|
||||||
../Surface_reconstruction_points_3/doc/Surface_reconstruction_points_3/fig \
|
../Poisson_surface_reconstruction_3/doc/Poisson_surface_reconstruction_3/fig \
|
||||||
../GraphicsView/doc/GraphicsView/fig \
|
../GraphicsView/doc/GraphicsView/fig \
|
||||||
../Minkowski_sum_3/doc/Minkowski_sum_3/fig \
|
../Minkowski_sum_3/doc/Minkowski_sum_3/fig \
|
||||||
../Triangulation_3/doc/Triangulation_3/fig \
|
../Triangulation_3/doc/Triangulation_3/fig \
|
||||||
|
|
@ -1806,7 +1806,7 @@ SKIP_FUNCTION_MACROS = YES
|
||||||
TAGFILES = ./tags/Generator.tag=../../CGAL.CGAL.Geometric-Object-Generators/html \
|
TAGFILES = ./tags/Generator.tag=../../CGAL.CGAL.Geometric-Object-Generators/html \
|
||||||
./tags/Straight_skeleton_2.tag=../../CGAL.CGAL.2D-Straight-Skeleton-and-Polygon-Offsetting/html \
|
./tags/Straight_skeleton_2.tag=../../CGAL.CGAL.2D-Straight-Skeleton-and-Polygon-Offsetting/html \
|
||||||
./tags/Polynomial.tag=../../CGAL.CGAL.Polynomial/html \
|
./tags/Polynomial.tag=../../CGAL.CGAL.Polynomial/html \
|
||||||
./tags/Surface_reconstruction_points_3.tag=../../CGAL.CGAL.Surface-Reconstruction-from-Point-Sets/html \
|
./tags/Poisson_surface_reconstruction_3.tag=../../CGAL.CGAL.Poisson-Surface-Reconstruction/html \
|
||||||
./tags/GraphicsView.tag=../../CGAL.CGAL.CGAL-and-the-Qt-Graphics-View-Framework/html \
|
./tags/GraphicsView.tag=../../CGAL.CGAL.CGAL-and-the-Qt-Graphics-View-Framework/html \
|
||||||
./tags/Minkowski_sum_3.tag=../../CGAL.CGAL.3D-Minkowski-Sum-of-Polyhedra/html \
|
./tags/Minkowski_sum_3.tag=../../CGAL.CGAL.3D-Minkowski-Sum-of-Polyhedra/html \
|
||||||
./tags/Triangulation_3.tag=../../CGAL.CGAL.3D-Triangulations/html \
|
./tags/Triangulation_3.tag=../../CGAL.CGAL.3D-Triangulations/html \
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@ IMAGE_PATH = ${CMAKE_SOURCE_DIR}/Documentation/doc/Documentation/fig \
|
||||||
${CMAKE_SOURCE_DIR}/Subdivision_method_3/doc/Subdivision_method_3/fig \
|
${CMAKE_SOURCE_DIR}/Subdivision_method_3/doc/Subdivision_method_3/fig \
|
||||||
${CMAKE_SOURCE_DIR}/Surface_mesh_parameterization/doc/Surface_mesh_parameterization/fig \
|
${CMAKE_SOURCE_DIR}/Surface_mesh_parameterization/doc/Surface_mesh_parameterization/fig \
|
||||||
${CMAKE_SOURCE_DIR}/Surface_mesh/doc/Surface_mesh/fig \
|
${CMAKE_SOURCE_DIR}/Surface_mesh/doc/Surface_mesh/fig \
|
||||||
${CMAKE_SOURCE_DIR}/Surface_reconstruction_points_3/doc/Surface_reconstruction_points_3/fig \
|
${CMAKE_SOURCE_DIR}/Poisson_surface_reconstruction_3/doc/Poisson_surface_reconstruction_3/fig \
|
||||||
${CMAKE_SOURCE_DIR}/Stream_lines_2/doc/Stream_lines_2/fig \
|
${CMAKE_SOURCE_DIR}/Stream_lines_2/doc/Stream_lines_2/fig \
|
||||||
${CMAKE_SOURCE_DIR}/Stream_support/doc/Stream_support/fig \
|
${CMAKE_SOURCE_DIR}/Stream_support/doc/Stream_support/fig \
|
||||||
${CMAKE_SOURCE_DIR}/Surface_modeling/doc/Surface_modeling/fig \
|
${CMAKE_SOURCE_DIR}/Surface_modeling/doc/Surface_modeling/fig \
|
||||||
|
|
|
||||||
|
|
@ -501,7 +501,7 @@ to speed up operations of the Polynomial package, such as GCDs. It is recommende
|
||||||
\sc{Eigen} is a `C++` template library for linear algebra. \sc{Eigen} supports all
|
\sc{Eigen} is a `C++` template library for linear algebra. \sc{Eigen} supports all
|
||||||
matrix sizes, various matrix decomposition methods and sparse linear solvers.
|
matrix sizes, various matrix decomposition methods and sparse linear solvers.
|
||||||
|
|
||||||
In \cgal, \sc{Eigen} provides sparse linear solvers in the \ref PkgSurfaceReconstructionFromPointSets
|
In \cgal, \sc{Eigen} provides sparse linear solvers in the \ref PkgPoissonSurfaceReconstruction
|
||||||
and the \ref PkgSurfaceParameterization packages.
|
and the \ref PkgSurfaceParameterization packages.
|
||||||
|
|
||||||
In addition, \sc{Eigen} also provides singular value decomposition for the \ref PkgJet_fitting_3
|
In addition, \sc{Eigen} also provides singular value decomposition for the \ref PkgJet_fitting_3
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ Voronoi_diagram_2
|
||||||
Surface_mesh_simplification
|
Surface_mesh_simplification
|
||||||
Subdivision_method_3
|
Subdivision_method_3
|
||||||
Surface_mesh_parameterization
|
Surface_mesh_parameterization
|
||||||
Surface_reconstruction_points_3
|
Poisson_surface_reconstruction_3
|
||||||
Surface_mesh_segmentation
|
Surface_mesh_segmentation
|
||||||
Stream_lines_2
|
Stream_lines_2
|
||||||
Stream_support
|
Stream_support
|
||||||
|
|
|
||||||
|
|
@ -93,12 +93,15 @@ h1 {
|
||||||
|
|
||||||
\package_listing{Mesh_2}
|
\package_listing{Mesh_2}
|
||||||
\package_listing{Surface_mesher}
|
\package_listing{Surface_mesher}
|
||||||
\package_listing{Surface_reconstruction_points_3}
|
|
||||||
\package_listing{Scale_space_reconstruction_3}
|
|
||||||
\package_listing{Advancing_front_surface_reconstruction}
|
|
||||||
\package_listing{Skin_surface_3}
|
\package_listing{Skin_surface_3}
|
||||||
\package_listing{Mesh_3}
|
\package_listing{Mesh_3}
|
||||||
|
|
||||||
|
\section PartReconstruction Surface Reconstruction
|
||||||
|
|
||||||
|
\package_listing{Poisson_surface_reconstruction_3}
|
||||||
|
\package_listing{Scale_space_reconstruction_3}
|
||||||
|
\package_listing{Advancing_front_surface_reconstruction}
|
||||||
|
|
||||||
\section PartGeometryProcessing Geometry Processing
|
\section PartGeometryProcessing Geometry Processing
|
||||||
|
|
||||||
\package_listing{Polygon_mesh_processing}
|
\package_listing{Polygon_mesh_processing}
|
||||||
|
|
|
||||||
|
|
@ -1965,7 +1965,7 @@
|
||||||
- \ref CGAL::Surface_mesh_simplification::LindstromTurk_cost `cgal_manual/Surface_mesh_simplification_ref/FunctionObjectClass_Surface_mesh_simplification--LindstromTurk_cost.html`
|
- \ref CGAL::Surface_mesh_simplification::LindstromTurk_cost `cgal_manual/Surface_mesh_simplification_ref/FunctionObjectClass_Surface_mesh_simplification--LindstromTurk_cost.html`
|
||||||
- \ref CGAL::Surface_mesh_simplification::LindstromTurk_placement `cgal_manual/Surface_mesh_simplification_ref/FunctionObjectClass_Surface_mesh_simplification--LindstromTurk_placement.html`
|
- \ref CGAL::Surface_mesh_simplification::LindstromTurk_placement `cgal_manual/Surface_mesh_simplification_ref/FunctionObjectClass_Surface_mesh_simplification--LindstromTurk_placement.html`
|
||||||
- \ref CGAL::Surface_mesh_simplification::Midpoint_placement `cgal_manual/Surface_mesh_simplification_ref/FunctionObjectClass_Surface_mesh_simplification--Midpoint_placement.html`
|
- \ref CGAL::Surface_mesh_simplification::Midpoint_placement `cgal_manual/Surface_mesh_simplification_ref/FunctionObjectClass_Surface_mesh_simplification--Midpoint_placement.html`
|
||||||
- \ref CGAL::Poisson_reconstruction_function `cgal_manual/Surface_reconstruction_points_3_ref/Class_Poisson_reconstruction_function.html`
|
- \ref CGAL::Poisson_reconstruction_function `cgal_manual/Poisson_surface_reconstruction_3_ref/Class_Poisson_reconstruction_function.html`
|
||||||
- \ref CGAL::compute_intersection_points() `cgal_manual/Sweep_line_2_ref/Function_compute_intersection_points.html`
|
- \ref CGAL::compute_intersection_points() `cgal_manual/Sweep_line_2_ref/Function_compute_intersection_points.html`
|
||||||
- \ref CGAL::compute_subcurves() `cgal_manual/Sweep_line_2_ref/Function_compute_subcurves.html`
|
- \ref CGAL::compute_subcurves() `cgal_manual/Sweep_line_2_ref/Function_compute_subcurves.html`
|
||||||
- \ref CGAL::do_curves_intersect() `cgal_manual/Sweep_line_2_ref/Function_do_curves_intersect.html`
|
- \ref CGAL::do_curves_intersect() `cgal_manual/Sweep_line_2_ref/Function_do_curves_intersect.html`
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ points or points with normals (alignment is not covered in \cgal);
|
||||||
-# Smoothing to reduce noise in the input data;
|
-# Smoothing to reduce noise in the input data;
|
||||||
-# Normal estimation and orientation when the normals are not already provided
|
-# Normal estimation and orientation when the normals are not already provided
|
||||||
by the acquisition device; and
|
by the acquisition device; and
|
||||||
-# Surface reconstruction. Chapter \ref Chapter_Surface_Reconstruction_from_Point_Sets "Surface Reconstruction from Point Sets"
|
-# Surface reconstruction. Chapter \ref Chapter_Poisson_Surface_Reconstruction "Poisson Surface Reconstruction"
|
||||||
deals with surface reconstruction from point sets with normal attributes.
|
deals with surface reconstruction from point sets with normal attributes.
|
||||||
|
|
||||||
\cgalFigureBegin{Point_set_processing_3figpipeline,pipeline.jpg}
|
\cgalFigureBegin{Point_set_processing_3figpipeline,pipeline.jpg}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ STL_Extension
|
||||||
Algebraic_foundations
|
Algebraic_foundations
|
||||||
Circulator
|
Circulator
|
||||||
Stream_support
|
Stream_support
|
||||||
Surface_reconstruction_points_3
|
Poisson_surface_reconstruction_3
|
||||||
Property_map
|
Property_map
|
||||||
Bounding_volumes
|
Bounding_volumes
|
||||||
Principal_component_analysis
|
Principal_component_analysis
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ Property maps in the Boost manuals: <A HREF="http://www.boost.org/libs/property_
|
||||||
Some algorithms in \cgal take as input parameters iterator ranges and property maps to access information attached to elements of the sequence.
|
Some algorithms in \cgal take as input parameters iterator ranges and property maps to access information attached to elements of the sequence.
|
||||||
|
|
||||||
For example, the algorithms of chapters \ref Chapter_Point_Set_Processing "Point Set Processing" and
|
For example, the algorithms of chapters \ref Chapter_Point_Set_Processing "Point Set Processing" and
|
||||||
\ref Chapter_Surface_Reconstruction_from_Point_Sets "Surface Reconstruction from Point Sets"
|
\ref Chapter_Poisson_Surface_Reconstruction "Poisson Surface Reconstruction"
|
||||||
take as input parameters iterator ranges and property
|
take as input parameters iterator ranges and property
|
||||||
maps to access each point's position and normal. Position and normal
|
maps to access each point's position and normal. Position and normal
|
||||||
might be represented in various ways, e.g., as a class derived from
|
might be represented in various ways, e.g., as a class derived from
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,4 @@ Algebraic_foundations
|
||||||
Circulator
|
Circulator
|
||||||
Stream_support
|
Stream_support
|
||||||
Point_set_processing_3
|
Point_set_processing_3
|
||||||
Surface_reconstruction_points_3
|
Poisson_surface_reconstruction_3
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
@INCLUDE = ${CGAL_DOC_PACKAGE_DEFAULTS}
|
@INCLUDE = ${CGAL_DOC_PACKAGE_DEFAULTS}
|
||||||
|
|
||||||
PROJECT_NAME = "CGAL ${CGAL_CREATED_VERSION_NUM} - Surface Reconstruction from Point Sets"
|
PROJECT_NAME = "CGAL ${CGAL_CREATED_VERSION_NUM} - Poisson Surface Reconstruction"
|
||||||
|
|
||||||
INPUT = ${CMAKE_SOURCE_DIR}/Surface_reconstruction_points_3/doc/Surface_reconstruction_points_3/ \
|
INPUT = ${CMAKE_SOURCE_DIR}/Poisson_surface_reconstruction_3/doc/Poisson_surface_reconstruction_3/ \
|
||||||
${CMAKE_SOURCE_DIR}/Surface_reconstruction_points_3/include
|
${CMAKE_SOURCE_DIR}/Poisson_surface_reconstruction_3/include
|
||||||
EXTRACT_ALL = false
|
EXTRACT_ALL = false
|
||||||
HIDE_UNDOC_CLASSES = true
|
HIDE_UNDOC_CLASSES = true
|
||||||
WARN_IF_UNDOCUMENTED = false
|
WARN_IF_UNDOCUMENTED = false
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
/// \defgroup PkgSurfaceReconstructionFromPointSets Surface Reconstruction from Point Sets Reference
|
/// \defgroup PkgPoissonSurfaceReconstruction Poisson Surface Reconstruction Reference
|
||||||
/*!
|
/*!
|
||||||
\addtogroup PkgSurfaceReconstructionFromPointSets
|
\addtogroup PkgPoissonSurfaceReconstruction
|
||||||
\cgalPkgDescriptionBegin{Surface Reconstruction from Point Sets,PkgSurfaceReconstructionFromPointSetsSummary}
|
\cgalPkgDescriptionBegin{Poisson Surface Reconstruction,PkgPoissonSurfaceReconstructionSummary}
|
||||||
\cgalPkgPicture{surface_reconstruction_points_detail.png}
|
\cgalPkgPicture{surface_reconstruction_points_detail.png}
|
||||||
\cgalPkgSummaryBegin
|
\cgalPkgSummaryBegin
|
||||||
\cgalPkgAuthors{Pierre Alliez, Laurent Saboret, Gaël Guennebaud}
|
\cgalPkgAuthors{Pierre Alliez, Laurent Saboret, Gaël Guennebaud}
|
||||||
\cgalPkgDesc{This package implements a surface reconstruction method: Poisson Surface Reconstruction. It takes as input a set of points with oriented normals and computes an implicit function. The \cgal surface mesh generator can then be used to extract an iso-surface from this function. }
|
\cgalPkgDesc{This package implements a surface reconstruction method: Poisson Surface Reconstruction. It takes as input a set of points with oriented normals and computes an implicit function. The \cgal surface mesh generator can then be used to extract an iso-surface from this function. }
|
||||||
\cgalPkgManuals{Chapter_Surface_Reconstruction_from_Point_Sets,PkgSurfaceReconstructionFromPointSets}
|
\cgalPkgManuals{Chapter_Poisson_Surface_Reconstruction,PkgPoissonSurfaceReconstruction}
|
||||||
\cgalPkgSummaryEnd
|
\cgalPkgSummaryEnd
|
||||||
\cgalPkgShortInfoBegin
|
\cgalPkgShortInfoBegin
|
||||||
\cgalPkgSince{3.5}
|
\cgalPkgSince{3.5}
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,12 @@ namespace CGAL {
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
\mainpage User Manual
|
\mainpage User Manual
|
||||||
\anchor Chapter_Surface_Reconstruction_from_Point_Sets
|
\anchor Chapter_Poisson_Surface_Reconstruction
|
||||||
\cgalAutoToc
|
\cgalAutoToc
|
||||||
|
|
||||||
\authors Pierre Alliez, Laurent Saboret, Gaël Guennebaud
|
\authors Pierre Alliez, Laurent Saboret, Gaël Guennebaud
|
||||||
|
|
||||||
\section Surface_reconstruction_points_3Introduction Introduction
|
\section Poisson_surface_reconstruction_3Introduction Introduction
|
||||||
|
|
||||||
This \cgal component implements a surface reconstruction method which
|
This \cgal component implements a surface reconstruction method which
|
||||||
takes as input point sets with oriented normals and computes an
|
takes as input point sets with oriented normals and computes an
|
||||||
|
|
@ -17,7 +17,7 @@ an isosurface of this function with the \cgal Surface Mesh Generator
|
||||||
\cgalCite{cgal:ry-gsddrm-06} or potentially with any other surface
|
\cgalCite{cgal:ry-gsddrm-06} or potentially with any other surface
|
||||||
contouring algorithm.
|
contouring algorithm.
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figintroduction,introduction.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figintroduction,introduction.jpg}
|
||||||
Poisson surface reconstruction.\n
|
Poisson surface reconstruction.\n
|
||||||
Left: 17K points sampled on the statue of an elephant with a Minolta laser scanner. Right: reconstructed surface mesh.
|
Left: 17K points sampled on the statue of an elephant with a Minolta laser scanner. Right: reconstructed surface mesh.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
@ -28,7 +28,7 @@ function of the inferred solid (Poisson Surface Reconstruction -
|
||||||
referred to as Poisson). Poisson is a two steps process: it requires
|
referred to as Poisson). Poisson is a two steps process: it requires
|
||||||
solving for the implicit function before function evaluation.
|
solving for the implicit function before function evaluation.
|
||||||
|
|
||||||
\section Surface_reconstruction_points_3Common Common Reconstruction Pipeline
|
\section Poisson_surface_reconstruction_3Common Common Reconstruction Pipeline
|
||||||
|
|
||||||
Surface reconstruction from point sets is often a sequential process
|
Surface reconstruction from point sets is often a sequential process
|
||||||
with the following steps: 1) Scanning and scan alignment produce a set
|
with the following steps: 1) Scanning and scan alignment produce a set
|
||||||
|
|
@ -45,11 +45,11 @@ describes algorithms to pre-process the point set before
|
||||||
reconstruction with functions devoted to the simplification, outlier
|
reconstruction with functions devoted to the simplification, outlier
|
||||||
removal, smoothing, normal estimation and normal orientation.
|
removal, smoothing, normal estimation and normal orientation.
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figpipeline,pipeline.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figpipeline,pipeline.jpg}
|
||||||
Common surface reconstruction pipeline.
|
Common surface reconstruction pipeline.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
\section Surface_reconstruction_points_3Poisson Poisson
|
\section Poisson_surface_reconstruction_3Poisson Poisson
|
||||||
|
|
||||||
Given a set of 3D points with oriented normals (denoted oriented
|
Given a set of 3D points with oriented normals (denoted oriented
|
||||||
points in the sequel) sampled on the boundary of a 3D solid, the
|
points in the sequel) sampled on the boundary of a 3D solid, the
|
||||||
|
|
@ -74,20 +74,20 @@ the triangulation using a sparse linear solver. Eventually, the \cgal
|
||||||
surface mesh generator extracts an isosurface with function value set
|
surface mesh generator extracts an isosurface with function value set
|
||||||
by default to be the median value of \f$ f\f$ at all input points.
|
by default to be the median value of \f$ f\f$ at all input points.
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3Interface Interface
|
\subsection Poisson_surface_reconstruction_3Interface Interface
|
||||||
|
|
||||||
The class template declaration is `template<class Gt> class Poisson_reconstruction_function` wher
|
The class template declaration is `template<class Gt> class Poisson_reconstruction_function` wher
|
||||||
`Gt` is a geometric traits class.
|
`Gt` is a geometric traits class.
|
||||||
|
|
||||||
For details see: `Poisson_reconstruction_function<GeomTraits>`
|
For details see: `Poisson_reconstruction_function<GeomTraits>`
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3Example Example
|
\subsection Poisson_surface_reconstruction_3Example Example
|
||||||
|
|
||||||
The following example reads a point set, creates a Poisson implicit function and reconstructs a surface.
|
The following example reads a point set, creates a Poisson implicit function and reconstructs a surface.
|
||||||
|
|
||||||
\cgalExample{Surface_reconstruction_points_3/poisson_reconstruction_example.cpp}
|
\cgalExample{Poisson_surface_reconstruction_3/poisson_reconstruction_example.cpp}
|
||||||
|
|
||||||
\section Surface_reconstruction_points_3Contouring Contouring
|
\section Poisson_surface_reconstruction_3Contouring Contouring
|
||||||
|
|
||||||
|
|
||||||
The computed implicit functions can be iso-contoured to reconstruct a
|
The computed implicit functions can be iso-contoured to reconstruct a
|
||||||
|
|
@ -101,7 +101,7 @@ The parameter `Tag` affects the behavior of `make_surface_mesh()`:
|
||||||
- `Manifold_with_boundary_tag`: the output mesh is guaranteed to be manifold and may have boundaries.
|
- `Manifold_with_boundary_tag`: the output mesh is guaranteed to be manifold and may have boundaries.
|
||||||
- `Non_manifold_tag`: the output mesh has no guarantee and hence is outputted as a polygon soup.
|
- `Non_manifold_tag`: the output mesh has no guarantee and hence is outputted as a polygon soup.
|
||||||
|
|
||||||
\section Surface_reconstruction_points_3Output Output
|
\section Poisson_surface_reconstruction_3Output Output
|
||||||
|
|
||||||
The surface reconstructed by `make_surface_mesh()` is required to be a
|
The surface reconstructed by `make_surface_mesh()` is required to be a
|
||||||
model of the concept `SurfaceMeshComplex_2InTriangulation_3`, a data
|
model of the concept `SurfaceMeshComplex_2InTriangulation_3`, a data
|
||||||
|
|
@ -116,7 +116,7 @@ and to convert it to a polyhedron (when it is manifold):
|
||||||
- `output_surface_facets_to_off()`
|
- `output_surface_facets_to_off()`
|
||||||
- `output_surface_facets_to_polyhedron()`
|
- `output_surface_facets_to_polyhedron()`
|
||||||
|
|
||||||
See \ref Surface_reconstruction_points_3/poisson_reconstruction_example.cpp "poisson_reconstruction_example.cpp" example above.
|
See \ref Poisson_surface_reconstruction_3/poisson_reconstruction_example.cpp "poisson_reconstruction_example.cpp" example above.
|
||||||
|
|
||||||
\section surface_reconstruction_section_case_studies Case Studies
|
\section surface_reconstruction_section_case_studies Case Studies
|
||||||
|
|
||||||
|
|
@ -127,7 +127,7 @@ user with some hints about the ideal sampling and contouring
|
||||||
conditions, and depicts some failure cases when these conditions are
|
conditions, and depicts some failure cases when these conditions are
|
||||||
not matched.
|
not matched.
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3IdealConditions Ideal Conditions
|
\subsection Poisson_surface_reconstruction_3IdealConditions Ideal Conditions
|
||||||
|
|
||||||
The user must keep in mind that the Poisson surface reconstruction
|
The user must keep in mind that the Poisson surface reconstruction
|
||||||
algorithm comprises two phases (computing the implicit function from
|
algorithm comprises two phases (computing the implicit function from
|
||||||
|
|
@ -135,21 +135,21 @@ the input point set and contouring an iso-surface of this
|
||||||
function). Both require some care in terms of sampling conditions and
|
function). Both require some care in terms of sampling conditions and
|
||||||
parameter tuning.
|
parameter tuning.
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3PointSet Point Set
|
\subsection Poisson_surface_reconstruction_3PointSet Point Set
|
||||||
|
|
||||||
Ideally the current implementation of the Poisson surface
|
Ideally the current implementation of the Poisson surface
|
||||||
reconstruction method expects a dense 3D oriented point set (typically
|
reconstruction method expects a dense 3D oriented point set (typically
|
||||||
matching the epsilon-sampling condition \cgalCite{cgal:bo-pgsms-05}) and
|
matching the epsilon-sampling condition \cgalCite{cgal:bo-pgsms-05}) and
|
||||||
sampled over a closed, smooth surface. Oriented herein means that all
|
sampled over a closed, smooth surface. Oriented herein means that all
|
||||||
3D points must come with consistently oriented normals to the inferred
|
3D points must come with consistently oriented normals to the inferred
|
||||||
surface. \cgalFigureRef{Surface_reconstruction_points_3figbimba} and \cgalFigureRef{Surface_reconstruction_points_3figeros}
|
surface. \cgalFigureRef{Poisson_surface_reconstruction_3figbimba} and \cgalFigureRef{Poisson_surface_reconstruction_3figeros}
|
||||||
illustrate cases where these ideal conditions are met.
|
illustrate cases where these ideal conditions are met.
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figbimba,bimba.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figbimba,bimba.jpg}
|
||||||
Poisson reconstruction. Left: 120K points sampled on a statue (Minolta laser scanner). Right: reconstructed surface mesh.
|
Poisson reconstruction. Left: 120K points sampled on a statue (Minolta laser scanner). Right: reconstructed surface mesh.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figeros,eros.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figeros,eros.jpg}
|
||||||
Left: 120K points sampled on a statue (Minolta laser scanner). Right: reconstructed surface mesh.
|
Left: 120K points sampled on a statue (Minolta laser scanner). Right: reconstructed surface mesh.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
|
|
@ -157,17 +157,17 @@ The algorithm is fairly robust to anisotropic sampling and to
|
||||||
noise. It is also robust to missing data through filling the
|
noise. It is also robust to missing data through filling the
|
||||||
corresponding holes as the algorithm is designed to reconstruct the
|
corresponding holes as the algorithm is designed to reconstruct the
|
||||||
indicator function of an inferred solid (see
|
indicator function of an inferred solid (see
|
||||||
\cgalFigureRef{Surface_reconstruction_points_3figholes_good}).
|
\cgalFigureRef{Poisson_surface_reconstruction_3figholes_good}).
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figholes_good,holes_good.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figholes_good,holes_good.jpg}
|
||||||
Top left: 65K points sampled on a hand (Kreon laser scanner). Bottom left: the point set is highly anisotropic due to the scanning technology. Right: reconstructed surface mesh and closeup. The holes are properly closed.
|
Top left: 65K points sampled on a hand (Kreon laser scanner). Bottom left: the point set is highly anisotropic due to the scanning technology. Right: reconstructed surface mesh and closeup. The holes are properly closed.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
The algorithm is in general not robust to outliers, although a few
|
The algorithm is in general not robust to outliers, although a few
|
||||||
outliers do not always create a failure, see
|
outliers do not always create a failure, see
|
||||||
\cgalFigureRef{Surface_reconstruction_points_3figoutliers}.
|
\cgalFigureRef{Poisson_surface_reconstruction_3figoutliers}.
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figoutliers,outliers.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figoutliers,outliers.jpg}
|
||||||
Left: 70K points sampled on an elephant with few outliers emphasized with disks. Right: reconstructed surface mesh.
|
Left: 70K points sampled on an elephant with few outliers emphasized with disks. Right: reconstructed surface mesh.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
|
|
@ -181,7 +181,7 @@ connected components care should be taken to orient the normals of
|
||||||
each component in alternation (inward/outward) so that the final
|
each component in alternation (inward/outward) so that the final
|
||||||
contouring stage picks a proper contouring value.
|
contouring stage picks a proper contouring value.
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3ContouringP Contouring Parameters
|
\subsection Poisson_surface_reconstruction_3ContouringP Contouring Parameters
|
||||||
|
|
||||||
Our implementation of the Poisson surface reconstruction algorithm
|
Our implementation of the Poisson surface reconstruction algorithm
|
||||||
computes an implicit function represented as a piecewise linear
|
computes an implicit function represented as a piecewise linear
|
||||||
|
|
@ -193,7 +193,7 @@ and hence may contain sharp creases. As the contouring algorithm
|
||||||
sharp creases may create spurious clusters of vertices in the final
|
sharp creases may create spurious clusters of vertices in the final
|
||||||
reconstructed surface mesh when setting a small mesh sizing or surface
|
reconstructed surface mesh when setting a small mesh sizing or surface
|
||||||
approximation error parameter (see
|
approximation error parameter (see
|
||||||
\cgalFigureRef{Surface_reconstruction_points_3figcontouring_bad}).
|
\cgalFigureRef{Poisson_surface_reconstruction_3figcontouring_bad}).
|
||||||
|
|
||||||
One way to avoid these spurious clusters consists of adjusting the
|
One way to avoid these spurious clusters consists of adjusting the
|
||||||
mesh sizing and surface approximation parameters large enough compared
|
mesh sizing and surface approximation parameters large enough compared
|
||||||
|
|
@ -205,18 +205,18 @@ contouring parameters:
|
||||||
- Max triangle radius: at least 100 times the average spacing.
|
- Max triangle radius: at least 100 times the average spacing.
|
||||||
- Approximation distance: at least 0.25 times the average spacing.
|
- Approximation distance: at least 0.25 times the average spacing.
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figcontouring_bad,contouring_bad.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figcontouring_bad,contouring_bad.jpg}
|
||||||
Left: surface reconstructed with approximation distance = 0.25 * average spacing. Right: surface reconstructed with approximation distance = 0.15 * average spacing. Notice the spurious cluster on the chick.
|
Left: surface reconstructed with approximation distance = 0.25 * average spacing. Right: surface reconstructed with approximation distance = 0.15 * average spacing. Notice the spurious cluster on the chick.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3DegradedConditions Degraded Conditions
|
\subsection Poisson_surface_reconstruction_3DegradedConditions Degraded Conditions
|
||||||
|
|
||||||
The conditions listed above are rather restrictive and in practice not
|
The conditions listed above are rather restrictive and in practice not
|
||||||
all of them are met in the applications. We now illustrates the
|
all of them are met in the applications. We now illustrates the
|
||||||
behavior of the algorithm when the conditions are not met in terms of
|
behavior of the algorithm when the conditions are not met in terms of
|
||||||
sampling, wrongly oriented normals, noise and sharp creases.
|
sampling, wrongly oriented normals, noise and sharp creases.
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3SparseSampling Sparse Sampling
|
\subsection Poisson_surface_reconstruction_3SparseSampling Sparse Sampling
|
||||||
|
|
||||||
The reconstruction algorithm expects a sufficiently dense point
|
The reconstruction algorithm expects a sufficiently dense point
|
||||||
set. Although there is no formal proof of correctness of the algorithm
|
set. Although there is no formal proof of correctness of the algorithm
|
||||||
|
|
@ -227,22 +227,22 @@ feature size (the distance to the medial axis, which captures
|
||||||
altogether curvature, thickness and separation). When this condition
|
altogether curvature, thickness and separation). When this condition
|
||||||
is not met the reconstruction does not reconstruct the thin
|
is not met the reconstruction does not reconstruct the thin
|
||||||
undersampled features (see
|
undersampled features (see
|
||||||
\cgalFigureRef{Surface_reconstruction_points_3figsampling}).
|
\cgalFigureRef{Poisson_surface_reconstruction_3figsampling}).
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figsampling,sampling.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figsampling,sampling.jpg}
|
||||||
Left: 50K points sampled on the Neptune trident. The reconstruction (not shown) is successful in this case. Right: point set simplified to 1K points then reconstructed (all input points are depicted with normals). The thin feature is not reconstructed.
|
Left: 50K points sampled on the Neptune trident. The reconstruction (not shown) is successful in this case. Right: point set simplified to 1K points then reconstructed (all input points are depicted with normals). The thin feature is not reconstructed.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3LargeHoles Large Holes
|
\subsection Poisson_surface_reconstruction_3LargeHoles Large Holes
|
||||||
|
|
||||||
The reconstruction is devised to solve for an implicit function which
|
The reconstruction is devised to solve for an implicit function which
|
||||||
is an approximate indicator function of an inferred solid. For this
|
is an approximate indicator function of an inferred solid. For this
|
||||||
reason the contouring algorithm always extracts a closed surface mesh
|
reason the contouring algorithm always extracts a closed surface mesh
|
||||||
and hence is able to fill the small holes where data are missing due,
|
and hence is able to fill the small holes where data are missing due,
|
||||||
e.g., to occlusions during acquisition (see
|
e.g., to occlusions during acquisition (see
|
||||||
\cgalFigureRef{Surface_reconstruction_points_3figholes_bad}).
|
\cgalFigureRef{Poisson_surface_reconstruction_3figholes_bad}).
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figholes_bad,holes_bad.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figholes_bad,holes_bad.jpg}
|
||||||
Left: 65K points sampled on a hand with no data captured at the wrist base. Right: reconstructed surface mesh. The surface is properly closed on the fingers and also closed at the wrist but in a less plausible manner.
|
Left: 65K points sampled on a hand with no data captured at the wrist base. Right: reconstructed surface mesh. The surface is properly closed on the fingers and also closed at the wrist but in a less plausible manner.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
|
|
@ -255,11 +255,11 @@ This can be avoided by a two pass approach. The first pass for a subset of the p
|
||||||
serves to get an approximation of the surface at the holes. This surface then serves to
|
serves to get an approximation of the surface at the holes. This surface then serves to
|
||||||
compute a smoother 3D Delaunay triangulation for the second pass with the full set of points.
|
compute a smoother 3D Delaunay triangulation for the second pass with the full set of points.
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3-fig-two_passes,two-passes.png}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3-fig-two_passes,two-passes.png}
|
||||||
Left: The wrist. Middle: one pass. Right: two passes.
|
Left: The wrist. Middle: one pass. Right: two passes.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3WronglyOriented Wrongly Oriented Normals
|
\subsection Poisson_surface_reconstruction_3WronglyOriented Wrongly Oriented Normals
|
||||||
|
|
||||||
The Poisson surface reconstruction approaches solves for an implicit
|
The Poisson surface reconstruction approaches solves for an implicit
|
||||||
function whose gradient best matches a set of input normals. Because
|
function whose gradient best matches a set of input normals. Because
|
||||||
|
|
@ -267,16 +267,16 @@ it solves this problem in the least squares sense, it is robust to few
|
||||||
isolated wrongly oriented (flipped) normals. Nevertheless a cluster of
|
isolated wrongly oriented (flipped) normals. Nevertheless a cluster of
|
||||||
wrongly oriented normals leads to an incorrect implicit function and
|
wrongly oriented normals leads to an incorrect implicit function and
|
||||||
hence to spurious geometric or even topological distortion (see
|
hence to spurious geometric or even topological distortion (see
|
||||||
\cgalFigureRef{Surface_reconstruction_points_3figflipped_normals}).
|
\cgalFigureRef{Poisson_surface_reconstruction_3figflipped_normals}).
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figflipped_normals,flipped_normals.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figflipped_normals,flipped_normals.jpg}
|
||||||
Left: points sampled on a sphere with a cluster of wrongly oriented normals. Right: reconstructed surface mesh with a spurious bump.
|
Left: points sampled on a sphere with a cluster of wrongly oriented normals. Right: reconstructed surface mesh with a spurious bump.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3NoiseandOutliers Noise and Outliers
|
\subsection Poisson_surface_reconstruction_3NoiseandOutliers Noise and Outliers
|
||||||
|
|
||||||
A large amount of noise inevitably impacts on the reconstruction (see
|
A large amount of noise inevitably impacts on the reconstruction (see
|
||||||
\cgalFigureRef{Surface_reconstruction_points_3fignoise}, top) and the
|
\cgalFigureRef{Poisson_surface_reconstruction_3fignoise}, top) and the
|
||||||
current implementation does not provide any mean to trade data fitting
|
current implementation does not provide any mean to trade data fitting
|
||||||
for smoothness. Nevertheless if the signal-to-noise ratio is
|
for smoothness. Nevertheless if the signal-to-noise ratio is
|
||||||
sufficiently high and/or the surface approximation and sizing
|
sufficiently high and/or the surface approximation and sizing
|
||||||
|
|
@ -285,9 +285,9 @@ the noise level the output surface mesh will appear smooth (not
|
||||||
shown). If the user wants to produce a smooth and detailed output
|
shown). If the user wants to produce a smooth and detailed output
|
||||||
surface mesh, we recommend to apply smoothing through
|
surface mesh, we recommend to apply smoothing through
|
||||||
`jet_smooth_point_set()` (see
|
`jet_smooth_point_set()` (see
|
||||||
\cgalFigureRef{Surface_reconstruction_points_3fignoise}, bottom).
|
\cgalFigureRef{Poisson_surface_reconstruction_3fignoise}, bottom).
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3fignoise,noise.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3fignoise,noise.jpg}
|
||||||
Top-left: points sampled on a sphere and corrupted with a lot of noise. Top-right: reconstructed surface mesh. Bottom-left: smoothed point set. Bottom-right: reconstructed surface mesh.
|
Top-left: points sampled on a sphere and corrupted with a lot of noise. Top-right: reconstructed surface mesh. Bottom-left: smoothed point set. Bottom-right: reconstructed surface mesh.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
|
|
@ -296,13 +296,13 @@ into spurious small connected components and massive distortion near
|
||||||
the inferred surface. In this case the outliers must be removed
|
the inferred surface. In this case the outliers must be removed
|
||||||
through `remove_outliers()`.
|
through `remove_outliers()`.
|
||||||
|
|
||||||
\subsection Surface_reconstruction_points_3SharpCreases Sharp Creases
|
\subsection Poisson_surface_reconstruction_3SharpCreases Sharp Creases
|
||||||
|
|
||||||
The current reconstruction algorithm is not able to recover the sharp
|
The current reconstruction algorithm is not able to recover the sharp
|
||||||
creases and corners present in the inferred surface. This translates
|
creases and corners present in the inferred surface. This translates
|
||||||
into smoothed sharp creases.
|
into smoothed sharp creases.
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3figsharp_features,sharp_features.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3figsharp_features,sharp_features.jpg}
|
||||||
Left: 5K points sampled on a mechanical piece with sharp features (creases, darts and corners). Right: reconstructed surface mesh with smoothed creases.
|
Left: 5K points sampled on a mechanical piece with sharp features (creases, darts and corners). Right: reconstructed surface mesh with smoothed creases.
|
||||||
\cgalFigureEnd
|
\cgalFigureEnd
|
||||||
|
|
||||||
|
|
@ -318,7 +318,7 @@ with the 03 option which maximizes speed. All measurements were done using the
|
||||||
\subsection SurfReconstPerfPIF Poisson Implicit Function
|
\subsection SurfReconstPerfPIF Poisson Implicit Function
|
||||||
|
|
||||||
The point set chosen for benchmarking the Poisson implicit function is the Bimba con Nastrino point set
|
The point set chosen for benchmarking the Poisson implicit function is the Bimba con Nastrino point set
|
||||||
(1.6 million points) depicted by \cgalFigureRef{Surface_reconstruction_points_3-fig-contouring_bench}.
|
(1.6 million points) depicted by \cgalFigureRef{Poisson_surface_reconstruction_3-fig-contouring_bench}.
|
||||||
We measure the Poisson implicit function computation (i.e., the call to
|
We measure the Poisson implicit function computation (i.e., the call to
|
||||||
`Poisson_reconstruction_function::compute_implicit_function()` denoted by Poisson solve hereafter)
|
`Poisson_reconstruction_function::compute_implicit_function()` denoted by Poisson solve hereafter)
|
||||||
for this point set as well as for simplified versions obtained through random simplification.
|
for this point set as well as for simplified versions obtained through random simplification.
|
||||||
|
|
@ -427,7 +427,7 @@ Reconstruction error (mm)
|
||||||
</TABLE>
|
</TABLE>
|
||||||
|
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3-fig-contouring_bench,contouring_bench.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3-fig-contouring_bench,contouring_bench.jpg}
|
||||||
Contouring duration (in s) and reconstruction error (mm)
|
Contouring duration (in s) and reconstruction error (mm)
|
||||||
against several approximation distance parameters
|
against several approximation distance parameters
|
||||||
for the Bimba con Nastrino point set simplified to 100k points.
|
for the Bimba con Nastrino point set simplified to 100k points.
|
||||||
|
|
@ -538,7 +538,7 @@ Reconstruction error (mm)
|
||||||
</TABLE>
|
</TABLE>
|
||||||
|
|
||||||
|
|
||||||
\cgalFigureBegin{Surface_reconstruction_points_3-fig-simplification_bench,simplification_bench.jpg}
|
\cgalFigureBegin{Poisson_surface_reconstruction_3-fig-simplification_bench,simplification_bench.jpg}
|
||||||
Reconstruction error (mm) against number of points
|
Reconstruction error (mm) against number of points
|
||||||
for the Bimba con Nastrino point set with 1.6M points
|
for the Bimba con Nastrino point set with 1.6M points
|
||||||
as well as for simplified versions.
|
as well as for simplified versions.
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
/// \example Surface_reconstruction_points_3/poisson_reconstruction_example.cpp
|
/// \example Poisson_surface_reconstruction_3/poisson_reconstruction_example.cpp
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# This is the CMake script for compiling this folder.
|
# This is the CMake script for compiling this folder.
|
||||||
|
|
||||||
project( Surface_reconstruction_points_3_example )
|
project( Poisson_surface_reconstruction_3_example )
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.11)
|
cmake_minimum_required(VERSION 2.8.11)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -144,7 +144,7 @@ struct Special_wrapper_of_two_functions_keep_pointers {
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgSurfaceReconstructionFromPointSets
|
\ingroup PkgPoissonSurfaceReconstruction
|
||||||
|
|
||||||
\brief Implementation of the Poisson Surface Reconstruction method.
|
\brief Implementation of the Poisson Surface Reconstruction method.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
/// \cond SKIP_IN_MANUAL
|
/// \cond SKIP_IN_MANUAL
|
||||||
|
|
||||||
/// @file surface_reconstruction_points_assertions.h
|
/// @file surface_reconstruction_points_assertions.h
|
||||||
/// Define checking macros for the Surface_reconstruction_points_3 package
|
/// Define checking macros for the Poisson_surface_reconstruction_3 package
|
||||||
|
|
||||||
// Note that this header file is intentionnaly not protected with a
|
// Note that this header file is intentionnaly not protected with a
|
||||||
// macro (as <cassert>). Calling it a second time with another value
|
// macro (as <cassert>). Calling it a second time with another value
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# This is the CMake script for compiling this folder.
|
# This is the CMake script for compiling this folder.
|
||||||
|
|
||||||
project( Surface_reconstruction_points_3_test )
|
project( Poisson_surface_reconstruction_3_test )
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.11)
|
cmake_minimum_required(VERSION 2.8.11)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
|
||||||
/// The UI_point_3 class represents a 3D point in Surface_reconstruction_points_3 demo.
|
/// The UI_point_3 class represents a 3D point in Poisson_surface_reconstruction_3 demo.
|
||||||
/// It contains:
|
/// It contains:
|
||||||
/// - a position,
|
/// - a position,
|
||||||
/// - a normal,
|
/// - a normal,
|
||||||
|
|
|
||||||
234
copyright
234
copyright
|
|
@ -8,120 +8,120 @@ U = Utrecht University
|
||||||
R = RU Groningen
|
R = RU Groningen
|
||||||
|
|
||||||
|
|
||||||
AABB_tree I
|
AABB_tree I
|
||||||
Algebraic_foundations ETIMU
|
Algebraic_foundations ETIMU
|
||||||
Algebraic_kernel_d IM
|
Algebraic_kernel_d IM
|
||||||
Algebraic_kernel_for_circles I
|
Algebraic_kernel_for_circles I
|
||||||
Algebraic_kernel_for_spheres I
|
Algebraic_kernel_for_spheres I
|
||||||
Alpha_shapes_2 I
|
Alpha_shapes_2 I
|
||||||
Alpha_shapes_3 I
|
Alpha_shapes_3 I
|
||||||
Apollonius_graph_2 I
|
Apollonius_graph_2 I
|
||||||
Approximate_min_ellipsoid_d E
|
Approximate_min_ellipsoid_d E
|
||||||
Arithmetic_kernel M
|
Arithmetic_kernel M
|
||||||
Arrangement_on_surface_2 T
|
Arrangement_on_surface_2 T
|
||||||
BGL G
|
BGL G
|
||||||
Boolean_set_operations_2 T
|
Boolean_set_operations_2 T
|
||||||
Box_intersection_d M
|
Box_intersection_d M
|
||||||
CGAL_Core NYU; Chee Yap agreed to upgrade
|
CGAL_Core NYU; Chee Yap agreed to upgrade
|
||||||
CGAL_ImageIO third party lib under LGPL
|
CGAL_ImageIO third party lib under LGPL
|
||||||
CGAL_ipelets I
|
CGAL_ipelets I
|
||||||
Cartesian_kernel ETIMU
|
Cartesian_kernel ETIMU
|
||||||
Circular_kernel_2 I
|
Circular_kernel_2 I
|
||||||
Circular_kernel_3 I
|
Circular_kernel_3 I
|
||||||
Circulator ETIMU
|
Circulator ETIMU
|
||||||
Combinatorial_map Cnrs; Guillaume Damiand upgraded
|
Combinatorial_map Cnrs; Guillaume Damiand upgraded
|
||||||
Conic_2 ETIMU
|
Conic_2 ETIMU
|
||||||
Convex_decomposition_3 M
|
Convex_decomposition_3 M
|
||||||
Convex_hull_2 M
|
Convex_hull_2 M
|
||||||
Convex_hull_3 M
|
Convex_hull_3 M
|
||||||
Convex_hull_d M
|
Convex_hull_d M
|
||||||
Developers_manual ETIMU
|
Developers_manual ETIMU
|
||||||
Distance_2 ETIMU
|
Distance_2 ETIMU
|
||||||
Distance_3 ETIMU
|
Distance_3 ETIMU
|
||||||
Envelope_2 T
|
Envelope_2 T
|
||||||
Envelope_3 T
|
Envelope_3 T
|
||||||
Filtered_kernel I
|
Filtered_kernel I
|
||||||
Generator ETIMU
|
Generator ETIMU
|
||||||
Geomview ETIMU
|
Geomview ETIMU
|
||||||
GraphicsView G
|
GraphicsView G
|
||||||
HalfedgeDS ETIMU
|
HalfedgeDS ETIMU
|
||||||
Hash_map M
|
Hash_map M
|
||||||
Homogeneous_kernel ETIMU
|
Homogeneous_kernel ETIMU
|
||||||
Installation ETIMU
|
Installation ETIMU
|
||||||
Interpolation I
|
Interpolation I
|
||||||
Intersections_2 ETIMU
|
Intersections_2 ETIMU
|
||||||
Intersections_3 ETIMU
|
Intersections_3 ETIMU
|
||||||
Interval_skip_list G
|
Interval_skip_list G
|
||||||
Interval_support M
|
Interval_support M
|
||||||
Inventor ETIMU
|
Inventor ETIMU
|
||||||
Jet_fitting_3 I
|
Jet_fitting_3 I
|
||||||
Kernel_23 ETIMU
|
Kernel_23 ETIMU
|
||||||
Kernel_d ETIMU
|
Kernel_d ETIMU
|
||||||
Kinetic_data_structures Stanford; Leo Guibas agreed to upgrade
|
Kinetic_data_structures Stanford; Leo Guibas agreed to upgrade
|
||||||
LEDA ETIMU
|
LEDA ETIMU
|
||||||
Largest_empty_rect_2 T
|
Largest_empty_rect_2 T
|
||||||
MacOSX F
|
MacOSX F
|
||||||
Maintenance ETIMUG
|
Maintenance ETIMUG
|
||||||
Manual ETIMU
|
Manual ETIMU
|
||||||
Manual_tools EIM, Modena Software, Silicon Graphics
|
Manual_tools EIM, Modena Software, Silicon Graphics
|
||||||
Matrix_search E
|
Matrix_search E
|
||||||
Mesh_2 I
|
Mesh_2 I
|
||||||
Mesh_3 I
|
Mesh_3 I
|
||||||
Min_annulus_d E
|
Min_annulus_d E
|
||||||
Min_circle_2 E
|
Min_circle_2 E
|
||||||
Min_ellipse_2 E
|
Min_ellipse_2 E
|
||||||
Min_quadrilateral_2 E
|
Min_quadrilateral_2 E
|
||||||
Min_sphere_d E
|
Min_sphere_d E
|
||||||
Min_sphere_of_spheres_d E
|
Min_sphere_of_spheres_d E
|
||||||
Minkowski_sum_2 T
|
Minkowski_sum_2 T
|
||||||
Minkowski_sum_3 M
|
Minkowski_sum_3 M
|
||||||
Modifier ETIMU
|
Modifier ETIMU
|
||||||
Modular_arithmetic MI
|
Modular_arithmetic MI
|
||||||
Nef_2 M
|
Nef_2 M
|
||||||
Nef_3 M
|
Nef_3 M
|
||||||
Nef_S2 M
|
Nef_S2 M
|
||||||
Number_types ETIMU
|
Number_types ETIMU
|
||||||
OpenNL third party lib under LGPL 3
|
OpenNL third party lib under LGPL 3
|
||||||
Optimisation_basic E
|
Optimisation_basic E
|
||||||
Optimisation_doc E
|
Optimisation_doc E
|
||||||
Partition_2 M
|
Partition_2 M
|
||||||
Periodic_3_triangulation_3 I
|
Periodic_3_triangulation_3 I
|
||||||
Point_set_2 Halle transfered copyright to Inria
|
Point_set_2 Halle transfered copyright to Inria
|
||||||
Point_set_processing_3 I
|
Point_set_processing_3 I
|
||||||
Polygon ETIMU
|
Polygon ETIMU
|
||||||
Polyhedron E
|
Polyhedron E
|
||||||
Polyhedron_IO E
|
Polyhedron_IO E
|
||||||
Polynomial M
|
Polynomial M
|
||||||
Polytope_distance_d E
|
Polytope_distance_d E
|
||||||
Principal_component_analysis I
|
Principal_component_analysis I
|
||||||
Profiling_tools ETIMU
|
Profiling_tools ETIMU
|
||||||
QP_solver E
|
QP_solver E
|
||||||
Qt_widget I
|
Qt_widget I
|
||||||
Random_numbers ETIMU
|
Random_numbers ETIMU
|
||||||
Ridges_3 I
|
Ridges_3 I
|
||||||
Robustness M
|
Robustness M
|
||||||
STL_Extension ETIMU
|
STL_Extension ETIMU
|
||||||
Scripts ETIMU
|
Scripts ETIMU
|
||||||
SearchStructures E
|
SearchStructures E
|
||||||
Segment_Delaunay_graph_2 I Menelaos removed Notre Dame U
|
Segment_Delaunay_graph_2 I Menelaos removed Notre Dame U
|
||||||
Skin_surface_3 R Gert Vegter agreed to upgrade
|
Skin_surface_3 R Gert Vegter agreed to upgrade
|
||||||
Snap_rounding_2 T
|
Snap_rounding_2 T
|
||||||
Spatial_searching U
|
Spatial_searching U
|
||||||
Spatial_sorting I
|
Spatial_sorting I
|
||||||
Straight_skeleton_2 Cacciola; Fernando agreed to upgrade to GPL
|
Straight_skeleton_2 Cacciola; Fernando agreed to upgrade to GPL
|
||||||
Stream_lines_2 I
|
Stream_lines_2 I
|
||||||
Stream_support ETIMU
|
Stream_support ETIMU
|
||||||
Subdivision_method_3 G
|
Subdivision_method_3 G
|
||||||
Surface_mesh_parameterization I
|
Surface_mesh_parameterization I
|
||||||
Surface_mesh_simplification G
|
Surface_mesh_simplification G
|
||||||
Surface_mesher I
|
Surface_mesher I
|
||||||
Surface_reconstruction_points_3I
|
Poisson_surface_reconstruction_3I
|
||||||
Testsuite IG
|
Testsuite IG
|
||||||
Triangulation_2 I
|
Triangulation_2 I
|
||||||
Triangulation_3 I
|
Triangulation_3 I
|
||||||
Union_find M
|
Union_find M
|
||||||
Voronoi_diagram_2 F I sent mail to Forth
|
Voronoi_diagram_2 F I sent mail to Forth
|
||||||
Width_3 E
|
Width_3 E
|
||||||
iostream ETIMU
|
iostream ETIMU
|
||||||
kdtree T
|
kdtree T
|
||||||
wininst ETIMU
|
wininst ETIMU
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue