
* mln/util/graph.hh, * mln/util/line_graph.hh, * mln/core/image/vertex_image.hh, * mln/core/image/edge_image.hh: Fix the Doxygen documentation. * mln/util/vertex.hh: Aesthetic changes. * mln/util/edge.hh: Aesthetic changes. (util::edge<G>::invalidate): Remove dead code. * tests/morpho/line_graph_image_morpho.cc: Fix (non) Doxygen comments. --- milena/ChangeLog | 15 ++++++++++++ milena/mln/core/image/edge_image.hh | 8 +++--- milena/mln/core/image/vertex_image.hh | 8 +++--- milena/mln/util/edge.hh | 30 ++++++++++------------- milena/mln/util/graph.hh | 25 ++++++++++++-------- milena/mln/util/line_graph.hh | 20 ++++++++++----- milena/mln/util/vertex.hh | 26 ++++++++++++++------ milena/tests/morpho/line_graph_image_morpho.cc | 4 +- 8 files changed, 84 insertions(+), 52 deletions(-) diff --git a/milena/ChangeLog b/milena/ChangeLog index 050fb7c..900ebd8 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,20 @@ 2010-05-11 Roland Levillain <roland@lrde.epita.fr> + Miscellaneous changes in graphs and graph-based images. + + * mln/util/graph.hh, + * mln/util/line_graph.hh, + * mln/core/image/vertex_image.hh, + * mln/core/image/edge_image.hh: + Fix the Doxygen documentation. + * mln/util/vertex.hh: Aesthetic changes. + * mln/util/edge.hh: Aesthetic changes. + (util::edge<G>::invalidate): Remove dead code. + * tests/morpho/line_graph_image_morpho.cc: + Fix (non) Doxygen comments. + +2010-05-11 Roland Levillain <roland@lrde.epita.fr> + Fix make::edge_image. * mln/make/edge_image.hh: Fix Doxygen comments. diff --git a/milena/mln/core/image/edge_image.hh b/milena/mln/core/image/edge_image.hh index 7da1690..1c19b07 100644 --- a/milena/mln/core/image/edge_image.hh +++ b/milena/mln/core/image/edge_image.hh @@ -160,7 +160,7 @@ namespace mln /// Constructors. - /// @{ + /// \{ edge_image(); edge_image(const p_edges<G, site_function_t>& pe); edge_image(const Graph<G>& g, @@ -178,13 +178,13 @@ namespace mln template <typename FV> edge_image(const p_edges<G,site_function_t>& pe, const Function_v2v<FV>& edge_values); - /// @} + /// \} /// Value accessors/operators overloads. - /// @{ + /// \{ rvalue operator()(unsigned e_id) const; lvalue operator()(unsigned e_id); - /// @} + /// \} // Just to help g++-2.95... rvalue operator()(const psite& p) const; diff --git a/milena/mln/core/image/vertex_image.hh b/milena/mln/core/image/vertex_image.hh index 3ce7ed5..9ad31a7 100644 --- a/milena/mln/core/image/vertex_image.hh +++ b/milena/mln/core/image/vertex_image.hh @@ -167,7 +167,7 @@ namespace mln /// Constructors. - /// @{ + /// \{ vertex_image(); vertex_image(const p_vertices<G, site_function_t>& pv); vertex_image(const p_vertices<G, site_function_t>& pv, @@ -175,13 +175,13 @@ namespace mln template <typename FV> vertex_image(const p_vertices<G, site_function_t>& pv, const Function_v2v<FV>& vertex_values); - /// @} + /// \} /// Value accessors/operators overloads. - /// @{ + /// \{ rvalue operator()(unsigned v_id) const; lvalue operator()(unsigned v_id); - /// @} + /// \} // Just to help g++-2.95... diff --git a/milena/mln/util/edge.hh b/milena/mln/util/edge.hh index bfbceee..75a82c9 100644 --- a/milena/mln/util/edge.hh +++ b/milena/mln/util/edge.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2008, 2009, 2010 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -174,7 +175,7 @@ namespace mln namespace internal { - /// subject_impl specialization (Proxy) + /// subject_impl specialization (Proxy). /// \{ template <typename G, typename E> @@ -199,7 +200,7 @@ namespace mln }; template <typename G, typename E> - struct subject_impl< util::edge<G>, E > : + struct subject_impl< util::edge<G>, E > : subject_impl< const util::edge<G>, E > { void update_id(const util::edge_id_t& id); @@ -218,10 +219,6 @@ namespace mln # ifndef MLN_INCLUDE_ONLY - /*---------------------. - | Operators on edges. | - `---------------------*/ - namespace util { @@ -308,7 +305,6 @@ namespace mln void edge<G>::invalidate() { - //id_ = mln_max(unsigned); id_.invalidate(); } @@ -391,9 +387,9 @@ namespace mln namespace internal { - /*----------------------------------` - | subject_impl< const util::edge<G> | - \----------------------------------*/ + /*-----------------------------------------. + | subject_impl< const util::edge<G>, E >. | + `-----------------------------------------*/ template <typename G, typename E> inline @@ -460,14 +456,14 @@ namespace mln } - /*----------------------------------` - | subject_impl< util::edge<G> | - \----------------------------------*/ + /*-----------------------------------. + | subject_impl< util::edge<G>, E >. | + `-----------------------------------*/ template <typename G, typename E> inline void - subject_impl< util::edge<G>, E >::update_id(const util::edge_id_t& id) + subject_impl< util::edge<G>, E >::update_id(const util::edge_id_t& id) { return exact_().get_subject().update_id(id); } @@ -475,7 +471,7 @@ namespace mln template <typename G, typename E> inline void - subject_impl< util::edge<G>, E >::change_graph(const mlc_const(G)& g) + subject_impl< util::edge<G>, E >::change_graph(const mlc_const(G)& g) { return exact_().get_subject().change_graph(g); } @@ -483,7 +479,7 @@ namespace mln template <typename G, typename E> inline void - subject_impl< util::edge<G>, E >::invalidate() + subject_impl< util::edge<G>, E >::invalidate() { return exact_().get_subject().invalidate(); } diff --git a/milena/mln/util/graph.hh b/milena/mln/util/graph.hh index 2efec16..54d1c76 100644 --- a/milena/mln/util/graph.hh +++ b/milena/mln/util/graph.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -47,7 +48,7 @@ namespace mln namespace internal { - /// Data structure for \c mln::image2d<T>. + /// Data structure for mln::util::graph. template <> struct data<util::graph> { @@ -165,9 +166,11 @@ namespace mln /// \} /// Return the number of vertices in the graph. + // FIXME: Rename as nvertices. size_t v_nmax() const; /// Check whether a vertex id \p id_v exists in the graph. + // FIXME: Is the `_v' suffix really needed? bool has_v(const vertex_id_t& id_v) const; @@ -205,12 +208,12 @@ namespace mln const std::vector<util::ord_pair<vertex_id_t> >& edges() const; /// Return the number of edges in the graph. + // FIXME: Rename as nedges. size_t e_nmax() const; /// Return whether \p id_e is in the graph. - /// \@{ + // FIXME: Is the `_e' suffix really needed? bool has_e(const edge_id_t& id_e) const; - /// \@} /// Return the corresponding edge id if exists. If it is not, returns /// an invalid edge. @@ -287,9 +290,9 @@ namespace mln this->data_ = new mln::internal::data<util::graph>(nvertices); } - /*---------------. - | Vertex related | - `---------------*/ + /*--------------------------. + | Vertex-related services. | + `--------------------------*/ inline unsigned @@ -374,9 +377,9 @@ namespace mln } - /*--------------. - | Edges related | - `---------------*/ + /*-------------------------. + | Edges-related services. | + `-------------------------*/ inline edge_id_t @@ -388,6 +391,8 @@ namespace mln // Does this edge already exist in the graph? edge_data_t edge(id_v1, id_v2); + /* FIXME: This is not sound: the behavior of the algorithm + changes when NDEBUG is defined. */ # ifndef NDEBUG if (data_->edges_set_.find(edge) != data_->edges_set_.end ()) { diff --git a/milena/mln/util/line_graph.hh b/milena/mln/util/line_graph.hh index af11d02..f8104a4 100644 --- a/milena/mln/util/line_graph.hh +++ b/milena/mln/util/line_graph.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2008, 2009, 2010 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -28,7 +29,7 @@ /// \file /// -/// Definitions of undirected graphs. +/// Definition of an (undirected) line graph (adaptor). # include <mln/util/internal/graph_base.hh> # include <mln/util/internal/graph_iter.hh> @@ -49,7 +50,7 @@ namespace mln namespace internal { - /// Data structure for \c mln::image2d<T>. + /// Data structure for mln::util::line_graph<G>. template <typename G> struct data< util::line_graph<G> > { @@ -157,11 +158,14 @@ namespace mln /// \} /// Return the number of vertices in the graph. + // FIXME: Rename as nvertices. size_t v_nmax() const; - /// Check whether a vertex id \p id_v exists in the graph. + /// Check whether a vertex id \p id_v exists in the line graph. + // FIXME: Is the `_v' suffix really needed? bool has_v(const vertex_id_t& id_v) const; - /// Check whether an edge \p v exists in the graph. + + /// Check whether a vertex \p v exists in the line graph. template <typename G2> bool has(const util::vertex<G2>& v) const; @@ -188,12 +192,14 @@ namespace mln edge_t edge(const edge_id_t& e) const; /// Return the number of edges in the graph. + // FIXME: Rename as nedges. size_t e_nmax() const; - /// Return whether \p id_e is in the graph. + /// Return whether \p id_e is in the line graph. + // FIXME: Is the `_e' suffix really needed? bool has_e(const util::edge_id_t& id_e) const; - /// Return whether \p e is in the graph. + /// Return whether \p e is in the line graph. template <typename G2> bool has(const util::edge<G2>& e) const; diff --git a/milena/mln/util/vertex.hh b/milena/mln/util/vertex.hh index e1a151c..4f5f1b2 100644 --- a/milena/mln/util/vertex.hh +++ b/milena/mln/util/vertex.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory -// (LRDE) +// Copyright (C) 2008, 2009, 2010 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -165,8 +165,8 @@ namespace mln namespace internal { + /// subject_impl specialization (Proxy). /// \{ - /// subject_impl specialization (Proxy) template <typename G, typename E> struct subject_impl< const util::vertex<G>, E > @@ -174,6 +174,8 @@ namespace mln // Can't be provided since there is an ambiguity with the iterator's // member. // +// FIXME: Check the above statement again, as a naive test does +// not exhibit its conclusion. // bool is_valid() const; const G& graph() const; @@ -191,7 +193,7 @@ namespace mln }; template <typename G, typename E> - struct subject_impl< util::vertex<G>, E > : + struct subject_impl< util::vertex<G>, E > : subject_impl< const util::vertex<G>, E > { void invalidate(); @@ -396,6 +398,10 @@ namespace mln namespace internal { + /*-------------------------------------------. + | subject_impl< const util::vertex<G>, E >. | + `-------------------------------------------*/ + template <typename G, typename E> inline const E& @@ -471,10 +477,14 @@ namespace mln } + /*-------------------------------------. + | subject_impl< util::vertex<G>, E >. | + `-------------------------------------*/ + template <typename G, typename E> inline E& - subject_impl< util::vertex<G>, E >::exact_() + subject_impl< util::vertex<G>, E >::exact_() { return internal::force_exact<E>(*this); } @@ -482,7 +492,7 @@ namespace mln template <typename G, typename E> inline void - subject_impl< util::vertex<G>, E >::invalidate() + subject_impl< util::vertex<G>, E >::invalidate() { exact_().get_subject().invalidate(); } @@ -490,7 +500,7 @@ namespace mln template <typename G, typename E> inline void - subject_impl< util::vertex<G>, E >::change_graph(const G& g) + subject_impl< util::vertex<G>, E >::change_graph(const G& g) { exact_().get_subject().change_graph(g); } @@ -498,7 +508,7 @@ namespace mln template <typename G, typename E> inline void - subject_impl< util::vertex<G>, E >::update_id(const util::vertex_id_t& id) + subject_impl< util::vertex<G>, E >::update_id(const util::vertex_id_t& id) { exact_().get_subject().update_id(id); }; diff --git a/milena/tests/morpho/line_graph_image_morpho.cc b/milena/tests/morpho/line_graph_image_morpho.cc index 21ce087..eb45055 100644 --- a/milena/tests/morpho/line_graph_image_morpho.cc +++ b/milena/tests/morpho/line_graph_image_morpho.cc @@ -77,8 +77,8 @@ int main() g.add_edge(3, 4); g.add_edge(4, 2); - /// Create the corresponding line graph. - /// Edges are now considered as vertices. + // Create the corresponding line graph. + // Edges are now considered as vertices. util::line_graph<util::graph> lg(g); // Points associated to the line graph vertices (edges in the graph). -- 1.5.6.5