* doc/mln/convert.dox,
* doc/mln/core/concept/concept.dox,
* mln/core/concept/accumulator.hh,
* mln/core/concept/box.hh,
* mln/core/concept/browsing.hh,
* mln/core/concept/delta_point_site.hh,
* mln/core/concept/dpoint.hh,
* mln/core/concept/function.hh,
* mln/core/concept/gdpoint.hh,
* mln/core/concept/generalized_pixel.hh,
* mln/core/concept/gpoint.hh,
* mln/core/concept/graph.hh,
* mln/core/concept/image.hh,
* mln/core/concept/iterator.hh,
* mln/core/concept/literal.hh,
* mln/core/concept/mesh.hh,
* mln/core/concept/meta_accumulator.hh,
* mln/core/concept/meta_function.hh,
* mln/core/concept/neighborhood.hh,
* mln/core/concept/object.hh,
* mln/core/concept/pixel_iterator.hh,
* mln/core/concept/point.hh,
* mln/core/concept/point_site.hh,
* mln/core/concept/proxy.hh,
* mln/core/concept/pseudo_site.hh,
* mln/core/concept/regular_grid.hh,
* mln/core/concept/site.hh,
* mln/core/concept/site_iterator.hh,
* mln/core/concept/site_proxy.hh,
* mln/core/concept/site_set.hh,
* mln/core/concept/value.hh,
* mln/core/concept/value_iterator.hh,
* mln/core/concept/value_set.hh,
* mln/core/concept/weighted_window.hh,
* mln/core/concept/window.hh: Here.
---
milena/ChangeLog | 40 +++++++++++++++++++
milena/doc/mln/convert.dox | 13 ++++++
milena/doc/mln/core/concept/concept.dox | 6 +++
milena/mln/core/concept/accumulator.hh | 55 ++++++++++++++++---------
milena/mln/core/concept/box.hh | 15 +++----
milena/mln/core/concept/browsing.hh | 14 ++++---
milena/mln/core/concept/delta_point_site.hh | 15 +++----
milena/mln/core/concept/dpoint.hh | 10 ++--
milena/mln/core/concept/function.hh | 33 ++++++++++-----
milena/mln/core/concept/gdpoint.hh | 23 +++++++----
milena/mln/core/concept/generalized_pixel.hh | 25 ++++++------
milena/mln/core/concept/gpoint.hh | 26 +++++++-----
milena/mln/core/concept/graph.hh | 17 +++++---
milena/mln/core/concept/image.hh | 24 +++++++----
milena/mln/core/concept/iterator.hh | 13 +++---
milena/mln/core/concept/literal.hh | 14 ++++---
milena/mln/core/concept/mesh.hh | 11 +++--
milena/mln/core/concept/meta_accumulator.hh | 16 ++++---
milena/mln/core/concept/meta_function.hh | 20 ++++++---
milena/mln/core/concept/neighborhood.hh | 27 +++++++------
milena/mln/core/concept/object.hh | 15 +++++--
milena/mln/core/concept/pixel_iterator.hh | 19 +++++----
milena/mln/core/concept/point.hh | 22 +++++++----
milena/mln/core/concept/point_site.hh | 53 +++++++++++++-----------
milena/mln/core/concept/proxy.hh | 19 ++++++---
milena/mln/core/concept/pseudo_site.hh | 21 +++++-----
milena/mln/core/concept/regular_grid.hh | 8 +++-
milena/mln/core/concept/site.hh | 13 +++---
milena/mln/core/concept/site_iterator.hh | 22 +++++-----
milena/mln/core/concept/site_proxy.hh | 23 ++++++-----
milena/mln/core/concept/site_set.hh | 21 +++++++---
milena/mln/core/concept/value.hh | 17 +++++---
milena/mln/core/concept/value_iterator.hh | 20 +++++-----
milena/mln/core/concept/value_set.hh | 19 +++++----
milena/mln/core/concept/weighted_window.hh | 21 +++++-----
milena/mln/core/concept/window.hh | 28 ++++++++++---
36 files changed, 467 insertions(+), 291 deletions(-)
create mode 100644 milena/doc/mln/convert.dox
create mode 100644 milena/doc/mln/core/concept/concept.dox
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 132f715..3aabd3b 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,45 @@
2013-04-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Cleanup concept documentation.
+
+ * doc/mln/convert.dox,
+ * doc/mln/core/concept/concept.dox,
+ * mln/core/concept/accumulator.hh,
+ * mln/core/concept/box.hh,
+ * mln/core/concept/browsing.hh,
+ * mln/core/concept/delta_point_site.hh,
+ * mln/core/concept/dpoint.hh,
+ * mln/core/concept/function.hh,
+ * mln/core/concept/gdpoint.hh,
+ * mln/core/concept/generalized_pixel.hh,
+ * mln/core/concept/gpoint.hh,
+ * mln/core/concept/graph.hh,
+ * mln/core/concept/image.hh,
+ * mln/core/concept/iterator.hh,
+ * mln/core/concept/literal.hh,
+ * mln/core/concept/mesh.hh,
+ * mln/core/concept/meta_accumulator.hh,
+ * mln/core/concept/meta_function.hh,
+ * mln/core/concept/neighborhood.hh,
+ * mln/core/concept/object.hh,
+ * mln/core/concept/pixel_iterator.hh,
+ * mln/core/concept/point.hh,
+ * mln/core/concept/point_site.hh,
+ * mln/core/concept/proxy.hh,
+ * mln/core/concept/pseudo_site.hh,
+ * mln/core/concept/regular_grid.hh,
+ * mln/core/concept/site.hh,
+ * mln/core/concept/site_iterator.hh,
+ * mln/core/concept/site_proxy.hh,
+ * mln/core/concept/site_set.hh,
+ * mln/core/concept/value.hh,
+ * mln/core/concept/value_iterator.hh,
+ * mln/core/concept/value_set.hh,
+ * mln/core/concept/weighted_window.hh,
+ * mln/core/concept/window.hh: Here.
+
+2013-04-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Document type aliases in Doxygen.
* doc/mln/core/alias/box1d.dox,
diff --git a/milena/doc/mln/convert.dox b/milena/doc/mln/convert.dox
new file mode 100644
index 0000000..fc4772d
--- /dev/null
+++ b/milena/doc/mln/convert.dox
@@ -0,0 +1,13 @@
+/*! \defgroup convert Convertion Routines
+ *
+ * \brief All conversion routines provided in Milena.
+ *
+ * \ingroup modroutines
+ */
+
+/*! \defgroup fromto Routines
+ *
+ * \brief All fromto overloads.
+ *
+ * \ingroup convert
+ */
diff --git a/milena/doc/mln/core/concept/concept.dox b/milena/doc/mln/core/concept/concept.dox
new file mode 100644
index 0000000..31977b2
--- /dev/null
+++ b/milena/doc/mln/core/concept/concept.dox
@@ -0,0 +1,6 @@
+/*! \defgroup modconcepts Concepts
+ *
+ * \brief All the concepts in Milena.
+ *
+ * \ingroup modtypes
+ */
diff --git a/milena/mln/core/concept/accumulator.hh b/milena/mln/core/concept/accumulator.hh
index 968ec3a..6300559 100644
--- a/milena/mln/core/concept/accumulator.hh
+++ b/milena/mln/core/concept/accumulator.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -40,22 +40,24 @@
namespace mln
{
- // Accumulator category flag type.
+ /// \cond INTERNAL_API
+ /// \brief Accumulator category flag type.
template <>
struct Accumulator<void>
{
typedef Proxy<void> super;
};
+ /// \endcond
- /// \brief Base class for implementation of accumulators.
- ///
- /// The parameter \a E is the exact type.
- ///
- /// \see mln::doc::Accumulator for a complete documentation of this
- /// class contents.
- ///
+ /*!
+ \brief Base class for implementation of accumulators.
+
+ The parameter \a E is the exact type.
+
+ \ingroup modconcepts
+ */
template <typename E>
struct Accumulator : public Proxy<E>
{
@@ -76,28 +78,38 @@ namespace mln
bool is_valid() const;
*/
- /// Take as initialization the value \p t.
- ///
- /// Dev note: this is a final method; override if needed
- /// by take_as_init_ (ending with '_').
+ /*! \brief Take as initialization the value \p t.
+
+ \internal
+ Dev note: this is a final method; override if needed
+ by take_as_init_ (ending with '_').
+ \endinternal
+ */
template <typename T>
void take_as_init(const T& t); // 't' is either argument or E.
- /// Default implementation of "take as initialization".
+ /// \cond INTERNAL_API
+ /// \brief Default implementation of "take as initialization".
template <typename T>
void take_as_init_(const T& t);
+ /// \endcond
+
+ /*! \brief Take \p n times the value \p t.
- /// Take \p n times the value \p t.
- ///
- /// Dev note: this is a final method; override if needed
- /// by take_as_init_ (ending with '_').
+ \internal
+ Dev note: this is a final method; override if needed
+ by take_as_init_ (ending with '_').
+ \endinternal
+ */
template <typename T>
void take_n_times(unsigned n, const T& t);
- /// Default implementation of "take n times".
+ /// \cond INTERNAL_API
+ /// \brief Default implementation of "take n times".
template <typename T>
void take_n_times_(unsigned n, const T& t);
+ /// \endcond
protected:
@@ -105,7 +117,10 @@ namespace mln
};
- /// \internal Conversion: Accumulator -> mln_result(A)
+ /*!
+ \brief Conversion: Accumulator -> mln_result(A)
+ \ingroup fromto
+ */
template <typename A>
void
from_to_(const Accumulator<A>& from, mln_result(A)& to);
diff --git a/milena/mln/core/concept/box.hh b/milena/mln/core/concept/box.hh
index 26fe1b9..dedaa6d 100644
--- a/milena/mln/core/concept/box.hh
+++ b/milena/mln/core/concept/box.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,12 +38,11 @@ namespace mln
{
/*! \brief Base class for implementation classes of boxes.
- *
- * Boxes are particular site sets useful to bound any set of
- * sites defined on a regular grid.
- *
- * \see mln::doc::Box for a complete documentation of this class
- * contents.
+
+ Boxes are particular site sets useful to bound any set of
+ sites defined on a regular grid.
+
+ \ingroup modconcepts
*/
template <typename E>
struct Box : public Site_Set<E>
diff --git a/milena/mln/core/concept/browsing.hh b/milena/mln/core/concept/browsing.hh
index 68e27cd..d7876cc 100644
--- a/milena/mln/core/concept/browsing.hh
+++ b/milena/mln/core/concept/browsing.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,18 +40,19 @@ namespace mln
// Fwd decl.
template <typename E> struct Browsing;
- // Browsing category flag type.
+ /// \cond INTERNAL_API
+ /// Browsing category flag type.
template <>
struct Browsing<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /*! \brief Base class for implementation classes that are browsings.
- *
- * \see mln::doc::Browsing for a complete documentation of this
- * class contents.
+ /*!
+ \brief Base class for implementation classes that are browsings.
+ \ingroup modconcepts
*/
template <typename E>
struct Browsing : public Object<E>
diff --git a/milena/mln/core/concept/delta_point_site.hh b/milena/mln/core/concept/delta_point_site.hh
index b7107a9..3f7c510 100644
--- a/milena/mln/core/concept/delta_point_site.hh
+++ b/milena/mln/core/concept/delta_point_site.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Copyright (C) 2007, 2009, 2012, 2013 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -44,7 +44,7 @@ namespace mln
template <typename E> struct Delta_Point_Site;
-
+ /// \cond INTERNAL_API
namespace trait
{
@@ -63,23 +63,22 @@ namespace mln
};
} // end of namespace mln::trait
+ /// \endcond
-
- /*!
- \internal
- \brief Delta point site category flag type.
- */
+ /// \cond INTERNAL_API
+ /// \brief Delta point site category flag type.
template <>
struct Delta_Point_Site<void>
{
typedef Object<void> super;
};
+ /// \endcond
/*!
- \internal
\brief FIXME: Doc!
+ \ingroup modconcepts
*/
template <typename E>
struct Delta_Point_Site : public Object<E>
diff --git a/milena/mln/core/concept/dpoint.hh b/milena/mln/core/concept/dpoint.hh
index 7b2fa39..da0e2af 100644
--- a/milena/mln/core/concept/dpoint.hh
+++ b/milena/mln/core/concept/dpoint.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Copyright (C) 2007, 2009, 2012, 2013 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -42,16 +42,17 @@ namespace mln
template <typename E> struct Dpoint;
- // Dpoint category flag type.
+ /// \cond INTERNAL_API
+ /// Dpoint category flag type.
template <>
struct Dpoint<void>
{
typedef Delta_Point_Site<void> super;
};
+ /// \endcond
/*!
- \internal
\brief Base class for implementation of delta-point classes.
A delta-point is a vector defined by a couple of points.
@@ -59,8 +60,7 @@ namespace mln
Given two points, A and B, the vector AB is mapped into the
delta-point D = AB. Practically one can write: D = B - A.
- \see mln::doc::Dpoint for a complete documentation of this class
- contents.
+ \ingroup modconcepts
*/
template <typename E>
struct Dpoint : public Delta_Point_Site<E>
diff --git a/milena/mln/core/concept/function.hh b/milena/mln/core/concept/function.hh
index 361c893..ecd9db0 100644
--- a/milena/mln/core/concept/function.hh
+++ b/milena/mln/core/concept/function.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -46,23 +46,24 @@ namespace mln
template <typename E> struct Function_vv2b;
- /*!
- \internal
- \brief Function category flag type.
- */
+
+ /// \cond INTERNAL_API
+ /// \brief Function category flag type.
template <>
struct Function<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /// \brief Base class for implementation of function-objects.
- ///
- /// The parameter \a E is the exact type.
- ///
- /// \ingroup modfun
- //
+ /*!
+ \brief Base class for implementation of function-objects.
+
+ The parameter \a E is the exact type.
+
+ \ingroup modfun modconcepts
+ */
template <typename E>
struct Function : public Object<E>
{
@@ -87,8 +88,10 @@ namespace mln
| Nil -> Value. |
`---------------*/
+ /// \cond INTERNAL_API
template <>
struct Function_n2v<void> { typedef Function<void> super; };
+ /// \endcond
/// \brief Base class for implementation of function-objects from
@@ -112,8 +115,10 @@ namespace mln
| Value -> Value. |
`-----------------*/
+ /// \cond INTERNAL_API
template <>
struct Function_v2v<void> { typedef Function<void> super; };
+ /// \endcond
/// \brief Base class for implementation of function-objects from
@@ -138,8 +143,10 @@ namespace mln
| Value -> bool. |
`----------------*/
+ /// \cond INTERNAL_API
template <>
struct Function_v2b<void> { typedef Function_v2v<void> super; };
+ /// \endcond
/// \brief Base class for implementation of function-objects from a
@@ -165,8 +172,10 @@ namespace mln
| (Value, Value) -> Value. |
`--------------------------*/
+ /// \cond INTERNAL_API
template <>
struct Function_vv2v<void> { typedef Function<void> super; };
+ /// \endcond
/// \brief Base class for implementation of function-objects from a
@@ -190,8 +199,10 @@ namespace mln
| (Value, Value) -> Boolean.|
`--------------------------*/
+ /// \cond INTERNAL_API
template <>
struct Function_vv2b<void> { typedef Function<void> super; };
+ /// \endcond
/// \brief Base class for implementation of function-objects from a
diff --git a/milena/mln/core/concept/gdpoint.hh b/milena/mln/core/concept/gdpoint.hh
index b8ef9cf..74f0010 100644
--- a/milena/mln/core/concept/gdpoint.hh
+++ b/milena/mln/core/concept/gdpoint.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -45,7 +45,7 @@ namespace mln
template <typename E> struct Gdpoint;
-
+ /// \cond INTERNAL_API
namespace trait
{
@@ -80,21 +80,23 @@ namespace mln
};
} // end of namespace mln::trait
+ /// \endcond
-
- /*!
- \internal
- \brief Delta point site category flag type.
- */
+ /// \cond INTERNAL_API
+ /// \brief Delta point site category flag type.
template <>
struct Gdpoint<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /// FIXME: Doc!
+ /*!
+ \brief Grid point concept.
+ \ingroup modconcepts
+ */
template <typename E>
struct Gdpoint : public Object<E>
{
@@ -137,7 +139,10 @@ namespace mln
operator*(const Gdpoint<D>& lhs, const value::Scalar<S>& rhs);
- /// \internal Conversion: gdpoint -> mln_site
+ /*!
+ \brief Conversion: gdpoint -> mln_site
+ \ingroup fromto
+ */
template <typename D>
void
from_to_(const Gdpoint<D>& from, mln_site(D)& to);
diff --git a/milena/mln/core/concept/generalized_pixel.hh b/milena/mln/core/concept/generalized_pixel.hh
index ff9faf0..9941eb6 100644
--- a/milena/mln/core/concept/generalized_pixel.hh
+++ b/milena/mln/core/concept/generalized_pixel.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,17 +39,16 @@
namespace mln
{
- /// Base class for implementation classes that are pixels or that
- /// have the behavior of pixels.
- ///
- /// \warning This class does \em not derive from mln::Object; it is
- /// for use as a parallel hierarchy.
- ///
- /// \see mln::doc::Generalized_Pixel for a complete documentation of this
- /// class contents.
- ///
- /// \todo (later) Add an access to the targetted image.
- ///
+ /*! \brief Base class for implementation classes that are pixels or that
+ have the behavior of pixels.
+
+ \warning This class does \em not derive from mln::Object; it is
+ for use as a parallel hierarchy.
+
+ \todo (later) Add an access to the targetted image.
+
+ \ingroup modconcepts
+ */
template <typename E>
struct Generalized_Pixel
{
diff --git a/milena/mln/core/concept/gpoint.hh b/milena/mln/core/concept/gpoint.hh
index d51b2f4..2c78226 100644
--- a/milena/mln/core/concept/gpoint.hh
+++ b/milena/mln/core/concept/gpoint.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -47,7 +47,7 @@ namespace mln
template <typename E> struct Gpoint;
-
+ /// \cond INTERNAL_API
namespace trait
{
@@ -95,23 +95,29 @@ namespace mln
};
} // end of namespace mln::trait
+ /// \endcond
-
- // Gpoint category flag type.
+ /// \cond INTERNAL_API
+ /// Gpoint category flag type.
template <>
struct Gpoint<void>
{
typedef Site<void> super;
};
+ /// \endcond
- /// Base class for implementation of point classes.
- ///
- /// A point is an element of a space.
- ///
- /// For instance, mln::point2d is the type of elements defined on the
- /// discrete square grid of the 2D plane.
+ /*!
+ \brief Base class for implementation of point classes.
+
+ A point is an element of a space.
+
+ For instance, mln::point2d is the type of elements defined on the
+ discrete square grid of the 2D plane.
+
+ \ingroup modconcepts
+ */
template <typename E>
struct Gpoint : public Site<E>
{
diff --git a/milena/mln/core/concept/graph.hh b/milena/mln/core/concept/graph.hh
index a266783..c3686b4 100644
--- a/milena/mln/core/concept/graph.hh
+++ b/milena/mln/core/concept/graph.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2013 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -41,18 +41,21 @@ namespace mln
// Forward declaration.
template <typename E> struct Graph;
- // Graph category flag type.
+ /// \cond INTERNAL_API
+ /// Graph category flag type.
template <>
struct Graph<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /// Base class for implementation of graph classes.
- ///
- /// \see mln::doc::Graph for a complete documentation of this class
- /// contents.
- ///
+
+ /*!
+ \brief Base class for implementation of graph classes.
+
+ \ingroup modconcepts
+ */
template <typename E>
struct Graph : public Object<E>
{
diff --git a/milena/mln/core/concept/image.hh b/milena/mln/core/concept/image.hh
index a79cd37..f302425 100644
--- a/milena/mln/core/concept/image.hh
+++ b/milena/mln/core/concept/image.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -58,18 +58,20 @@ namespace mln
template <typename D, typename W> struct w_window;
- // Image category flag type.
+ /// \cond INTERNAL_API
+ /// Image category flag type.
template <>
struct Image<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /// Base class for implementation of image classes.
- ///
- /// \see mln::doc::Image for a complete documentation of this class
- /// contents.
+ /*!
+ \brief Base class for implementation of image classes.
+ \ingroup modconcepts
+ */
template <typename E>
struct Image : public Object<E>
{
@@ -122,12 +124,18 @@ namespace mln
};
- /// \internal Conversion: image -> w_window
+ /*!
+ \brief Conversion: image -> w_window
+ \ingroup fromto
+ */
template <typename I, typename D, typename W>
void
from_to_(const Image<I>& from, w_window<D,W>& to);
- /// \internal Conversion: values[] -> image
+ /*!
+ \brief Conversion: values[] -> image
+ \ingroup fromto
+ */
template <typename V, unsigned S, typename I>
void
from_to_(const V (&values)[S], Image<I>& to);
diff --git a/milena/mln/core/concept/iterator.hh b/milena/mln/core/concept/iterator.hh
index 5d0b090..9de2034 100644
--- a/milena/mln/core/concept/iterator.hh
+++ b/milena/mln/core/concept/iterator.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -67,10 +67,9 @@
namespace mln
{
- /*! \brief Base class for implementation classes that are iterators.
- *
- * \see mln::doc::Iterator for a complete documentation of this
- * class contents.
+ /*!
+ \brief Base class for implementation classes that are iterators.
+ \ingroup modconcepts
*/
template <typename E>
struct Iterator : public Object<E>
@@ -89,7 +88,7 @@ namespace mln
* defined through the \em next_ method.
*
* \pre The iterator is valid.
- */
+ */
void next(); // final
protected:
diff --git a/milena/mln/core/concept/literal.hh b/milena/mln/core/concept/literal.hh
index d313997..8c56f58 100644
--- a/milena/mln/core/concept/literal.hh
+++ b/milena/mln/core/concept/literal.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,18 +40,19 @@ namespace mln
// Fwd decl.
template <typename E> struct Literal;
- // Literal category flag type.
+ /// \cond INTERNAL_API
+ /// Literal category flag type.
template <>
struct Literal<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /*! \brief Base class for implementation classes of literals.
- *
- * \see mln::doc::Literal for a complete documentation of this class
- * contents.
+ /*!
+ \brief Base class for implementation classes of literals.
+ \ingroup modconcepts
*/
template <typename E>
struct Literal : public Object<E>
diff --git a/milena/mln/core/concept/mesh.hh b/milena/mln/core/concept/mesh.hh
index e5d1e62..1e1f2c6 100644
--- a/milena/mln/core/concept/mesh.hh
+++ b/milena/mln/core/concept/mesh.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -36,10 +37,10 @@
namespace mln
{
- /*! \brief Base class for implementation classes of meshes.
- *
- * \see mln::doc::Mesh for a complete documentation of this class
- * contents.
+ /*!
+ \brief Base class for implementation classes of meshes.
+
+ \ingroup modconcepts
*/
template <typename E>
struct Mesh : public Object<E>
diff --git a/milena/mln/core/concept/meta_accumulator.hh b/milena/mln/core/concept/meta_accumulator.hh
index c86bde5..4edc228 100644
--- a/milena/mln/core/concept/meta_accumulator.hh
+++ b/milena/mln/core/concept/meta_accumulator.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -59,11 +59,11 @@ namespace mln
template <typename E> struct Meta_Accumulator;
+ /// \cond INTERNAL_API
namespace internal
{
/*!
- \internal
\brief Make the type resolution easier for the compiler.
Introduced for ICC compatibility.
*/
@@ -75,7 +75,6 @@ namespace mln
/*!
- \internal
\brief Make the type resolution easier for the compiler.
Introduced for ICC compatibility.
*/
@@ -85,25 +84,28 @@ namespace mln
typedef typename A::template with< T >::ret ret;
};
-
} // end of namespace mln::internal
+ /// \endcond
- // Meta_Accumulator category flag type.
+ /// \cond INTERNAL_API
+ /// Meta_Accumulator category flag type.
template <>
struct Meta_Accumulator<void>
{
typedef Object<void> super;
};
+ /// \endcond
/*!
- \internal
\brief Base class for implementation of meta accumulators.
The parameter \a E is the exact type.
\see mln::doc::Meta_Accumulator for a complete documentation of
this class contents.
+
+ \ingroup modconcepts
*/
template <typename E>
struct Meta_Accumulator : public Object<E>
diff --git a/milena/mln/core/concept/meta_function.hh b/milena/mln/core/concept/meta_function.hh
index e8f4137..0205fe5 100644
--- a/milena/mln/core/concept/meta_function.hh
+++ b/milena/mln/core/concept/meta_function.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -59,20 +60,21 @@ namespace mln
template <typename E> struct Meta_Function_v2v;
template <typename E> struct Meta_Function_vv2v;
- // Meta_Function category flag type.
+ /// \cond INTERNAL_API
+ /// Meta_Function category flag type.
template <>
struct Meta_Function<void>
{
typedef Object<void> super;
};
+ /// \endcond
/*! \brief Base class for implementation of meta functions.
- *
- * The parameter \a E is the exact type.
- *
- * \see mln::doc::Meta_Function for a complete documentation of
- * this class contents.
+
+ The parameter \a E is the exact type.
+
+ \ingroup modconcepts
*/
template <typename E>
struct Meta_Function : public Object<E>
@@ -86,8 +88,10 @@ namespace mln
| Unary meta function. |
`----------------------*/
+ /// \cond INTERNAL_API
template <>
struct Meta_Function_v2v<void> { typedef Meta_Function<void> super; };
+ /// \endcond
/// Base class for implementation of function-objects from
/// value to value.
@@ -108,8 +112,10 @@ namespace mln
| Binary meta function. |
`-----------------------*/
+ /// \cond INTERNAL_API
template <>
struct Meta_Function_vv2v<void> { typedef Meta_Function<void> super; };
+ /// \endcond
/// Base class for implementation of function-objects from
/// value to value.
diff --git a/milena/mln/core/concept/neighborhood.hh b/milena/mln/core/concept/neighborhood.hh
index 00fb222..7bda059 100644
--- a/milena/mln/core/concept/neighborhood.hh
+++ b/milena/mln/core/concept/neighborhood.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -48,23 +48,21 @@ namespace mln
// Forward declaration.
template <typename E> struct Neighborhood;
-
- /*!
- \internal
- \brief Neighborhood category flag type.
- */
+ /// \cond INTERNAL_API
+ /// \brief Neighborhood category flag type.
template <>
struct Neighborhood<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /// \brief Base class for implementation classes that are neighborhoods.
- ///
- /// \see mln::doc::Neighborhood for a complete documentation of this
- /// class contents.
+ /*!
+ \brief Base class for implementation classes that are neighborhoods.
+ \ingroup modconcepts
+ */
template <typename E>
struct Neighborhood : public Object<E>
{
@@ -87,25 +85,30 @@ namespace mln
};
-
+ /// \relates mln::Neighborhood
template <typename L, typename R>
bool operator==(const Neighborhood<L>& lhs, const Neighborhood<R>& rhs);
-
+ /// \relates mln::Neighborhood
template <typename N>
std::ostream&
operator<<(std::ostream&ostr, const Neighborhood<N>& nbh);
// FIXME: Move as a method of Image?
+ /// \relates mln::Neighborhood
template <typename I, typename N>
util::array<int>
offsets_wrt(const Image<I>& ima, const Neighborhood<N>& nbh);
+ // FIXME: Move as a method of Image?
+ /// \relates mln::Neighborhood
template <typename I, typename N>
util::array<int>
positive_offsets_wrt(const Image<I>& ima, const Neighborhood<N>& nbh);
+ // FIXME: Move as a method of Image?
+ /// \relates mln::Neighborhood
template <typename I, typename N>
util::array<int>
negative_offsets_wrt(const Image<I>& ima, const Neighborhood<N>& nbh);
diff --git a/milena/mln/core/concept/object.hh b/milena/mln/core/concept/object.hh
index d8fba23..410a236 100644
--- a/milena/mln/core/concept/object.hh
+++ b/milena/mln/core/concept/object.hh
@@ -82,18 +82,23 @@ namespace mln
// Fwd decl.
template <typename E> struct Object;
- // Object category flag type.
+ /// \cond INTERNAL_API
+ /// Object category flag type.
template <>
struct Object<void>
{
typedef Unknown<void> super;
};
+ /// \endcond
- /*! \brief Base class for almost every class defined in Milena.
- *
- * The parameter \a E is the exact type.
- */
+ /*!
+ \brief Base class for almost every class defined in Milena.
+
+ The parameter \a E is the exact type.
+
+ \ingroup modconcepts
+ */
template <typename E>
struct Object
{
diff --git a/milena/mln/core/concept/pixel_iterator.hh b/milena/mln/core/concept/pixel_iterator.hh
index b044d14..ee57476 100644
--- a/milena/mln/core/concept/pixel_iterator.hh
+++ b/milena/mln/core/concept/pixel_iterator.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,14 +39,14 @@
namespace mln
{
- /*! \brief Base class for the implementation of pixel iterator
- * classes.
- *
- * An iterator on pixels is an iterator that is bound to a
- * particular image and that browses over a set of image pixels.
- *
- * \see mln::doc::Pixel_Iterator for a complete documentation of
- * this class contents.
+ /*!
+ \brief Base class for the implementation of pixel iterator
+ classes.
+
+ An iterator on pixels is an iterator that is bound to a
+ particular image and that browses over a set of image pixels.
+
+ \ingroup modconcepts
*/
template <typename E>
struct Pixel_Iterator : public Iterator<E>,
diff --git a/milena/mln/core/concept/point.hh b/milena/mln/core/concept/point.hh
index 07a7608..ddc5e5c 100644
--- a/milena/mln/core/concept/point.hh
+++ b/milena/mln/core/concept/point.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,20 +44,25 @@ namespace mln
template <typename E> struct Point;
- // Point category flag type.
+ /// \cond INTERNAL_API
+ /// Point category flag type.
template <>
struct Point<void>
{
typedef Point_Site<void> super;
};
+ /// \endcond
- /*! \brief Base class for implementation of point classes.
- *
- * A point is an element of a space.
- *
- * For instance, mln::point2d is the type of elements defined on the
- * discrete square grid of the 2D plane.
+ /*!
+ \brief Base class for implementation of point classes.
+
+ A point is an element of a space.
+
+ For instance, mln::point2d is the type of elements defined on the
+ discrete square grid of the 2D plane.
+
+ \ingroup modconcepts
*/
template <typename P>
struct Point : public Point_Site<P>
diff --git a/milena/mln/core/concept/point_site.hh b/milena/mln/core/concept/point_site.hh
index a22885d..0c6a5a2 100644
--- a/milena/mln/core/concept/point_site.hh
+++ b/milena/mln/core/concept/point_site.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,7 +46,7 @@ namespace mln
template <typename E> struct Point_Site;
-
+ /// \cond INTERNAL_API
namespace trait
{
@@ -71,37 +72,41 @@ namespace mln
};
} // end of namespace mln::trait
+ /// \endcond
-
-
+ /// \cond INTERNAL_API
/// Point site category flag type.
template <>
struct Point_Site<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /*! \brief Base class for implementation classes of the notion of
- * "point site".
- *
- * A point site ("psite" for short) is an object that allows an
- * efficient access to data associated with a point. A point site
- * is either a point or designates a point.
- *
- * When a point site is not really a point, it is automatically
- * convertible to the point it designates.
- *
- *
- * Let us take the example of a 2D image encoded as an array of runs
- * of values. With a point, a pair (row index, column index),
- * retrieving the corresponding pixel value would mean to browse the
- * array of runs to find the value location. That would not be
- * efficient. Conversely, a point site dedicated to this image
- * structure allows for value access in contant time; precisely the
- * proper point site is a pair (index of run, index within the run).
- */
+ /*!
+ \brief Base class for implementation classes of the notion of
+ "point site".
+
+ A point site ("psite" for short) is an object that allows an
+ efficient access to data associated with a point. A point site
+ is either a point or designates a point.
+
+ When a point site is not really a point, it is automatically
+ convertible to the point it designates.
+
+
+ Let us take the example of a 2D image encoded as an array of runs
+ of values. With a point, a pair (row index, column index),
+ retrieving the corresponding pixel value would mean to browse the
+ array of runs to find the value location. That would not be
+ efficient. Conversely, a point site dedicated to this image
+ structure allows for value access in contant time; precisely the
+ proper point site is a pair (index of run, index within the run).
+
+ \ingroup modconcepts
+ */
template <typename E>
struct Point_Site : public Object<E>
{
@@ -157,7 +162,7 @@ namespace mln
* topology and with the same type of coordinates; otherwise this
* test does not compile.
*
- * \post The result, \p dp, is such as \p lhs == \p rhs + \p dp.
+ * \post The result, \p dp, is such as \p lhs == \p rhs + \p dp.
*
* \return A delta point (temporary object).
*
diff --git a/milena/mln/core/concept/proxy.hh b/milena/mln/core/concept/proxy.hh
index 43aed15..acb3239 100644
--- a/milena/mln/core/concept/proxy.hh
+++ b/milena/mln/core/concept/proxy.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2011, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -207,17 +207,21 @@ namespace mln
-
+ /// \cond INTERNAL_API
/// Proxy category flag type.
template <>
struct Proxy<void>
{
typedef Object<void> super;
};
+ /// \endcond
+
+ /*!
+ \brief Base class for implementation classes of the notion of
+ "proxy".
- /*! \brief Base class for implementation classes of the notion of
- * "proxy".
+ \ingroup modconcepts
*/
template <typename E>
struct Proxy : Object<E>
@@ -235,7 +239,10 @@ namespace mln
};
- /// \internal Conversion: proxy -> T
+ /*!
+ \brief Conversion: proxy -> T
+ \ingroup fromto
+ */
template <typename P, typename T>
void
from_to_(const Proxy<P>& from, T& to);
diff --git a/milena/mln/core/concept/pseudo_site.hh b/milena/mln/core/concept/pseudo_site.hh
index 77eb961..f36d7ad 100644
--- a/milena/mln/core/concept/pseudo_site.hh
+++ b/milena/mln/core/concept/pseudo_site.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2011, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -47,22 +47,21 @@ namespace mln
template <typename E> struct Pseudo_Site;
-
- /*!
- \internal
- \brief Pseudo_Site category flag type.
- */
+ /// \cond INTERNAL_API
+ /// \brief Pseudo_Site category flag type.
template <>
struct Pseudo_Site<void>
{
typedef Site_Proxy<void> super;
};
+ /// \endcond
- /*! \brief Base class for implementation classes of the notion of
- * "pseudo site".
- *
- * FIXME: Explain...
+ /*!
+ \brief Base class for implementation classes of the notion of
+ "pseudo site".
+
+ \ingroup modconcepts
*/
template <typename E>
struct Pseudo_Site : public Site_Proxy<E>
diff --git a/milena/mln/core/concept/regular_grid.hh b/milena/mln/core/concept/regular_grid.hh
index e1f4c1d..747a234 100644
--- a/milena/mln/core/concept/regular_grid.hh
+++ b/milena/mln/core/concept/regular_grid.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -37,7 +38,10 @@
namespace mln
{
- /// Base class for implementation classes of regular grids.
+ /*!
+ \brief Base class for implementation classes of regular grids.
+ \ingroup modconcepts
+ */
template <typename E>
struct Regular_Grid : public Mesh<E>
{
diff --git a/milena/mln/core/concept/site.hh b/milena/mln/core/concept/site.hh
index 68a4bcb..6b915a0 100644
--- a/milena/mln/core/concept/site.hh
+++ b/milena/mln/core/concept/site.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2012, 2013 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -42,18 +42,19 @@ namespace mln
template <typename E> struct Site;
- /*!
- \internal
- \brief Site category flag type.
- */
+ /// \cond INTERNAL_API
+ /// \brief Site category flag type.
template <>
struct Site<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /*! \brief Base class for classes that are explicitly sites.
+ /*!
+ \brief Base class for classes that are explicitly sites.
+ \ingroup modconcepts
*/
template <typename E>
struct Site : public Object<E>
diff --git a/milena/mln/core/concept/site_iterator.hh b/milena/mln/core/concept/site_iterator.hh
index 7ef6a43..0a113f1 100644
--- a/milena/mln/core/concept/site_iterator.hh
+++ b/milena/mln/core/concept/site_iterator.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,15 +41,15 @@
namespace mln
{
- /// Base class for implementation of classes of iterator on
- /// points.
- ///
- /// An iterator on points is an iterator that browse over a set of
- /// points.
- ///
- /// \see mln::doc::Site_Iterator for a complete documentation of this class
- /// contents.
- ///
+ /*!
+ \brief Base class for implementation of classes of iterator on
+ points.
+
+ An iterator on points is an iterator that browse over a set of
+ points.
+
+ \ingroup modconcepts
+ */
template <typename E>
struct Site_Iterator : public Site_Proxy<E>
{
diff --git a/milena/mln/core/concept/site_proxy.hh b/milena/mln/core/concept/site_proxy.hh
index 8293423..9339234 100644
--- a/milena/mln/core/concept/site_proxy.hh
+++ b/milena/mln/core/concept/site_proxy.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2011, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,22 +44,23 @@ namespace mln
// Fwd decl.
template <typename E> struct Site_Proxy;
-
- /*!
- \internal
- \brief Site_Proxy category flag type.
- */
+ /// \cond INTERNAL_API
+ /// \brief Site_Proxy category flag type.
template <>
struct Site_Proxy<void>
{
typedef Proxy<void> super;
};
+ /// \endcond
+
+
+ /*!
+ \brief Base class for implementation classes of the notion of
+ "site proxy".
+ FIXME: Explain...
- /*! \brief Base class for implementation classes of the notion of
- * "site proxy".
- *
- * FIXME: Explain...
+ \ingroup modconcepts
*/
template <typename E>
struct Site_Proxy : public Proxy<E>
diff --git a/milena/mln/core/concept/site_set.hh b/milena/mln/core/concept/site_set.hh
index dc1885b..5b09a9d 100644
--- a/milena/mln/core/concept/site_set.hh
+++ b/milena/mln/core/concept/site_set.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -50,15 +50,14 @@ namespace mln
template <typename E> struct Site_Set;
- /*!
- \internal
- \brief Site_Set category flag type.
- */
+ /// \cond INTERNAL_API
+ /// \brief Site_Set category flag type.
template <>
struct Site_Set<void>
{
typedef Object<void> super;
};
+ /// \endcond
/*!
@@ -66,6 +65,8 @@ namespace mln
\see mln::doc::Site_Set for a complete documentation of this
class contents.
+
+ \ingroup modconcepts
*/
template <typename E>
struct Site_Set : public Object<E>
@@ -92,7 +93,10 @@ namespace mln
};
- /// \internal Conversion: site_set -> std::set
+ /*!
+ \brief Conversion: site_set -> std::set
+ \ingroup fromto
+ */
template <typename S, typename P, typename C_>
void
from_to_(const Site_Set<S>& from, std::set<P,C_>& to);
@@ -102,7 +106,10 @@ namespace mln
namespace std
{
- /// \internal Conversion: std::set -> site_set
+ /*!
+ \brief Conversion: std::set -> site_set
+ \ingroup fromto
+ */
template <typename P, typename C_, typename S>
void
from_to_(const set<P,C_>& from, mln::Site_Set<S>& to);
diff --git a/milena/mln/core/concept/value.hh b/milena/mln/core/concept/value.hh
index 53ef70b..47ef01d 100644
--- a/milena/mln/core/concept/value.hh
+++ b/milena/mln/core/concept/value.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,19 +41,21 @@ namespace mln
// Fwd decl.
template <typename E> struct Value;
- // Value category flag type.
+ /// \cond INTERNAL_API
+ /// \brief Value category flag type.
template <>
struct Value<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /*! \brief Base class for implementation classes of values.
- *
- * \see mln::doc::Value for a complete documentation of this class
- * contents.
- */
+ /*!
+ \brief Base class for implementation classes of values.
+
+ \ingroup modconcepts
+ */
template <typename E>
struct Value : public Object<E>
{
diff --git a/milena/mln/core/concept/value_iterator.hh b/milena/mln/core/concept/value_iterator.hh
index 1daccd7..d2ebe28 100644
--- a/milena/mln/core/concept/value_iterator.hh
+++ b/milena/mln/core/concept/value_iterator.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,14 +38,14 @@
namespace mln
{
- /*! \brief Base class for implementation of classes of iterator on
- * values.
- *
- * An iterator on values is an iterator that browse over a set of
- * values.
- *
- * \see mln::doc::Value_Iterator for a complete documentation of this class
- * contents.
+ /*!
+ \brief Base class for implementation of classes of iterator on
+ values.
+
+ An iterator on values is an iterator that browse over a set of
+ values.
+
+ \ingroup modconcepts
*/
template <typename E>
struct Value_Iterator : public Iterator<E>
diff --git a/milena/mln/core/concept/value_set.hh b/milena/mln/core/concept/value_set.hh
index 0976537..3bdb372 100644
--- a/milena/mln/core/concept/value_set.hh
+++ b/milena/mln/core/concept/value_set.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2009, 2010, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2010, 2011, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,18 +40,20 @@ namespace mln
// Fwd decl.
template <typename E> struct Value_Set;
- // Value_Set category flag type.
+ /// \cond INTERNAL_API
+ /// \brief Value_Set category flag type.
template <>
struct Value_Set<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /*! \brief Base class for implementation classes of sets of values.
- *
- * \see mln::doc::Value_Set for a complete documentation of this
- * class contents.
+ /*!
+ \brief Base class for implementation classes of sets of values.
+
+ \ingroup modconcepts
*/
template <typename E>
struct Value_Set : public Object<E>
@@ -76,6 +78,7 @@ namespace mln
};
+ /// \relates mln::Value_Set
template <typename E>
std::ostream& operator<<(std::ostream& ostr, const Value_Set<E>& vs);
@@ -89,7 +92,7 @@ namespace mln
typedef mln_value(E) value;
typedef mln_fwd_viter(E) fwd_viter;
typedef mln_bkd_viter(E) bkd_viter;
-
+
bool (E::*m1)(const value&) const = & E::has;
(void) m1;
value (E::*m2)(unsigned) const = & E::operator[];
diff --git a/milena/mln/core/concept/weighted_window.hh b/milena/mln/core/concept/weighted_window.hh
index 1341860..ca730bd 100644
--- a/milena/mln/core/concept/weighted_window.hh
+++ b/milena/mln/core/concept/weighted_window.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -50,20 +50,21 @@ namespace mln
// Forward declaration.
template <typename E> struct Weighted_Window;
-
- // Weighted_Window category flag type.
+ /// \cond INTERNAL_API
+ /// \brief Weighted_Window category flag type.
template <>
struct Weighted_Window<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /*! \brief Base class for implementation classes that are
- * weighted_windows.
- *
- * \see mln::doc::Weighted_Window for a complete documentation of
- * this class contents.
+ /*!
+ \brief Base class for implementation classes that are
+ weighted_windows.
+
+ \ingroup modconcepts
*/
template <typename E>
struct Weighted_Window : public Object<E>
@@ -82,7 +83,7 @@ namespace mln
void sym();
*/
-
+
protected:
Weighted_Window();
};
diff --git a/milena/mln/core/concept/window.hh b/milena/mln/core/concept/window.hh
index c59924f..c6d64f4 100644
--- a/milena/mln/core/concept/window.hh
+++ b/milena/mln/core/concept/window.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -71,18 +71,24 @@ namespace mln
template <typename E> struct Image;
- // Window category flag type.
+ /// \cond INTERNAL_API
+ /// \brief Window category flag type.
template <>
struct Window<void>
{
typedef Object<void> super;
};
+ /// \endcond
- /// Base class for implementation classes that are windows.
- ///
- /// \see mln::doc::Window for a complete documentation of this class
- /// contents.
+ /*!
+ \brief Base class for implementation classes that are windows.
+
+ A window is the definition of a set of points located around a
+ central point.
+
+ \ingroup modconcepts
+ */
template <typename E>
struct Window : public Object<E>
{
@@ -111,21 +117,29 @@ namespace mln
std::ostream& operator<<(std::ostream& ostr, const Window<W>& win);
- /// \internal Conversion: window -> image
+ /*!
+ \brief Conversion: window -> image
+ \ingroup fromto
+ */
template <typename W, typename I>
void
from_to_(const Window<W>& from, Image<I>& to);
// FIXME: Move as a method of Image?
+ /// \relates mln::Window
template <typename I, typename W>
util::array<int>
offsets_wrt(const Image<I>& ima, const Window<W>& win);
+ // FIXME: Move as a method of Image?
+ /// \relates mln::Window
template <typename I, typename W>
util::array<int>
positive_offsets_wrt(const Image<I>& ima, const Window<W>& win);
+ // FIXME: Move as a method of Image?
+ /// \relates mln::Window
template <typename I, typename W>
util::array<int>
negative_offsets_wrt(const Image<I>& ima, const Window<W>& win);
--
1.7.2.5
* doc/mln/core/alias/box1d.dox,
* doc/mln/core/alias/box2d.dox,
* doc/mln/core/alias/box2d_h.dox,
* doc/mln/core/alias/box3d.dox,
* doc/mln/core/alias/complex_geometry.dox,
* doc/mln/core/alias/complex_image.dox,
* doc/mln/core/alias/dpoint1d.dox,
* doc/mln/core/alias/dpoint2d.dox,
* doc/mln/core/alias/dpoint3d.dox,
* doc/mln/core/alias/neighb1d.dox,
* doc/mln/core/alias/neighb2d.dox,
* doc/mln/core/alias/neighb3d.dox,
* doc/mln/core/alias/p_run2d.dox,
* doc/mln/core/alias/p_runs2d.dox,
* doc/mln/core/alias/point1d.dox,
* doc/mln/core/alias/point2d.dox,
* doc/mln/core/alias/point2d_h.dox,
* doc/mln/core/alias/point3d.dox,
* doc/mln/core/alias/vec2d.dox,
* doc/mln/core/alias/vec3d.dox,
* doc/mln/core/alias/w_window1d_float.dox,
* doc/mln/core/alias/w_window1d_int.dox,
* doc/mln/core/alias/w_window2d_float.dox,
* doc/mln/core/alias/w_window2d_int.dox,
* doc/mln/core/alias/w_window3d_float.dox,
* doc/mln/core/alias/w_window3d_int.dox,
* doc/mln/core/alias/window1d.dox,
* doc/mln/core/alias/window2d.dox,
* doc/mln/core/alias/window3d.dox,
* doc/mln/win/disk2d.dox,
* doc/mln/win/hline2d.dox,
* doc/mln/win/segment1d.dox,
* doc/mln/win/sline3d.dox,
* doc/mln/win/sphere3d.dox,
* doc/mln/win/vline2d.dox: New.
* mln/core/alias/box1d.hh,
* mln/core/alias/box2d.hh,
* mln/core/alias/box3d.hh,
* mln/core/alias/complex_geometry.hh,
* mln/core/alias/complex_image.hh,
* mln/core/alias/dpoint1d.hh,
* mln/core/alias/dpoint2d.hh,
* mln/core/alias/dpoint3d.hh,
* mln/core/alias/neighb1d.hh,
* mln/core/alias/neighb2d.hh,
* mln/core/alias/neighb3d.hh,
* mln/core/alias/p_run2d.hh,
* mln/core/alias/p_runs2d.hh,
* mln/core/alias/point1d.hh,
* mln/core/alias/point2d.hh,
* mln/core/alias/point3d.hh,
* mln/core/alias/vec2d.hh,
* mln/core/alias/vec3d.hh,
* mln/core/alias/w_window1d_float.hh,
* mln/core/alias/w_window1d_int.hh,
* mln/core/alias/w_window2d_float.hh,
* mln/core/alias/w_window2d_int.hh,
* mln/core/alias/w_window3d_float.hh,
* mln/core/alias/w_window3d_int.hh,
* mln/core/alias/window1d.hh,
* mln/core/alias/window2d.hh,
* mln/core/alias/window3d.hh,
* mln/win/disk2d.hh,
* mln/win/hline2d.hh,
* mln/win/segment1d.hh,
* mln/win/sline3d.hh,
* mln/win/sphere3d.hh,
* mln/win/vline2d.hh: Add more documentation.
---
milena/ChangeLog | 74 ++++++++++++++
milena/doc/mln/core/alias/box1d.dox | 25 +++++
milena/doc/mln/core/alias/box2d.dox | 25 +++++
milena/doc/mln/core/alias/box2d_h.dox | 25 +++++
milena/doc/mln/core/alias/box3d.dox | 26 +++++
milena/doc/mln/core/alias/complex_geometry.dox | 31 ++++++
milena/doc/mln/core/alias/complex_image.dox | 88 +++++++++++++++++
milena/doc/mln/core/alias/dpoint1d.dox | 30 ++++++
milena/doc/mln/core/alias/dpoint2d.dox | 27 +++++
milena/doc/mln/core/alias/dpoint3d.dox | 27 +++++
milena/doc/mln/core/alias/neighb1d.dox | 16 +++
milena/doc/mln/core/alias/neighb2d.dox | 16 +++
milena/doc/mln/core/alias/neighb3d.dox | 16 +++
milena/doc/mln/core/alias/p_run2d.dox | 18 ++++
milena/doc/mln/core/alias/p_runs2d.dox | 12 +++
milena/doc/mln/core/alias/point1d.dox | 61 ++++++++++++
milena/doc/mln/core/alias/point2d.dox | 61 ++++++++++++
milena/doc/mln/core/alias/point2d_h.dox | 63 ++++++++++++
milena/doc/mln/core/alias/point3d.dox | 62 ++++++++++++
milena/doc/mln/core/alias/vec2d.dox | 48 ++++++++++
milena/doc/mln/core/alias/vec3d.dox | 48 ++++++++++
milena/doc/mln/core/alias/w_window1d_float.dox | 12 +++
milena/doc/mln/core/alias/w_window1d_int.dox | 12 +++
milena/doc/mln/core/alias/w_window2d_float.dox | 12 +++
milena/doc/mln/core/alias/w_window2d_int.dox | 12 +++
milena/doc/mln/core/alias/w_window3d_float.dox | 12 +++
milena/doc/mln/core/alias/w_window3d_int.dox | 12 +++
milena/doc/mln/core/alias/window1d.dox | 12 +++
milena/doc/mln/core/alias/window2d.dox | 12 +++
milena/doc/mln/core/alias/window3d.dox | 12 +++
milena/doc/mln/win/disk2d.dox | 17 ++++
milena/doc/mln/win/hline2d.dox | 17 ++++
milena/doc/mln/win/segment1d.dox | 17 ++++
milena/doc/mln/win/sline3d.dox | 17 ++++
milena/doc/mln/win/sphere3d.dox | 17 ++++
milena/doc/mln/win/vline2d.dox | 17 ++++
milena/mln/core/alias/box1d.hh | 43 +++++++--
milena/mln/core/alias/box2d.hh | 50 +++++++++-
milena/mln/core/alias/box3d.hh | 53 +++++++++-
milena/mln/core/alias/complex_geometry.hh | 35 ++++++--
milena/mln/core/alias/complex_image.hh | 121 +++++++++++++++++++-----
milena/mln/core/alias/dpoint1d.hh | 39 ++++++--
milena/mln/core/alias/dpoint2d.hh | 42 +++++++--
milena/mln/core/alias/dpoint3d.hh | 42 +++++++--
milena/mln/core/alias/neighb1d.hh | 71 +++++++++++++--
milena/mln/core/alias/neighb2d.hh | 97 ++++++++++++++++++--
milena/mln/core/alias/neighb3d.hh | 98 +++++++++++++++++---
milena/mln/core/alias/p_run2d.hh | 14 +++-
milena/mln/core/alias/p_runs2d.hh | 14 +++-
milena/mln/core/alias/point1d.hh | 28 +++++-
milena/mln/core/alias/point2d.hh | 30 +++++--
milena/mln/core/alias/point3d.hh | 30 +++++-
milena/mln/core/alias/vec2d.hh | 26 +++++-
milena/mln/core/alias/vec3d.hh | 25 +++++-
milena/mln/core/alias/w_window1d_float.hh | 19 +++-
milena/mln/core/alias/w_window1d_int.hh | 19 +++-
milena/mln/core/alias/w_window2d_float.hh | 19 +++-
milena/mln/core/alias/w_window2d_int.hh | 19 +++-
milena/mln/core/alias/w_window3d_float.hh | 19 +++-
milena/mln/core/alias/w_window3d_int.hh | 19 +++-
milena/mln/core/alias/window1d.hh | 55 ++++++++++-
milena/mln/core/alias/window2d.hh | 55 ++++++++++-
milena/mln/core/alias/window3d.hh | 59 ++++++++++--
milena/mln/win/disk2d.hh | 19 +++-
milena/mln/win/hline2d.hh | 11 ++-
milena/mln/win/segment1d.hh | 11 ++-
milena/mln/win/sline3d.hh | 11 ++-
milena/mln/win/sphere3d.hh | 18 +++-
milena/mln/win/vline2d.hh | 11 ++-
69 files changed, 2034 insertions(+), 197 deletions(-)
create mode 100644 milena/doc/mln/core/alias/box1d.dox
create mode 100644 milena/doc/mln/core/alias/box2d.dox
create mode 100644 milena/doc/mln/core/alias/box2d_h.dox
create mode 100644 milena/doc/mln/core/alias/box3d.dox
create mode 100644 milena/doc/mln/core/alias/complex_geometry.dox
create mode 100644 milena/doc/mln/core/alias/complex_image.dox
create mode 100644 milena/doc/mln/core/alias/dpoint1d.dox
create mode 100644 milena/doc/mln/core/alias/dpoint2d.dox
create mode 100644 milena/doc/mln/core/alias/dpoint3d.dox
create mode 100644 milena/doc/mln/core/alias/neighb1d.dox
create mode 100644 milena/doc/mln/core/alias/neighb2d.dox
create mode 100644 milena/doc/mln/core/alias/neighb3d.dox
create mode 100644 milena/doc/mln/core/alias/p_run2d.dox
create mode 100644 milena/doc/mln/core/alias/p_runs2d.dox
create mode 100644 milena/doc/mln/core/alias/point1d.dox
create mode 100644 milena/doc/mln/core/alias/point2d.dox
create mode 100644 milena/doc/mln/core/alias/point2d_h.dox
create mode 100644 milena/doc/mln/core/alias/point3d.dox
create mode 100644 milena/doc/mln/core/alias/vec2d.dox
create mode 100644 milena/doc/mln/core/alias/vec3d.dox
create mode 100644 milena/doc/mln/core/alias/w_window1d_float.dox
create mode 100644 milena/doc/mln/core/alias/w_window1d_int.dox
create mode 100644 milena/doc/mln/core/alias/w_window2d_float.dox
create mode 100644 milena/doc/mln/core/alias/w_window2d_int.dox
create mode 100644 milena/doc/mln/core/alias/w_window3d_float.dox
create mode 100644 milena/doc/mln/core/alias/w_window3d_int.dox
create mode 100644 milena/doc/mln/core/alias/window1d.dox
create mode 100644 milena/doc/mln/core/alias/window2d.dox
create mode 100644 milena/doc/mln/core/alias/window3d.dox
create mode 100644 milena/doc/mln/win/disk2d.dox
create mode 100644 milena/doc/mln/win/hline2d.dox
create mode 100644 milena/doc/mln/win/segment1d.dox
create mode 100644 milena/doc/mln/win/sline3d.dox
create mode 100644 milena/doc/mln/win/sphere3d.dox
create mode 100644 milena/doc/mln/win/vline2d.dox
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 89ce238..132f715 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,77 @@
+2013-04-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Document type aliases in Doxygen.
+
+ * doc/mln/core/alias/box1d.dox,
+ * doc/mln/core/alias/box2d.dox,
+ * doc/mln/core/alias/box2d_h.dox,
+ * doc/mln/core/alias/box3d.dox,
+ * doc/mln/core/alias/complex_geometry.dox,
+ * doc/mln/core/alias/complex_image.dox,
+ * doc/mln/core/alias/dpoint1d.dox,
+ * doc/mln/core/alias/dpoint2d.dox,
+ * doc/mln/core/alias/dpoint3d.dox,
+ * doc/mln/core/alias/neighb1d.dox,
+ * doc/mln/core/alias/neighb2d.dox,
+ * doc/mln/core/alias/neighb3d.dox,
+ * doc/mln/core/alias/p_run2d.dox,
+ * doc/mln/core/alias/p_runs2d.dox,
+ * doc/mln/core/alias/point1d.dox,
+ * doc/mln/core/alias/point2d.dox,
+ * doc/mln/core/alias/point2d_h.dox,
+ * doc/mln/core/alias/point3d.dox,
+ * doc/mln/core/alias/vec2d.dox,
+ * doc/mln/core/alias/vec3d.dox,
+ * doc/mln/core/alias/w_window1d_float.dox,
+ * doc/mln/core/alias/w_window1d_int.dox,
+ * doc/mln/core/alias/w_window2d_float.dox,
+ * doc/mln/core/alias/w_window2d_int.dox,
+ * doc/mln/core/alias/w_window3d_float.dox,
+ * doc/mln/core/alias/w_window3d_int.dox,
+ * doc/mln/core/alias/window1d.dox,
+ * doc/mln/core/alias/window2d.dox,
+ * doc/mln/core/alias/window3d.dox,
+ * doc/mln/win/disk2d.dox,
+ * doc/mln/win/hline2d.dox,
+ * doc/mln/win/segment1d.dox,
+ * doc/mln/win/sline3d.dox,
+ * doc/mln/win/sphere3d.dox,
+ * doc/mln/win/vline2d.dox: New.
+
+ * mln/core/alias/box1d.hh,
+ * mln/core/alias/box2d.hh,
+ * mln/core/alias/box3d.hh,
+ * mln/core/alias/complex_geometry.hh,
+ * mln/core/alias/complex_image.hh,
+ * mln/core/alias/dpoint1d.hh,
+ * mln/core/alias/dpoint2d.hh,
+ * mln/core/alias/dpoint3d.hh,
+ * mln/core/alias/neighb1d.hh,
+ * mln/core/alias/neighb2d.hh,
+ * mln/core/alias/neighb3d.hh,
+ * mln/core/alias/p_run2d.hh,
+ * mln/core/alias/p_runs2d.hh,
+ * mln/core/alias/point1d.hh,
+ * mln/core/alias/point2d.hh,
+ * mln/core/alias/point3d.hh,
+ * mln/core/alias/vec2d.hh,
+ * mln/core/alias/vec3d.hh,
+ * mln/core/alias/w_window1d_float.hh,
+ * mln/core/alias/w_window1d_int.hh,
+ * mln/core/alias/w_window2d_float.hh,
+ * mln/core/alias/w_window2d_int.hh,
+ * mln/core/alias/w_window3d_float.hh,
+ * mln/core/alias/w_window3d_int.hh,
+ * mln/core/alias/window1d.hh,
+ * mln/core/alias/window2d.hh,
+ * mln/core/alias/window3d.hh,
+ * mln/win/disk2d.hh,
+ * mln/win/hline2d.hh,
+ * mln/win/segment1d.hh,
+ * mln/win/sline3d.hh,
+ * mln/win/sphere3d.hh,
+ * mln/win/vline2d.hh: Add more documentation.
+
2013-04-03 Guillaume Lazzara <z(a)lrde.epita.fr>
* mln/value/builtin/symbolics.hh: Add min() and max() for Boolean.
diff --git a/milena/doc/mln/core/alias/box1d.dox b/milena/doc/mln/core/alias/box1d.dox
new file mode 100644
index 0000000..d2f3827
--- /dev/null
+++ b/milena/doc/mln/core/alias/box1d.dox
@@ -0,0 +1,25 @@
+// This file is necessary to help doxygen finding all the methods
+// related to typedefs.
+
+namespace mln
+{
+ class box1d : public mln::box<mln::point1d>
+ {
+ public:
+ /// \brief Constructor without argument.
+ box1d();
+
+ /*! \brief Constructor of a box going from \p pmin to \p pmax.
+
+ \sa mln::make::box1d.
+ */
+ box1d(const point1d& pmin, const point1d& pmax);
+
+ /*! \brief Construct a box1d with \p nrows rows and \p ncols columns.
+
+ The pmin() site is set to mln::point1d(0,0).
+ \sa mln::make::box1d.
+ */
+ box1d(mln_coord(mln::point1d) ncols);
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/box2d.dox b/milena/doc/mln/core/alias/box2d.dox
new file mode 100644
index 0000000..f599a79
--- /dev/null
+++ b/milena/doc/mln/core/alias/box2d.dox
@@ -0,0 +1,25 @@
+// This file is necessary to help doxygen finding all the methods
+// related to typedefs.
+
+namespace mln
+{
+ class box2d : public mln::box<mln::point2d>
+ {
+ public:
+ /// \brief Constructor without argument.
+ box2d();
+
+ /*! \brief Constructor of a box going from \p pmin to \p pmax.
+
+ \sa mln::make::box2d.
+ */
+ box2d(const point2d& pmin, const point2d& pmax);
+
+ /*! \brief Construct a box2d with \p nrows rows and \p ncols columns.
+
+ The pmin() site is set to mln::point2d(0,0).
+ \sa mln::make::box2d.
+ */
+ box2d(mln_coord(mln::point2d) nrows, mln_coord(mln::point2d) ncols);
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/box2d_h.dox b/milena/doc/mln/core/alias/box2d_h.dox
new file mode 100644
index 0000000..5cc21c6
--- /dev/null
+++ b/milena/doc/mln/core/alias/box2d_h.dox
@@ -0,0 +1,25 @@
+// This file is necessary to help doxygen finding all the methods
+// related to typedefs.
+
+namespace mln
+{
+ class box2d_h : public mln::box<mln::point2d_h>
+ {
+ public:
+ /// \brief Constructor without argument.
+ box2d_h();
+
+ /*! \brief Constructor of a box going from \p pmin to \p pmax.
+
+ \sa mln::make::box2d_h.
+ */
+ box2d_h(const point2d_h& pmin, const point2d_h& pmax);
+
+ /*! \brief Construct a box2d_h with \p nrows rows and \p ncols columns.
+
+ The pmin() site is set to mln::point2d_h(0,0).
+ \sa mln::make::box2d_h.
+ */
+ box2d_h(mln_coord(mln::point2d_h) nrows, mln_coord(mln::point2d_h) ncols);
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/box3d.dox b/milena/doc/mln/core/alias/box3d.dox
new file mode 100644
index 0000000..f5fc020
--- /dev/null
+++ b/milena/doc/mln/core/alias/box3d.dox
@@ -0,0 +1,26 @@
+// This file is necessary to help doxygen finding all the methods
+// related to typedefs.
+
+namespace mln
+{
+ class box3d : public mln::box<mln::point3d>
+ {
+ public:
+ /// \brief Constructor without argument.
+ box3d();
+
+ /*! \brief Constructor of a box going from \p pmin to \p pmax.
+
+ \sa mln::make::box3d.
+ */
+ box3d(const point3d& pmin, const point3d& pmax);
+
+ /*! \brief Construct a box3d with \p nrows rows and \p ncols columns.
+
+ The pmin() site is set to mln::point3d(0,0,0).
+ \sa mln::make::box3d.
+ */
+ box3d(mln_coord(mln::point3d) nslis, mln_coord(mln::point3d) nrows,
+ mln_coord(mln::point3d) ncols);
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/complex_geometry.dox b/milena/doc/mln/core/alias/complex_geometry.dox
new file mode 100644
index 0000000..d4c189e
--- /dev/null
+++ b/milena/doc/mln/core/alias/complex_geometry.dox
@@ -0,0 +1,31 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class discrete_plane_1complex_geometry
+ : public geom::complex_geometry<1, point2d>
+ {
+ public:
+ // Default constructor.
+ discrete_plane_1complex_geometry();
+ };
+
+
+ class discrete_plane_2complex_geometry
+ : public mln::geom::complex_geometry<2, point2d>
+ {
+ public:
+ // Default constructor.
+ discrete_plane_2complex_geometry();
+ };
+
+
+ class space_2complex_geometry
+ : public mln::geom::complex_geometry<2, point3df>
+ {
+ public:
+ // Default constructor.
+ space_2complex_geometry();
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/complex_image.dox b/milena/doc/mln/core/alias/complex_image.dox
new file mode 100644
index 0000000..7c48228
--- /dev/null
+++ b/milena/doc/mln/core/alias/complex_image.dox
@@ -0,0 +1,88 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+
+ class bin_1complex_image2d
+ : public mln::complex_image<1, mln::discrete_plane_1complex_geometry, bool>
+ {
+ complex_image();
+ complex_image(const p_complex<1, mln::discrete_plane_1complex_geometry>& pc);
+ complex_image(const p_complex<1, mln::discrete_plane_1complex_geometry>& pc,
+ const metal::vec<2, std::vector<bool> >& values);
+ };
+
+
+ class int_u8_1complex_image2d
+ : public mln::complex_image<1, mln::discrete_plane_1complex_geometry,
+ mln::value::int_u8>
+ {
+ complex_image();
+ complex_image(const p_complex<1, mln::discrete_plane_1complex_geometry>& pc);
+ complex_image(const p_complex<1, mln::discrete_plane_1complex_geometry>& pc,
+ const metal::vec<2, std::vector<mln::value::int_u8> >& values);
+ };
+
+
+ class int_u8_2complex_image2d
+ : public mln::complex_image<2, mln::discrete_plane_2complex_geometry,
+ mln::value::int_u8>
+ {
+ complex_image();
+ complex_image(const p_complex<2, mln::discrete_plane_2complex_geometry>& pc);
+ complex_image(const p_complex<2, mln::discrete_plane_2complex_geometry>& pc,
+ const metal::vec<3, std::vector<mln::value::int_u8> >& values);
+ };
+
+
+ class bin_2complex_image3df
+ : public mln::complex_image<2, mln::space_2complex_geometry, bool>
+ {
+ complex_image();
+ complex_image(const p_complex<2, mln::space_2complex_geometry>& pc);
+ complex_image(const p_complex<2, mln::space_2complex_geometry>& pc,
+ const metal::vec<3, std::vector<bool> >& values);
+ };
+
+
+ class int_u8_2complex_image3df
+ : public mln::complex_image<2, mln::space_2complex_geometry, mln::value::int_u8>
+ {
+ complex_image();
+ complex_image(const p_complex<2, mln::space_2complex_geometry>& pc);
+ complex_image(const p_complex<2, mln::space_2complex_geometry>& pc,
+ const metal::vec<3, std::vector<mln::value::int_u8> >& values);
+ };
+
+
+ class unsigned_2complex_image3df
+ : public mln::complex_image<2, mln::space_2complex_geometry, unsigned>
+ {
+ complex_image();
+ complex_image(const p_complex<2, mln::space_2complex_geometry>& pc);
+ complex_image(const p_complex<2, mln::space_2complex_geometry>& pc,
+ const metal::vec<3, std::vector<unsigned> >& values);
+ };
+
+
+ class float_2complex_image3df
+ : public mln::complex_image<2, mln::space_2complex_geometry, float>
+ {
+ complex_image();
+ complex_image(const p_complex<2, mln::space_2complex_geometry>& pc);
+ complex_image(const p_complex<2, mln::space_2complex_geometry>& pc,
+ const metal::vec<3, std::vector<float> >& values);
+ };
+
+
+ class rgb8_2complex_image3df
+ : public mln::complex_image<2, mln::space_2complex_geometry, mln::value::rgb8>
+ {
+ complex_image();
+ complex_image(const p_complex<2, mln::space_2complex_geometry>& pc);
+ complex_image(const p_complex<2, mln::space_2complex_geometry>& pc,
+ const metal::vec<3, std::vector<mln::value::rgb8> >& values);
+ };
+
+} // end of namespace mln
diff --git a/milena/doc/mln/core/alias/dpoint1d.dox b/milena/doc/mln/core/alias/dpoint1d.dox
new file mode 100644
index 0000000..24cc0b2
--- /dev/null
+++ b/milena/doc/mln/core/alias/dpoint1d.dox
@@ -0,0 +1,30 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct dpoint1d
+ : public dpoint<mln::grid::tick, def::coord>,
+ public internal::mutable_coord_impl_< 1, def::coord, dpoint1d >
+ {
+ /// Constructor without argument.
+ dpoint1d();
+
+ /// Constructor from an algebra vector.
+ template <typename C2>
+ dpoint1d(const algebra::vec<dim,C2>& v);
+
+ /// Constructor from coordinates.
+ dpoint1d(def::coord ind);
+
+ /// Construct a dpoint with coordinates (0).
+ dpoint1d(const literal::zero_t&);
+
+ /// Construct a dpoint with coordinates (1).
+ dpoint1d(const literal::one_t&);
+
+ /// Constructor; coordinates are set by function \p f.
+ template <typename F>
+ dpoint1d(const Function_v2v<F>& f);
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/dpoint2d.dox b/milena/doc/mln/core/alias/dpoint2d.dox
new file mode 100644
index 0000000..20c56f4
--- /dev/null
+++ b/milena/doc/mln/core/alias/dpoint2d.dox
@@ -0,0 +1,27 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct dpoint2d
+ : public dpoint<mln::grid::square, def::coord>,
+ public internal::mutable_coord_impl_< 2, def::coord, dpoint2d >
+ {
+ /// Constructor without argument.
+ dpoint2d();
+
+ /// Constructor from an algebra vector.
+ template <typename C2>
+ dpoint2d(const algebra::vec<dim,C2>& v);
+
+ /// Constructor from coordinates.
+ dpoint2d(def::coord row, def::coord col);
+
+ /// Construct a dpoint with coordinates (0,0).
+ dpoint2d(const literal::zero_t&);
+
+ /// Constructor; coordinates are set by function \p f.
+ template <typename F>
+ dpoint2d(const Function_v2v<F>& f);
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/dpoint3d.dox b/milena/doc/mln/core/alias/dpoint3d.dox
new file mode 100644
index 0000000..4724988
--- /dev/null
+++ b/milena/doc/mln/core/alias/dpoint3d.dox
@@ -0,0 +1,27 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct dpoint3d
+ : public dpoint<mln::grid::cube, def::coord>,
+ public internal::mutable_coord_impl_< 3, def::coord, dpoint3d >
+ {
+ /// Constructor without argument.
+ dpoint3d();
+
+ /// Constructor from an algebra vector.
+ template <typename C2>
+ dpoint3d(const algebra::vec<dim,C2>& v);
+
+ /// Constructor from coordinates.
+ dpoint3d(def::coord sli, def::coord row, def::coord col);
+
+ /// Construct a dpoint with coordinates (0,0,0).
+ dpoint3d(const literal::zero_t&);
+
+ /// Constructor; coordinates are set by function \p f.
+ template <typename F>
+ dpoint3d(const Function_v2v<F>& f);
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/neighb1d.dox b/milena/doc/mln/core/alias/neighb1d.dox
new file mode 100644
index 0000000..e3669ff
--- /dev/null
+++ b/milena/doc/mln/core/alias/neighb1d.dox
@@ -0,0 +1,16 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class neighb1d
+ : public neighb<window1d>
+ {
+ /// Constructor without argument.
+ neighb1d();
+
+ /// Constructor from a window \p win.
+ neighb1d(const window1d& win);
+ };
+
+}
diff --git a/milena/doc/mln/core/alias/neighb2d.dox b/milena/doc/mln/core/alias/neighb2d.dox
new file mode 100644
index 0000000..81b9941
--- /dev/null
+++ b/milena/doc/mln/core/alias/neighb2d.dox
@@ -0,0 +1,16 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class neighb2d
+ : public neighb<window2d>
+ {
+ /// Constructor without argument.
+ neighb2d();
+
+ /// Constructor from a window \p win.
+ neighb2d(const window2d& win);
+ };
+
+}
diff --git a/milena/doc/mln/core/alias/neighb3d.dox b/milena/doc/mln/core/alias/neighb3d.dox
new file mode 100644
index 0000000..529cf8c
--- /dev/null
+++ b/milena/doc/mln/core/alias/neighb3d.dox
@@ -0,0 +1,16 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class neighb3d
+ : public neighb<window3d>
+ {
+ /// Constructor without argument.
+ neighb3d();
+
+ /// Constructor from a window \p win.
+ neighb3d(const window3d& win);
+ };
+
+}
diff --git a/milena/doc/mln/core/alias/p_run2d.dox b/milena/doc/mln/core/alias/p_run2d.dox
new file mode 100644
index 0000000..d68cfc7
--- /dev/null
+++ b/milena/doc/mln/core/alias/p_run2d.dox
@@ -0,0 +1,18 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class p_run2d
+ : public p_run<point2d>
+ {
+ /// Constructor without argument.
+ p_run2d();
+
+ /// Constructor.
+ p_run2d(const point2d& start, unsigned short len);
+
+ /// Constructor.
+ p_run2d(const point2d& start, const point2d& end);
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/p_runs2d.dox b/milena/doc/mln/core/alias/p_runs2d.dox
new file mode 100644
index 0000000..d92e380
--- /dev/null
+++ b/milena/doc/mln/core/alias/p_runs2d.dox
@@ -0,0 +1,12 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class p_runs2d
+ : public p_set_of<p_run<point2d> >
+ {
+ /// Constructor without arguments.
+ p_runs2d();
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/point1d.dox b/milena/doc/mln/core/alias/point1d.dox
new file mode 100644
index 0000000..34d1667
--- /dev/null
+++ b/milena/doc/mln/core/alias/point1d.dox
@@ -0,0 +1,61 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct point1d
+ : public point<mln::grid::tick, mln::def::coord>,
+ // We must add this inheritance here to help doxygen finding
+ // the right specialization.
+ public internal::mutable_coord_impl_< 1, C, E >
+ {
+ /// Constructor without argument.
+ point1d();
+
+ /// Construct a 1D point from an algebra vector.
+ template <typename C2>
+ point1d(const mln::algebra::vec<dim,C2>& v);
+
+ /// \brief Construct a 1D point from an algebra vector.
+ point1d(const mln::algebra::vec<dim,mln::def::coord>& v);
+
+ /// \brief Construct a 1D point at index \p ind.
+ point1d(mln::def::coord ind);
+
+ /// \brief Construct a 1D point at (0).
+ point1d(const literal::origin_t&);
+
+ /// \brief Coordinates are set by function \p f.
+ template <typename F>
+ point1d(const Function_v2v<F>& f);
+ };
+
+
+ struct point1df
+ : public point<mln::grid::tick, mln::def::coordf>,
+ // We must add this inheritance here to help doxygen finding
+ // the right specialization.
+ public internal::mutable_coord_impl_< 1, C, E >
+ {
+ /// Constructor without argument.
+ point1df();
+
+ /// Construct a 1D point from an algebra vector.
+ template <typename C2>
+ point1df(const mln::algebra::vec<dim,C2>& v);
+
+ /// \brief Construct a 1D point from an algebra vector.
+ point1df(const mln::algebra::vec<dim,mln::def::coord>& v);
+
+ /// \brief Construct a 1D point at index \p ind.
+ point1df(mln::def::coord ind);
+
+ /// \brief Construct a 1D point at (0,0).
+ point1df(const literal::origin_t&);
+
+ /// \brief Coordinates are set by function \p f.
+ template <typename F>
+ point1df(const Function_v2v<F>& f);
+ };
+
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/point2d.dox b/milena/doc/mln/core/alias/point2d.dox
new file mode 100644
index 0000000..81bf197
--- /dev/null
+++ b/milena/doc/mln/core/alias/point2d.dox
@@ -0,0 +1,61 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct point2d
+ : public point<mln::grid::square, mln::def::coord>,
+ // We must add this inheritance here to help doxygen finding
+ // the right specialization.
+ public internal::mutable_coord_impl_< 2, C, E >
+ {
+ /// Constructor without argument.
+ point2d();
+
+ /// Construct a 2D point from an algebra vector.
+ template <typename C2>
+ point2d(const mln::algebra::vec<dim,C2>& v);
+
+ /// \brief Construct a 2D point from an algebra vector.
+ point2d(const mln::algebra::vec<dim,mln::def::coord>& v);
+
+ /// \brief Construct a 2D point at row \p row and column \p col.
+ point2d(mln::def::coord row, mln::def::coord col);
+
+ /// \brief Construct a 2D point at (0,0).
+ point2d(const literal::origin_t&);
+
+ /// \brief Coordinates are set by function \p f.
+ template <typename F>
+ point2d(const Function_v2v<F>& f);
+ };
+
+
+ struct point2df
+ : public point<mln::grid::square, mln::def::coordf>,
+ // We must add this inheritance here to help doxygen finding
+ // the right specialization.
+ public internal::mutable_coord_impl_< 2, C, E >
+ {
+ /// Constructor without argument.
+ point2df();
+
+ /// Construct a 2D point from an algebra vector.
+ template <typename C2>
+ point2df(const mln::algebra::vec<dim,C2>& v);
+
+ /// \brief Construct a 2D point from an algebra vector.
+ point2df(const mln::algebra::vec<dim,mln::def::coord>& v);
+
+ /// \brief Construct a 2D point at row \p row and column \p col.
+ point2df(mln::def::coord row, mln::def::coord col);
+
+ /// \brief Construct a 2D point at (0,0).
+ point2df(const literal::origin_t&);
+
+ /// \brief Coordinates are set by function \p f.
+ template <typename F>
+ point2df(const Function_v2v<F>& f);
+ };
+
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/point2d_h.dox b/milena/doc/mln/core/alias/point2d_h.dox
new file mode 100644
index 0000000..ba669e9
--- /dev/null
+++ b/milena/doc/mln/core/alias/point2d_h.dox
@@ -0,0 +1,63 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct point2d_h
+ : public point<mln::grid::hexa, mln::def::coord>,
+ // We must add this inheritance here to help doxygen finding
+ // the right specialization.
+ public internal::mutable_coord_impl_< 2, C, E >
+ {
+ /// Constructor without argument.
+ point2d_h();
+
+ /// Construct an hexagonal 2D point from an algebra vector.
+ template <typename C2>
+ point2d_h(const mln::algebra::vec<dim,C2>& v);
+
+ /// \brief Construct an hexagonal 2D point from an algebra
+ /// vector.
+ point2d_h(const mln::algebra::vec<dim,mln::def::coord>& v);
+
+ /// \brief Construct an hexagonal 2D point at row \p row and
+ /// column \p col.
+ point2d_h(mln::def::coord row, mln::def::coord col);
+
+ /// \brief Construct an hexagonal 2D point at (0,0).
+ point2d_h(const literal::origin_t&);
+
+ /// \brief Coordinates are set by function \p f.
+ template <typename F>
+ point2d_h(const Function_v2v<F>& f);
+ };
+
+
+ struct point2df_h
+ : public point<mln::grid::hexa, mln::def::coordf>,
+ // We must add this inheritance here to help doxygen finding
+ // the right specialization.
+ public internal::mutable_coord_impl_< 2, C, E >
+ {
+ /// Constructor without argument.
+ point2df_h();
+
+ /// Construct an hexagonal 2D point from an algebra vector.
+ template <typename C2>
+ point2df_h(const mln::algebra::vec<dim,C2>& v);
+
+ /// \brief Construct an hexagonal 2D point from an algebra vector.
+ point2df_h(const mln::algebra::vec<dim,mln::def::coord>& v);
+
+ /// \brief Construct an hexagonal 2D point at row \p row and column \p col.
+ point2df_h(mln::def::coord row, mln::def::coord col);
+
+ /// \brief Construct an hexagonal 2D point at (0,0).
+ point2df_h(const literal::origin_t&);
+
+ /// \brief Coordinates are set by function \p f.
+ template <typename F>
+ point2df_h(const Function_v2v<F>& f);
+ };
+
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/point3d.dox b/milena/doc/mln/core/alias/point3d.dox
new file mode 100644
index 0000000..762304a
--- /dev/null
+++ b/milena/doc/mln/core/alias/point3d.dox
@@ -0,0 +1,62 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct point3d
+ : public point<mln::grid::cube, mln::def::coord>,
+ // We must add this inheritance here to help doxygen finding
+ // the right specialization.
+ public internal::mutable_coord_impl_< 3, C, E >
+ {
+ /// Constructor without argument.
+ point3d();
+
+ /// Construct a 3D point from an algebra vector.
+ template <typename C2>
+ point3d(const mln::algebra::vec<dim,C2>& v);
+
+ /// \brief Construct a 3D point from an algebra vector.
+ point3d(const mln::algebra::vec<dim,mln::def::coord>& v);
+
+ /// \brief Construct a 3D point at slice \p sli, row \p row and
+ /// column \p col.
+ point3d(mln::def::coord sli, mln::def::coord row, mln::def::coord col);
+
+ /// \brief Construct a 3D point at (0,0,0).
+ point3d(const literal::origin_t&);
+
+ /// \brief Coordinates are set by function \p f.
+ template <typename F>
+ point3d(const Function_v2v<F>& f);
+ };
+
+ struct point3df
+ : public point<mln::grid::cube, mln::def::coordf>,
+ // We must add this inheritance here to help doxygen finding
+ // the right specialization.
+ public internal::mutable_coord_impl_< 3, C, E >
+ {
+ /// Constructor without argument.
+ point3df();
+
+ /// Construct a 3D point from an algebra vector.
+ template <typename C2>
+ point3df(const mln::algebra::vec<dim,C2>& v);
+
+ /// \brief Construct a 3D point from an algebra vector.
+ point3df(const mln::algebra::vec<dim,mln::def::coord>& v);
+
+ /// \brief Construct a 3D point at slice \p sli, row \p row and
+ /// column \p col.
+ point3df(mln::def::coord sli, mln::def::coord row, mln::def::coord col);
+
+ /// \brief Construct a 3D point at (0,0,0).
+ point3df(const literal::origin_t&);
+
+ /// \brief Coordinates are set by function \p f.
+ template <typename F>
+ point3df(const Function_v2v<F>& f);
+ };
+
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/vec2d.dox b/milena/doc/mln/core/alias/vec2d.dox
new file mode 100644
index 0000000..3608c10
--- /dev/null
+++ b/milena/doc/mln/core/alias/vec2d.dox
@@ -0,0 +1,48 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class vec2d_f
+ : public algebra::vec<2u,float>
+ {
+ public:
+ vec2d_f();
+
+ /// Construct a vector set to (0,0).
+ vec2d_f(const literal::zero_t&);
+
+ /// Construct a vector set to (0,0).
+ vec2d_f(const literal::origin_t&);
+
+ /// Construct copy of another vector.
+ vec2d_f(const vec<2u, float>& rhs);
+
+ /// Construct copy of another vector encoded with a different
+ type.
+ template <typename U>
+ vec2d_f(const vec<2u, U>& rhs);
+ };
+
+
+ class vec2d_d
+ : public algebra::vec<2u,double> vec2d_d
+ {
+ public:
+ vec2d_d();
+
+ /// Construct a vector set to (0,0).
+ vec2d_d(const literal::zero_t&);
+
+ /// Construct a vector set to (0,0).
+ vec2d_d(const literal::origin_t&);
+
+ /// Construct copy of another vector.
+ vec2d_d(const vec<2u, double>& rhs);
+
+ /// Construct copy of another vector encoded with a different
+ type.
+ template <typename U>
+ vec2d_d(const vec<2u, U>& rhs);
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/vec3d.dox b/milena/doc/mln/core/alias/vec3d.dox
new file mode 100644
index 0000000..d644851
--- /dev/null
+++ b/milena/doc/mln/core/alias/vec3d.dox
@@ -0,0 +1,48 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class vec3d_f
+ : public algebra::vec<3u,float>
+ {
+ public:
+ vec3d_f();
+
+ /// Construct a vector set to (0,0).
+ vec3d_f(const literal::zero_t&);
+
+ /// Construct a vector set to (0,0).
+ vec3d_f(const literal::origin_t&);
+
+ /// Construct copy of another vector.
+ vec3d_f(const vec<3u, float>& rhs);
+
+ /// Construct copy of another vector encoded with a different
+ type.
+ template <typename U>
+ vec3d_f(const vec<3u, U>& rhs);
+ };
+
+
+ class vec3d_d
+ : public algebra::vec<3u,double> vec3d_d
+ {
+ public:
+ vec3d_d();
+
+ /// Construct a vector set to (0,0).
+ vec3d_d(const literal::zero_t&);
+
+ /// Construct a vector set to (0,0).
+ vec3d_d(const literal::origin_t&);
+
+ /// Construct copy of another vector.
+ vec3d_d(const vec<3u, double>& rhs);
+
+ /// Construct copy of another vector encoded with a different
+ type.
+ template <typename U>
+ vec3d_d(const vec<3u, U>& rhs);
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/w_window1d_float.dox b/milena/doc/mln/core/alias/w_window1d_float.dox
new file mode 100644
index 0000000..33d6644
--- /dev/null
+++ b/milena/doc/mln/core/alias/w_window1d_float.dox
@@ -0,0 +1,12 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct w_window1d_float
+ : public w_window<dpoint1d, float>
+ {
+ /// Constructor without argument.
+ w_window1d_float();
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/w_window1d_int.dox b/milena/doc/mln/core/alias/w_window1d_int.dox
new file mode 100644
index 0000000..4800363
--- /dev/null
+++ b/milena/doc/mln/core/alias/w_window1d_int.dox
@@ -0,0 +1,12 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct w_window1d_int
+ : public w_window<dpoint1d, int>
+ {
+ /// Constructor without argument.
+ w_window1d_int();
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/w_window2d_float.dox b/milena/doc/mln/core/alias/w_window2d_float.dox
new file mode 100644
index 0000000..e22dfc0
--- /dev/null
+++ b/milena/doc/mln/core/alias/w_window2d_float.dox
@@ -0,0 +1,12 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct w_window2d_float
+ : public w_window<dpoint2d, float>
+ {
+ /// Constructor without argument.
+ w_window2d_float();
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/w_window2d_int.dox b/milena/doc/mln/core/alias/w_window2d_int.dox
new file mode 100644
index 0000000..ea02b8b
--- /dev/null
+++ b/milena/doc/mln/core/alias/w_window2d_int.dox
@@ -0,0 +1,12 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct w_window2d_int
+ : public w_window<dpoint2d, int>
+ {
+ /// Constructor without argument.
+ w_window2d_int();
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/w_window3d_float.dox b/milena/doc/mln/core/alias/w_window3d_float.dox
new file mode 100644
index 0000000..052f1f5
--- /dev/null
+++ b/milena/doc/mln/core/alias/w_window3d_float.dox
@@ -0,0 +1,12 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct w_window3d_float
+ : public w_window<dpoint3d, float>
+ {
+ /// Constructor without argument.
+ w_window3d_float();
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/w_window3d_int.dox b/milena/doc/mln/core/alias/w_window3d_int.dox
new file mode 100644
index 0000000..72d77f6
--- /dev/null
+++ b/milena/doc/mln/core/alias/w_window3d_int.dox
@@ -0,0 +1,12 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ struct w_window3d_int
+ : public w_window<dpoint3d, int>
+ {
+ /// Constructor without argument.
+ w_window3d_int();
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/window1d.dox b/milena/doc/mln/core/alias/window1d.dox
new file mode 100644
index 0000000..a744e87
--- /dev/null
+++ b/milena/doc/mln/core/alias/window1d.dox
@@ -0,0 +1,12 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class window1d
+ : public window<mln::dpoint1d>
+ {
+ /// Default constructor.
+ window1d();
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/window2d.dox b/milena/doc/mln/core/alias/window2d.dox
new file mode 100644
index 0000000..6a67264
--- /dev/null
+++ b/milena/doc/mln/core/alias/window2d.dox
@@ -0,0 +1,12 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class window2d
+ : public window<mln::dpoint2d>
+ {
+ /// Default constructor.
+ window2d();
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/core/alias/window3d.dox b/milena/doc/mln/core/alias/window3d.dox
new file mode 100644
index 0000000..9e59b36
--- /dev/null
+++ b/milena/doc/mln/core/alias/window3d.dox
@@ -0,0 +1,12 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ class window3d
+ : public window<mln::dpoint3d>
+ {
+ /// Default constructor.
+ window3d();
+ };
+}
\ No newline at end of file
diff --git a/milena/doc/mln/win/disk2d.dox b/milena/doc/mln/win/disk2d.dox
new file mode 100644
index 0000000..95f1f5f
--- /dev/null
+++ b/milena/doc/mln/win/disk2d.dox
@@ -0,0 +1,17 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ namespace win
+ {
+ struct disk2d
+ : ball<grid::square, def::coord>
+ {
+ /// Constructor.
+ /// \param[in] diameter Diameter of the ball.
+ /// \pre \p diameter is odd.
+ disk2d(unsigned diameter);
+ };
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/win/hline2d.dox b/milena/doc/mln/win/hline2d.dox
new file mode 100644
index 0000000..3c17fe2
--- /dev/null
+++ b/milena/doc/mln/win/hline2d.dox
@@ -0,0 +1,17 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ namespace win
+ {
+ struct hline2d
+ : line<grid::square, 1, def::coord>
+ {
+ /// Constructor.
+ /// \param[in] length Length of the line.
+ /// \pre \p length is odd.
+ hline2d(unsigned length);
+ };
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/win/segment1d.dox b/milena/doc/mln/win/segment1d.dox
new file mode 100644
index 0000000..b7722bc
--- /dev/null
+++ b/milena/doc/mln/win/segment1d.dox
@@ -0,0 +1,17 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ namespace win
+ {
+ struct segment1d
+ : line<grid::tick, 0, def::coord>
+ {
+ /// Constructor.
+ /// \param[in] length Length of the segment.
+ /// \pre \p length is odd.
+ segment1d(unsigned length);
+ };
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/win/sline3d.dox b/milena/doc/mln/win/sline3d.dox
new file mode 100644
index 0000000..7cdc595
--- /dev/null
+++ b/milena/doc/mln/win/sline3d.dox
@@ -0,0 +1,17 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ namespace win
+ {
+ struct sline3d
+ : line<grid::cube, 0, def::coord>
+ {
+ /// Constructor.
+ /// \param[in] length Length of the line.
+ /// \pre \p length is odd.
+ sline3d(unsigned length);
+ };
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/win/sphere3d.dox b/milena/doc/mln/win/sphere3d.dox
new file mode 100644
index 0000000..5982d46
--- /dev/null
+++ b/milena/doc/mln/win/sphere3d.dox
@@ -0,0 +1,17 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ namespace win
+ {
+ struct sphere3d
+ : ball<grid::cube, def::coord>
+ {
+ /// Constructor.
+ /// \param[in] diameter Diameter of the sphere.
+ /// \pre \p diameter is odd.
+ sphere3d(unsigned diameter);
+ };
+ }
+}
\ No newline at end of file
diff --git a/milena/doc/mln/win/vline2d.dox b/milena/doc/mln/win/vline2d.dox
new file mode 100644
index 0000000..6bd06ad
--- /dev/null
+++ b/milena/doc/mln/win/vline2d.dox
@@ -0,0 +1,17 @@
+// This file is necessary to help doxygen finding all the methods
+// related to the corresponding typedef.
+
+namespace mln
+{
+ namespace win
+ {
+ struct vline2d
+ : line<grid::square, 1, def::coord>
+ {
+ /// Constructor.
+ /// \param[in] length Length of the line.
+ /// \pre \p length is odd.
+ vline2d(unsigned length);
+ };
+ }
+}
\ No newline at end of file
diff --git a/milena/mln/core/alias/box1d.hh b/milena/mln/core/alias/box1d.hh
index 433c39d..df7398f 100644
--- a/milena/mln/core/alias/box1d.hh
+++ b/milena/mln/core/alias/box1d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,13 +40,41 @@
namespace mln
{
- /*! \brief Type alias for a box defined on the 1D square grid with
- * integer coordinates.
- *
- * \see mln::win::rectangle1d.
- */
- typedef box<mln::point1d> box1d;
+ /*!
+ \class mln::box1d
+ \headerfile <>
+
+ \brief A box defined on the 1D square grid with integer
+ coordinates.
+
+ This class is a site set of mln::point1d. It represents a rectangle of
+ mln::point1d which is usually used as domain for a mln::image1d.
+
+ mln::box1d is a typedef of box<mln::point1d>.
+
+ Iteration over the mln::point1d of a mln::box1d relies on p-iterators
+ and it can be performed using the following code:
+ \code
+ box1d b(3);
+ mln_piter(box1d) p(b);
+ for_all(p)
+ std::cout << p << std::endl;
+ \endcode
+
+ Common sites can be retrieved through pmin(), pmax() and pcenter().
+ \verbatim
+ pmin pcenter pmax
+ -----X--------X---------X-------->
+ \endverbatim
+
+ \sa mln::make::box1d.
+
+ \ingroup modsitesetbasic
+ */
+ /// \cond ALIAS
+ typedef box<mln::point1d> box1d;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/box2d.hh b/milena/mln/core/alias/box2d.hh
index cd9d6bd..8aa7e3b 100644
--- a/milena/mln/core/alias/box2d.hh
+++ b/milena/mln/core/alias/box2d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,12 +39,49 @@
namespace mln
{
- /// Type alias for a box defined on the 2D square grid with
- /// integer coordinates.
- ///
- /// \see mln::win::rectangle2d.
- typedef box<mln::point2d> box2d;
+ /*!
+ \class mln::box2d
+ \headerfile <>
+
+ \brief A box defined on the 2D square grid with integer
+ coordinates.
+
+ This class is a site set of mln::point2d. It represents a rectangle of
+ mln::point2d which is usually used as domain for a mln::image2d.
+
+ mln::box2d is a typedef of box<mln::point2d>.
+
+ Iteration over the mln::point2d of a mln::box2d relies on p-iterators
+ and it can be performed using the following code:
+ \code
+ box2d b(3,3);
+ mln_piter(box2d) p(b);
+ for_all(p)
+ std::cout << p << std::endl;
+ \endcode
+
+ Common sites can be retrieved through pmin(), pmax() and pcenter().
+ \verbatim
+ pmin
+ X------------.---------->
+ | pcenter |
+ | X |
+ | |
+ .------------X
+ | pmax
+ |
+ |
+ v
+ \endverbatim
+
+ \sa mln::make::box2d.
+
+ \ingroup modsitesetbasic
+ */
+ /// \cond ALIAS
+ typedef box<mln::point2d> box2d;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/box3d.hh b/milena/mln/core/alias/box3d.hh
index ac68d66..020f85b 100644
--- a/milena/mln/core/alias/box3d.hh
+++ b/milena/mln/core/alias/box3d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,12 +39,52 @@
namespace mln
{
- /// Type alias for a box defined on the 3D square grid with
- /// integer coordinates.
- ///
- /// \see mln::win::rectangle3d.
- typedef box<point3d> box3d;
+ /*!
+ \class mln::box3d
+ \headerfile <>
+
+ \brief A box defined on the 3D square grid with integer
+ coordinates.
+
+ This class is a site set of mln::point3d. It represents a rectangle of
+ mln::point3d which is usually used as domain for a mln::image3d.
+
+ mln::box3d is a typedef of box<mln::point3d>.
+
+ Iteration over the mln::point3d of a mln::box3d relies on p-iterators
+ and it can be performed using the following code:
+ \code
+ box3d b(3,3,3);
+ mln_piter(box3d) p(b);
+ for_all(p)
+ std::cout << p << std::endl;
+ \endcode
+
+ Common sites can be retrieved through pmin(), pmax() and pcenter().
+ \verbatim
+ pmin
+ X------------.
+ /| /|
+ .-|---------./ |
+ | | X | |
+ | .---------|--.-------->
+ |/ pcenter | /
+ | |/
+ ------------X
+ / pmax
+ /
+ \/
+ \endverbatim
+
+
+ \sa mln::make::box3d.
+
+ \ingroup modsitesetbasic
+ */
+ /// \cond ALIAS
+ typedef box<point3d> box3d;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/complex_geometry.hh b/milena/mln/core/alias/complex_geometry.hh
index c3de354..4d7aa0c 100644
--- a/milena/mln/core/alias/complex_geometry.hh
+++ b/milena/mln/core/alias/complex_geometry.hh
@@ -38,20 +38,41 @@
namespace mln
{
- /// \brief Type alias for the geometry of a 1-complex (e.g., a
- /// graph) located in a discrete 2-dimensional plane (with integer
- /// coordinates).
+ /*!
+ \class discrete_plane_1complex_geometry
+ \headerfile <>
+
+ \brief Type alias for the geometry of a 1-complex (e.g., a
+ graph) located in a discrete 2-dimensional plane (with integer
+ coordinates).
+ */
+ /// \cond ALIAS
typedef mln::geom::complex_geometry<1, point2d>
discrete_plane_1complex_geometry;
+ /// \endcond
+
+ /*!
+ \class discrete_plane_2complex_geometry
+ \headerfile <>
- /// \brief Type alias for the geometry of a 2-complex located in a
- /// discrete 2-dimensional plane (with integer coordinates).
+ \brief Type alias for the geometry of a 2-complex located in a
+ discrete 2-dimensional plane (with integer coordinates).
+ */
+ /// \cond ALIAS
typedef mln::geom::complex_geometry<2, point2d>
discrete_plane_2complex_geometry;
+ /// \endcond
+
+ /*!
+ \class space_2complex_geometry
+ \headerfile <>
- /// \brief Type alias for the geometry of a 2-complex located in a
- /// 3-dimensional space (with floating-point coordinates).
+ \brief Type alias for the geometry of a 2-complex located in a
+ 3-dimensional space (with floating-point coordinates).
+ */
+ /// \cond ALIAS
typedef mln::geom::complex_geometry<2, point3df> space_2complex_geometry;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/complex_image.hh b/milena/mln/core/alias/complex_image.hh
index 89a8241..b48e445 100644
--- a/milena/mln/core/alias/complex_image.hh
+++ b/milena/mln/core/alias/complex_image.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,72 +46,144 @@ namespace mln
| 2-d plane 1-complex aliases. |
`------------------------------*/
- /// \brief Type alias for a binary image based on a
- /// 1-complex, where 0-faces are located at discrete (integer)
- /// 2-dimensional points.
+ /*!
+ \class bin_1complex_image2d
+ \headerfile <>
+
+ \brief Type alias for a binary image based on a
+ 1-complex, where 0-faces are located at discrete (integer)
+ 2-dimensional points.
+
+ \ingroup modimageconcrete
+ */
+ /// \cond ALIAS
typedef
mln::complex_image<1, mln::discrete_plane_1complex_geometry, bool>
bin_1complex_image2d;
+ /// \endcond
+
+ /*!
+ \class int_u8_1complex_image2d
+ \headerfile <>
+
+ \brief Type alias for an 8-bit gray-level image based on a
+ 1-complex, where 0-faces are located at discrete (integer)
+ 2-dimensional points.
- /// \brief Type alias for an 8-bit gray-level image based on a
- /// 1-complex, where 0-faces are located at discrete (integer)
- /// 2-dimensional points.
+ \ingroup modimageconcrete
+ */
+ /// \cond ALIAS
typedef
mln::complex_image<1, mln::discrete_plane_1complex_geometry,
mln::value::int_u8>
int_u8_1complex_image2d;
+ /// \endcond
/*------------------------------.
| 2-d plane 2-complex aliases. |
`------------------------------*/
- /// \brief Type alias for an 8-bit gray-level image based on a
- /// 2-complex, where 0-faces are located at discrete (integer)
- /// 2-dimensional points.
+ /*!
+ \class int_u8_2complex_image2d
+ \headerfile <>
+
+ \brief Type alias for an 8-bit gray-level image based on a
+ 2-complex, where 0-faces are located at discrete (integer)
+ 2-dimensional points.
+
+ \ingroup modimageconcrete
+ */
+ /// \cond ALIAS
typedef
mln::complex_image<2, mln::discrete_plane_2complex_geometry,
mln::value::int_u8>
int_u8_2complex_image2d;
+ /// \endcond
/*------------------------------.
| 3-d space 2-complex aliases. |
`------------------------------*/
- /// \brief Type alias for a binary image based on a 2-complex, where
- /// 0-faces are located at floating-point 3-dimensional points.
+ /*!
+ \class bin_2complex_image3df
+ \headerfile <>
+
+ \brief Type alias for a binary image based on a 2-complex, where
+ 0-faces are located at floating-point 3-dimensional points.
+
+ \ingroup modimageconcrete
+ */
+ /// \cond ALIAS
typedef
mln::complex_image<2, mln::space_2complex_geometry, bool>
bin_2complex_image3df;
+ /// \endcond
- /// \brief Type alias for an 8-bit gray-level image based on a
- /// 2-complex, where 0-faces are located at floating-point
- /// 3-dimensional points.
+ /*!
+ \class int_u8_2complex_image3df
+ \headerfile <>
+
+ \brief Type alias for an 8-bit gray-level image based on a
+ 2-complex, where 0-faces are located at floating-point
+ 3-dimensional points.
+
+ \ingroup modimageconcrete
+ */
+ /// \cond ALIAS
typedef
mln::complex_image<2, mln::space_2complex_geometry, mln::value::int_u8>
int_u8_2complex_image3df;
+ /// \endcond
+
+ /*!
+ \class unsigned_2complex_image3df
+ \headerfile <>
+
+ \brief Type alias for a gray-level image based on a 2-complex,
+ where 0-faces are located at floating-point 3-dimensional
+ points.
- /// \brief Type alias for a gray-level image based on a 2-complex,
- /// where 0-faces are located at floating-point 3-dimensional
- /// points.
+ \ingroup modimageconcrete
+ */
+ /// \cond ALIAS
typedef
mln::complex_image<2, mln::space_2complex_geometry, unsigned>
unsigned_2complex_image3df;
+ /// \endcond
- /// \brief Type alias for a floating-point image based on a
- /// 2-complex, where 0-faces are located at floating-point
- /// 3-dimensional points.
+ /*!
+ \class float_2complex_image3df
+ \headerfile <>
+
+ \brief Type alias for a floating-point image based on a
+ 2-complex, where 0-faces are located at floating-point
+ 3-dimensional points.
+
+ \ingroup modimageconcrete
+ */
+ /// \cond ALIAS
typedef
mln::complex_image<2, mln::space_2complex_geometry, float>
float_2complex_image3df;
+ /// \endcond
+
+ /*!
+ \class rgb8_2complex_image3df
+ \headerfile <>
+
+ \brief Type alias for a (3x8-bit) RGB image based on a
+ 2-complex, where 0-faces are located at floating-point
+ 3-dimensional points.
- /// \brief Type alias for a (3x8-bit) RGB image based on a
- /// 2-complex, where 0-faces are located at floating-point
- /// 3-dimensional points.
+ \ingroup modimageconcrete
+ */
+ /// \cond ALIAS
typedef
mln::complex_image<2, mln::space_2complex_geometry, mln::value::rgb8>
rgb8_2complex_image3df;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/dpoint1d.hh b/milena/mln/core/alias/dpoint1d.hh
index 7ebd790..6cf97c6 100644
--- a/milena/mln/core/alias/dpoint1d.hh
+++ b/milena/mln/core/alias/dpoint1d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,9 +40,32 @@
namespace mln
{
- /// Type alias for a delta-point defined on the 1D square
- /// grid with integer coordinates.
+ /*!
+ \class dpoint1d
+ \headerfile <>
+
+ \brief Type alias for a delta-point defined on the 1D square grid
+ with integer coordinates.
+
+ This class stored relative positions of a site. It is meant to be
+ used with point1d to compute a new point1d.
+
+ \code
+ point1d p(2);
+ dpoint1d up(-1);
+
+ dpoint1d p_before = p + before;
+ // p_before = point1d(1);
+ \endcode
+
+ dpoint1d are also used in window1d to store the relative
+ neighboors.
+
+ \sa point1d, window1d
+ */
+ /// \cond ALIAS
typedef dpoint<mln::grid::tick, def::coord> dpoint1d;
+ /// \endcond
} // end of namespace mln
@@ -53,17 +77,16 @@ namespace mln
namespace mln
{
- /// Definition of a shortcut for delta point in 1d.
- /// \{
-
+ /// \brief Shortcut for delta point in 1d. dpoint1d(-1)
extern const dpoint1d before;
+ /// \brief Shortcut for delta point in 1d. dpoint1d(+1)
extern const dpoint1d after;
+ /// \brief Shortcut for delta point in 1d. dpoint1d(-1)
extern const dpoint1d ind_dec;
+ /// \brief Shortcut for delta point in 1d. dpoint1d(+1)
extern const dpoint1d ind_inc;
- /// \}
-
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/core/alias/dpoint2d.hh b/milena/mln/core/alias/dpoint2d.hh
index 1120154..ba3108a 100644
--- a/milena/mln/core/alias/dpoint2d.hh
+++ b/milena/mln/core/alias/dpoint2d.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -39,9 +39,32 @@
namespace mln
{
- /// Type alias for a delta-point defined on the 2D square
- /// grid with integer coordinates.
+ /*!
+ \class dpoint2d
+ \headerfile <>
+
+ \brief Type alias for a delta-point defined on the 2D square grid
+ with integer coordinates.
+
+ This class stored relative positions of a site. It is meant to be
+ used with point2d to compute a new point2d.
+
+ \code
+ point2d p(2,2);
+ dpoint2d up(-1,0);
+
+ dpoint2d p_up = p + up;
+ // p_up = point2d(1,2);
+ \endcode
+
+ dpoint2d are also used in window2d to store the relative
+ neighboors.
+
+ \sa point2d, window2d
+ */
+ /// \cond ALIAS
typedef dpoint<mln::grid::square, mln::def::coord> dpoint2d;
+ /// \endcond
} // end of namespace mln
@@ -52,21 +75,24 @@ namespace mln
namespace mln
{
- /// Definition of a shortcut for delta point in 2d.
- /// \{
-
+ /// \brief Shortcut for delta point in 2d. dpoint2d(+1,0)
extern const dpoint2d up;
+ /// \brief Shortcut for delta point in 2d. dpoint2d(-1,0)
extern const dpoint2d down;
+ /// \brief Shortcut for delta point in 2d. dpoint2d(0,-1)
extern const dpoint2d left;
+ /// \brief Shortcut for delta point in 2d. dpoint2d(0,+1)
extern const dpoint2d right;
+ /// \brief Shortcut for delta point in 2d. dpoint2d(-1,-1)
extern const dpoint2d up_left;
+ /// \brief Shortcut for delta point in 2d. dpoint2d(-1,+1)
extern const dpoint2d up_right;
+ /// \brief Shortcut for delta point in 2d. dpoint2d(+1,-1)
extern const dpoint2d down_left;
+ /// \brief Shortcut for delta point in 2d. dpoint2d(+1,+1)
extern const dpoint2d down_right;
- /// \}
-
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/core/alias/dpoint3d.hh b/milena/mln/core/alias/dpoint3d.hh
index 3d137fc..819ee09 100644
--- a/milena/mln/core/alias/dpoint3d.hh
+++ b/milena/mln/core/alias/dpoint3d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,9 +39,32 @@
namespace mln
{
- /// Type alias for a delta-point defined on the 3D square
- /// grid with integer coordinates.
+ /*!
+ \class dpoint3d
+ \headerfile <>
+
+ \brief Type alias for a delta-point defined on the 3D square grid
+ with integer coordinates.
+
+ This class stored relative positions of a site. It is meant to be
+ used with point1d to compute a new point3d.
+
+ \code
+ point3d p(2,2,2);
+ dpoint3d up(0,-1,0);
+
+ dpoint3d p_up = p + up;
+ // p_up = point3d(2,1,2);
+ \endcode
+
+ dpoint3d are also used in window3d to store the relative
+ neighboors.
+
+ \sa point3d, window3d
+ */
+ /// \cond ALIAS
typedef dpoint<mln::grid::cube, def::coord> dpoint3d;
+ /// \endcond
} // end of namespace mln
@@ -51,19 +75,19 @@ namespace mln
namespace mln
{
-
- /// Definition of a shortcut for delta point in 3d.
- /// \{
-
+ /// Definition of a shortcut for delta point in 3d. dpoint3d(0,0,-1)
extern const dpoint3d sagittal_dec;
+ /// Definition of a shortcut for delta point in 3d. dpoint3d(0,0,+1)
extern const dpoint3d sagittal_inc;
+ /// Definition of a shortcut for delta point in 3d. dpoint3d(0,-1,0)
extern const dpoint3d axial_dec;
+ /// Definition of a shortcut for delta point in 3d. dpoint3d(0,+1,0)
extern const dpoint3d axial_inc;
+ /// Definition of a shortcut for delta point in 3d. dpoint3d(-1,0,0)
extern const dpoint3d coronal_dec;
+ /// Definition of a shortcut for delta point in 3d. dpoint3d(+1,0,0)
extern const dpoint3d coronal_inc;
- /// \}
-
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/core/alias/neighb1d.hh b/milena/mln/core/alias/neighb1d.hh
index 99c4703..9ea2490 100644
--- a/milena/mln/core/alias/neighb1d.hh
+++ b/milena/mln/core/alias/neighb1d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,12 +40,67 @@
namespace mln
{
- /// \brief Type alias for a neighborhood defined on the 1D square
- /// grid with integer coordinates.
- ///
- /// \ingroup modneighb1d
- //
+ /*!
+ \class neighb1d
+ \headerfile <>
+
+ \brief Type alias for a neighborhood defined on the 1D square
+ grid with integer coordinates.
+
+ A neigh1d can be constructed from a window1d. Compared to a
+ window, a neighborhood does not include the central point.
+
+ \verbatim
+ window1d neighb1d
+ x x x --> x o x
+ \endverbatim
+
+ Common 1D neighborhoods are predefined and can be used directly:
+ mln::c2(). An exhaustive list can be found in section \ref
+ modneighb1d.
+
+ The list of dpoint1d included in a neighb1d is accessible from
+ window1d::std_vector() method or simply by iterating over this
+ list:
+
+ \code
+ neighb1d nbh = c2();
+ for (int i = 0; i < nbh.win().size(); ++i)
+ std::cout << nbh.win().dp(i) << std::endl;
+ \endcode
+
+ Iterating over the neighbors of a specific point is performed
+ thanks to n-iterators, as follows:
+
+ \code
+ point1d p(2);
+ neighb1d nbh = c2();
+ mln_niter(neighb1d) n(nbh, p);
+ for_all(n)
+ // n is a point1d, neighbor of p.
+ std::cout << n << std::endl;
+ \endcode
+
+ It also works while iterating the sites of an image domain:
+
+ \code
+ image1d<bool> ima(4);
+ neighb1d nbh = c2();
+ mln_piter(image1d<bool>) p(ima.domain());
+ mln_niter(neighb1d) n(nbh, p);
+ for_all(p)
+ for_all(n)
+ // n is a point1d, neighbor of the current p.
+ std::cout << n << std::endl;
+ \endcode
+
+ \sa make::neighb1d, dpoint1d, window1d
+
+ \ingroup modneighb1d
+ */
+ /// \cond ALIAS
typedef neighb<window1d> neighb1d;
+ /// \endcond
/// \brief 2-connectivity neighborhood on the 1D grid.
@@ -53,9 +109,10 @@ namespace mln
o x o
\endverbatim
-
\return A neighb1d.
+ \sa neighb1d
+
\ingroup modneighb1d
*/
const neighb1d& c2();
diff --git a/milena/mln/core/alias/neighb2d.hh b/milena/mln/core/alias/neighb2d.hh
index 63fbc55..31275f2 100644
--- a/milena/mln/core/alias/neighb2d.hh
+++ b/milena/mln/core/alias/neighb2d.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,11 +45,69 @@
namespace mln
{
- /// Type alias for a neighborhood defined on the 2D square
- /// grid with integer coordinates.
- ///
- /// \ingroup modneighb2d
+ /*!
+ \class neighb2d
+ \headerfile <>
+
+ \brief Type alias for a neighborhood defined on the 2D square
+ grid with integer coordinates.
+
+ A neigh2d can be constructed from a window2d. Compared to a
+ window, a neighborhood does not include the central point.
+
+ \verbatim
+ window2d neighb2d
+ - o - - o -
+ o o o --> o x o
+ - o - - o -
+ \endverbatim
+
+ Common 2D neighborhoods are predefined and can be used directly:
+ mln::c2_row(), mln::c2_col(), mln::c4(), mln::c6_2d(), mln::c8().
+ An exhaustive list can be found in section \ref modneighb2d.
+
+ The list of dpoint2d included in a neighb2d is accessible from
+ window2d::std_vector() method or simply by iterating over this
+ list:
+
+ \code
+ neighb2d nbh = c4();
+ for (int i = 0; i < nbh.win().size(); ++i)
+ std::cout << nbh.win().dp(i) << std::endl;
+ \endcode
+
+ Iterating over the neighbors of a specific point is performed
+ thanks to n-iterators, as follows:
+
+ \code
+ point2d p(2,2);
+ neighb2d nbh = c4();
+ mln_niter(neighb2d) n(nbh, p);
+ for_all(n)
+ // n is a point2d, neighbor of p.
+ std::cout << n << std::endl;
+ \endcode
+
+ It also works while iterating the sites of an image domain:
+
+ \code
+ image2d<bool> ima(4,4);
+ neighb2d nbh = c4();
+ mln_piter(image2d<bool>) p(ima.domain());
+ mln_niter(neighb2d) n(nbh, p);
+ for_all(p)
+ for_all(n)
+ // n is a point2d, neighbor of the current p.
+ std::cout << n << std::endl;
+ \endcode
+
+ \sa make::neighb2d, dpoint2d, window2d
+
+ \ingroup modneighb2d
+ */
+ /// \cond ALIAS
typedef neighb<window2d> neighb2d;
+ /// \endcond
}
@@ -68,6 +126,8 @@ namespace mln
\return A neighb2d.
+ \sa neighb2d
+
\ingroup modneighb2d
*/
const neighb2d& c4();
@@ -84,6 +144,8 @@ namespace mln
\return A neighb2d.
+ \sa neighb2d
+
\ingroup modneighb2d
*/
const neighb2d& c8();
@@ -99,6 +161,8 @@ namespace mln
\return A neighb2d.
+ \sa neighb2d
+
\ingroup modneighb2d
*/
const neighb2d& c2_row();
@@ -115,12 +179,31 @@ namespace mln
\return A neighb2d.
+ \sa neighb2d
+
\ingroup modneighb2d
*/
const neighb2d& c2_col();
- // FIXME: Documentation
+ /*! \brief Double neighborhood using a 6-connectivity.
+
+ According to the current central point coordinates, this
+ neighborhood will use one of the following neighboords:
+
+ \verbatim
+ even coordinates odd coordinates
+ o o - - o o
+ o x o o x o
+ - o o o o -
+ \endverbatim
+
+ \return A neighb2d.
+
+ \sa neighb2d
+
+ \ingroup modneighb2d
+ */
neighb< win::multiple<window2d, mln::fun::p2b::chess> > c6_2d();
diff --git a/milena/mln/core/alias/neighb3d.hh b/milena/mln/core/alias/neighb3d.hh
index 6dd1aae..e902466 100644
--- a/milena/mln/core/alias/neighb3d.hh
+++ b/milena/mln/core/alias/neighb3d.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,12 +43,78 @@
namespace mln
{
- /// \brief Type alias for a neighborhood defined on the 3D square
- /// grid with integer coordinates.
- ///
- /// \ingroup modneighb3d
- //
+ /*!
+ \class neighb3d
+ \headerfile <>
+
+ \brief Type alias for a neighborhood defined on the 3D square
+ grid with integer coordinates.
+
+ A neigh3d can be constructed from a window3d. Compared to a
+ window, a neighborhood does not include the central point.
+
+ \verbatim
+ window3d neighb3d
+ . o . . o .
+ o o o o o o
+ . o . . o .
+
+ o o o o o o
+ o o o --> o x o
+ o o o o o o
+
+ . o . . o .
+ o o o o o o
+ . o . . o .
+ \endverbatim
+
+ Common 3D neighborhoods are predefined and can be used directly:
+ mln::c2_3d_sli(), mln::c4_3d(), mln::c8_3d(), mln::c18(),
+ mln::c26(). An exhaustive list can be found in section \ref
+ modneighb3d.
+
+ The list of dpoint3d included in a neighb3d is accessible from
+ window3d::std_vector() method or simply by iterating over this
+ list:
+
+ \code
+ neighb3d nbh = c4_3d();
+ for (int i = 0; i < nbh.win().size(); ++i)
+ std::cout << nbh.win().dp(i) << std::endl;
+ \endcode
+
+ Iterating over the neighbors of a specific point is performed
+ thanks to n-iterators, as follows:
+
+ \code
+ point3d p(2,2,2);
+ neighb3d nbh = c4_3d();
+ mln_niter(neighb3d) n(nbh, p);
+ for_all(n)
+ // n is a point3d, neighbor of p.
+ std::cout << n << std::endl;
+ \endcode
+
+ It also works while iterating the sites of an image domain:
+
+ \code
+ image3d<bool> ima(4,4,4);
+ neighb3d nbh = c4_3d();
+ mln_piter(image3d<bool>) p(ima.domain());
+ mln_niter(neighb3d) n(nbh, p);
+ for_all(p)
+ for_all(n)
+ // n is a point3d, neighbor of the current p.
+ std::cout << n << std::endl;
+ \endcode
+
+ \sa make::neighb3d, dpoint3d, window3d
+
+ \ingroup modneighb3d
+ */
+ /// \cond ALIAS
typedef neighb<window3d> neighb3d;
+ /// \endcond
/// \brief depth 2-connectivity neighborhood on the 3D grid.
@@ -69,9 +135,10 @@ namespace mln
\endverbatim
-
\return A neighb3d.
+ \sa neighb3d
+
\ingroup modneighb3d
*/
const neighb3d& c2_3d_sli();
@@ -95,9 +162,10 @@ namespace mln
\endverbatim
-
\return A neighb3d.
+ \sa neighb3d
+
\ingroup modneighb3d
*/
const neighb3d& c4_3d();
@@ -120,9 +188,10 @@ namespace mln
\endverbatim
-
\return A neighb3d.
+ \sa neighb3d
+
\ingroup modneighb3d
*/
const neighb3d& c8_3d();
@@ -146,9 +215,10 @@ namespace mln
\endverbatim
-
\return A neighb3d.
+ \sa neighb3d
+
\ingroup modneighb3d
*/
const neighb3d& c6();
@@ -171,9 +241,10 @@ namespace mln
\endverbatim
-
\return A neighb3d.
+ \sa neighb3d
+
\ingroup modneighb3d
*/
const neighb3d& c18();
@@ -196,9 +267,10 @@ namespace mln
\endverbatim
-
\return A neighb3d.
+ \sa neighb3d
+
\ingroup modneighb3d
*/
const neighb3d& c26();
diff --git a/milena/mln/core/alias/p_run2d.hh b/milena/mln/core/alias/p_run2d.hh
index bc17313..36d3520 100644
--- a/milena/mln/core/alias/p_run2d.hh
+++ b/milena/mln/core/alias/p_run2d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,8 +39,17 @@
namespace mln
{
- /// Type alias for a run of 2d points.
+ /*!
+ \class p_run2d
+ \headerfile <>
+
+ \brief Type alias for a run of 2d points.
+
+ \ingroup modsitesetbasic
+ */
+ /// \cond ALIAS
typedef p_run<point2d> p_run2d;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/p_runs2d.hh b/milena/mln/core/alias/p_runs2d.hh
index c9a2ef2..d689b11 100644
--- a/milena/mln/core/alias/p_runs2d.hh
+++ b/milena/mln/core/alias/p_runs2d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,8 +39,17 @@
namespace mln
{
- /// Type alias for a set of runs of 2d points.
+ /*!
+ \class p_runs2d
+ \headerfile <>
+
+ \brief Type alias for a set of runs of 2d points.
+
+ \ingroup modsitesetbasic
+ */
+ /// \cond ALIAS
typedef p_set_of<p_run2d> p_runs2d;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/point1d.hh b/milena/mln/core/alias/point1d.hh
index f3cde66..a989116 100644
--- a/milena/mln/core/alias/point1d.hh
+++ b/milena/mln/core/alias/point1d.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,13 +43,27 @@
namespace mln
{
- /// Type alias for a point defined on the 1D ruler with integer
- /// coordinates.
+ /*!
+ \class point1d
+ \headerfile <>
+
+ \brief Point defined on the 1D ruler grid with integer
+ coordinates.
+ */
+ /// \cond ALIAS
typedef point<grid::tick, def::coord> point1d;
+ /// \endcond
+
+ /*!
+ \class point1df
+ \headerfile <>
- /// Type alias for a point defined on the 1D ruler with
- /// floating-point coordinates.
+ \brief Point defined on the 1D ruler grid with floating-point
+ coordinates.
+ */
+ /// \cond ALIAS
typedef point<grid::tick, def::coordf> point1df;
+ /// \endcond
namespace internal
@@ -57,6 +71,7 @@ namespace mln
// Specialization.
+ /// \internal
template <typename C, typename E>
struct subject_impl< const point<grid::tick, C>, E >
{
@@ -75,6 +90,7 @@ namespace mln
// Specialization for point<M,C>.
+ /// \internal
template <typename C, typename E>
struct subject_impl< point<grid::tick, C>, E > :
subject_impl< const point<grid::tick, C>, E >
diff --git a/milena/mln/core/alias/point2d.hh b/milena/mln/core/alias/point2d.hh
index 5a7ae65..04db631 100644
--- a/milena/mln/core/alias/point2d.hh
+++ b/milena/mln/core/alias/point2d.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,13 +43,28 @@
namespace mln
{
- /// Type alias for a point defined on the 2D square grid with
- /// integer coordinates.
+ /*!
+ \class point2d
+ \headerfile <>
+
+ \brief Point defined on the 2D square grid with integer
+ coordinates.
+ */
+ /// \cond ALIAS
typedef point<mln::grid::square, mln::def::coord> point2d;
+ /// \endcond
+
- /// Type alias for a point defined on the 2D square grid with
- /// floating-point coordinates.
+ /*!
+ \class point2df
+ \headerfile <>
+
+ \brief Point defined on the 2D square grid with floating-point
+ coordinates.
+ */
+ /// \cond ALIAS
typedef point<mln::grid::square, mln::def::coordf> point2df;
+ /// \endcond
namespace internal
@@ -57,6 +72,7 @@ namespace mln
// Specialization.
+ /// \internal
template <typename C, typename E>
struct subject_impl< const point<grid::square, C>, E >
{
@@ -78,6 +94,7 @@ namespace mln
// Specialization for point<M,C>.
+ /// \internal
template <typename C, typename E>
struct subject_impl< point<grid::square, C>, E > :
subject_impl< const point<grid::square, C>, E >
@@ -95,7 +112,6 @@ namespace mln
};
-
# ifndef MLN_INCLUDE_ONLY
// subject_impl
diff --git a/milena/mln/core/alias/point3d.hh b/milena/mln/core/alias/point3d.hh
index bfc6bee..a82df39 100644
--- a/milena/mln/core/alias/point3d.hh
+++ b/milena/mln/core/alias/point3d.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,19 +42,36 @@
namespace mln
{
- /// Type alias for a point defined on the 3D square grid with
- /// integer coordinates.
+ /*!
+ \class point3d
+ \headerfile <>
+
+ \brief Point defined on the 3D square grid with integer
+ coordinates.
+ */
+ /// \cond ALIAS
typedef point<grid::cube, def::coord> point3d;
+ /// \endcond
+
- /// Type alias for a point defined on the 3D square grid with
- /// floating-point coordinates.
+ /*!
+ \class point3df
+ \headerfile <>
+
+ \brief Point defined on the 3D square grid with floating-point
+ coordinates.
+ */
+ /// \cond ALIAS
typedef point<grid::cube, def::coordf> point3df;
+ /// \endcond
+
namespace internal
{
// Specialization.
+ /// \internal
template <typename C, typename E>
struct subject_impl< const point<grid::cube, C>, E >
: subject_point_impl< point<grid::cube, C>, E >
@@ -80,6 +97,7 @@ namespace mln
// Specialization for point<M,C>.
+ /// \internal
template <typename C, typename E>
struct subject_impl< point<grid::cube, C>, E > :
subject_impl< const point<grid::cube, C>, E >
diff --git a/milena/mln/core/alias/vec2d.hh b/milena/mln/core/alias/vec2d.hh
index 23ef063..4a27abf 100644
--- a/milena/mln/core/alias/vec2d.hh
+++ b/milena/mln/core/alias/vec2d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -36,11 +37,30 @@
namespace mln
{
- /// 2D vector with float coordinates.
+ /*!
+ \class vec2d_f
+ \headerfile <>
+
+ \brief 2D vector with float coordinates.
+
+ \ingroup mlnalgebratypes
+ */
+ /// \cond ALIAS
typedef algebra::vec<2u,float> vec2d_f;
+ /// \endcond
+
+
+ /*!
+ \class vec2d_f
+ \headerfile <>
+
+ \brief 2D vector with double coordinates.
- /// 2D vector with double coordinates.
+ \ingroup mlnalgebratypes
+ */
+ /// \cond ALIAS
typedef algebra::vec<2u,double> vec2d_d;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/vec3d.hh b/milena/mln/core/alias/vec3d.hh
index 0b71739..4e09d17 100644
--- a/milena/mln/core/alias/vec3d.hh
+++ b/milena/mln/core/alias/vec3d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -36,11 +37,29 @@
namespace mln
{
- /// 3D vector with float coordinates.
+ /*!
+ \class vec3d_f
+ \headerfile <>
+
+ \brief 3D vector with float coordinates.
+
+ \ingroup mlnalgebratypes
+ */
+ /// \cond ALIAS
typedef algebra::vec<3u,float> vec3d_f;
+ /// \endcond
+
+ /*!
+ \class vec3d_f
+ \headerfile <>
+
+ \brief 3D vector with double coordinates.
- /// 3D vector with double coordinates.
+ \ingroup mlnalgebratypes
+ */
+ /// \cond ALIAS
typedef algebra::vec<3u,double> vec3d_d;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/w_window1d_float.hh b/milena/mln/core/alias/w_window1d_float.hh
index 43ec036..1f19967 100644
--- a/milena/mln/core/alias/w_window1d_float.hh
+++ b/milena/mln/core/alias/w_window1d_float.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,11 +39,19 @@
namespace mln
{
- /*! \brief Type alias for a w_window with arbitrary shape, defined
- * on the 1D grid (with integer coordinates) and whose
- * weights are floating values.
- */
+ /*!
+ \class w_window1d_float
+ \headerfile <>
+
+ \brief Type alias for a w_window with arbitrary shape, defined
+ on the 1D grid (with integer coordinates) and whose
+ weights are floating values.
+
+ \ingroup modwin1d
+ */
+ /// \cond ALIAS
typedef w_window<dpoint1d, float> w_window1d_float;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/w_window1d_int.hh b/milena/mln/core/alias/w_window1d_int.hh
index 1d37d60..4d8a0e9 100644
--- a/milena/mln/core/alias/w_window1d_int.hh
+++ b/milena/mln/core/alias/w_window1d_int.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,11 +39,19 @@
namespace mln
{
- /*! \brief Type alias for a w_window with arbitrary shape, defined
- * on the 1D grid (with integer coordinates) and whose
- * weights are integers.
- */
+ /*!
+ \class w_window1d_int
+ \headerfile <>
+
+ \brief Type alias for a w_window with arbitrary shape, defined
+ on the 1D grid (with integer coordinates) and whose
+ weights are integers.
+
+ \ingroup modwin1d
+ */
+ /// \cond ALIAS
typedef w_window<dpoint1d, int> w_window1d_int;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/w_window2d_float.hh b/milena/mln/core/alias/w_window2d_float.hh
index c1219ef..324f7c7 100644
--- a/milena/mln/core/alias/w_window2d_float.hh
+++ b/milena/mln/core/alias/w_window2d_float.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,11 +39,19 @@
namespace mln
{
- /*! \brief Type alias for a w_window with arbitrary shape, defined
- * on the 2D square grid (with integer coordinates) and whose
- * weights are floating values.
- */
+ /*!
+ \class w_window2d_float
+ \headerfile <>
+
+ \brief Type alias for a w_window with arbitrary shape, defined
+ on the 2D square grid (with integer coordinates) and whose
+ weights are floating values.
+
+ \ingroup modwin2d
+ */
+ /// \cond ALIAS
typedef w_window<dpoint2d, float> w_window2d_float;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/w_window2d_int.hh b/milena/mln/core/alias/w_window2d_int.hh
index 59ca84e..01eff08 100644
--- a/milena/mln/core/alias/w_window2d_int.hh
+++ b/milena/mln/core/alias/w_window2d_int.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,11 +39,19 @@
namespace mln
{
- /*! \brief Type alias for a w_window with arbitrary shape, defined
- * on the 2D square grid (with integer coordinates) and whose
- * weights are integers.
- */
+ /*!
+ \class w_window2d_int
+ \headerfile <>
+
+ \brief Type alias for a w_window with arbitrary shape, defined
+ on the 2D square grid (with integer coordinates) and whose
+ weights are integers.
+
+ \ingroup modwin2d
+ */
+ /// \cond ALIAS
typedef w_window<dpoint2d, int> w_window2d_int;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/w_window3d_float.hh b/milena/mln/core/alias/w_window3d_float.hh
index 77ce6f8..a86b165 100644
--- a/milena/mln/core/alias/w_window3d_float.hh
+++ b/milena/mln/core/alias/w_window3d_float.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,11 +39,19 @@
namespace mln
{
- /*! \brief Type alias for a w_window with arbitrary shape, defined
- * on the 3D grid (with integer coordinates) and whose
- * weights are floating values.
- */
+ /*!
+ \class w_window3d_float
+ \headerfile <>
+
+ \brief Type alias for a w_window with arbitrary shape, defined
+ on the 3D grid (with integer coordinates) and whose
+ weights are floating values.
+
+ \ingroup modwin3d
+ */
+ /// \cond ALIAS
typedef w_window<dpoint3d, float> w_window3d_float;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/w_window3d_int.hh b/milena/mln/core/alias/w_window3d_int.hh
index 5944cad..0120417 100644
--- a/milena/mln/core/alias/w_window3d_int.hh
+++ b/milena/mln/core/alias/w_window3d_int.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,11 +39,19 @@
namespace mln
{
- /*! \brief Type alias for a w_window with arbitrary shape, defined
- * on the 3D grid (with integer coordinates) and whose
- * weights are integers.
- */
+ /*!
+ \class w_window3d_int
+ \headerfile <>
+
+ \brief Type alias for a w_window with arbitrary shape, defined
+ on the 3D grid (with integer coordinates) and whose
+ weights are integers.
+
+ \ingroup modwin3d
+ */
+ /// \cond ALIAS
typedef w_window<dpoint3d, int> w_window3d_int;
+ /// \endcond
} // end of namespace mln
diff --git a/milena/mln/core/alias/window1d.hh b/milena/mln/core/alias/window1d.hh
index dd2d4fc..d9c312f 100644
--- a/milena/mln/core/alias/window1d.hh
+++ b/milena/mln/core/alias/window1d.hh
@@ -40,12 +40,57 @@
namespace mln
{
- /// \brief Type alias for a window with arbitrary shape, defined on
- /// the 1D square grid with integer coordinates.
- ///
- /// \ingroup modwin1d
- //
+ /*!
+ \class window1d
+ \headerfile <>
+
+ \brief Type alias for a window with arbitrary shape, defined on
+ the 1D square grid with integer coordinates.
+
+ Common 1D windows are predefined and can be used directly. See
+ section \ref modwin1d.
+
+ The list of dpoint1d included in a window1d is accessible from
+ std_vector() method or simply by iterating over this list:
+
+ \code
+ window1d win;
+ for (int i = 0; i < win.size(); ++i)
+ std::cout << win.dp(i) << std::endl;
+ \endcode
+
+ Iterating over the neighbors of a specific point is performed
+ thanks to q-iterators, as follows:
+
+ \code
+ point1d p(2);
+ window1d win;
+ mln_qiter(window1d) q(win, p);
+ for_all(q)
+ // q is a point1d, neighbor of p.
+ std::cout << q << std::endl;
+ \endcode
+
+ It also works while iterating the sites of an image domain:
+
+ \code
+ image1d<bool> ima(4);
+ window1d win;
+ mln_piter(image1d<bool>) p(ima.domain());
+ mln_qiter(window1d) q(win, p);
+ for_all(p)
+ for_all(q)
+ // q is a point1d, neighbor of the current p.
+ std::cout << q << std::endl;
+ \endcode
+
+ \sa dpoint1d, neighb1d
+
+ \ingroup modwin1d
+ */
+ /// \cond ALIAS
typedef window<mln::dpoint1d> window1d;
+ /// \endcond
/// \internal Conversion: bool[] -> window1d
diff --git a/milena/mln/core/alias/window2d.hh b/milena/mln/core/alias/window2d.hh
index aa56837..49c8e2a 100644
--- a/milena/mln/core/alias/window2d.hh
+++ b/milena/mln/core/alias/window2d.hh
@@ -40,12 +40,57 @@
namespace mln
{
- /// \brief Type alias for a window with arbitrary shape, defined on
- /// the 2D square grid with integer coordinates.
- ///
- /// \ingroup modwin2d
- //
+ /*!
+ \class window2d
+ \headerfile <>
+
+ \brief Type alias for a window with arbitrary shape, defined on
+ the 2D square grid with integer coordinates.
+
+ Common 2D windows are predefined and can be used directly:
+ win_c4p(), win_c8p(). See section \ref modwin2d.
+
+ The list of dpoint2d included in a window2d is accessible from
+ std_vector() method or simply by iterating over this list:
+
+ \code
+ window2d win = win_c4p();
+ for (int i = 0; i < win.size(); ++i)
+ std::cout << win.dp(i) << std::endl;
+ \endcode
+
+ Iterating over the neighbors of a specific point is performed
+ thanks to q-iterators, as follows:
+
+ \code
+ point2d p(2,2);
+ window2d win = win_c4p();
+ mln_qiter(window2d) q(win, p);
+ for_all(q)
+ // q is a point2d, neighbor of p.
+ std::cout << q << std::endl;
+ \endcode
+
+ It also works while iterating the sites of an image domain:
+
+ \code
+ image2d<bool> ima(4,4);
+ window2d win = win_c4p();
+ mln_piter(image2d<bool>) p(ima.domain());
+ mln_qiter(window2d) q(win, p);
+ for_all(p)
+ for_all(q)
+ // q is a point2d, neighbor of the current p.
+ std::cout << q << std::endl;
+ \endcode
+
+ \sa dpoint2d, neighb2d
+
+ \ingroup modwin2d
+ */
+ /// \cond ALIAS
typedef window<mln::dpoint2d> window2d;
+ /// \endcond
/// \brief 4-connectivity window on the 2D grid, including the
/// center.
diff --git a/milena/mln/core/alias/window3d.hh b/milena/mln/core/alias/window3d.hh
index 6a29c06..81ff2de 100644
--- a/milena/mln/core/alias/window3d.hh
+++ b/milena/mln/core/alias/window3d.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,12 +41,57 @@
namespace mln
{
- /// \brief Type alias for a window with arbitrary shape, defined on
- /// the 3D square grid with integer coordinates.
- ///
- /// \ingroup modwin3d
- //
+ /*!
+ \class window3d
+ \headerfile <>
+
+ \brief Type alias for a window with arbitrary shape, defined on
+ the 3D square grid with integer coordinates.
+
+ Common 3D windows are predefined and can be used directly:
+ win_c4p_3d(), win_c8p_3d(). See section \ref modwin3d.
+
+ The list of dpoint3d included in a window3d is accessible from
+ std_vector() method or simply by iterating over this list:
+
+ \code
+ window3d win = win_c4p_3d();
+ for (int i = 0; i < win.size(); ++i)
+ std::cout << win.dp(i) << std::endl;
+ \endcode
+
+ Iterating over the neighbors of a specific point is performed
+ thanks to q-iterators, as follows:
+
+ \code
+ point3d p(2,2,2);
+ window3d win = win_c4p_3d();
+ mln_qiter(window3d) q(win, p);
+ for_all(q)
+ // q is a point3d, neighbor of p.
+ std::cout << q << std::endl;
+ \endcode
+
+ It also works while iterating the sites of an image domain:
+
+ \code
+ image3d<bool> ima(4,4,4);
+ window3d win = win_c4p_3d();
+ mln_piter(image3d<bool>) p(ima.domain());
+ mln_qiter(window3d) q(win, p);
+ for_all(p)
+ for_all(q)
+ // q is a point3d, neighbor of the current p.
+ std::cout << q << std::endl;
+ \endcode
+
+ \sa dpoint3d, neighb3d
+
+ \ingroup modwin3d
+ */
+ /// \cond ALIAS
typedef window<mln::dpoint3d> window3d;
+ /// \endcond
/// \brief 4-connectivity window on the 3D grid, including the
/// center.
diff --git a/milena/mln/win/disk2d.hh b/milena/mln/win/disk2d.hh
index 94d7fda..1f3c2f9 100644
--- a/milena/mln/win/disk2d.hh
+++ b/milena/mln/win/disk2d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,12 +42,18 @@ namespace mln
namespace win
{
- /// \brief 2D disk window; precisely, ball-shaped window defined on the
- /// 2D square grid.
- ///
- /// \ingroup modwin2d
- //
+ /*!
+ \class disk2d
+ \headerfile <>
+
+ \brief 2D disk window; precisely, ball-shaped window defined on the
+ 2D square grid.
+
+ \ingroup modwin2d
+ */
+ /// \cond ALIAS
typedef ball<grid::square, def::coord> disk2d;
+ /// \endcond
} // end of namespace mln::win
diff --git a/milena/mln/win/hline2d.hh b/milena/mln/win/hline2d.hh
index a29f1ad..ddb79fc 100644
--- a/milena/mln/win/hline2d.hh
+++ b/milena/mln/win/hline2d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,7 +42,11 @@ namespace mln
namespace win
{
- /*! \brief Horizontal line window defined on the 2D square grid.
+ /*!
+ \class hline2d
+ \headerfile <>
+
+ \brief Horizontal line window defined on the 2D square grid.
An hline2d is centered and symmetric; so its height is 1 and
its width (length) is odd.
@@ -54,7 +59,9 @@ namespace mln
\ingroup modwin2d
*/
+ /// \cond ALIAS
typedef line<grid::square, 1, def::coord> hline2d;
+ /// \endcond
} // end of namespace mln::win
diff --git a/milena/mln/win/segment1d.hh b/milena/mln/win/segment1d.hh
index ac55ad1..6a3f109 100644
--- a/milena/mln/win/segment1d.hh
+++ b/milena/mln/win/segment1d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,7 +41,11 @@ namespace mln
namespace win
{
- /*! \brief Segment window defined on the 1D grid.
+ /*!
+ \class segment1d
+ \headerfile <>
+
+ \brief Segment window defined on the 1D grid.
An segment1d is centered and symmetric; so
its height (length) is odd.
@@ -53,7 +58,9 @@ namespace mln
\ingroup modwin1d
*/
+ /// \cond ALIAS
typedef line<grid::tick, 0, def::coord> segment1d;
+ /// \endcond
} // end of namespace mln::win
diff --git a/milena/mln/win/sline3d.hh b/milena/mln/win/sline3d.hh
index 2d7731f..5cd272c 100644
--- a/milena/mln/win/sline3d.hh
+++ b/milena/mln/win/sline3d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -41,7 +42,11 @@ namespace mln
namespace win
{
- /*! \brief Depth line window defined on the 3D cubic grid.
+ /*!
+ \class sline3d
+ \headerfile <>
+
+ \brief Depth line window defined on the 3D cubic grid.
An sline3d is centered and symmetric; so its height and its
width are 1 and its depth is odd.
@@ -65,7 +70,9 @@ namespace mln
\ingroup modwin3d
*/
+ /// \cond ALIAS
typedef line<grid::cube, 0, def::coord> sline3d;
+ /// \endcond
} // end of namespace mln::win
diff --git a/milena/mln/win/sphere3d.hh b/milena/mln/win/sphere3d.hh
index 600e686..e45e951 100644
--- a/milena/mln/win/sphere3d.hh
+++ b/milena/mln/win/sphere3d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,11 +41,18 @@ namespace mln
namespace win
{
- /// \brief 3D sphere window; precisely, ball-shaped window defined on the
- /// 3D cubic grid.
- ///
- /// \ingroup modwin3d
+ /*!
+ \class sphere3d
+ \headerfile <>
+
+ \brief 3D sphere window; precisely, ball-shaped window defined on the
+ 3D cubic grid.
+
+ \ingroup modwin3d
+ */
+ /// \cond ALIAS
typedef ball<grid::cube, def::coord> sphere3d;
+ /// \endcond
} // end of namespace mln::win
diff --git a/milena/mln/win/vline2d.hh b/milena/mln/win/vline2d.hh
index c971b2b..f0d2f1d 100644
--- a/milena/mln/win/vline2d.hh
+++ b/milena/mln/win/vline2d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,7 +41,11 @@ namespace mln
namespace win
{
- /*! \brief Vertical line window defined on the 2D square grid.
+ /*!
+ \class vline2d
+ \headerfile <>
+
+ \brief Vertical line window defined on the 2D square grid.
An vline2d is centered and symmetric; so its width is 1 and
its height (length) is odd.
@@ -55,7 +60,9 @@ namespace mln
\ingroup modwin2d
*/
+ /// \cond ALIAS
typedef line<grid::square, 0, def::coord> vline2d;
+ /// \endcond
} // end of namespace mln::win
--
1.7.2.5
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch unstable/scribo has been updated
discards 2aabb398fc8d0ee82135cff01fe56f3ccc58e48c (commit)
via 6323abc221199973f4ba5e85e8ca4f8def31a374 (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (2aabb398fc8d0ee82135cff01fe56f3ccc58e48c)
\
N -- N -- N (6323abc221199973f4ba5e85e8ca4f8def31a374)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
6323abc Fix binarization tests.
-----------------------------------------------------------------------
Summary of changes:
scribo/tests/Makefile.am | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch unstable/scribo has been updated
via 2aabb398fc8d0ee82135cff01fe56f3ccc58e48c (commit)
from 973a00494322c776a9dff16acce72f0f52480039 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
2aabb39 Fix binarization tests.
-----------------------------------------------------------------------
Summary of changes:
scribo/ChangeLog | 9 +++++++++
scribo/tests/Makefile.am | 4 ++++
scribo/tests/binarization/niblack.cc | 16 ++++++++--------
scribo/tests/binarization/wolf.cc | 16 ++++++++--------
4 files changed, 29 insertions(+), 16 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch unstable/scribo has been updated
discards 7d161702e834ef94f5b1b3f2b3cc88e0073bfeb9 (commit)
via 973a00494322c776a9dff16acce72f0f52480039 (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (7d161702e834ef94f5b1b3f2b3cc88e0073bfeb9)
\
N -- N -- N (973a00494322c776a9dff16acce72f0f52480039)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
973a004 mln/value/builtin/symbolics.hh: Add min() and max() for Boolean.
-----------------------------------------------------------------------
Summary of changes:
milena/mln/value/builtin/symbolics.hh | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform