
* 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@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@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