Fixed declaration of templated methods

This commit is contained in:
Laurent Saboret 2008-09-30 14:32:45 +00:00
parent f7c1e0df6d
commit 7cba4b3f28
14 changed files with 53 additions and 57 deletions

View File

@ -41,14 +41,13 @@ The full template declaration is:
%START-AUTO(\ccParameters)
template$<$ \\
class Gt, \\
class \ccc{PointWithNormal_3}$>$ \\
class Gt$>$ \\
class \ccc{APSS_implicit_function};
\begin{description}
\item[Parameters:]
\begin{description}
\item[Gt]Geometric traits class. \item[\ccc{PointWithNormal_3}]Model of \ccc{PointWithNormal_3} concept. \end{description}
\item[Gt]Geometric traits class. \end{description}
\end{description}
%END-AUTO(\ccParameters)
@ -58,7 +57,7 @@ class \ccc{APSS_implicit_function};
% The section below is automatically generated. Do not edit!
%START-AUTO(\ccIsModel)
Model of the \ccc{Reconstruction_implicit_function} concept.
Model of the ReconstructionImplicitFunction concept.
%END-AUTO(\ccIsModel)
@ -99,12 +98,10 @@ Kernel's geometric traits.
\ccGlue
\ccNestedType{Point_with_normal}
{
Model of \ccc{PointWithNormal_3} concept.
}
\ccGlue
\ccNestedType{Normal}
{
Model of \ccc{Kernel::Vector_3} concept.
}
\ccGlue
\ccNestedType{Vector}
@ -123,7 +120,7 @@ Model of \ccc{Kernel::Vector_3} concept.
\ccConstructor{APSS_implicit_function(InputIterator first, InputIterator beyond, unsigned int k, FT projection_error = 3.16e-4);}
{
Create an APSS implicit function from a point set.
Precondition: the value type of InputIterator must be convertible to \ccc{Point_with_normal}.
Precondition: the value type of InputIterator must be convertible to \ccc{Point_with_normal_3}.
}
\ccGlue
\begin{description}
@ -132,7 +129,7 @@ Precondition: the value type of InputIterator must be convertible to \ccc{Point_
\item[first]First point of point set. \item[beyond]Past-the-end point of point set. \item[k]Number of nearest neighbours. \item[\ccc{projection_error}]Dichotomy error when projecting point. \end{description}
\end{description}
\ccGlue
\ccConstructor{APSS_implicit_function(const APSS_implicit_function<Gt, PointWithNormal_3>& other);}
\ccConstructor{APSS_implicit_function(const APSS_implicit_function<Gt>& other);}
{
}
\ccGlue
@ -144,7 +141,7 @@ Precondition: the value type of InputIterator must be convertible to \ccc{Point_
% The section below is automatically generated. Do not edit!
%START-AUTO(\ccOperations)
\ccMethod{APSS_implicit_function& operator=(const APSS_implicit_function<Gt, PointWithNormal_3>& other);}
\ccMethod{APSS_implicit_function& operator=(const APSS_implicit_function<Gt>& other);}
{
}
\ccGlue

View File

@ -115,7 +115,7 @@ Vector is (0,0,0) by default.
Copy constructor.
}
\ccGlue
\ccConstructor{Lightweight_vector_3(const Lightweight_vector_3<K>& that);}
\ccConstructor{template<class K>Lightweight_vector_3(const Lightweight_vector_3<K>& that);}
{
}
\ccGlue
@ -225,18 +225,17 @@ Get (a copy of) the actual vector.
%END-AUTO(\ccOperations)
\ccHeading{Friends And Related Functions}
\ccHeading{Related Functions}
% The section below is automatically generated. Do not edit!
%START-AUTO(\ccHeading{Friends And Related Functions})
%START-AUTO(\ccHeading{Related Functions})
\ccFunction{Vector operator*(FT c, const Lightweight_vector_3<Gt>& vector);}
{
[friend] \\
}
\ccGlue
%END-AUTO(\ccHeading{Friends And Related Functions})
%END-AUTO(\ccHeading{Related Functions})
\ccSeeAlso

View File

@ -124,7 +124,7 @@ Normal vector is (0,0,0) by default. Normal is oriented by default.
Copy constructor.
}
\ccGlue
\ccConstructor{Orientable_normal_3(const Orientable_normal_3<K>& that);}
\ccConstructor{template<class K>Orientable_normal_3(const Orientable_normal_3<K>& that);}
{
}
\ccGlue

