* 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