Olena-patches
Threads by month
- ----- 2025 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
April 2013
- 7 participants
- 363 discussions

08 Apr '13
---
scribo/ChangeLog | 4 +
...rs_vert_in_borders.hh => objects_in_borders.hh} | 83 +++++++++----------
2 files changed, 43 insertions(+), 44 deletions(-)
copy scribo/scribo/filter/{separators_vert_in_borders.hh => objects_in_borders.hh} (53%)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index ea6bc10..d1d0ebf 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,3 +1,7 @@
+2013-04-08 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * scribo/filter/objects_in_borders.hh: New.
+
2013-04-04 Guillaume Lazzara <z(a)lrde.epita.fr>
Fix binarization tests.
diff --git a/scribo/scribo/filter/separators_vert_in_borders.hh b/scribo/scribo/filter/objects_in_borders.hh
similarity index 53%
copy from scribo/scribo/filter/separators_vert_in_borders.hh
copy to scribo/scribo/filter/objects_in_borders.hh
index a836554..579c892 100644
--- a/scribo/scribo/filter/separators_vert_in_borders.hh
+++ b/scribo/scribo/filter/objects_in_borders.hh
@@ -1,5 +1,4 @@
-// Copyright (C) 2011, 2013 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2013 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -24,22 +23,20 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
-#ifndef SCRIBO_FILTER_SEPARATORS_VERT_IN_BORDERS_HH
-# define SCRIBO_FILTER_SEPARATORS_VERT_IN_BORDERS_HH
+#ifndef SCRIBO_FILTER_OBJECTS_IN_BORDERS_HH
+# define SCRIBO_FILTER_OBJECTS_IN_BORDERS_HH
/// \file
///
-/// \brief Invalidate vertical separators located close to the image
-/// borders.
-/// \todo Share same test canvas as text::merging.
+/// \brief Invalidate false positive separators.
+/// \todo Share same test canvas as text::merging.
# include <mln/core/concept/image.hh>
+# include <mln/geom/all.hh>
# include <scribo/core/component_set.hh>
-# include <scribo/core/document.hh>
# include <scribo/util/box_is_included.hh>
-
namespace scribo
{
@@ -49,20 +46,25 @@ namespace scribo
using namespace mln;
- /*! \brief Invalidate vertical separators located close to the image
+ /*! \brief Invalidate components located close to the image
borders.
- \param[in,out] doc A document structure.
+ \param[in,out] components A component set.
+ \param[in] vratio Ratio to be used for evaluating the inner
+ border size in which vertical separators
+ will be invalidated.
+ \param[in] hratio Ratio to be used for evaluating the inner
+ border size in which horizontal separators
+ will be invalidated.
- Warning: it does not remove separators from separator
- image. It only invalidate separator components in their
- respective component_set.
+ \warning It only invalidates components in the given
+ component_set.
\verbatim
-----------
|_!____!__|
- | ! ! <--------- Separators located in this area are
+ | ! ! <--------- Components located in this area are
| ! ! | invalidated.
| ! ! |
|_!____!__|
@@ -75,22 +77,24 @@ namespace scribo
*/
template <typename L>
void
- separators_vert_in_borders(document<L>& doc);
+ objects_in_borders(component_set<L>& components, float vratio, float hratio);
# ifndef MLN_INCLUDE_ONLY
template <typename L>
void
- separators_vert_in_borders(document<L>& doc)
+ objects_in_borders(component_set<L>& components, float vratio, float hratio)
{
- mln_trace("scribo::filter::separators_vert_in_borders");
+ mln_trace("scribo::filter::objects_in_borders");
- mln_precondition(doc.is_valid());
+ mln_precondition(components.is_valid());
- const mln::image2d<mln::value::rgb8>& ima = doc.image();
+ const L& ima = components.labeled_image();
- float border_size = std::min(43., 0.05 * ima.domain().width());
+ unsigned
+ hborder_size = hratio * std::min(ima.domain().width(), ima.domain().height()),
+ vborder_size = vratio * std::min(ima.domain().width(), ima.domain().height());
/// pt
/// ptl X------X---
@@ -105,11 +109,11 @@ namespace scribo
///
point2d
ptl = ima.domain().pmin(),
- pt(geom::min_row(ima), geom::max_col(ima) - border_size),
- ptr(border_size, geom::max_col(ima)),
+ pt(geom::min_row(ima), geom::max_col(ima) - vborder_size),
+ ptr(hborder_size, geom::max_col(ima)),
pbr = ima.domain().pmax(),
- pb(geom::max_row(ima), border_size),
- pbl(geom::max_row(ima) - border_size, geom::min_col(ima));
+ pb(geom::max_row(ima), vborder_size),
+ pbl(geom::max_row(ima) - hborder_size, geom::min_col(ima));
box2d
bt(ptl, ptr),
@@ -117,24 +121,15 @@ namespace scribo
bb(pbl, pbr),
bl(ptl, pb);
- // Vertical separators
- if (doc.has_vline_seps())
- {
- component_set<L> vline = doc.vline_seps_comps().duplicate();
- for_all_comps(c, vline)
- if (vline(c).is_valid())
- if (util::box_is_included(vline(c).bbox(), bt)
- || util::box_is_included(vline(c).bbox(), br)
- || util::box_is_included(vline(c).bbox(), bb)
- || util::box_is_included(vline(c).bbox(), bl))
- {
- vline(c).update_tag(component::Ignored);
- }
-
- // FIXME: warning this call may produce inconsistent data
- // Ignored components are still in the separator image...
- doc.set_vline_separators(doc.vline_seps(), vline);
- }
+ for_all_comps(c, components)
+ if (components(c).is_valid())
+ if (util::box_is_included(components(c).bbox(), bt)
+ || util::box_is_included(components(c).bbox(), br)
+ || util::box_is_included(components(c).bbox(), bb)
+ || util::box_is_included(components(c).bbox(), bl))
+ {
+ components(c).update_tag(component::Ignored);
+ }
}
@@ -144,4 +139,4 @@ namespace scribo
} // end of namespace scribo
-#endif // ! SCRIBO_FILTER_SEPARATORS_VERT_IN_BORDERS_HH
+#endif // ! SCRIBO_FILTER_OBJECTS_IN_BORDERS_HH
--
1.7.2.5
1
0
* apps/morphers/image2d-skel.hh
* doc/DoxygenLayout.xml: Fix a page reference.
* doc/examples.dox: New.
* mln/canvas/browsing/backdiagonal2d.hh: Switch to \code.
* mln/convert/to_image.hh: Remove useless inline keyword.
* mln/core/internal/check/image_fastest.hh,
* mln/core/internal/coord_impl.hh,
* mln/core/internal/set_of.hh,
* mln/data/compute_in_window.hh,
* mln/debug/draw_graph.hh,
* mln/io/pdf/load.hh: Fix documentation.
* mln/linear/log.hh: New documentation.
---
milena/ChangeLog | 23 ++++++
milena/apps/morphers/image2d-skel.hh | 8 +--
milena/doc/DoxygenLayout.xml | 2 +-
milena/doc/examples.dox | 7 ++
milena/mln/canvas/browsing/backdiagonal2d.hh | 7 +-
milena/mln/convert/to_image.hh | 10 +--
milena/mln/core/internal/check/image_fastest.hh | 26 +++----
milena/mln/core/internal/coord_impl.hh | 40 ++++++++---
milena/mln/core/internal/set_of.hh | 2 +-
milena/mln/data/compute_in_window.hh | 14 +++-
milena/mln/debug/draw_graph.hh | 14 ++--
milena/mln/io/pdf/load.hh | 85 +++++++++++++----------
milena/mln/linear/log.hh | 28 +++++++-
13 files changed, 177 insertions(+), 89 deletions(-)
create mode 100644 milena/doc/examples.dox
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 3aabd3b..3e0e5c3 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,28 @@
2013-04-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Kill Doxygen warnings.
+
+ * apps/morphers/image2d-skel.hh
+
+ * doc/DoxygenLayout.xml: Fix a page reference.
+
+ * doc/examples.dox: New.
+
+ * mln/canvas/browsing/backdiagonal2d.hh: Switch to \code.
+
+ * mln/convert/to_image.hh: Remove useless inline keyword.
+
+ * mln/core/internal/check/image_fastest.hh,
+ * mln/core/internal/coord_impl.hh,
+ * mln/core/internal/set_of.hh,
+ * mln/data/compute_in_window.hh,
+ * mln/debug/draw_graph.hh,
+ * mln/io/pdf/load.hh: Fix documentation.
+
+ * mln/linear/log.hh: New documentation.
+
+2013-04-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Cleanup concept documentation.
* doc/mln/convert.dox,
diff --git a/milena/apps/morphers/image2d-skel.hh b/milena/apps/morphers/image2d-skel.hh
index 46dc3ff..cc332bc 100644
--- a/milena/apps/morphers/image2d-skel.hh
+++ b/milena/apps/morphers/image2d-skel.hh
@@ -56,7 +56,6 @@ public:
/// Build a functor.
///
/// \param nbh_fg The foreground neighborhood.
- /// \param nbh_bg The background neighborhood.
is_simple_2d(const mln::Neighborhood<N>& nbh_fg)
: super(mln::exact(nbh_fg)),
ima_(0)
@@ -66,8 +65,7 @@ public:
/// Build a functor, and assign an image to it.
///
/// \param nbh_fg The foreground neighborhood.
- /// \param nbh_bg The background neighborhood.
- /// \apram ima The image.
+ /// \param ima The image.
is_simple_2d(const mln::Neighborhood<N>& nbh_fg,
const mln::Image<I>& ima)
: super(mln::exact(nbh_fg)),
@@ -106,8 +104,8 @@ struct is_not_end_point : public mln::Function_v2b< is_not_end_point<I, N> >
{
/// Build a functor, and assign an image to it.
///
- /// \param nbh_fg The foreground neighborhood.
- /// \apram ima The image.
+ /// \param nbh The foreground neighborhood.
+ /// \param ima The image.
is_not_end_point(const mln::Neighborhood<N>& nbh,
const mln::Image<I>& ima)
: nbh_(mln::exact(nbh)),
diff --git a/milena/doc/DoxygenLayout.xml b/milena/doc/DoxygenLayout.xml
index 1aeee52..ae704ea 100644
--- a/milena/doc/DoxygenLayout.xml
+++ b/milena/doc/DoxygenLayout.xml
@@ -22,7 +22,7 @@
</tab>
<tab type="examples" visible="yes" title="Examples" intro=""/>
<tab type="user" url="@ref examples" title="Examples"/>
- <tab type="user" url="@ref demos" title="Demos"/>
+ <tab type="user" url="http://caroussel.lrde.epita.fr/olena/demos" title="Demos"/>
<tab type="user" url="http://www.lrde.epita.fr/cgi-bin/twiki/view/Olena/Publications" title="Publications"/>
</navindex>
diff --git a/milena/doc/examples.dox b/milena/doc/examples.dox
new file mode 100644
index 0000000..ef6845e
--- /dev/null
+++ b/milena/doc/examples.dox
@@ -0,0 +1,7 @@
+/*! \page examples Examples
+
+\section examplerag Region Adjacency Graph
+
+\li \link region_adjacency_graph.cc
+
+*/
diff --git a/milena/mln/canvas/browsing/backdiagonal2d.hh b/milena/mln/canvas/browsing/backdiagonal2d.hh
index 0961bdc..274fa01 100644
--- a/milena/mln/canvas/browsing/backdiagonal2d.hh
+++ b/milena/mln/canvas/browsing/backdiagonal2d.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 EPITA Research and
-// Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 EPITA
+// Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -58,6 +58,7 @@ namespace mln
* - final(): Will be called at the end.
*
* F shall features : \n
+ \code
- As types:
+ I;
- As attributes:
@@ -69,7 +70,7 @@ namespace mln
+ void init();
+ void next();
+ void final();
- \endverbatim
+ \endcode
*
* Example : \n
*
diff --git a/milena/mln/convert/to_image.hh b/milena/mln/convert/to_image.hh
index 6f8bcda..71fde90 100644
--- a/milena/mln/convert/to_image.hh
+++ b/milena/mln/convert/to_image.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.
//
@@ -85,14 +86,13 @@ namespace mln
# ifndef MLN_INCLUDE_ONLY
template <typename S>
- inline
mln_image_from_grid(mln_site(S)::grid, bool)
to_image(const Site_Set<S>& pset_, unsigned border)
{
const S& pset = exact(pset_);
mln_image_from_grid(mln_site(S)::grid, bool) ima;
ima.init_(geom::bbox(pset).to_larger(border));
- data::fill(ima, false);
+ mln::data::fill(ima, false);
mln_piter(S) p(pset);
for_all(p)
ima(p) = true;
@@ -100,7 +100,6 @@ namespace mln
}
template <typename W>
- inline
mln_image_from_grid(mln_site(W)::grid, bool)
to_image(const Window<W>& win)
{
@@ -112,7 +111,6 @@ namespace mln
}
template <typename W>
- inline
mln_image_from_grid(mln_site(W)::grid, mln_weight(W))
to_image(const Weighted_Window<W>& w_win)
{
@@ -124,7 +122,6 @@ namespace mln
}
template <typename N>
- inline
mln_image_from_grid(mln_site(N)::grid, bool)
to_image(const Neighborhood<N>& nbh)
{
@@ -133,7 +130,6 @@ namespace mln
}
template <typename T>
- inline
image1d<unsigned>
to_image(const histo::array<T>& h)
{
diff --git a/milena/mln/core/internal/check/image_fastest.hh b/milena/mln/core/internal/check/image_fastest.hh
index debece7..13665a9 100644
--- a/milena/mln/core/internal/check/image_fastest.hh
+++ b/milena/mln/core/internal/check/image_fastest.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,23 +50,21 @@ namespace mln
namespace check
{
- /*!
- \internal
- \brief Statically checks the interface of fastest images.
- */
+ /// \brief Statically checks the interface of fastest images.
template < typename E, typename B = metal::true_ >
struct image_fastest_
{
- /// \brief Give the offset of the site \p p.
- ///
- /// \param[in] p A site.
- ///
- /// \warning This method is final.
- ///
- /// \pre The image has to be initialized and to own the point \p p.
- /// \post p == point_at_offset(result)
- ///
+ /*!
+ \brief Give the offset of the site \p p.
+
+ \param[in] p A site.
+
+ \warning This method is final.
+
+ \pre The image has to be initialized and to own the point \p p.
+ \post p == point_at_offset(result)
+ */
template <typename P>
unsigned
offset_of_point(const P& p) const;
diff --git a/milena/mln/core/internal/coord_impl.hh b/milena/mln/core/internal/coord_impl.hh
index e3b8de3..069ecd2 100644
--- a/milena/mln/core/internal/coord_impl.hh
+++ b/milena/mln/core/internal/coord_impl.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,70 +42,91 @@ namespace mln
{
- /// coord_impl
+ // coord_impl
- /* Implementation class to equip generalized points with
- * explicit access to their coordinates.
- *
- */
+ /// \brief Implementation class to equip generalized points with
+ /// explicit access to their coordinates.
template <unsigned n, typename C, typename E>
struct coord_impl_;
+ /// \brief Specialization for 1D points.
template <typename C, typename E>
struct coord_impl_<1, C, E>
{
+ /// Index.
const C& ind() const;
- private:
- typedef coord_impl_<1, C, E> self_;
-
};
+ /// \brief Specialization for 2D points.
template <typename C, typename E>
struct coord_impl_<2, C, E>
{
+ /// Row index.
const C&row() const;
+ /// Column index.
const C&col() const;
};
+ /// \brief Specialization for 3D points.
template <typename C, typename E>
struct coord_impl_<3, C, E>
{
+ /// Slice index.
const C&sli() const;
+ /// Row index.
const C&row() const;
+ /// Col index.
const C&col() const;
};
// mutable_coord_impl
+ /// \brief Implementation class to equip generalized points with
+ /// explicit access to their coordinates.
template <unsigned n, typename C, typename E>
struct mutable_coord_impl_;
+ /// \brief Specialization for 1D points.
template <typename C, typename E>
struct mutable_coord_impl_<1, C, E>
{
+ /// Index.
const C& ind() const;
+ /// Index.
C& ind();
};
+ /// \brief Specialization for 2D points.
template <typename C, typename E>
struct mutable_coord_impl_<2, C, E>
{
+ /// Row index.
const C& row() const;
+ /// Row index.
C& row();
+ /// Column index.
const C& col() const;
+ /// Column index.
C& col();
};
+ /// \brief Specialization for 3D points.
template <typename C, typename E>
struct mutable_coord_impl_<3, C, E>
{
+ /// Slice index.
const C& sli() const;
+ /// Slice index.
C& sli();
+ /// Row index.
const C& row() const;
+ /// Row index.
C& row();
+ /// Column index.
const C& col() const;
+ /// Column index.
C& col();
};
diff --git a/milena/mln/core/internal/set_of.hh b/milena/mln/core/internal/set_of.hh
index f4d4bed..cdc599c 100644
--- a/milena/mln/core/internal/set_of.hh
+++ b/milena/mln/core/internal/set_of.hh
@@ -168,7 +168,7 @@ namespace mln
};
- /*! Print a set \p s into the output stream \p
+ /* Print a set \p s into the output stream \p
* ostr.
*
* \param[in,out] ostr An output stream.
diff --git a/milena/mln/data/compute_in_window.hh b/milena/mln/data/compute_in_window.hh
index 0ab1c84..0ddedb4 100644
--- a/milena/mln/data/compute_in_window.hh
+++ b/milena/mln/data/compute_in_window.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2011, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2011, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -49,6 +49,12 @@ namespace mln
/*! \brief Compute an accumulator for each image pixel values
* using neighbor pixel values.
*
+ * \param[in] a An accumulator.
+ * \param[in] input The input image.
+ * \param[in] win A window.
+ * \return An image with the accumulator results as value for each
+ * site.
+ *
* \ingroup mlnaccucompute
*/
template <typename A, typename I, typename W>
@@ -60,7 +66,9 @@ namespace mln
*
* \param[in] a A meta-accumulator.
* \param[in] input The input image.
- * \return The accumulator result.
+ * \param[in] win A window.
+ * \return An image with the accumulator results as value for each
+ * site.
*
* \ingroup mlnaccucompute
*/
diff --git a/milena/mln/debug/draw_graph.hh b/milena/mln/debug/draw_graph.hh
index abb8401..21cfcb4 100644
--- a/milena/mln/debug/draw_graph.hh
+++ b/milena/mln/debug/draw_graph.hh
@@ -71,12 +71,14 @@ namespace mln
/*! \brief Draw an image \p ima from a mln::p_vertices \p pv.
Colors for vertices are defined through \p vcolor_f_. Colors
- for edges are defined though \p ecolor_f_.
+ for edges are defined though \p ecolor_f_. Vertices are drawn
+ with squares of width \p vwidth.
\param[in,out] ima The image to be drawn.
\param[in] pv The p_vertices which contains vertices positions.
- \param[in] vcolor_f_ A function returning a color value for vertices.
- \param[in] ecolor_f_ A function returning a color value for edges.
+ \param[in] vcolor_f A function returning a color value for vertices.
+ \param[in] ecolor_f A function returning a color value for edges.
+ \param[in] vwidth Width of the squares representing the vertices.
\ingroup mlndebug
*/
@@ -104,8 +106,8 @@ namespace mln
\param[in,out] ima The image to be drawn.
\param[in] pv The p_vertices which contains vertices positions.
- \param[in] vcolor_f_ A function returning a color value for vertices.
- \param[in] ecolor_f_ A function returning a color value for edges.
+ \param[in] vcolor_f A function returning a color value for vertices.
+ \param[in] ecolor_f A function returning a color value for edges.
\ingroup mlndebug
*/
@@ -114,7 +116,7 @@ namespace mln
void
draw_graph(Image<I>& ima,
const p_vertices<util::line_graph<G>, F>& pv,
- const Function<V>& vcolor_f_, const Function<E>& ecolor_f_);
+ const Function<V>& vcolor_f, const Function<E>& ecolor_f);
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/io/pdf/load.hh b/milena/mln/io/pdf/load.hh
index 63f5376..59b0736 100644
--- a/milena/mln/io/pdf/load.hh
+++ b/milena/mln/io/pdf/load.hh
@@ -45,80 +45,93 @@ namespace mln
namespace pdf
{
- /**! Load a multiple page PDF document using libpoppler.
+ /**! \brief Load a multiple page PDF document using libpoppler.
- \param[out] arr An array of images.
- \param[in] filename The name of the input file.
- \param[in] dpi Document resolution.
+ \param[out] arr An array of images.
+ \param[in] filename The name of the input file.
+ \param[in] dpi Document resolution.
- Page numbering starts from 0.
+ Page numbering starts from 0.
*/
template <typename I>
void load(util::array<I>& arr, const std::string& filename,
float dpi);
- /**! Load a range of pages from a PDF document using libpoppler.
+ /**! \overload
- \param[out] arr An array of images.
- \param[in] filename The name of the input file.
- \param[in] first_page First page number.
- \param[in] last_page Last page number.
- \param[in] dpi Document resolution.
+ \brief Load a range of pages from a PDF document using
+ libpoppler.
- Page numbering starts from 0.
+ \param[out] arr An array of images.
+ \param[in] filename The name of the input file.
+ \param[in] first_page First page number.
+ \param[in] last_page Last page number.
+ \param[in] dpi Document resolution.
+
+ Page numbering starts from 0.
*/
template <typename I>
void load(util::array<I>& arr, const std::string& filename,
int first_page, int last_page, float dpi);
- /**! Load specific pages from a PDF document using libpoppler.
+ /**! \overload
+
+ \brief Load specific pages from a PDF document using
+ libpoppler.
- \param[out] arr An array of images.
- \param[in] filename The name of the input file.
- \param[in] pages An array of pages numbers.
- \param[in] dpi Document resolution.
+ \param[out] arr An array of images.
+ \param[in] filename The name of the input file.
+ \param[in] pages An array of pages numbers.
+ \param[in] dpi Document resolution.
- Page numbering starts from 0.
+ Page numbering starts from 0.
*/
template <typename I>
void load(util::array<I>& arr, const std::string& filename,
util::array<int> pages, float dpi);
- /**! Load a specific page from a PDF document using libpoppler.
+ /**! \overload
+
+ \brief Load a specific page from a PDF document using
+ libpoppler.
- \param[out] ima An image.
- \param[in] filename The name of the input file.
- \param[in] page The page number.
- \param[in] dpi Document resolution.
+ \param[out] ima An image.
+ \param[in] filename The name of the input file.
+ \param[in] page The page number.
+ \param[in] dpi Document resolution.
- Page numbering starts from 0.
+ Page numbering starts from 0.
*/
template <typename I>
void load(Image<I>& ima, const std::string& filename,
int page, float dpi);
- /**! \overload Load a multiple page PDF document using libpoppler.
+ /**! \overload
- \param[out] arr An array of images.
- \param[in] filename The name of the input file.
+ \brief Load a multiple page PDF document using libpoppler.
- DPI resolution is set to 300.
- Page numbering starts from 0.
+ \param[out] arr An array of images.
+ \param[in] filename The name of the input file.
+
+ DPI resolution is set to 300.
+ Page numbering starts from 0.
*/
template <typename I>
void load(util::array<I>& arr, const std::string& filename);
- /**! \overload Load specific pages from a PDF document using
- libpoppler.
+ /**! \overload
+
+ \brief Load specific pages from a PDF document using
+ libpoppler.
- \param[out] arr An array of images.
- \param[in] filename The name of the input file.
- \param[in] pages An array of pages numbers.
+ \param[out] arr An array of images.
+ \param[in] filename The name of the input file.
+ \param[in] pages An array of pages numbers.
- DPI resolution is set to 300.
- Page numbering starts from 0.
+ DPI resolution is set to 300.
+ Page numbering starts from 0.
*/
template <typename I>
void load(util::array<I>& arr, const std::string& filename,
diff --git a/milena/mln/linear/log.hh b/milena/mln/linear/log.hh
index 2e5e950..865f571 100644
--- a/milena/mln/linear/log.hh
+++ b/milena/mln/linear/log.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,25 +45,45 @@ namespace mln
{
/*! \brief Laplacian of Gaussian.
+
+ LoG_5x5 (Cf. Sonka et al., pages 85-86).
+ This is also a "mexican hat".
+
\ingroup mlnlinear
*/
- /// \{
template <typename I>
mln_ch_convolve(I, int)
LoG_5x5(const Image<I>& input);
+ /*! \brief Laplacian of Gaussian.
+
+ LoG 7x7 (Cf. Russ, p. 250).
+
+ \ingroup mlnlinear
+ */
template <typename I>
mln_ch_convolve(I, int)
LoG_7x7(const Image<I>& input);
+ /*! \brief Laplacian of Gaussian.
+
+ LoG 13x13 (Cf. Russ, p. 250).
+
+ \ingroup mlnlinear
+ */
template <typename I>
mln_ch_convolve(I, int)
LoG_13x13(const Image<I>& input);
+ /*! \brief Laplacian of Gaussian.
+
+ LoG 17x17 (Cf. Sonka et al., pages 85-86).
+
+ \ingroup mlnlinear
+ */
template <typename I>
mln_ch_convolve(I, int)
LoG_17x17(const Image<I>& input);
- /// \}
# ifndef MLN_INCLUDE_ONLY
--
1.7.2.5
1
0
* 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
1
0
* 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
1
0
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
1
0
* tests/Makefile.am: Add more files in EXTRA_DIST.
* tests/binarization/niblack.cc,
* tests/binarization/wolf.cc: Load reference file instead of saving it.
---
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(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index ebf34aa..ea6bc10 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,3 +1,12 @@
+2013-04-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix binarization tests.
+
+ * tests/Makefile.am: Add more files in EXTRA_DIST.
+ * tests/binarization/niblack.cc,
+ * tests/binarization/wolf.cc: Load reference file instead of
+ saving it.
+
2013-04-02 Guillaume Lazzara <z(a)lrde.epita.fr>
Fix component_set comparison.
diff --git a/scribo/tests/Makefile.am b/scribo/tests/Makefile.am
index 4d6ce66..819046b 100644
--- a/scribo/tests/Makefile.am
+++ b/scribo/tests/Makefile.am
@@ -23,6 +23,9 @@ EXTRA_DIST = \
img/alignment_3.pbm \
img/alignment_4.pbm \
img/comp_on_borders.pbm \
+ img/lena_weven_hodd.pgm \
+ img/lena_wodd_heven.pgm \
+ img/lena_wodd_hodd.pgm \
img/lines_discontinued.pbm \
img/multi_scale.png \
img/phillip.pbm \
@@ -39,6 +42,7 @@ EXTRA_DIST = \
img/the_valleys.pbm \
img/wildly.pbm
+
SUBDIRS = \
binarization \
convert \
diff --git a/scribo/tests/binarization/niblack.cc b/scribo/tests/binarization/niblack.cc
index 673a93e..7f6891f 100644
--- a/scribo/tests/binarization/niblack.cc
+++ b/scribo/tests/binarization/niblack.cc
@@ -47,9 +47,9 @@ int main()
image2d<bool> bin = scribo::binarization::niblack(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/niblack.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/niblack.ref.pbm");
- //mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// even height and odd width
@@ -60,9 +60,9 @@ int main()
image2d<bool> bin = scribo::binarization::niblack(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/niblack_wodd_heven.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/niblack_wodd_heven.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// odd height and even width
@@ -73,9 +73,9 @@ int main()
image2d<bool> bin = scribo::binarization::niblack(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/niblack_weven_hodd.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/niblack_weven_hodd.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// odd height and width
@@ -86,8 +86,8 @@ int main()
image2d<bool> bin = scribo::binarization::niblack(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/niblack_wodd_hodd.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/niblack_wodd_hodd.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
}
diff --git a/scribo/tests/binarization/wolf.cc b/scribo/tests/binarization/wolf.cc
index 0c4b4e3..27d7cd2 100644
--- a/scribo/tests/binarization/wolf.cc
+++ b/scribo/tests/binarization/wolf.cc
@@ -47,9 +47,9 @@ int main()
image2d<bool> bin = scribo::binarization::wolf(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/wolf.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/wolf.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// even height and odd width
@@ -60,9 +60,9 @@ int main()
image2d<bool> bin = scribo::binarization::wolf(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/wolf_wodd_heven.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/wolf_wodd_heven.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// odd height and even width
@@ -73,9 +73,9 @@ int main()
image2d<bool> bin = scribo::binarization::wolf(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/wolf_weven_hodd.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/wolf_weven_hodd.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// odd height and width
@@ -86,8 +86,8 @@ int main()
image2d<bool> bin = scribo::binarization::wolf(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/wolf_wodd_hodd.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/wolf_wodd_hodd.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
}
--
1.7.2.5
1
0
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
1
0
* tests/Makefile.am: Add more files in EXTRA_DIST.
* tests/binarization/niblack.cc,
* tests/binarization/wolf.cc: Load reference file instead of saving it.
---
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(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index ebf34aa..ea6bc10 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,3 +1,12 @@
+2013-04-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix binarization tests.
+
+ * tests/Makefile.am: Add more files in EXTRA_DIST.
+ * tests/binarization/niblack.cc,
+ * tests/binarization/wolf.cc: Load reference file instead of
+ saving it.
+
2013-04-02 Guillaume Lazzara <z(a)lrde.epita.fr>
Fix component_set comparison.
diff --git a/scribo/tests/Makefile.am b/scribo/tests/Makefile.am
index 4d6ce66..8c05d3e 100644
--- a/scribo/tests/Makefile.am
+++ b/scribo/tests/Makefile.am
@@ -23,6 +23,9 @@ EXTRA_DIST = \
img/alignment_3.pbm \
img/alignment_4.pbm \
img/comp_on_borders.pbm \
+ lena_weven_hodd.pgm \
+ lena_wodd_heven.pgm \
+ lena_wodd_hodd.pgm \
img/lines_discontinued.pbm \
img/multi_scale.png \
img/phillip.pbm \
@@ -39,6 +42,7 @@ EXTRA_DIST = \
img/the_valleys.pbm \
img/wildly.pbm
+
SUBDIRS = \
binarization \
convert \
diff --git a/scribo/tests/binarization/niblack.cc b/scribo/tests/binarization/niblack.cc
index 673a93e..7f6891f 100644
--- a/scribo/tests/binarization/niblack.cc
+++ b/scribo/tests/binarization/niblack.cc
@@ -47,9 +47,9 @@ int main()
image2d<bool> bin = scribo::binarization::niblack(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/niblack.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/niblack.ref.pbm");
- //mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// even height and odd width
@@ -60,9 +60,9 @@ int main()
image2d<bool> bin = scribo::binarization::niblack(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/niblack_wodd_heven.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/niblack_wodd_heven.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// odd height and even width
@@ -73,9 +73,9 @@ int main()
image2d<bool> bin = scribo::binarization::niblack(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/niblack_weven_hodd.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/niblack_weven_hodd.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// odd height and width
@@ -86,8 +86,8 @@ int main()
image2d<bool> bin = scribo::binarization::niblack(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/niblack_wodd_hodd.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/niblack_wodd_hodd.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
}
diff --git a/scribo/tests/binarization/wolf.cc b/scribo/tests/binarization/wolf.cc
index 0c4b4e3..27d7cd2 100644
--- a/scribo/tests/binarization/wolf.cc
+++ b/scribo/tests/binarization/wolf.cc
@@ -47,9 +47,9 @@ int main()
image2d<bool> bin = scribo::binarization::wolf(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/wolf.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/wolf.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// even height and odd width
@@ -60,9 +60,9 @@ int main()
image2d<bool> bin = scribo::binarization::wolf(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/wolf_wodd_heven.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/wolf_wodd_heven.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// odd height and even width
@@ -73,9 +73,9 @@ int main()
image2d<bool> bin = scribo::binarization::wolf(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/wolf_weven_hodd.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/wolf_weven_hodd.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
// odd height and width
@@ -86,8 +86,8 @@ int main()
image2d<bool> bin = scribo::binarization::wolf(input, 101);
image2d<bool> ref;
- io::pbm::save(bin, SCRIBO_TESTS_DIR "binarization/wolf_wodd_hodd.ref.pbm");
+ io::pbm::load(ref, SCRIBO_TESTS_DIR "binarization/wolf_wodd_hodd.ref.pbm");
-// mln_assertion(bin == ref);
+ mln_assertion(bin == ref);
}
}
--
1.7.2.5
1
0
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
1
0

olena-2.0-455-g973a004 mln/value/builtin/symbolics.hh: Add min() and max() for Boolean.
by Guillaume Lazzara 03 Apr '13
by Guillaume Lazzara 03 Apr '13
03 Apr '13
---
milena/ChangeLog | 4 ++++
milena/mln/value/builtin/symbolics.hh | 6 +++++-
2 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index a7bb97c..89ce238 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,7 @@
+2013-04-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/value/builtin/symbolics.hh: Add min() and max() for Boolean.
+
2013-04-02 Guillaume Lazzara <z(a)lrde.epita.fr>
* mln/io/svg/simple_svg_1.0.0.hh: Remove.
diff --git a/milena/mln/value/builtin/symbolics.hh b/milena/mln/value/builtin/symbolics.hh
index fd266ad..5bdef80 100644
--- a/milena/mln/value/builtin/symbolics.hh
+++ b/milena/mln/value/builtin/symbolics.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.
//
@@ -63,6 +64,9 @@ namespace mln
};
typedef value::quant::low quant;
+ static int min() { return 0; }
+ static int max() { return 1; }
+
static const char* name() { return "bool"; }
};
--
1.7.2.5
1
0