* mln/topo/skeleton/breadth_first_thinning.hh
(mln::topo::skeleton::breadth_first_thinning):
Disable the default value of the 5th argument, which cannot be
used in practice, since it depends on the parameter H.
Add a 4-argument overloading to make the `constraint' argument
optional.
---
milena/ChangeLog | 11 ++++++
milena/mln/topo/skeleton/breadth_first_thinning.hh | 36 ++++++++++++++++++-
2 files changed, 45 insertions(+), 2 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index ebcec24..18e4ada 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,14 @@
+2010-09-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Make the 5th argument of breadth_first_thinning truly optional.
+
+ * mln/topo/skeleton/breadth_first_thinning.hh
+ (mln::topo::skeleton::breadth_first_thinning):
+ Disable the default value of the 5th argument, which cannot be
+ used in practice, since it depends on the parameter H.
+ Add a 4-argument overloading to make the `constraint' argument
+ optional.
+
2010-09-01 Roland Levillain <roland(a)lrde.epita.fr>
Add more documentation on the detach procedure.
diff --git a/milena/mln/topo/skeleton/breadth_first_thinning.hh
b/milena/mln/topo/skeleton/breadth_first_thinning.hh
index f9356f9..f405166 100644
--- a/milena/mln/topo/skeleton/breadth_first_thinning.hh
+++ b/milena/mln/topo/skeleton/breadth_first_thinning.hh
@@ -70,8 +70,27 @@ namespace mln
const Neighborhood<N>& nbh,
Function_v2b<F>& is_simple,
G detach,
- const Function_v2b<H>& constraint =
- fun::p2b::tautology());
+ const Function_v2b<H>& constraint);
+
+
+ /** \brief Skeleton by Breadth-First Thinning with no constraint.
+
+ A generic implementation of the computation of a skeleton
+ using a breadth-first thinning on a binary.
+
+ \param input The input image.
+ \param nbh The adjacency relation between triangles.
+ \param is_simple The predicate on the simplicity of points
+ (sites). This functor must provide a method
+ <tt>void set_image(const
Image<I>&)</tt>.
+ \param detach A function used to detach a cell from
+ \a input. */
+ template <typename I, typename N, typename F, typename G>
+ mln_concrete(I)
+ breadth_first_thinning(const Image<I>& input,
+ const Neighborhood<N>& nbh,
+ Function_v2b<F>& is_simple,
+ G detach);
# ifndef MLN_INCLUDE_ONLY
@@ -149,6 +168,19 @@ namespace mln
return output;
}
+
+ template <typename I, typename N, typename F, typename G>
+ inline
+ mln_concrete(I)
+ breadth_first_thinning(const Image<I>& input,
+ const Neighborhood<N>& nbh,
+ Function_v2b<F>& is_simple,
+ G detach)
+ {
+ return breadth_first_thinning(input, nbh, is_simple, detach,
+ fun::p2b::tautology());
+ }
+
# endif // MLN_INCLUDE_ONLY
} // end of namespace mln::topo::skeleton
--
1.5.6.5