olena-2.0-458-g13dc186 Cleanup concept documentation.

* doc/mln/convert.dox, * doc/mln/core/concept/concept.dox, * mln/core/concept/accumulator.hh, * mln/core/concept/box.hh, * mln/core/concept/browsing.hh, * mln/core/concept/delta_point_site.hh, * mln/core/concept/dpoint.hh, * mln/core/concept/function.hh, * mln/core/concept/gdpoint.hh, * mln/core/concept/generalized_pixel.hh, * mln/core/concept/gpoint.hh, * mln/core/concept/graph.hh, * mln/core/concept/image.hh, * mln/core/concept/iterator.hh, * mln/core/concept/literal.hh, * mln/core/concept/mesh.hh, * mln/core/concept/meta_accumulator.hh, * mln/core/concept/meta_function.hh, * mln/core/concept/neighborhood.hh, * mln/core/concept/object.hh, * mln/core/concept/pixel_iterator.hh, * mln/core/concept/point.hh, * mln/core/concept/point_site.hh, * mln/core/concept/proxy.hh, * mln/core/concept/pseudo_site.hh, * mln/core/concept/regular_grid.hh, * mln/core/concept/site.hh, * mln/core/concept/site_iterator.hh, * mln/core/concept/site_proxy.hh, * mln/core/concept/site_set.hh, * mln/core/concept/value.hh, * mln/core/concept/value_iterator.hh, * mln/core/concept/value_set.hh, * mln/core/concept/weighted_window.hh, * mln/core/concept/window.hh: Here. --- milena/ChangeLog | 40 +++++++++++++++++++ milena/doc/mln/convert.dox | 13 ++++++ milena/doc/mln/core/concept/concept.dox | 6 +++ milena/mln/core/concept/accumulator.hh | 55 ++++++++++++++++--------- milena/mln/core/concept/box.hh | 15 +++---- milena/mln/core/concept/browsing.hh | 14 ++++--- milena/mln/core/concept/delta_point_site.hh | 15 +++---- milena/mln/core/concept/dpoint.hh | 10 ++-- milena/mln/core/concept/function.hh | 33 ++++++++++----- milena/mln/core/concept/gdpoint.hh | 23 +++++++---- milena/mln/core/concept/generalized_pixel.hh | 25 ++++++------ milena/mln/core/concept/gpoint.hh | 26 +++++++----- milena/mln/core/concept/graph.hh | 17 +++++--- milena/mln/core/concept/image.hh | 24 +++++++---- milena/mln/core/concept/iterator.hh | 13 +++--- milena/mln/core/concept/literal.hh | 14 ++++--- milena/mln/core/concept/mesh.hh | 11 +++-- milena/mln/core/concept/meta_accumulator.hh | 16 ++++--- milena/mln/core/concept/meta_function.hh | 20 ++++++--- milena/mln/core/concept/neighborhood.hh | 27 +++++++------ milena/mln/core/concept/object.hh | 15 +++++-- milena/mln/core/concept/pixel_iterator.hh | 19 +++++---- milena/mln/core/concept/point.hh | 22 +++++++---- milena/mln/core/concept/point_site.hh | 53 +++++++++++++----------- milena/mln/core/concept/proxy.hh | 19 ++++++--- milena/mln/core/concept/pseudo_site.hh | 21 +++++----- milena/mln/core/concept/regular_grid.hh | 8 +++- milena/mln/core/concept/site.hh | 13 +++--- milena/mln/core/concept/site_iterator.hh | 22 +++++----- milena/mln/core/concept/site_proxy.hh | 23 ++++++----- milena/mln/core/concept/site_set.hh | 21 +++++++--- milena/mln/core/concept/value.hh | 17 +++++--- milena/mln/core/concept/value_iterator.hh | 20 +++++----- milena/mln/core/concept/value_set.hh | 19 +++++---- milena/mln/core/concept/weighted_window.hh | 21 +++++----- milena/mln/core/concept/window.hh | 28 ++++++++++--- 36 files changed, 467 insertions(+), 291 deletions(-) create mode 100644 milena/doc/mln/convert.dox create mode 100644 milena/doc/mln/core/concept/concept.dox diff --git a/milena/ChangeLog b/milena/ChangeLog index 132f715..3aabd3b 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,45 @@ 2013-04-04 Guillaume Lazzara <z@lrde.epita.fr> + Cleanup concept documentation. + + * doc/mln/convert.dox, + * doc/mln/core/concept/concept.dox, + * mln/core/concept/accumulator.hh, + * mln/core/concept/box.hh, + * mln/core/concept/browsing.hh, + * mln/core/concept/delta_point_site.hh, + * mln/core/concept/dpoint.hh, + * mln/core/concept/function.hh, + * mln/core/concept/gdpoint.hh, + * mln/core/concept/generalized_pixel.hh, + * mln/core/concept/gpoint.hh, + * mln/core/concept/graph.hh, + * mln/core/concept/image.hh, + * mln/core/concept/iterator.hh, + * mln/core/concept/literal.hh, + * mln/core/concept/mesh.hh, + * mln/core/concept/meta_accumulator.hh, + * mln/core/concept/meta_function.hh, + * mln/core/concept/neighborhood.hh, + * mln/core/concept/object.hh, + * mln/core/concept/pixel_iterator.hh, + * mln/core/concept/point.hh, + * mln/core/concept/point_site.hh, + * mln/core/concept/proxy.hh, + * mln/core/concept/pseudo_site.hh, + * mln/core/concept/regular_grid.hh, + * mln/core/concept/site.hh, + * mln/core/concept/site_iterator.hh, + * mln/core/concept/site_proxy.hh, + * mln/core/concept/site_set.hh, + * mln/core/concept/value.hh, + * mln/core/concept/value_iterator.hh, + * mln/core/concept/value_set.hh, + * mln/core/concept/weighted_window.hh, + * mln/core/concept/window.hh: Here. + +2013-04-04 Guillaume Lazzara <z@lrde.epita.fr> + Document type aliases in Doxygen. * doc/mln/core/alias/box1d.dox, diff --git a/milena/doc/mln/convert.dox b/milena/doc/mln/convert.dox new file mode 100644 index 0000000..fc4772d --- /dev/null +++ b/milena/doc/mln/convert.dox @@ -0,0 +1,13 @@ +/*! \defgroup convert Convertion Routines + * + * \brief All conversion routines provided in Milena. + * + * \ingroup modroutines + */ + +/*! \defgroup fromto Routines + * + * \brief All fromto overloads. + * + * \ingroup convert + */ diff --git a/milena/doc/mln/core/concept/concept.dox b/milena/doc/mln/core/concept/concept.dox new file mode 100644 index 0000000..31977b2 --- /dev/null +++ b/milena/doc/mln/core/concept/concept.dox @@ -0,0 +1,6 @@ +/*! \defgroup modconcepts Concepts + * + * \brief All the concepts in Milena. + * + * \ingroup modtypes + */ diff --git a/milena/mln/core/concept/accumulator.hh b/milena/mln/core/concept/accumulator.hh index 968ec3a..6300559 100644 --- a/milena/mln/core/concept/accumulator.hh +++ b/milena/mln/core/concept/accumulator.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and +// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and // Development Laboratory (LRDE) // // This file is part of Olena. @@ -40,22 +40,24 @@ namespace mln { - // Accumulator category flag type. + /// \cond INTERNAL_API + /// \brief Accumulator category flag type. template <> struct Accumulator<void> { typedef Proxy<void> super; }; + /// \endcond - /// \brief Base class for implementation of accumulators. - /// - /// The parameter \a E is the exact type. - /// - /// \see mln::doc::Accumulator for a complete documentation of this - /// class contents. - /// + /*! + \brief Base class for implementation of accumulators. + + The parameter \a E is the exact type. + + \ingroup modconcepts + */ template <typename E> struct Accumulator : public Proxy<E> { @@ -76,28 +78,38 @@ namespace mln bool is_valid() const; */ - /// Take as initialization the value \p t. - /// - /// Dev note: this is a final method; override if needed - /// by take_as_init_ (ending with '_'). + /*! \brief Take as initialization the value \p t. + + \internal + Dev note: this is a final method; override if needed + by take_as_init_ (ending with '_'). + \endinternal + */ template <typename T> void take_as_init(const T& t); // 't' is either argument or E. - /// Default implementation of "take as initialization". + /// \cond INTERNAL_API + /// \brief Default implementation of "take as initialization". template <typename T> void take_as_init_(const T& t); + /// \endcond + + /*! \brief Take \p n times the value \p t. - /// Take \p n times the value \p t. - /// - /// Dev note: this is a final method; override if needed - /// by take_as_init_ (ending with '_'). + \internal + Dev note: this is a final method; override if needed + by take_as_init_ (ending with '_'). + \endinternal + */ template <typename T> void take_n_times(unsigned n, const T& t); - /// Default implementation of "take n times". + /// \cond INTERNAL_API + /// \brief Default implementation of "take n times". template <typename T> void take_n_times_(unsigned n, const T& t); + /// \endcond protected: @@ -105,7 +117,10 @@ namespace mln }; - /// \internal Conversion: Accumulator -> mln_result(A) + /*! + \brief Conversion: Accumulator -> mln_result(A) + \ingroup fromto + */ template <typename A> void from_to_(const Accumulator<A>& from, mln_result(A)& to); diff --git a/milena/mln/core/concept/box.hh b/milena/mln/core/concept/box.hh index 26fe1b9..dedaa6d 100644 --- a/milena/mln/core/concept/box.hh +++ b/milena/mln/core/concept/box.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -38,12 +38,11 @@ namespace mln { /*! \brief Base class for implementation classes of boxes. - * - * Boxes are particular site sets useful to bound any set of - * sites defined on a regular grid. - * - * \see mln::doc::Box for a complete documentation of this class - * contents. + + Boxes are particular site sets useful to bound any set of + sites defined on a regular grid. + + \ingroup modconcepts */ template <typename E> struct Box : public Site_Set<E> diff --git a/milena/mln/core/concept/browsing.hh b/milena/mln/core/concept/browsing.hh index 68e27cd..d7876cc 100644 --- a/milena/mln/core/concept/browsing.hh +++ b/milena/mln/core/concept/browsing.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -39,18 +40,19 @@ namespace mln // Fwd decl. template <typename E> struct Browsing; - // Browsing category flag type. + /// \cond INTERNAL_API + /// Browsing category flag type. template <> struct Browsing<void> { typedef Object<void> super; }; + /// \endcond - /*! \brief Base class for implementation classes that are browsings. - * - * \see mln::doc::Browsing for a complete documentation of this - * class contents. + /*! + \brief Base class for implementation classes that are browsings. + \ingroup modconcepts */ template <typename E> struct Browsing : public Object<E> diff --git a/milena/mln/core/concept/delta_point_site.hh b/milena/mln/core/concept/delta_point_site.hh index b7107a9..3f7c510 100644 --- a/milena/mln/core/concept/delta_point_site.hh +++ b/milena/mln/core/concept/delta_point_site.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2009, 2012 EPITA Research and Development +// Copyright (C) 2007, 2009, 2012, 2013 EPITA Research and Development // Laboratory (LRDE) // // This file is part of Olena. @@ -44,7 +44,7 @@ namespace mln template <typename E> struct Delta_Point_Site; - + /// \cond INTERNAL_API namespace trait { @@ -63,23 +63,22 @@ namespace mln }; } // end of namespace mln::trait + /// \endcond - - /*! - \internal - \brief Delta point site category flag type. - */ + /// \cond INTERNAL_API + /// \brief Delta point site category flag type. template <> struct Delta_Point_Site<void> { typedef Object<void> super; }; + /// \endcond /*! - \internal \brief FIXME: Doc! + \ingroup modconcepts */ template <typename E> struct Delta_Point_Site : public Object<E> diff --git a/milena/mln/core/concept/dpoint.hh b/milena/mln/core/concept/dpoint.hh index 7b2fa39..da0e2af 100644 --- a/milena/mln/core/concept/dpoint.hh +++ b/milena/mln/core/concept/dpoint.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2009, 2012 EPITA Research and Development +// Copyright (C) 2007, 2009, 2012, 2013 EPITA Research and Development // Laboratory (LRDE) // // This file is part of Olena. @@ -42,16 +42,17 @@ namespace mln template <typename E> struct Dpoint; - // Dpoint category flag type. + /// \cond INTERNAL_API + /// Dpoint category flag type. template <> struct Dpoint<void> { typedef Delta_Point_Site<void> super; }; + /// \endcond /*! - \internal \brief Base class for implementation of delta-point classes. A delta-point is a vector defined by a couple of points. @@ -59,8 +60,7 @@ namespace mln Given two points, A and B, the vector AB is mapped into the delta-point D = AB. Practically one can write: D = B - A. - \see mln::doc::Dpoint for a complete documentation of this class - contents. + \ingroup modconcepts */ template <typename E> struct Dpoint : public Delta_Point_Site<E> diff --git a/milena/mln/core/concept/function.hh b/milena/mln/core/concept/function.hh index 361c893..ecd9db0 100644 --- a/milena/mln/core/concept/function.hh +++ b/milena/mln/core/concept/function.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and +// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and // Development Laboratory (LRDE) // // This file is part of Olena. @@ -46,23 +46,24 @@ namespace mln template <typename E> struct Function_vv2b; - /*! - \internal - \brief Function category flag type. - */ + + /// \cond INTERNAL_API + /// \brief Function category flag type. template <> struct Function<void> { typedef Object<void> super; }; + /// \endcond - /// \brief Base class for implementation of function-objects. - /// - /// The parameter \a E is the exact type. - /// - /// \ingroup modfun - // + /*! + \brief Base class for implementation of function-objects. + + The parameter \a E is the exact type. + + \ingroup modfun modconcepts + */ template <typename E> struct Function : public Object<E> { @@ -87,8 +88,10 @@ namespace mln | Nil -> Value. | `---------------*/ + /// \cond INTERNAL_API template <> struct Function_n2v<void> { typedef Function<void> super; }; + /// \endcond /// \brief Base class for implementation of function-objects from @@ -112,8 +115,10 @@ namespace mln | Value -> Value. | `-----------------*/ + /// \cond INTERNAL_API template <> struct Function_v2v<void> { typedef Function<void> super; }; + /// \endcond /// \brief Base class for implementation of function-objects from @@ -138,8 +143,10 @@ namespace mln | Value -> bool. | `----------------*/ + /// \cond INTERNAL_API template <> struct Function_v2b<void> { typedef Function_v2v<void> super; }; + /// \endcond /// \brief Base class for implementation of function-objects from a @@ -165,8 +172,10 @@ namespace mln | (Value, Value) -> Value. | `--------------------------*/ + /// \cond INTERNAL_API template <> struct Function_vv2v<void> { typedef Function<void> super; }; + /// \endcond /// \brief Base class for implementation of function-objects from a @@ -190,8 +199,10 @@ namespace mln | (Value, Value) -> Boolean.| `--------------------------*/ + /// \cond INTERNAL_API template <> struct Function_vv2b<void> { typedef Function<void> super; }; + /// \endcond /// \brief Base class for implementation of function-objects from a diff --git a/milena/mln/core/concept/gdpoint.hh b/milena/mln/core/concept/gdpoint.hh index b8ef9cf..74f0010 100644 --- a/milena/mln/core/concept/gdpoint.hh +++ b/milena/mln/core/concept/gdpoint.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and +// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and // Development Laboratory (LRDE) // // This file is part of Olena. @@ -45,7 +45,7 @@ namespace mln template <typename E> struct Gdpoint; - + /// \cond INTERNAL_API namespace trait { @@ -80,21 +80,23 @@ namespace mln }; } // end of namespace mln::trait + /// \endcond - - /*! - \internal - \brief Delta point site category flag type. - */ + /// \cond INTERNAL_API + /// \brief Delta point site category flag type. template <> struct Gdpoint<void> { typedef Object<void> super; }; + /// \endcond - /// FIXME: Doc! + /*! + \brief Grid point concept. + \ingroup modconcepts + */ template <typename E> struct Gdpoint : public Object<E> { @@ -137,7 +139,10 @@ namespace mln operator*(const Gdpoint<D>& lhs, const value::Scalar<S>& rhs); - /// \internal Conversion: gdpoint -> mln_site + /*! + \brief Conversion: gdpoint -> mln_site + \ingroup fromto + */ template <typename D> void from_to_(const Gdpoint<D>& from, mln_site(D)& to); diff --git a/milena/mln/core/concept/generalized_pixel.hh b/milena/mln/core/concept/generalized_pixel.hh index ff9faf0..9941eb6 100644 --- a/milena/mln/core/concept/generalized_pixel.hh +++ b/milena/mln/core/concept/generalized_pixel.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -39,17 +39,16 @@ namespace mln { - /// Base class for implementation classes that are pixels or that - /// have the behavior of pixels. - /// - /// \warning This class does \em not derive from mln::Object; it is - /// for use as a parallel hierarchy. - /// - /// \see mln::doc::Generalized_Pixel for a complete documentation of this - /// class contents. - /// - /// \todo (later) Add an access to the targetted image. - /// + /*! \brief Base class for implementation classes that are pixels or that + have the behavior of pixels. + + \warning This class does \em not derive from mln::Object; it is + for use as a parallel hierarchy. + + \todo (later) Add an access to the targetted image. + + \ingroup modconcepts + */ template <typename E> struct Generalized_Pixel { diff --git a/milena/mln/core/concept/gpoint.hh b/milena/mln/core/concept/gpoint.hh index d51b2f4..2c78226 100644 --- a/milena/mln/core/concept/gpoint.hh +++ b/milena/mln/core/concept/gpoint.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and +// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and // Development Laboratory (LRDE) // // This file is part of Olena. @@ -47,7 +47,7 @@ namespace mln template <typename E> struct Gpoint; - + /// \cond INTERNAL_API namespace trait { @@ -95,23 +95,29 @@ namespace mln }; } // end of namespace mln::trait + /// \endcond - - // Gpoint category flag type. + /// \cond INTERNAL_API + /// Gpoint category flag type. template <> struct Gpoint<void> { typedef Site<void> super; }; + /// \endcond - /// Base class for implementation of point classes. - /// - /// A point is an element of a space. - /// - /// For instance, mln::point2d is the type of elements defined on the - /// discrete square grid of the 2D plane. + /*! + \brief Base class for implementation of point classes. + + A point is an element of a space. + + For instance, mln::point2d is the type of elements defined on the + discrete square grid of the 2D plane. + + \ingroup modconcepts + */ template <typename E> struct Gpoint : public Site<E> { diff --git a/milena/mln/core/concept/graph.hh b/milena/mln/core/concept/graph.hh index a266783..c3686b4 100644 --- a/milena/mln/core/concept/graph.hh +++ b/milena/mln/core/concept/graph.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2008, 2009, 2011 EPITA Research and Development +// Copyright (C) 2008, 2009, 2011, 2013 EPITA Research and Development // Laboratory (LRDE) // // This file is part of Olena. @@ -41,18 +41,21 @@ namespace mln // Forward declaration. template <typename E> struct Graph; - // Graph category flag type. + /// \cond INTERNAL_API + /// Graph category flag type. template <> struct Graph<void> { typedef Object<void> super; }; + /// \endcond - /// Base class for implementation of graph classes. - /// - /// \see mln::doc::Graph for a complete documentation of this class - /// contents. - /// + + /*! + \brief Base class for implementation of graph classes. + + \ingroup modconcepts + */ template <typename E> struct Graph : public Object<E> { diff --git a/milena/mln/core/concept/image.hh b/milena/mln/core/concept/image.hh index a79cd37..f302425 100644 --- a/milena/mln/core/concept/image.hh +++ b/milena/mln/core/concept/image.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and +// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and // Development Laboratory (LRDE) // // This file is part of Olena. @@ -58,18 +58,20 @@ namespace mln template <typename D, typename W> struct w_window; - // Image category flag type. + /// \cond INTERNAL_API + /// Image category flag type. template <> struct Image<void> { typedef Object<void> super; }; + /// \endcond - /// Base class for implementation of image classes. - /// - /// \see mln::doc::Image for a complete documentation of this class - /// contents. + /*! + \brief Base class for implementation of image classes. + \ingroup modconcepts + */ template <typename E> struct Image : public Object<E> { @@ -122,12 +124,18 @@ namespace mln }; - /// \internal Conversion: image -> w_window + /*! + \brief Conversion: image -> w_window + \ingroup fromto + */ template <typename I, typename D, typename W> void from_to_(const Image<I>& from, w_window<D,W>& to); - /// \internal Conversion: values[] -> image + /*! + \brief Conversion: values[] -> image + \ingroup fromto + */ template <typename V, unsigned S, typename I> void from_to_(const V (&values)[S], Image<I>& to); diff --git a/milena/mln/core/concept/iterator.hh b/milena/mln/core/concept/iterator.hh index 5d0b090..9de2034 100644 --- a/milena/mln/core/concept/iterator.hh +++ b/milena/mln/core/concept/iterator.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -67,10 +67,9 @@ namespace mln { - /*! \brief Base class for implementation classes that are iterators. - * - * \see mln::doc::Iterator for a complete documentation of this - * class contents. + /*! + \brief Base class for implementation classes that are iterators. + \ingroup modconcepts */ template <typename E> struct Iterator : public Object<E> @@ -89,7 +88,7 @@ namespace mln * defined through the \em next_ method. * * \pre The iterator is valid. - */ + */ void next(); // final protected: diff --git a/milena/mln/core/concept/literal.hh b/milena/mln/core/concept/literal.hh index d313997..8c56f58 100644 --- a/milena/mln/core/concept/literal.hh +++ b/milena/mln/core/concept/literal.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -39,18 +40,19 @@ namespace mln // Fwd decl. template <typename E> struct Literal; - // Literal category flag type. + /// \cond INTERNAL_API + /// Literal category flag type. template <> struct Literal<void> { typedef Object<void> super; }; + /// \endcond - /*! \brief Base class for implementation classes of literals. - * - * \see mln::doc::Literal for a complete documentation of this class - * contents. + /*! + \brief Base class for implementation classes of literals. + \ingroup modconcepts */ template <typename E> struct Literal : public Object<E> diff --git a/milena/mln/core/concept/mesh.hh b/milena/mln/core/concept/mesh.hh index e5d1e62..1e1f2c6 100644 --- a/milena/mln/core/concept/mesh.hh +++ b/milena/mln/core/concept/mesh.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -36,10 +37,10 @@ namespace mln { - /*! \brief Base class for implementation classes of meshes. - * - * \see mln::doc::Mesh for a complete documentation of this class - * contents. + /*! + \brief Base class for implementation classes of meshes. + + \ingroup modconcepts */ template <typename E> struct Mesh : public Object<E> diff --git a/milena/mln/core/concept/meta_accumulator.hh b/milena/mln/core/concept/meta_accumulator.hh index c86bde5..4edc228 100644 --- a/milena/mln/core/concept/meta_accumulator.hh +++ b/milena/mln/core/concept/meta_accumulator.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -59,11 +59,11 @@ namespace mln template <typename E> struct Meta_Accumulator; + /// \cond INTERNAL_API namespace internal { /*! - \internal \brief Make the type resolution easier for the compiler. Introduced for ICC compatibility. */ @@ -75,7 +75,6 @@ namespace mln /*! - \internal \brief Make the type resolution easier for the compiler. Introduced for ICC compatibility. */ @@ -85,25 +84,28 @@ namespace mln typedef typename A::template with< T >::ret ret; }; - } // end of namespace mln::internal + /// \endcond - // Meta_Accumulator category flag type. + /// \cond INTERNAL_API + /// Meta_Accumulator category flag type. template <> struct Meta_Accumulator<void> { typedef Object<void> super; }; + /// \endcond /*! - \internal \brief Base class for implementation of meta accumulators. The parameter \a E is the exact type. \see mln::doc::Meta_Accumulator for a complete documentation of this class contents. + + \ingroup modconcepts */ template <typename E> struct Meta_Accumulator : public Object<E> diff --git a/milena/mln/core/concept/meta_function.hh b/milena/mln/core/concept/meta_function.hh index e8f4137..0205fe5 100644 --- a/milena/mln/core/concept/meta_function.hh +++ b/milena/mln/core/concept/meta_function.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -59,20 +60,21 @@ namespace mln template <typename E> struct Meta_Function_v2v; template <typename E> struct Meta_Function_vv2v; - // Meta_Function category flag type. + /// \cond INTERNAL_API + /// Meta_Function category flag type. template <> struct Meta_Function<void> { typedef Object<void> super; }; + /// \endcond /*! \brief Base class for implementation of meta functions. - * - * The parameter \a E is the exact type. - * - * \see mln::doc::Meta_Function for a complete documentation of - * this class contents. + + The parameter \a E is the exact type. + + \ingroup modconcepts */ template <typename E> struct Meta_Function : public Object<E> @@ -86,8 +88,10 @@ namespace mln | Unary meta function. | `----------------------*/ + /// \cond INTERNAL_API template <> struct Meta_Function_v2v<void> { typedef Meta_Function<void> super; }; + /// \endcond /// Base class for implementation of function-objects from /// value to value. @@ -108,8 +112,10 @@ namespace mln | Binary meta function. | `-----------------------*/ + /// \cond INTERNAL_API template <> struct Meta_Function_vv2v<void> { typedef Meta_Function<void> super; }; + /// \endcond /// Base class for implementation of function-objects from /// value to value. diff --git a/milena/mln/core/concept/neighborhood.hh b/milena/mln/core/concept/neighborhood.hh index 00fb222..7bda059 100644 --- a/milena/mln/core/concept/neighborhood.hh +++ b/milena/mln/core/concept/neighborhood.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and +// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and // Development Laboratory (LRDE) // // This file is part of Olena. @@ -48,23 +48,21 @@ namespace mln // Forward declaration. template <typename E> struct Neighborhood; - - /*! - \internal - \brief Neighborhood category flag type. - */ + /// \cond INTERNAL_API + /// \brief Neighborhood category flag type. template <> struct Neighborhood<void> { typedef Object<void> super; }; + /// \endcond - /// \brief Base class for implementation classes that are neighborhoods. - /// - /// \see mln::doc::Neighborhood for a complete documentation of this - /// class contents. + /*! + \brief Base class for implementation classes that are neighborhoods. + \ingroup modconcepts + */ template <typename E> struct Neighborhood : public Object<E> { @@ -87,25 +85,30 @@ namespace mln }; - + /// \relates mln::Neighborhood template <typename L, typename R> bool operator==(const Neighborhood<L>& lhs, const Neighborhood<R>& rhs); - + /// \relates mln::Neighborhood template <typename N> std::ostream& operator<<(std::ostream&ostr, const Neighborhood<N>& nbh); // FIXME: Move as a method of Image? + /// \relates mln::Neighborhood template <typename I, typename N> util::array<int> offsets_wrt(const Image<I>& ima, const Neighborhood<N>& nbh); + // FIXME: Move as a method of Image? + /// \relates mln::Neighborhood template <typename I, typename N> util::array<int> positive_offsets_wrt(const Image<I>& ima, const Neighborhood<N>& nbh); + // FIXME: Move as a method of Image? + /// \relates mln::Neighborhood template <typename I, typename N> util::array<int> negative_offsets_wrt(const Image<I>& ima, const Neighborhood<N>& nbh); diff --git a/milena/mln/core/concept/object.hh b/milena/mln/core/concept/object.hh index d8fba23..410a236 100644 --- a/milena/mln/core/concept/object.hh +++ b/milena/mln/core/concept/object.hh @@ -82,18 +82,23 @@ namespace mln // Fwd decl. template <typename E> struct Object; - // Object category flag type. + /// \cond INTERNAL_API + /// Object category flag type. template <> struct Object<void> { typedef Unknown<void> super; }; + /// \endcond - /*! \brief Base class for almost every class defined in Milena. - * - * The parameter \a E is the exact type. - */ + /*! + \brief Base class for almost every class defined in Milena. + + The parameter \a E is the exact type. + + \ingroup modconcepts + */ template <typename E> struct Object { diff --git a/milena/mln/core/concept/pixel_iterator.hh b/milena/mln/core/concept/pixel_iterator.hh index b044d14..ee57476 100644 --- a/milena/mln/core/concept/pixel_iterator.hh +++ b/milena/mln/core/concept/pixel_iterator.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -38,14 +39,14 @@ namespace mln { - /*! \brief Base class for the implementation of pixel iterator - * classes. - * - * An iterator on pixels is an iterator that is bound to a - * particular image and that browses over a set of image pixels. - * - * \see mln::doc::Pixel_Iterator for a complete documentation of - * this class contents. + /*! + \brief Base class for the implementation of pixel iterator + classes. + + An iterator on pixels is an iterator that is bound to a + particular image and that browses over a set of image pixels. + + \ingroup modconcepts */ template <typename E> struct Pixel_Iterator : public Iterator<E>, diff --git a/milena/mln/core/concept/point.hh b/milena/mln/core/concept/point.hh index 07a7608..ddc5e5c 100644 --- a/milena/mln/core/concept/point.hh +++ b/milena/mln/core/concept/point.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -43,20 +44,25 @@ namespace mln template <typename E> struct Point; - // Point category flag type. + /// \cond INTERNAL_API + /// Point category flag type. template <> struct Point<void> { typedef Point_Site<void> super; }; + /// \endcond - /*! \brief Base class for implementation of point classes. - * - * A point is an element of a space. - * - * For instance, mln::point2d is the type of elements defined on the - * discrete square grid of the 2D plane. + /*! + \brief Base class for implementation of point classes. + + A point is an element of a space. + + For instance, mln::point2d is the type of elements defined on the + discrete square grid of the 2D plane. + + \ingroup modconcepts */ template <typename P> struct Point : public Point_Site<P> diff --git a/milena/mln/core/concept/point_site.hh b/milena/mln/core/concept/point_site.hh index a22885d..0c6a5a2 100644 --- a/milena/mln/core/concept/point_site.hh +++ b/milena/mln/core/concept/point_site.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -45,7 +46,7 @@ namespace mln template <typename E> struct Point_Site; - + /// \cond INTERNAL_API namespace trait { @@ -71,37 +72,41 @@ namespace mln }; } // end of namespace mln::trait + /// \endcond - - + /// \cond INTERNAL_API /// Point site category flag type. template <> struct Point_Site<void> { typedef Object<void> super; }; + /// \endcond - /*! \brief Base class for implementation classes of the notion of - * "point site". - * - * A point site ("psite" for short) is an object that allows an - * efficient access to data associated with a point. A point site - * is either a point or designates a point. - * - * When a point site is not really a point, it is automatically - * convertible to the point it designates. - * - * - * Let us take the example of a 2D image encoded as an array of runs - * of values. With a point, a pair (row index, column index), - * retrieving the corresponding pixel value would mean to browse the - * array of runs to find the value location. That would not be - * efficient. Conversely, a point site dedicated to this image - * structure allows for value access in contant time; precisely the - * proper point site is a pair (index of run, index within the run). - */ + /*! + \brief Base class for implementation classes of the notion of + "point site". + + A point site ("psite" for short) is an object that allows an + efficient access to data associated with a point. A point site + is either a point or designates a point. + + When a point site is not really a point, it is automatically + convertible to the point it designates. + + + Let us take the example of a 2D image encoded as an array of runs + of values. With a point, a pair (row index, column index), + retrieving the corresponding pixel value would mean to browse the + array of runs to find the value location. That would not be + efficient. Conversely, a point site dedicated to this image + structure allows for value access in contant time; precisely the + proper point site is a pair (index of run, index within the run). + + \ingroup modconcepts + */ template <typename E> struct Point_Site : public Object<E> { @@ -157,7 +162,7 @@ namespace mln * topology and with the same type of coordinates; otherwise this * test does not compile. * - * \post The result, \p dp, is such as \p lhs == \p rhs + \p dp. + * \post The result, \p dp, is such as \p lhs == \p rhs + \p dp. * * \return A delta point (temporary object). * diff --git a/milena/mln/core/concept/proxy.hh b/milena/mln/core/concept/proxy.hh index 43aed15..acb3239 100644 --- a/milena/mln/core/concept/proxy.hh +++ b/milena/mln/core/concept/proxy.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2008, 2009, 2011, 2012, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -207,17 +207,21 @@ namespace mln - + /// \cond INTERNAL_API /// Proxy category flag type. template <> struct Proxy<void> { typedef Object<void> super; }; + /// \endcond + + /*! + \brief Base class for implementation classes of the notion of + "proxy". - /*! \brief Base class for implementation classes of the notion of - * "proxy". + \ingroup modconcepts */ template <typename E> struct Proxy : Object<E> @@ -235,7 +239,10 @@ namespace mln }; - /// \internal Conversion: proxy -> T + /*! + \brief Conversion: proxy -> T + \ingroup fromto + */ template <typename P, typename T> void from_to_(const Proxy<P>& from, T& to); diff --git a/milena/mln/core/concept/pseudo_site.hh b/milena/mln/core/concept/pseudo_site.hh index 77eb961..f36d7ad 100644 --- a/milena/mln/core/concept/pseudo_site.hh +++ b/milena/mln/core/concept/pseudo_site.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2008, 2009, 2011, 2012, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -47,22 +47,21 @@ namespace mln template <typename E> struct Pseudo_Site; - - /*! - \internal - \brief Pseudo_Site category flag type. - */ + /// \cond INTERNAL_API + /// \brief Pseudo_Site category flag type. template <> struct Pseudo_Site<void> { typedef Site_Proxy<void> super; }; + /// \endcond - /*! \brief Base class for implementation classes of the notion of - * "pseudo site". - * - * FIXME: Explain... + /*! + \brief Base class for implementation classes of the notion of + "pseudo site". + + \ingroup modconcepts */ template <typename E> struct Pseudo_Site : public Site_Proxy<E> diff --git a/milena/mln/core/concept/regular_grid.hh b/milena/mln/core/concept/regular_grid.hh index e1f4c1d..747a234 100644 --- a/milena/mln/core/concept/regular_grid.hh +++ b/milena/mln/core/concept/regular_grid.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -37,7 +38,10 @@ namespace mln { - /// Base class for implementation classes of regular grids. + /*! + \brief Base class for implementation classes of regular grids. + \ingroup modconcepts + */ template <typename E> struct Regular_Grid : public Mesh<E> { diff --git a/milena/mln/core/concept/site.hh b/milena/mln/core/concept/site.hh index 68a4bcb..6b915a0 100644 --- a/milena/mln/core/concept/site.hh +++ b/milena/mln/core/concept/site.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2008, 2009, 2012 EPITA Research and Development +// Copyright (C) 2008, 2009, 2012, 2013 EPITA Research and Development // Laboratory (LRDE) // // This file is part of Olena. @@ -42,18 +42,19 @@ namespace mln template <typename E> struct Site; - /*! - \internal - \brief Site category flag type. - */ + /// \cond INTERNAL_API + /// \brief Site category flag type. template <> struct Site<void> { typedef Object<void> super; }; + /// \endcond - /*! \brief Base class for classes that are explicitly sites. + /*! + \brief Base class for classes that are explicitly sites. + \ingroup modconcepts */ template <typename E> struct Site : public Object<E> diff --git a/milena/mln/core/concept/site_iterator.hh b/milena/mln/core/concept/site_iterator.hh index 7ef6a43..0a113f1 100644 --- a/milena/mln/core/concept/site_iterator.hh +++ b/milena/mln/core/concept/site_iterator.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -41,15 +41,15 @@ namespace mln { - /// Base class for implementation of classes of iterator on - /// points. - /// - /// An iterator on points is an iterator that browse over a set of - /// points. - /// - /// \see mln::doc::Site_Iterator for a complete documentation of this class - /// contents. - /// + /*! + \brief Base class for implementation of classes of iterator on + points. + + An iterator on points is an iterator that browse over a set of + points. + + \ingroup modconcepts + */ template <typename E> struct Site_Iterator : public Site_Proxy<E> { diff --git a/milena/mln/core/concept/site_proxy.hh b/milena/mln/core/concept/site_proxy.hh index 8293423..9339234 100644 --- a/milena/mln/core/concept/site_proxy.hh +++ b/milena/mln/core/concept/site_proxy.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2008, 2009, 2011, 2012, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -44,22 +44,23 @@ namespace mln // Fwd decl. template <typename E> struct Site_Proxy; - - /*! - \internal - \brief Site_Proxy category flag type. - */ + /// \cond INTERNAL_API + /// \brief Site_Proxy category flag type. template <> struct Site_Proxy<void> { typedef Proxy<void> super; }; + /// \endcond + + + /*! + \brief Base class for implementation classes of the notion of + "site proxy". + FIXME: Explain... - /*! \brief Base class for implementation classes of the notion of - * "site proxy". - * - * FIXME: Explain... + \ingroup modconcepts */ template <typename E> struct Site_Proxy : public Proxy<E> diff --git a/milena/mln/core/concept/site_set.hh b/milena/mln/core/concept/site_set.hh index dc1885b..5b09a9d 100644 --- a/milena/mln/core/concept/site_set.hh +++ b/milena/mln/core/concept/site_set.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and +// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and // Development Laboratory (LRDE) // // This file is part of Olena. @@ -50,15 +50,14 @@ namespace mln template <typename E> struct Site_Set; - /*! - \internal - \brief Site_Set category flag type. - */ + /// \cond INTERNAL_API + /// \brief Site_Set category flag type. template <> struct Site_Set<void> { typedef Object<void> super; }; + /// \endcond /*! @@ -66,6 +65,8 @@ namespace mln \see mln::doc::Site_Set for a complete documentation of this class contents. + + \ingroup modconcepts */ template <typename E> struct Site_Set : public Object<E> @@ -92,7 +93,10 @@ namespace mln }; - /// \internal Conversion: site_set -> std::set + /*! + \brief Conversion: site_set -> std::set + \ingroup fromto + */ template <typename S, typename P, typename C_> void from_to_(const Site_Set<S>& from, std::set<P,C_>& to); @@ -102,7 +106,10 @@ namespace mln namespace std { - /// \internal Conversion: std::set -> site_set + /*! + \brief Conversion: std::set -> site_set + \ingroup fromto + */ template <typename P, typename C_, typename S> void from_to_(const set<P,C_>& from, mln::Site_Set<S>& to); diff --git a/milena/mln/core/concept/value.hh b/milena/mln/core/concept/value.hh index 53ef70b..47ef01d 100644 --- a/milena/mln/core/concept/value.hh +++ b/milena/mln/core/concept/value.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -40,19 +41,21 @@ namespace mln // Fwd decl. template <typename E> struct Value; - // Value category flag type. + /// \cond INTERNAL_API + /// \brief Value category flag type. template <> struct Value<void> { typedef Object<void> super; }; + /// \endcond - /*! \brief Base class for implementation classes of values. - * - * \see mln::doc::Value for a complete documentation of this class - * contents. - */ + /*! + \brief Base class for implementation classes of values. + + \ingroup modconcepts + */ template <typename E> struct Value : public Object<E> { diff --git a/milena/mln/core/concept/value_iterator.hh b/milena/mln/core/concept/value_iterator.hh index 1daccd7..d2ebe28 100644 --- a/milena/mln/core/concept/value_iterator.hh +++ b/milena/mln/core/concept/value_iterator.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -38,14 +38,14 @@ namespace mln { - /*! \brief Base class for implementation of classes of iterator on - * values. - * - * An iterator on values is an iterator that browse over a set of - * values. - * - * \see mln::doc::Value_Iterator for a complete documentation of this class - * contents. + /*! + \brief Base class for implementation of classes of iterator on + values. + + An iterator on values is an iterator that browse over a set of + values. + + \ingroup modconcepts */ template <typename E> struct Value_Iterator : public Iterator<E> diff --git a/milena/mln/core/concept/value_set.hh b/milena/mln/core/concept/value_set.hh index 0976537..3bdb372 100644 --- a/milena/mln/core/concept/value_set.hh +++ b/milena/mln/core/concept/value_set.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2009, 2010, 2011 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2007, 2009, 2010, 2011, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -40,18 +40,20 @@ namespace mln // Fwd decl. template <typename E> struct Value_Set; - // Value_Set category flag type. + /// \cond INTERNAL_API + /// \brief Value_Set category flag type. template <> struct Value_Set<void> { typedef Object<void> super; }; + /// \endcond - /*! \brief Base class for implementation classes of sets of values. - * - * \see mln::doc::Value_Set for a complete documentation of this - * class contents. + /*! + \brief Base class for implementation classes of sets of values. + + \ingroup modconcepts */ template <typename E> struct Value_Set : public Object<E> @@ -76,6 +78,7 @@ namespace mln }; + /// \relates mln::Value_Set template <typename E> std::ostream& operator<<(std::ostream& ostr, const Value_Set<E>& vs); @@ -89,7 +92,7 @@ namespace mln typedef mln_value(E) value; typedef mln_fwd_viter(E) fwd_viter; typedef mln_bkd_viter(E) bkd_viter; - + bool (E::*m1)(const value&) const = & E::has; (void) m1; value (E::*m2)(unsigned) const = & E::operator[]; diff --git a/milena/mln/core/concept/weighted_window.hh b/milena/mln/core/concept/weighted_window.hh index 1341860..ca730bd 100644 --- a/milena/mln/core/concept/weighted_window.hh +++ b/milena/mln/core/concept/weighted_window.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2011, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -50,20 +50,21 @@ namespace mln // Forward declaration. template <typename E> struct Weighted_Window; - - // Weighted_Window category flag type. + /// \cond INTERNAL_API + /// \brief Weighted_Window category flag type. template <> struct Weighted_Window<void> { typedef Object<void> super; }; + /// \endcond - /*! \brief Base class for implementation classes that are - * weighted_windows. - * - * \see mln::doc::Weighted_Window for a complete documentation of - * this class contents. + /*! + \brief Base class for implementation classes that are + weighted_windows. + + \ingroup modconcepts */ template <typename E> struct Weighted_Window : public Object<E> @@ -82,7 +83,7 @@ namespace mln void sym(); */ - + protected: Weighted_Window(); }; diff --git a/milena/mln/core/concept/window.hh b/milena/mln/core/concept/window.hh index c59924f..c6d64f4 100644 --- a/milena/mln/core/concept/window.hh +++ b/milena/mln/core/concept/window.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and +// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and // Development Laboratory (LRDE) // // This file is part of Olena. @@ -71,18 +71,24 @@ namespace mln template <typename E> struct Image; - // Window category flag type. + /// \cond INTERNAL_API + /// \brief Window category flag type. template <> struct Window<void> { typedef Object<void> super; }; + /// \endcond - /// Base class for implementation classes that are windows. - /// - /// \see mln::doc::Window for a complete documentation of this class - /// contents. + /*! + \brief Base class for implementation classes that are windows. + + A window is the definition of a set of points located around a + central point. + + \ingroup modconcepts + */ template <typename E> struct Window : public Object<E> { @@ -111,21 +117,29 @@ namespace mln std::ostream& operator<<(std::ostream& ostr, const Window<W>& win); - /// \internal Conversion: window -> image + /*! + \brief Conversion: window -> image + \ingroup fromto + */ template <typename W, typename I> void from_to_(const Window<W>& from, Image<I>& to); // FIXME: Move as a method of Image? + /// \relates mln::Window template <typename I, typename W> util::array<int> offsets_wrt(const Image<I>& ima, const Window<W>& win); + // FIXME: Move as a method of Image? + /// \relates mln::Window template <typename I, typename W> util::array<int> positive_offsets_wrt(const Image<I>& ima, const Window<W>& win); + // FIXME: Move as a method of Image? + /// \relates mln::Window template <typename I, typename W> util::array<int> negative_offsets_wrt(const Image<I>& ima, const Window<W>& win); -- 1.7.2.5
participants (1)
-
Guillaume Lazzara