View File

@ -132,7 +132,7 @@ Point is (0,0,0) by default. Normal is (0,0,0) by default. Normal is oriented by
Copy constructor.
}
\ccGlue
\ccConstructor{Point_with_normal_3(const Point_with_normal_3<K, N>& pwn);}
\ccConstructor{template<class K, class N>Point_with_normal_3(const Point_with_normal_3<K, N>& pwn);}
{
}
\ccGlue

View File

@ -58,7 +58,7 @@ class \ccc{Poisson_implicit_function};
% The section below is automatically generated. Do not edit!
%START-AUTO(\ccIsModel)
Model of the \ccc{Reconstruction_implicit_function} concept.
Model of the ReconstructionImplicitFunction concept.
%END-AUTO(\ccIsModel)
@ -135,7 +135,7 @@ Create a Poisson indicator function f() piecewise-linear over the tetrahedra of
\item[pdt]\ccc{ImplicitFctDelaunayTriangulation_3} base of the Poisson indicator function. \end{description}
\end{description}
\ccGlue
\ccConstructor{Poisson_implicit_function(Triangulation& pdt, InputIterator first, InputIterator beyond);}
\ccConstructor{template<class InputIterator>Poisson_implicit_function(Triangulation& pdt, InputIterator first, InputIterator beyond);}
{
Create an implicit function from a point set. Insert the first...beyond point set into pdt and create a Poisson indicator function f() piecewise-linear over the tetrahedra of pdt.
Precondition: the value type of InputIterator must be convertible to \ccc{Point_with_normal}.
@ -155,7 +155,7 @@ Precondition: the value type of InputIterator must be convertible to \ccc{Point_
% The section below is automatically generated. Do not edit!
%START-AUTO(\ccOperations)
\ccMethod{int insert(InputIterator first, InputIterator beyond);}
\ccMethod{template<class InputIterator>int insert(InputIterator first, InputIterator beyond);}
{
Insert points.
Precondition: the value type of InputIterator must be convertible to \ccc{Point_with_normal}.

View File

@ -93,7 +93,7 @@ Model of \ccc{Kernel::Vector_3} concept.
% The section below is automatically generated. Do not edit!
%START-AUTO(\ccCreation)
\ccConstructor{ReconstructionImplicitFunction(InputIterator first, InputIterator beyond);}
\ccConstructor{template<class InputIterator>ReconstructionImplicitFunction(InputIterator first, InputIterator beyond);}
{
Create an implicit function from a point set.
Precondition: the value type of InputIterator must be convertible to \ccc{Point_with_normal}.

View File

@ -41,7 +41,7 @@ Precondition: KNN $>$= 2.
\item[query]3D point whose spacing we want to compute \item[tree]KD-tree \item[KNN]number of neighbors \end{description}
\end{description}
\ccGlue
\ccFunction{Kernel::FT average_spacing_3(InputIterator first, InputIterator beyond, unsigned int KNN, const Kernel &);}
\ccFunction{Kernel::FT average_spacing_3(InputIterator first, InputIterator beyond, unsigned int KNN, const Kernel& );}
{
Compute average spacing from K nearest neighbors. This variant requires the kernel.
Precondition: KNN $>$= 2.
@ -95,13 +95,13 @@ template$<$ \\
typename Kernel, \\
typename Tree$>$ \\
\ccc{Kernel::FT} \\
\ccc{average_spacing_3} (const typename \ccc{Kernel::Point_3} \&query, Tree \&tree, unsigned int KNN); \\
\ccc{average_spacing_3} (const typename \ccc{Kernel::Point_3}\& query, Tree\& tree, unsigned int KNN); \\
\\
template$<$ \\
typename InputIterator, \\
typename Kernel$>$ \\
\ccc{Kernel::FT} \\
\ccc{average_spacing_3} (InputIterator first, InputIterator beyond, unsigned int KNN, const Kernel \&); \\
\ccc{average_spacing_3} (InputIterator first, InputIterator beyond, unsigned int KNN, const Kernel\& ); \\
\\
template$<$ \\
typename InputIterator, \\

View File

@ -24,7 +24,7 @@
% The section below is automatically generated. Do not edit!
%START-AUTO(\ccDefinition)
\ccFunction{OutputIterator estimate_normals_jet_fitting_3(InputIterator first, InputIterator beyond, OutputIterator normals, const unsigned int KNN, const Kernel &, const unsigned int degre_fitting = 2);}
\ccFunction{OutputIterator estimate_normals_jet_fitting_3(InputIterator first, InputIterator beyond, OutputIterator normals, const unsigned int KNN, const Kernel& , const unsigned int degre_fitting = 2);}
{
Estimate normal directions using jet fitting on the KNN nearest neighbors. This variant requires the kernel.
Precondition: KNN $>$= 2.
@ -77,7 +77,7 @@ typename InputIterator, \\
typename OutputIterator, \\
typename Kernel$>$ \\
OutputIterator \\
\ccc{estimate_normals_jet_fitting_3} (InputIterator first, InputIterator beyond, OutputIterator normals, const unsigned int KNN, const Kernel \&, const unsigned int \ccc{degre_fitting}=2); \\
\ccc{estimate_normals_jet_fitting_3} (InputIterator first, InputIterator beyond, OutputIterator normals, const unsigned int KNN, const Kernel\& , const unsigned int \ccc{degre_fitting}=2); \\
\\
template$<$ \\
typename InputIterator, \\

View File

@ -24,7 +24,7 @@
% The section below is automatically generated. Do not edit!
%START-AUTO(\ccDefinition)
\ccFunction{OutputIterator estimate_normals_pca_3(InputIterator first, InputIterator beyond, OutputIterator normals, const unsigned int KNN, const Kernel &);}
\ccFunction{OutputIterator estimate_normals_pca_3(InputIterator first, InputIterator beyond, OutputIterator normals, const unsigned int KNN, const Kernel& );}
{
Estimate normals direction using linear least squares fitting of a plane on the K nearest neighbors. This variant requires the kernel.
Precondition: KNN $>$= 2.
@ -77,7 +77,7 @@ typename InputIterator, \\
typename OutputIterator, \\
typename Kernel$>$ \\
OutputIterator \\
\ccc{estimate_normals_pca_3} (InputIterator first, InputIterator beyond, OutputIterator normals, const unsigned int KNN, const Kernel \&); \\
\ccc{estimate_normals_pca_3} (InputIterator first, InputIterator beyond, OutputIterator normals, const unsigned int KNN, const Kernel\& ); \\
\\
template$<$ \\
typename InputIterator, \\

View File

@ -22,7 +22,7 @@
% The section below is automatically generated. Do not edit!
%START-AUTO(\ccDefinition)
\ccFunction{OutputIterator merge_epsilon_nearest_points_3(InputIterator first, InputIterator beyond, OutputIterator output, double epsilon, const Kernel &);}
\ccFunction{OutputIterator merge_epsilon_nearest_points_3(InputIterator first, InputIterator beyond, OutputIterator output, double epsilon, const Kernel& );}
{
Merge points which belong to the same cell of a grid of cell size = epsilon. This variant requires the kernel.
Precondition: epsilon $>$ 0.
@ -41,7 +41,7 @@ Precondition: epsilon $>$ 0.
\item[first]input points \item[output]output points \item[epsilon]tolerance value when comparing 3D points \end{description}
\end{description}
\ccGlue
\ccFunction{ForwardIterator merge_epsilon_nearest_points_3(ForwardIterator first, ForwardIterator beyond, double epsilon, const Kernel &);}
\ccFunction{ForwardIterator merge_epsilon_nearest_points_3(ForwardIterator first, ForwardIterator beyond, double epsilon, const Kernel& );}
{
Merge points which belong to the same cell of a grid of cell size = epsilon. This function is mutating the input point set. This variant requires the kernel.
Warning: This method modifies the order of points, thus Precondition: epsilon $>$ 0.
@ -115,13 +115,13 @@ typename InputIterator, \\
typename OutputIterator, \\
typename Kernel$>$ \\
OutputIterator \\
\ccc{merge_epsilon_nearest_points_3} (InputIterator first, InputIterator beyond, OutputIterator output, double epsilon, const Kernel \&); \\
\ccc{merge_epsilon_nearest_points_3} (InputIterator first, InputIterator beyond, OutputIterator output, double epsilon, const Kernel\& ); \\
\\
template$<$ \\
typename ForwardIterator, \\
typename Kernel$>$ \\
ForwardIterator \\
\ccc{merge_epsilon_nearest_points_3} (ForwardIterator first, ForwardIterator beyond, double epsilon, const Kernel \&); \\
\ccc{merge_epsilon_nearest_points_3} (ForwardIterator first, ForwardIterator beyond, double epsilon, const Kernel\& ); \\
\\
template$<$ \\
typename InputIterator, \\

View File

@ -22,7 +22,7 @@
% The section below is automatically generated. Do not edit!
%START-AUTO(\ccDefinition)
\ccFunction{OutputIterator remove_outliers_wrt_avg_knn_sq_distance_3(InputIterator first, InputIterator beyond, OutputIterator output, unsigned int KNN, const Kernel &, double threshold_percent);}
\ccFunction{OutputIterator remove_outliers_wrt_avg_knn_sq_distance_3(InputIterator first, InputIterator beyond, OutputIterator output, unsigned int KNN, const Kernel& , double threshold_percent);}
{
Remove outliers:\begin{itemize}
\item compute average squared distance to the K nearest neighbors,\item percentage of points to remove. This variant requires the kernel.\end{itemize}
@ -42,7 +42,7 @@ Precondition: KNN $>$= 2.
\item[first]input points \item[output]output points \item[KNN]number of neighbors \item[\ccc{threshold_percent}]percentage of points to remove \end{description}
\end{description}
\ccGlue
\ccFunction{ForwardIterator remove_outliers_wrt_avg_knn_sq_distance_3(ForwardIterator first, ForwardIterator beyond, unsigned int KNN, const Kernel &, double threshold_percent);}
\ccFunction{ForwardIterator remove_outliers_wrt_avg_knn_sq_distance_3(ForwardIterator first, ForwardIterator beyond, unsigned int KNN, const Kernel& , double threshold_percent);}
{
Remove outliers:\begin{itemize}
\item compute average squared distance to the K nearest neighbors,\item percentage of points to remove. This function is mutating the input point set. This variant requires the kernel.\end{itemize}
@ -119,13 +119,13 @@ typename InputIterator, \\
typename OutputIterator, \\
typename Kernel$>$ \\
OutputIterator \\
\ccc{remove_outliers_wrt_avg_knn_sq_distance_3} (InputIterator first, InputIterator beyond, OutputIterator output, unsigned int KNN, const Kernel \&, double \ccc{threshold_percent}); \\
\ccc{remove_outliers_wrt_avg_knn_sq_distance_3} (InputIterator first, InputIterator beyond, OutputIterator output, unsigned int KNN, const Kernel\& , double \ccc{threshold_percent}); \\
\\
template$<$ \\
typename ForwardIterator, \\
typename Kernel$>$ \\
ForwardIterator \\
\ccc{remove_outliers_wrt_avg_knn_sq_distance_3} (ForwardIterator first, ForwardIterator beyond, unsigned int KNN, const Kernel \&, double \ccc{threshold_percent}); \\
\ccc{remove_outliers_wrt_avg_knn_sq_distance_3} (ForwardIterator first, ForwardIterator beyond, unsigned int KNN, const Kernel\& , double \ccc{threshold_percent}); \\
\\
template$<$ \\
typename InputIterator, \\

View File

@ -41,7 +41,7 @@ Precondition: KNN $>$= 2.
\item[query]3D point to project \item[tree]KD-tree \end{description}
\end{description}
\ccGlue
\ccFunction{OutputIterator smooth_jet_fitting_3(InputIterator first, InputIterator beyond, OutputIterator output, const unsigned int KNN, const Kernel &, const unsigned int degre_fitting = 2, const unsigned int degree_monge = 2);}
\ccFunction{OutputIterator smooth_jet_fitting_3(InputIterator first, InputIterator beyond, OutputIterator output, const unsigned int KNN, const Kernel& , const unsigned int degre_fitting = 2, const unsigned int degree_monge = 2);}
{
Smooth a point set using jet fitting on the KNN nearest neighbors and reprojection onto the jet. This variant requires the kernel.
Precondition: KNN $>$= 2.
@ -60,7 +60,7 @@ Precondition: KNN $>$= 2.
\item[first]input points \item[output]output points \item[KNN]number of neighbors \end{description}
\end{description}
\ccGlue
\ccFunction{void smooth_jet_fitting_3(ForwardIterator first, ForwardIterator beyond, unsigned int KNN, const Kernel &, const unsigned int degre_fitting = 2, const unsigned int degree_monge = 2);}
\ccFunction{void smooth_jet_fitting_3(ForwardIterator first, ForwardIterator beyond, unsigned int KNN, const Kernel& , const unsigned int degre_fitting = 2, const unsigned int degree_monge = 2);}
{
Smooth a point set using jet fitting on the KNN nearest neighbors and reprojection onto the jet. This function is mutating the input point set. This variant requires the kernel.
Warning: This method moves the points, thus Precondition: KNN $>$= 2.
@ -124,20 +124,20 @@ template$<$ \\
typename Kernel, \\
typename Tree$>$ \\
\ccc{Kernel::Point_3} \\
\ccc{smooth_jet_fitting_3} (const typename \ccc{Kernel::Point_3} \&query, Tree \&tree, const unsigned int KNN, const unsigned int \ccc{degre_fitting}, const unsigned int \ccc{degree_monge}); \\
\ccc{smooth_jet_fitting_3} (const typename \ccc{Kernel::Point_3}\& query, Tree\& tree, const unsigned int KNN, const unsigned int \ccc{degre_fitting}, const unsigned int \ccc{degree_monge}); \\
\\
template$<$ \\
typename InputIterator, \\
typename OutputIterator, \\
typename Kernel$>$ \\
OutputIterator \\
\ccc{smooth_jet_fitting_3} (InputIterator first, InputIterator beyond, OutputIterator output, const unsigned int KNN, const Kernel \&, const unsigned int \ccc{degre_fitting}=2, const unsigned int \ccc{degree_monge}=2); \\
\ccc{smooth_jet_fitting_3} (InputIterator first, InputIterator beyond, OutputIterator output, const unsigned int KNN, const Kernel\& , const unsigned int \ccc{degre_fitting}=2, const unsigned int \ccc{degree_monge}=2); \\
\\
template$<$ \\
typename ForwardIterator, \\
typename Kernel$>$ \\
void \\
\ccc{smooth_jet_fitting_3} (ForwardIterator first, ForwardIterator beyond, unsigned int KNN, const Kernel \&, const unsigned int \ccc{degre_fitting}=2, const unsigned int \ccc{degree_monge}=2); \\
\ccc{smooth_jet_fitting_3} (ForwardIterator first, ForwardIterator beyond, unsigned int KNN, const Kernel\& , const unsigned int \ccc{degre_fitting}=2, const unsigned int \ccc{degree_monge}=2); \\
\\
template$<$ \\
typename InputIterator, \\

View File

@ -42,7 +42,7 @@ CGAL_BEGIN_NAMESPACE
/// See "Algebraic Point Set Surfaces" by Guennebaud and Gross (2007).
///
/// @heading Is Model for the Concepts:
/// Model of the Reconstruction_implicit_function concept.
/// Model of the ReconstructionImplicitFunction concept.
///
/// @heading Design Pattern:
/// A model of ReconstructionImplicitFunction is a
@ -99,7 +99,7 @@ private:
typedef Search_traits_3<KdTreeGT> TreeTraits;
typedef Orthogonal_k_neighbor_search<TreeTraits> Neighbor_search;
typedef typename Neighbor_search::Tree Tree;
typedef typename Neighbor_search::Point_with_transformed_distance
typedef typename Neighbor_search::Point_with_transformed_distance
Point_with_transformed_distance;
// Public methods
@ -141,13 +141,13 @@ public:
FT maxdist2 = (--search.end())->second; // squared distance to furthest neighbor
m->radii.push_back(sqrt(maxdist2)/2.);
}
// Compute barycenter, bounding box, bounding sphere and standard deviation.
update_bounding_box(first, beyond);
// Find a point inside the surface.
find_inner_point();
// Dichotomy error when projecting point (squared)
m->sqError = projection_error * projection_error * Gt().compute_squared_radius_3_object()(m->bounding_sphere);
}
@ -259,7 +259,7 @@ public:
FT operator()(const Point& p) const
{
// Is 'p' close to the surface?
// Optimization: test first if 'p' is close to one of the neighbors
// Optimization: test first if 'p' is close to one of the neighbors
// computed during the previous call.
typename Geom_traits::Compute_squared_distance_3 sqd;
m->cached_nearest_neighbor.second = sqd(p, m->cached_nearest_neighbor.first);
@ -269,7 +269,7 @@ public:
KdTreeElement query(p);
Neighbor_search search_1nn(*(m->tree), query, 1);
m->cached_nearest_neighbor = *(search_1nn.begin());
// Is 'p' close to the surface?
if (!isValid(m->cached_nearest_neighbor, p))
{
@ -283,16 +283,16 @@ public:
return length(h) * ( dot(n,h)>0. ? 1. : -1.);
}
}
// Compute k nearest neighbors and cache the first one
KdTreeElement query(p);
Neighbor_search search_knn(*(m->tree), query, m->nofNeighbors);
m->cached_nearest_neighbor = *(search_knn.begin());
// If 'p' is close to the surface, fit an algebraic sphere
// If 'p' is close to the surface, fit an algebraic sphere
// on a set of neigbors in a Moving Least Square sense.
fit(search_knn);
// return the distance to the sphere
return m->as.euclideanDistance(p);
}
@ -576,7 +576,7 @@ private:
// Try random points until we find a point / value < 0
Point center = m->bounding_sphere.center();
FT radius = sqrt(m->bounding_sphere.squared_radius());
CGAL::Random_points_in_sphere_3<Point> rnd(radius);
CGAL::Random_points_in_sphere_3<Point> rnd(radius);
while (min_f > 0)
{
// Create random point in bounding sphere
@ -593,17 +593,17 @@ private:
// Data members
private:
struct Private
struct Private
{
Private()
: tree(NULL), count(1)
{}
~Private()
{
delete tree; tree = NULL;
}
Tree* tree;
std::vector<KdTreeElement> treeElements;
std::vector<FT> radii;

View File

@ -108,7 +108,7 @@ public:
/// solver. One vertex must be constrained.
///
/// @heading Is Model for the Concepts:
/// Model of the Reconstruction_implicit_function concept.
/// Model of the ReconstructionImplicitFunction concept.
///
/// @heading Design Pattern:
/// A model of ReconstructionImplicitFunction is a
@ -420,7 +420,7 @@ public:
#endif
m_dt.invalidate_bounding_box();
CGAL_TRACE("End of delaunay_refinement()\n");
return nb_vertices_added;
@ -673,7 +673,7 @@ public:
{
if(!v->constrained())
{
B[v->index()] = is_normalized ? div_normalized(v)
B[v->index()] = is_normalized ? div_normalized(v)
: div(v); // rhs -> divergent
assemble_poisson_row(solver,v,B,lambda);
}