
https://svn.lrde.epita.fr/svn/oln/trunk/milena Index: ChangeLog from Thierry Geraud <thierry.geraud@lrde.epita.fr> Fix missing lowq test for morpho general with any elt. * mln/morpho/general.spe.hh (general_dispatch_wrt_win): Fix missing test about lowq. * mln/labeling/flat_zones.hh: Upgrade doc style. * mln/util/set.hh: Likewise. labeling/flat_zones.hh | 14 +-- morpho/general.spe.hh | 3 util/set.hh | 193 ++++++++++++++++++++++++------------------------- 3 files changed, 105 insertions(+), 105 deletions(-) Index: mln/morpho/general.spe.hh --- mln/morpho/general.spe.hh (revision 3026) +++ mln/morpho/general.spe.hh (working copy) @@ -350,6 +350,9 @@ && mln_is_simple_window(W)::value && + mlc_equal(mln_trait_image_quant(I), + trait::image::quant::low)::value + && mlc_not_equal(mln_trait_image_value_storage(I), trait::image::value_storage::disrupted)::value }; return general_dispatch_wrt_arbitrary_win(metal::bool_<test>(), Index: mln/labeling/flat_zones.hh --- mln/labeling/flat_zones.hh (revision 3026) +++ mln/labeling/flat_zones.hh (working copy) @@ -44,13 +44,13 @@ namespace labeling { - /*! Connected component labeling of the flat zones of an image. - * - * \param[in] input The input image. - * \param[in] nbh The connexity of the flat zones. - * \param[out] nlabels The number of labels. - * \return The label image. - */ + /// Connected component labeling of the flat zones of an image. + /// + /// \param[in] input The input image. + /// \param[in] nbh The connexity of the flat zones. + /// \param[out] nlabels The number of labels. + /// \return The label image. + /// template <typename I, typename N, typename L> mln_ch_value(I, L) flat_zones(const Image<I>& input, const Neighborhood<N>& nbh, L& nlabels); Index: mln/util/set.hh --- mln/util/set.hh (revision 3026) +++ mln/util/set.hh (working copy) @@ -1,4 +1,5 @@ // Copyright (C) 2007, 2008 EPITA Research and Development Laboratory +// (LRDE) // // This file is part of the Olena Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -28,14 +29,13 @@ #ifndef MLN_UTIL_SET_HH # define MLN_UTIL_SET_HH -/*! \file mln/util/set.hh - * - * \brief Definition of mln::util::set. - * - * \todo Clean code and test! - * - * \todo Zed: Group methods into 2 categories: when frozen, when not. - */ +/// \file mln/util/set.hh +/// +/// Definition of mln::util::set. +/// +/// \todo Clean code and test! +/// +/// \todo Zed: Group methods into 2 categories: when frozen, when not. # include <vector> # include <set> @@ -58,27 +58,24 @@ template <typename T> class set_bkd_iter; - /*! \brief An "efficient" mathematical set class. - * - * - * - * This set class is designed to store a mathematical set and to - * present it to the user as a linear array (std::vector). - * - * Elements are stored by copy. Implementation is lazy. - * - * The set has two states: frozen or not. There is an automatic - * switch of state when the user modifies its contents (insert, - * remove, or clear) or access to its contents (op[i]). - * - * The parameter \c T is the element type, which shall not be - * const-qualified. - * - * The unicity of set elements is handled by the mln::util::ord - * mechanism. - * - * \see mln::util::ord - */ + /// \brief An "efficient" mathematical set class. + /// + /// This set class is designed to store a mathematical set and to + /// present it to the user as a linear array (std::vector). + /// + /// Elements are stored by copy. Implementation is lazy. + /// + /// The set has two states: frozen or not. There is an automatic + /// switch of state when the user modifies its contents (insert, + /// remove, or clear) or access to its contents (op[i]). + /// + /// The parameter \c T is the element type, which shall not be + /// const-qualified. + /// + /// The unicity of set elements is handled by the mln::util::ord + /// mechanism. + /// + /// \see mln::util::ord template <typename T> class set : public Object< mln::util::set<T> > { @@ -98,67 +95,67 @@ typedef fwd_eiter eiter; - /*! \brief Insert an element \p elt into the set. - * - * \param[in] elt The element to be inserted. - * - * If \p elt is already in the set, this method is a no-op. - * - * \return The set itself after insertion. - */ + /// \brief Insert an element \p elt into the set. + /// + /// \param[in] elt The element to be inserted. + /// + /// If \p elt is already in the set, this method is a no-op. + /// + /// \return The set itself after insertion. + /// set<T>& insert(const T& elt); - /*! \brief Insert the elements of \p other into the set. - * - * \param[in] other The set containing the elements to be inserted. - * - * \return The set itself after insertion. - */ + /// \brief Insert the elements of \p other into the set. + /// + /// \param[in] other The set containing the elements to be inserted. + /// + /// \return The set itself after insertion. + /// template <typename U> set<T>& insert(const set<U>& other); - /*! \brief Remove an element \p elt into the set. - * - * \param[in] elt The element to be inserted. - * - * If \p elt is already in the set, this method is a no-op. - * - * \return The set itself after suppression. - */ + /// \brief Remove an element \p elt into the set. + /// + /// \param[in] elt The element to be inserted. + /// + /// If \p elt is already in the set, this method is a no-op. + /// + /// \return The set itself after suppression. + /// set<T>& remove(const T& elt); - /*! \brief Empty the set. - * - * All elements contained in the set are destroyed so the set is - * emptied. - * - * \post is_empty() == true - */ + /// \brief Empty the set. + /// + /// All elements contained in the set are destroyed so the set is + /// emptied. + /// + /// \post is_empty() == true + /// void clear(); - /*! \brief Return the number of elements of the set. - */ + /// \brief Return the number of elements of the set. + /// unsigned nelements() const; - /*! \brief Test if the set is empty. - */ + /// \brief Test if the set is empty. + /// bool is_empty() const; - /*! \brief Return the i-th element of the set. - * - * \param[in] i Index of the element to retrieve. - * - * \pre i < nelements() - * - * The element is returned by reference and is constant. - */ + /// \brief Return the i-th element of the set. + /// + /// \param[in] i Index of the element to retrieve. + /// + /// \pre i < nelements() + /// + /// The element is returned by reference and is constant. + /// const T& operator[](unsigned i) const; /// Return the first element of the set. @@ -170,23 +167,23 @@ const T last_element() const; - /*! \brief Test if the object \p elt belongs to the set. - * - * \param[in] elt A possible element of the set. - * - * \return True is \p elt is in the set. - */ + /// \brief Test if the object \p elt belongs to the set. + /// + /// \param[in] elt A possible element of the set. + /// + /// \return True is \p elt is in the set. + /// bool has(const T& elt) const; - /*! \brief Give access to the set elements. - * - * The complexity of this method is O(1). - * - * \post The set is frozen. - * - * \return An array (std::vector) of elements. - */ + /// \brief Give access to the set elements. + /// + /// The complexity of this method is O(1). + /// + /// \post The set is frozen. + /// + /// \return An array (std::vector) of elements. + /// const std::vector<T>& std_vector() const; @@ -202,27 +199,27 @@ private: - /*! \brief Array of elements. - * - * This structure is only updated (if required) when elements - * are accessed. - */ + /// \brief Array of elements. + /// + /// This structure is only updated (if required) when elements + /// are accessed. + /// mutable std::vector<T> v_; - /*! \brief Set of elements. - * - * This structure is always up-to-date w.r.t. the set contents. - */ + /// \brief Set of elements. + /// + /// This structure is always up-to-date w.r.t. the set contents. + /// mutable std::set< T, util::ord<T> > s_; - /*! \brief Freeze the contents of the set (update \a v_ from \a - * s_, then clear s_). - */ + /// \brief Freeze the contents of the set (update \a v_ from \a + /// s_, then clear s_). + /// void freeze_() const; - /*! \brief Unfreeze the contents of the set. - */ + /// \brief Unfreeze the contents of the set. + /// void unfreeze_() const; /// Tell if the set is frozen.