Olena-patches
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 9625 discussions
04 Nov '08
https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008/milena
Index: ChangeLog
from Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
Revamp directional convolution (was convolve_line).
* mln/core/concept/gdpoint.hh: Handle "Gdpoint * Scalar".
(set_binary_): New specialization.
(operator*): New overload.
(todo): Remove.
* mln/linear/log.hh: Update.
* mln/linear/sobel.hh: Update doc style.
* mln/linear/convolve.hh (pre): Fix.
* mln/linear/line_convolve.hh: Rename as...
* mln/linear/convolve_directional.hh: ...this and update.
* mln/linear/all.hh: Update.
* tests/linear/log.cc: Update.
* tests/linear/line_convolve.cc: Rename as...
* tests/linear/convolve_directional.cc: ...this.
* tests/linear/Makefile.am: Update.
* mln/make/w_window_line.hh: Rename as...
* mln/make/w_window_directional.hh: ...this and update.
* mln/make/all.hh: Update.
* tests/make/w_window_directional.cc: New.
* tests/make/Makefile.am: Update.
mln/core/concept/gdpoint.hh | 31 ++++++++++---
mln/linear/all.hh | 19 +++-----
mln/linear/convolve.hh | 2
mln/linear/convolve_directional.hh | 57 +++++++++++++-----------
mln/linear/log.hh | 83 +++++++++++++++++++++--------------
mln/linear/sobel.hh | 15 ++----
mln/make/all.hh | 10 ++--
mln/make/w_window_directional.hh | 56 ++++++++++++-----------
tests/linear/Makefile.am | 4 -
tests/linear/convolve_directional.cc | 17 +++----
tests/linear/log.cc | 11 ++--
tests/make/Makefile.am | 4 +
tests/make/w_window_directional.cc | 47 +++++++++++++++++++
13 files changed, 226 insertions(+), 130 deletions(-)
Index: tests/linear/log.cc
--- tests/linear/log.cc (revision 2798)
+++ tests/linear/log.cc (working copy)
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory (LRDE)
+// 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
@@ -52,18 +53,16 @@
border::thickness = 2;
- image2d<int_u8> lena;
+ image2d<int_u8> lena, out;
io::pgm::load(lena, MLN_IMG_DIR "/lena.pgm");
- image2d<int> tmp(lena.domain());
- linear::LoG_5x5(lena, tmp);
+ image2d<float> tmp = linear::LoG_5x5(lena);
{
- int min, max;
+ float min, max;
estim::min_max(tmp, min, max);
mln_assertion(min == -929 && max == 1260);
}
- image2d<int_u8> out(lena.domain());
level::stretch(tmp, out);
io::pgm::save(out, "out.pgm");
{
Index: tests/linear/Makefile.am
--- tests/linear/Makefile.am (revision 2798)
+++ tests/linear/Makefile.am (working copy)
@@ -6,16 +6,16 @@
check_PROGRAMS = \
convolve \
+ convolve_directional \
gaussian \
lap \
- line_convolve \
log \
sobel
convolve_SOURCES = convolve.cc
gaussian_SOURCES = gaussian.cc
lap_SOURCES = lap.cc
-line_convolve_SOURCES = line_convolve.cc
+convolve_directional_SOURCES = convolve_directional.cc
log_SOURCES = log.cc
sobel_SOURCES = sobel.cc
Index: tests/linear/convolve_directional.cc
--- tests/linear/convolve_directional.cc (revision 2780)
+++ tests/linear/convolve_directional.cc (working copy)
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory (LRDE)
+// 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
@@ -25,9 +26,9 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/linear/line_convolve.cc
+/*! \file tests/linear/convolve_directional.cc
*
- * \brief Tests on mln::linear::line_convolve.
+ * \brief Tests on mln::linear::convolve_directional.
*/
#include <mln/core/image/image2d.hh>
@@ -40,7 +41,7 @@
#include <mln/core/alias/w_window2d_float.hh>
#include <mln/border/thickness.hh>
-#include <mln/linear/line_convolve.hh>
+#include <mln/linear/convolve_directional.hh>
#include "tests/data.hh"
@@ -54,12 +55,10 @@
image2d<int_u8> lena;
io::pgm::load(lena, MLN_IMG_DIR "/lena.pgm");
- image2d<int_u8> out(lena.domain());
- image2d<float> tmp(lena.domain());
float ws[] = { .11, .11, .11, .11, .11, .11, .11, .11, .11 };
- linear::line_convolve(lena, ws, tmp);
+ image2d<float> tmp = linear::convolve_directional(lena, 1, ws);
- level::transform(tmp, math::round<int_u8>(), out);
- io::pgm::save(out, "out.pgm");
+ io::pgm::save(level::transform(tmp, math::round<int_u8>()),
+ "out.pgm");
}
Property changes on: tests/linear/convolve_directional.cc
___________________________________________________________________
Added: svn:mergeinfo
Index: tests/make/Makefile.am
--- tests/make/Makefile.am (revision 2798)
+++ tests/make/Makefile.am (working copy)
@@ -6,11 +6,13 @@
dual_neighb \
image2d \
mat \
- w_window
+ w_window \
+ w_window_directional
dual_neighb_SOURCES = dual_neighb.cc
image2d_SOURCES = image2d.cc
mat_SOURCES = mat.cc
w_window_SOURCES = w_window.cc
+w_window_directional_SOURCES = w_window_directional.cc
TESTS = $(check_PROGRAMS)
Index: tests/make/w_window_directional.cc
--- tests/make/w_window_directional.cc (revision 0)
+++ tests/make/w_window_directional.cc (revision 0)
@@ -0,0 +1,47 @@
+// Copyright (C) 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
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file tests/make/w_window_directional.cc
+///
+/// Tests on mln::make::w_window_directional.
+
+#include <mln/core/alias/w_window2d_int.hh>
+#include <mln/make/w_window_directional.hh>
+
+
+int main()
+{
+ using namespace mln;
+
+ int vals[] = { -1, 0, 1 };
+ w_window2d_int w_win = make::w_window_directional(right, vals);
+
+ int sum = 0;
+ for (unsigned i = 0; i < w_win.size(); ++i)
+ sum += w_win.w(i);
+ mln_assertion(sum == 0);
+}
Index: mln/core/concept/gdpoint.hh
--- mln/core/concept/gdpoint.hh (revision 2798)
+++ mln/core/concept/gdpoint.hh (working copy)
@@ -29,12 +29,9 @@
#ifndef MLN_CORE_CONCEPT_GDPOINT_HH
# define MLN_CORE_CONCEPT_GDPOINT_HH
-/*! \file mln/core/concept/delta_point_site.hh
- *
- * \brief Definition of the concept of mln::Gdpoint.
- *
- * \todo Add support for (s * dp)...
- */
+/// \file mln/core/concept/delta_point_site.hh
+///
+/// Definition of the concept of mln::Gdpoint.
# include <mln/core/concept/object.hh>
# include <mln/core/grids.hh>
@@ -52,6 +49,8 @@
namespace trait
{
+ // FIXME: Add promotion.
+
template < typename L, typename R >
struct set_binary_< op::plus,
mln::Gdpoint, L, mln::Gdpoint, R >
@@ -66,6 +65,14 @@
typedef L ret;
};
+ template < typename D, typename S >
+ struct set_binary_< op::times,
+ mln::Gdpoint, D,
+ mln::value::Scalar, S >
+ {
+ typedef D ret;
+ };
+
template <typename D>
struct set_unary_< op::ord, mln::Gdpoint, D >
{
@@ -123,6 +130,10 @@
L // FIXME: promote!
operator-(const Gdpoint<L>& lhs, const Gdpoint<R>& rhs);
+ template <typename D, typename S>
+ D // FIXME: promote!
+ operator*(const Gdpoint<D>& lhs, const value::Scalar<S>& rhs);
+
namespace convert
@@ -192,6 +203,14 @@
return tmp;
}
+ template <typename D, typename S>
+ D // FIXME: promote!
+ operator*(const Gdpoint<D>& lhs, const value::Scalar<S>& rhs)
+ {
+ D tmp = exact(lhs).to_vec() * exact(rhs);
+ return tmp;
+ }
+
namespace convert
{
Index: mln/linear/log.hh
--- mln/linear/log.hh (revision 2798)
+++ mln/linear/log.hh (working copy)
@@ -1,4 +1,5 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// 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,10 +29,9 @@
#ifndef MLN_LINEAR_LOG_HH
# define MLN_LINEAR_LOG_HH
-/*! \file mln/linear/log.hh
- *
- * \brief Laplacian of Gaussian.
- */
+/// \file mln/linear/log.hh
+///
+/// Laplacian of Gaussian.
# include <mln/linear/convolve.hh>
# include <mln/make/w_window2d.hh>
@@ -44,17 +44,21 @@
namespace linear
{
- template <typename I, typename O>
- void LoG_5x5(const Image<I>& input, Image<O>& output);
-
- template <typename I, typename O>
- void LoG_7x7(const Image<I>& input, Image<O>& output);
-
- template <typename I, typename O>
- void LoG_13x13(const Image<I>& input, Image<O>& output);
-
- template <typename I, typename O>
- void LoG_17x17(const Image<I>& input, Image<O>& output);
+ template <typename I>
+ mln_ch_convolve(I, int)
+ LoG_5x5(const Image<I>& input);
+
+ template <typename I>
+ mln_ch_convolve(I, int)
+ LoG_7x7(const Image<I>& input);
+
+ template <typename I>
+ mln_ch_convolve(I, int)
+ LoG_13x13(const Image<I>& input);
+
+ template <typename I>
+ mln_ch_convolve(I, int)
+ LoG_17x17(const Image<I>& input);
# ifndef MLN_INCLUDE_ONLY
@@ -62,26 +66,32 @@
// LoG_5x5 (Cf. Sonka et al., pages 85-86)
// This is also a "mexican hat".
- template <typename I, typename O>
+ template <typename I>
inline
- void LoG_5x5(const Image<I>& input, Image<O>& output)
+ mln_ch_convolve(I, int)
+ LoG_5x5(const Image<I>& input)
{
- mln_precondition(exact(output).domain() == exact(input).domain());
+ trace::entering("linear::LoG_5x5");
+ mln_precondition(exact(input).has_data());
int ws[] = { +0, 0, -1, 0, 0,
+0, -1, -2, -1, 0,
-1, -2, 16, -2, -1,
+0, -1, -2, -1, 0,
+0, 0, -1, 0, 0 };
- convolve(input, make::w_window2d(ws), output);
+ mln_ch_convolve(I, int) output = convolve(input, make::w_window2d(ws));
+ trace::exiting("linear::LoG_5x5");
+ return output;
}
// LoG 7x7 (Cf. Russ, p. 250)
- template <typename I, typename O>
+ template <typename I>
inline
- void LoG_7x7(const Image<I>& input, Image<O>& output)
+ mln_ch_convolve(I, int)
+ LoG_7x7(const Image<I>& input)
{
- mln_precondition(exact(output).domain() == exact(input).domain());
+ trace::entering("linear::LoG_7x7");
+ mln_precondition(exact(input).has_data());
int ws[] = { +0, 0, -1, -1, -1, 0, 0,
+0, -1, -3, -3, -3, -1, 0,
-1, -3, 0, 7, 0, -3, -1,
@@ -89,16 +99,20 @@
-1, -3, 0, 7, 0, -3, -1,
+0, -1, -3, -3, -3, -1, 0,
+0, 0, -1, -1, -1, 0, 0 };
- convolve(input, make::w_window2d(ws), output);
+ mln_ch_convolve(I, int) output = convolve(input, make::w_window2d(ws));
+ trace::exiting("linear::LoG_7x7");
+ return output;
}
// LoG 13x13 (Cf. Russ, p. 250)
- template <typename I, typename O>
+ template <typename I>
inline
- void LoG_13x13(const Image<I>& input, Image<O>& output)
+ mln_ch_convolve(I, int)
+ LoG_13x13(const Image<I>& input)
{
- mln_precondition(exact(output).domain() == exact(input).domain());
+ trace::entering("linear::LoG_13x13");
+ mln_precondition(exact(input).has_data());
int ws[] = { +0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0,
+0, 0, 0, -1, -1, -2, -2, -2, -1, -1, 0, 0, 0,
+0, 0, -2, -2, -3, -3, -4, -3, -3, -2, -2, 0, 0,
@@ -112,17 +126,20 @@
+0, 0, -2, -2, -3, -3, -4, -3, -3, -2, -2, 0, 0,
+0, 0, 0, -1, -1, -2, -2, -2, -1, -1, 0, 0, 0,
+0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0 };
- convolve(input, make::w_window2d(ws), output);
+ mln_ch_convolve(I, int) output = convolve(input, make::w_window2d(ws));
+ return output;
}
// LoG 17x17 (Cf. Sonka et al., pages 85-86)
- template <typename I, typename O>
+ template <typename I>
inline
- void LoG_17x17(const Image<I>& input, Image<O>& output)
+ mln_ch_convolve(I, int)
+ LoG_17x17(const Image<I>& input)
{
- mln_precondition(exact(output).domain() == exact(input).domain());
+ trace::entering("linear::LoG_17x17");
+ mln_precondition(exact(input).has_data());
int ws[] = { +0, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1, 0, 0, 0, 0, 0, 0,
+0, 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0,
+0, 0,-1,-1,-1,-2,-3,-3,-3,-3,-3,-2,-1,-1,-1, 0, 0,
@@ -140,7 +157,9 @@
+0, 0,-1,-1,-1,-2,-3,-3,-3,-3,-3,-2,-1,-1,-1, 0, 0,
+0, 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0,
+0, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1, 0, 0, 0, 0, 0, 0 };
- convolve(input, make::w_window2d(ws), output);
+ mln_ch_convolve(I, int) output = convolve(input, make::w_window2d(ws));
+ trace::exiting("linear::LoG_17x17");
+ return output;
}
# endif // ! MLN_INCLUDE_ONLY
Index: mln/linear/sobel.hh
--- mln/linear/sobel.hh (revision 2798)
+++ mln/linear/sobel.hh (working copy)
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory (LRDE)
+// 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,13 +29,11 @@
#ifndef MLN_LINEAR_SOBEL_HH
# define MLN_LINEAR_SOBEL_HH
-/*! \file mln/linear/sobel.hh
- *
- * \brief Sobel filter.
- *
- * \todo Extends to the case of other dimensions (only the 2-d case
- * is handled here).
- */
+/// \file mln/linear/sobel.hh
+///
+/// Sobel filter.
+/// \todo Extends to the case of other dimensions (only the 2-d case
+/// is handled here).
# include <mln/trait/ch_value.hh>
# include <mln/trait/value/nature.hh>
Index: mln/linear/all.hh
--- mln/linear/all.hh (revision 2798)
+++ mln/linear/all.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,10 +29,9 @@
#ifndef MLN_LINEAR_ALL_HH
# define MLN_LINEAR_ALL_HH
-/*! \file mln/linear/all.hh
- *
- * \brief File that includes all linear image processing routines.
- */
+/// \file mln/linear/all.hh
+///
+/// File that includes all linear image processing routines.
namespace mln
@@ -43,8 +43,7 @@
/// Namespace of linear image processing routines implementation details.
namespace impl
- {
- }
+ {}
/// Specializations of local linear routines.
namespace local
@@ -52,21 +51,21 @@
/// Namespace of local linear routines implementation details.
namespace impl
- {
- }
+ {}
}
}
-
}
+
# include <mln/linear/convolve.hh>
+# include <mln/linear/convolve_directional.hh>
# include <mln/linear/gaussian.hh>
# include <mln/linear/lap.hh>
-# include <mln/linear/line_convolve.hh>
# include <mln/linear/line_x2_convolve.hh>
# include <mln/linear/log.hh>
//# include <mln/linear/sobel.hh>
//# include <mln/linear/local/convolve.hh>
+
#endif // ! MLN_LINEAR_ALL_HH
Index: mln/linear/convolve_directional.hh
--- mln/linear/convolve_directional.hh (revision 2780)
+++ mln/linear/convolve_directional.hh (working copy)
@@ -1,4 +1,5 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// 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
@@ -25,16 +26,16 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_LINEAR_LINE_CONVOLVE_HH
-# define MLN_LINEAR_LINE_CONVOLVE_HH
+#ifndef MLN_LINEAR_CONVOLVE_DIRECTIONAL_HH
+# define MLN_LINEAR_CONVOLVE_DIRECTIONAL_HH
-/*! \file mln/linear/line_convolve.hh
- *
- * \brief Convolution by a line-shaped kernel.
- */
+/// mln/linear/convolve_directional.hh
+///
+/// Convolution by a line-shaped (directional) kernel.
# include <mln/linear/convolve.hh>
-# include <mln/make/w_window_line.hh>
+# include <mln/make/w_window_directional.hh>
+# include <mln/literal/zero.hh>
@@ -44,8 +45,9 @@
namespace linear
{
- /*! Convolution of an image \p input by a line-shaped weighted
- * window defined by the array of \p weights.
+ /*! Convolution of an image \p input by a line-shaped
+ * (directional) weighted window defined by the array of \p
+ * weights.
*
* \warning Computation of \p output(p) is performed with the
* value type of \p output.
@@ -53,26 +55,33 @@
* \warning The weighted window is used as-is, considering that
* its symmetrization is handled by the client.
*
- * \pre output.domain = input.domain
- *
- * \todo Optimize.
+ * \pre input.has_data
*/
- template <typename I, typename W, unsigned N, typename O>
- void line_convolve(const Image<I>& input, W (&weights)[N],
- Image<O>& output);
+ template <typename I, typename W, unsigned S>
+ mln_ch_convolve(I, W)
+ convolve_directional(const Image<I>& input, unsigned dir, W (&weights)[S]);
# ifndef MLN_INCLUDE_ONLY
- template <typename I, typename W, unsigned N, typename O>
+ template <typename I, typename W, unsigned S>
inline
- void line_convolve(const Image<I>& input, W (&weights)[N],
- Image<O>& output)
+ mln_ch_convolve(I, W)
+ convolve_directional(const Image<I>& input, unsigned dir, W (&weights)[S])
{
- mln_precondition(exact(output).domain() == exact(input).domain());
- linear::convolve(input,
- make::w_window_line<mln_dpsite(I)>(weights),
- output);
+ trace::entering("linear::convolve_directional");
+ mln_precondition(exact(input).has_data());
+ typedef mln_site(I) P;
+ mln_precondition(dir < P::dim);
+
+ typedef mln_delta(P) D;
+ D dp = literal::zero;
+ ++dp[dir];
+ w_window<D,W> w_win = make::w_window_directional(dp, weights);
+ mln_ch_convolve(I, W) output = convolve(input, w_win);
+
+ trace::exiting("linear::convolve_directional");
+ return output;
}
# endif // ! MLN_INCLUDE_ONLY
@@ -82,4 +91,4 @@
} // end of namespace mln
-#endif // ! MLN_LINEAR_LINE_CONVOLVE_HH
+#endif // ! MLN_LINEAR_CONVOLVE_DIRECTIONAL_HH
Property changes on: mln/linear/convolve_directional.hh
___________________________________________________________________
Added: svn:mergeinfo
Index: mln/linear/convolve.hh
--- mln/linear/convolve.hh (revision 2798)
+++ mln/linear/convolve.hh (working copy)
@@ -54,7 +54,7 @@
* \warning The weighted window is used as-is, considering that
* its symmetrization is handled by the client.
*
- * \pre output.domain = input.domain
+ * \pre input.has_data
*/
template <typename I, typename W>
mln_ch_convolve(I, W)
Index: mln/make/all.hh
--- mln/make/all.hh (revision 2798)
+++ mln/make/all.hh (working copy)
@@ -29,10 +29,9 @@
#ifndef MLN_MAKE_ALL_HH
# define MLN_MAKE_ALL_HH
-/*! \file mln/make/all.hh
- *
- * \brief File that includes all make routines.
- */
+/// \file mln/make/all.hh
+///
+/// File that includes all make routines.
namespace mln
@@ -64,7 +63,8 @@
# include <mln/make/w_window2d_int.hh>
# include <mln/make/w_window3d.hh>
# include <mln/make/w_window3d_int.hh>
-# include <mln/make/w_window_line.hh>
+# include <mln/make/w_window_directional.hh>
# include <mln/make/win_chamfer.hh>
+
#endif // ! MLN_MAKE_ALL_HH
Index: mln/make/w_window_directional.hh
--- mln/make/w_window_directional.hh (revision 2780)
+++ mln/make/w_window_directional.hh (working copy)
@@ -1,4 +1,5 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// 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
@@ -25,15 +26,15 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_MAKE_W_WINDOW_LINE_HH
-# define MLN_MAKE_W_WINDOW_LINE_HH
+#ifndef MLN_MAKE_W_WINDOW_DIRECTIONAL_HH
+# define MLN_MAKE_W_WINDOW_DIRECTIONAL_HH
-/*! \file mln/make/w_window_line.hh
- *
- * \brief Routine to create an horizontal mln::w_window.
- */
+/// \file mln/make/w_window_directional.hh
+///
+/// Routine to create a directional mln::w_window.
# include <mln/core/w_window.hh>
+# include <mln/core/concept/gdpoint.hh>
# include <mln/literal/zero.hh>
@@ -43,33 +44,36 @@
namespace make
{
- /*! \brief Create an horizontal centered and symmetrical
- * mln::w_window.
- *
- * The free parameter \c D is a type of delta-point.
- *
- * \pre The window length \c L has to be odd.
- *
- * \return A window.
- */
+ /// Create a directional centered weighted window.
+ ///
+ /// \param[in] dp A delta-point to set the orientation.
+ /// \param[in] weights An array of weights.
+ /// \return A weighted window.
+ ///
+ /// The window length \c L has to be odd.
template <typename D, typename W, unsigned L>
- mln::w_window<D,W> w_window_line(W (&w)[L]);
+ mln::w_window<D,W>
+ w_window_directional(const Gdpoint<D>& dp, W (&weights)[L]);
# ifndef MLN_INCLUDE_ONLY
template <typename D, typename W, unsigned L>
inline
- mln::w_window<D,W> w_window_line(W (&w)[L])
+ mln::w_window<D,W>
+ w_window_directional(const Gdpoint<D>& dp_, W (&weights)[L])
{
- mln_precondition(L % 2 == 1);
+ mlc_bool(L % 2 == 1)::check();
+ int half = L / 2;
+
+ const D& dp = exact(dp_);
+ D zero = literal::zero;
+ mln_precondition(dp != zero);
+
mln::w_window<D,W> w_win;
- D dp = literal::zero;
- for (unsigned i = 0; i < L; ++i)
- {
- dp[D::dim - 1] = i - L / 2;
- w_win.insert(w[i], dp);
- }
+ for (int i = - half; i <= half; ++i)
+ if (weights[half + i] != 0)
+ w_win.insert(weights[half + i], zero + dp * i);
return w_win;
}
@@ -80,4 +84,4 @@
} // end of namespace mln
-#endif // ! MLN_MAKE_W_WINDOW_LINE_HH
+#endif // ! MLN_MAKE_W_WINDOW_DIRECTIONAL_HH
Property changes on: mln/make/w_window_directional.hh
___________________________________________________________________
Added: svn:mergeinfo
1
0
04 Nov '08
URL: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008/milena
ChangeLog:
2008-11-04 Matthieu Garrigues <garrigues(a)lrde.epita.fr>
Fix include problem in dilation with a fwd decl.
* mln/morpho/dilation.hh: FIXME: this is not a nice fix. Fix it.
---
dilation.hh | 4 ++++
1 file changed, 4 insertions(+)
Index: branches/cleanup-2008/milena/mln/morpho/dilation.hh
===================================================================
--- branches/cleanup-2008/milena/mln/morpho/dilation.hh (revision 2797)
+++ branches/cleanup-2008/milena/mln/morpho/dilation.hh (revision 2798)
@@ -44,6 +44,10 @@
namespace morpho
{
+ // FIXME: fwd decl to fix problem with includes.hh.
+ template <typename I, typename W>
+ mln_concrete(I)
+ erosion(const Image<I>& input, const Window<W>& win);
/// Morphological dilation using windows.
///
1
0
From: Jimmy Ma <jimmy.ma(a)lrde.epita.fr>
To: olena-patches(a)lrde.epita.fr
Subject: r2797: Cleanup OCR preprocessing
URL: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008/milena/sandbox
ChangeLog:
2008-11-04 Jimmy Ma <jimmy.ma(a)lrde.epita.fr>
Cleanup OCR preprocessing.
* garrigues/ocr/ocr_with_preprocess.cc: Cleanup.
* garrigues/ocr/skeleton.hh,
garrigues/ocr/tesseract_wrap.hh: Fix typos.
---
ocr_with_preprocess.cc | 92 +++++++++++++++++++++----------------------------
skeleton.hh | 4 +-
tesseract_wrap.hh | 2 -
3 files changed, 44 insertions(+), 54 deletions(-)
Index: branches/cleanup-2008/milena/sandbox/garrigues/ocr/skeleton.hh
===================================================================
--- branches/cleanup-2008/milena/sandbox/garrigues/ocr/skeleton.hh (revision 2796)
+++ branches/cleanup-2008/milena/sandbox/garrigues/ocr/skeleton.hh (revision 2797)
@@ -87,7 +87,7 @@
mln_niter_(neighb2d) n(nbh, p);
for_all(p)
{
- if (!input(p) || dist_map(p) < 20)
+ if (!input(p) || dist_map(p) < 10)
continue;
unsigned nb_eq = 0;
@@ -120,7 +120,7 @@
int vals[] = { 0, 9, 0, 9, 0,
9, 6, 4, 6, 9,
- 0, 4, 0, 4, 0, // Values of distaces.
+ 0, 4, 0, 4, 0, // Values of distances.
9, 6, 4, 6, 9,
0, 9, 0, 9, 0 };
Index: branches/cleanup-2008/milena/sandbox/garrigues/ocr/tesseract_wrap.hh
===================================================================
--- branches/cleanup-2008/milena/sandbox/garrigues/ocr/tesseract_wrap.hh (revision 2796)
+++ branches/cleanup-2008/milena/sandbox/garrigues/ocr/tesseract_wrap.hh (revision 2797)
@@ -74,7 +74,7 @@
template <typename T>
char* tesseract(const char* lang, const mln::image2d<T>& input, float* score)
{
- assert(!score);
+ assert(score);
TessWrap::InitWithLanguage(NULL, NULL, lang, NULL, false, 0, NULL);
char* s = TessWrap::TesseractRect(
(unsigned char*) input.buffer(),
Index: branches/cleanup-2008/milena/sandbox/garrigues/ocr/ocr_with_preprocess.cc
===================================================================
--- branches/cleanup-2008/milena/sandbox/garrigues/ocr/ocr_with_preprocess.cc (revision 2796)
+++ branches/cleanup-2008/milena/sandbox/garrigues/ocr/ocr_with_preprocess.cc (revision 2797)
@@ -58,12 +58,13 @@
#include <mln/logical/not.hh>
#include "tesseract_wrap.hh"
+#include <mln/subsampling/subsampling.hh>
// _COMPILATION_
// g++ -DNDEBUG -O3 -I../../.. ocr.cc -L/usr/lib -ltesseract_full -lpthread
-#if 0
-# define TEST(Var) \
+#if 1
+# define OCR_TEST(Var) \
{ \
image2d<int_u8> tmp = clone(cast_image<int_u8>(Var)); \
float score = 0.f; \
@@ -72,7 +73,7 @@
delete[] s; \
}
#else
-# define TEST(Var)
+# define OCR_TEST(Var)
#endif
@@ -92,80 +93,69 @@
mln::border::thickness = 0;
io::pbm::load(input, argv[1]);
- TEST(input);
+ OCR_TEST(input);
// Resize
- //std::cerr << "Enlarge the image" << std::endl;
image2d<int_u8> enlarged = enlarge(logical::not_(input), 2);
- //image2d<bool> enlarged = geom::resize(logical::not_(input), 4);
- io::pgm::save(enlarged, "1_enlarge.pgm");
- TEST(enlarged);
+ io::pgm::save(enlarged, std::string(argv[2]) + "_1_enlarge.pgm");
+ OCR_TEST(enlarged);
// Blur.
- //std::cerr << "Blur the enlarged image" << std::endl;
-// image2d<int_u8> blur = linear::gaussian(fun::p2v::ternary(pw::value(enlarged), pw::cst(int_u8(255)), pw::cst(int_u8(0))) | enlarged.domain(),
-// 4);
- image2d<int_u8> blur = linear::gaussian(clone(enlarged), 1);
-
- io::pgm::save(blur, "2_gaussian.pgm");
- TEST(blur);
-
- // Crest.
-// image2d<bool> c = crest(enlarged, blur, c4());
-// io::pbm::save(c, "3_crest.pbm");
-
+ image2d<int_u8> blur = linear::gaussian(enlarged, 2);
+ io::pgm::save(blur, std::string(argv[2]) + "_2_gaussian.pgm");
+ OCR_TEST(blur);
// Threshold
image2d<bool> binary;
{
- //std::cerr << "Threshold the blur image" << std::endl;
-
-// // Compute the histogram.
-// histo::data<int_u8> h = histo::compute(blur);
-// image1d<std::size_t> h_ima = convert::to_image(h);
-
-// // Blur the histogram.
-// h_ima = linear::gaussian(h_ima, 4);
-
-// // Get the maxima.
-// unsigned n;
-// image1d<std::size_t> maxs = regional_maxima(h_ima, c2(), n);
-// mln_piter()
-
-
initialize(binary, blur);
mln_piter_(image2d<int_u8>) p(blur.domain());
for_all(p)
binary(p) = blur(p) > 100;
- io::pbm::save(binary, "3_threshold.pbm");
- TEST(binary);
+ io::pbm::save(binary, std::string(argv[2]) + "_3_threshold.pbm");
+ OCR_TEST(binary);
}
// Skeleton
- //std::cerr << "Compute the skeleton" << std::endl;
image2d<bool> skel = skeleton(binary, 4);
- io::pbm::save(skel, "4_skeleton.pbm");
- TEST(skel);
+ io::pbm::save(skel, std::string(argv[2]) + "_4_skeleton.pbm");
+ OCR_TEST(skel);
// Dilation
- //std::cerr << "Dilate the skeleton" << std::endl;
- win::octagon2d oct(7);
- for (unsigned i = 0; i < 1; i++)
- skel = morpho::dilation(skel, oct);
+ image2d<bool> dilate;
+ win::octagon2d oct(5);
+ { // FIXME?
+#if 1
+ image2d<int_u8> tmp;
+ initialize(tmp, skel);
+ initialize(dilate, skel);
+ mln_piter_(image2d<int_u8>) p(tmp.domain());
+ for_all(p)
+ tmp(p) = skel(p);
+ tmp = morpho::dilation(tmp, oct);
+ for_all(p)
+ dilate(p) = tmp(p);
+#else
+ // Should be using this but it doesn't work :(
+ dilate = morpho::dilation(skel, oct);
+#endif
+ }
+
+ io::pbm::save(dilate, std::string(argv[2]) + "_5_dilation.pbm");
+ OCR_TEST(dilate);
- io::pbm::save(skel, "5_dilation.pbm");
- TEST(skel);
+ // Subsampling
+ image2d<bool> subsampled = subsampling::subsampling(dilate, dpoint2d(1,1), 2);
+ io::pbm::save(subsampled, std::string(argv[2]) + "_6_subsampling.pbm");
+ OCR_TEST(subsampled);
- io::pbm::save(skel, argv[2]);
+ io::pbm::save(subsampled, argv[2]);
- //std::cerr << "Text recognition" << std::endl;
- //char* s = tesseract("fra", clone(logical::not_(skel)));
{
- image2d<int_u8> tmp = clone(cast_image<int_u8>(skel));
float score = 0;
- char* s = tesseract("fra", tmp, &score);
+ char* s = tesseract("fra", subsampled, &score);
std::cerr << "Tesseract result: (score " << score << ")" << std::endl;
std::cout << s;
delete[] s;
1
0
From: Jimmy Ma <jimmy.ma(a)lrde.epita.fr>
To: olena-patches(a)lrde.epita.fr
Subject: milena r2796: Fix gaussian algorithm
URL: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008/milena
ChangeLog:
2008-11-04 Jimmy Ma <jimmy.ma(a)lrde.epita.fr>
Fix gaussian algorithm.
* mln/linear/gaussian.hh: Add missing initializations.
---
gaussian.hh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
Index: branches/cleanup-2008/milena/mln/linear/gaussian.hh
===================================================================
--- branches/cleanup-2008/milena/mln/linear/gaussian.hh (revision 2795)
+++ branches/cleanup-2008/milena/mln/linear/gaussian.hh (revision 2796)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004 EPITA Research and Development
+// Copyright (C) 2001, 2002, 2003, 2004, 2008 EPITA Research and Development
// Laboratory
//
// This file is part of the Olena Library. This library is free
@@ -432,6 +432,7 @@
mln_precondition(exact(input).has_data());
mln_concrete(I) output;
+ initialize(output, input);
impl::recursivefilter_coef_
coef(1.68f, 3.735f,
@@ -453,6 +454,7 @@
mln_precondition(exact(input).has_data());
mln_concrete(I) output;
+ initialize(output, input);
impl::recursivefilter_coef_
coef(-0.6472f, -4.531f,
@@ -473,6 +475,7 @@
mln_precondition(exact(input).has_data());
mln_concrete(I) output;
+ initialize(output, input);
impl::recursivefilter_coef_
coef(-1.331f, 3.661f,
1
0
From: Jimmy Ma <jimmy.ma(a)lrde.epita.fr>
To: olena-patches(a)lrde.epita.fr
Subject: milena r2795: Fix subsampling algorithm
URL: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008/milena
ChangeLog:
2008-11-04 Jimmy Ma <jimmy.ma(a)lrde.epita.fr>
Fix subsampling algorithm.
* mln/subsampling/subsampling.hh: Use mln_deduce instead of
mln_dpsite.
---
subsampling.hh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Index: branches/cleanup-2008/milena/mln/subsampling/subsampling.hh
===================================================================
--- branches/cleanup-2008/milena/mln/subsampling/subsampling.hh (revision 2794)
+++ branches/cleanup-2008/milena/mln/subsampling/subsampling.hh (revision 2795)
@@ -51,7 +51,7 @@
inline
mln_concrete(I)
subsampling(const Image<I>& input,
- const mln_dpsite(I)& first_p,
+ const mln_deduce(I, site, delta)& first_p,
const mln_coord(I)& gap);
# ifndef MLN_INCLUDE_ONLY
@@ -65,7 +65,7 @@
inline
mln_concrete(image2d<T>)
subsampling_(const image2d<T>& input,
- const mln_dpoint(image2d<T>)& first_p,
+ const mln_deduce(image2d<T>, site, delta)& first_p,
const mln_coord(image2d<T>)& gap)
{
trace::entering("subsampling::impl::subsampling_");
@@ -92,7 +92,7 @@
inline
mln_concrete(I)
subsampling(const Image<I>& input,
- const mln_dpsite(I)& first_p,
+ const mln_deduce(I, site, delta)& first_p,
const mln_coord(I)& gap)
{
trace::entering("subsampling::subsampling");
1
0
* mln/util/all.hh,
* mln/trait/op/all.hh,
* mln/set/all.hh,
* mln/morpho/all.hh,
* mln/math/all.hh,
* mln/make/all.hh,
* mln/linear/all.hh,
* mln/level/all.hh,
* mln/labeling/all.hh,
* mln/geom/all.hh,
* mln/fun/v2v/all.hh,
* mln/fun/p2b/all.hh,
* mln/fun/i2v/all.hh,
* mln/fun/all.hh,
* mln/essential/1d.hh,
* mln/essential/2d.hh,
* mln/essential/3d.hh,
* mln/debug/all.hh,
* mln/core/trait/all.hh,
* mln/core/site_set/all.hh,
* mln/core/image/all.hh,
* mln/convert/all.hh,
* mln/canvas/browsing/all.hh,
* mln/accu/all.hh: update includes.
* mln/algebra/quat.hh: avoid a warning.
* mln/accu/essential.hh,
* mln/algebra/all.hh,
* mln/algebra/essential.hh,
* mln/arith/essential.hh,
* mln/binarization/all.hh,
* mln/binarization/essential.hh,
* mln/border/essential.hh,
* mln/canvas/browsing/essential.hh,
* mln/canvas/essential.hh,
* mln/canvas/morpho/essential.hh,
* mln/convert/essential.hh,
* mln/core/all.hh,
* mln/core/def/essential.hh,
* mln/core/essential.hh,
* mln/core/image/essential.hh,
* mln/core/routine/essential.hh,
* mln/core/site_set/essential.hh,
* mln/core/trait/essential.hh,
* mln/debug/essential.hh,
* mln/display/essential.hh,
* mln/draw/essential.hh,
* mln/essential/routine.hh,
* mln/estim/essential.hh,
* mln/extension/essential.hh,
* mln/fun/essential.hh,
* mln/fun/i2v/essential.hh,
* mln/fun/p2b/essential.hh,
* mln/fun/p2v/essential.hh,
* mln/fun/v2b/all.hh,
* mln/fun/v2b/essential.hh,
* mln/fun/v2v/essential.hh,
* mln/fun/vv2v/all.hh,
* mln/fun/vv2v/essential.hh,
* mln/fun/x2p/all.hh,
* mln/fun/x2p/essential.hh,
* mln/fun/x2v/essential.hh,
* mln/fun/x2x/essential.hh,
* mln/geom/essential.hh,
* mln/histo/essential.hh,
* mln/io/essential.hh,
* mln/labeling/essential.hh,
* mln/level/approx/essential.hh,
* mln/level/essential.hh,
* mln/level/naive/essential.hh,
* mln/linear/essential.hh,
* mln/literal/essential.hh,
* mln/logical/essential.hh,
* mln/make/essential.hh,
* mln/math/essential.hh,
* mln/metal/essential.hh,
* mln/morpho/elementary/essential.hh,
* mln/morpho/essential.hh,
* mln/neighb/all.hh,
* mln/neighb/essential.hh,
* mln/norm/essential.hh,
* mln/pw/essential.hh,
* mln/registration/all.hh,
* mln/registration/essential.hh,
* mln/set/essential.hh,
* mln/subsampling/all.hh,
* mln/subsampling/essential.hh,
* mln/tag/essential.hh,
* mln/test/essential.hh,
* mln/topo/all.hh,
* mln/topo/essential.hh,
* mln/trace/essential.hh,
* mln/trait/essential.hh,
* mln/trait/op/essential.hh,
* mln/trait/value/essential.hh,
* mln/transform/all.hh,
* mln/transform/essential.hh,
* mln/util/essential.hh,
* mln/value/builtin/essential.hh,
* mln/value/concept/essential.hh,
* mln/value/essential.hh,
* mln/value/internal/essential.hh,
* mln/win/essential.hh: new headers.
* mln/extension/all.hh: update comments.
* mln/core/image/hexa_piter.hh: fix wrong template argument number.
* mln/core/site_set/box.hh: fix comment.
* mln/core/trait/op_mult.hh: fix a wrong namespace.
* mln/core/clock_neighb.hh: fix wrong include.
* mln/level/transform.hh: remove useless include.
* sandbox/scribo/demat.hh: use new essential headers.
---
milena/ChangeLog | 125 +++++++++++++++++++-
milena/mln/accu/all.hh | 8 ++
milena/mln/{extension/all.hh => accu/essential.hh} | 37 +++---
milena/mln/{extension => algebra}/all.hh | 23 ++--
.../{core/trait/all.hh => algebra/essential.hh} | 26 +---
milena/mln/algebra/quat.hh | 1 +
.../mln/{core/trait/all.hh => arith/essential.hh} | 26 +---
milena/mln/{extension => binarization}/all.hh | 21 ++--
.../trait/all.hh => binarization/essential.hh} | 26 +---
.../mln/{extension/all.hh => border/essential.hh} | 30 ++---
milena/mln/canvas/browsing/all.hh | 9 +-
.../trait/all.hh => canvas/browsing/essential.hh} | 28 +----
.../mln/{extension/all.hh => canvas/essential.hh} | 29 ++---
.../trait/all.hh => canvas/morpho/essential.hh} | 24 +---
milena/mln/convert/all.hh | 1 +
.../{core/trait/all.hh => convert/essential.hh} | 27 ++---
milena/mln/{extension => core}/all.hh | 49 +++++---
milena/mln/core/clock_neighb.hh | 3 +-
milena/mln/core/{trait/all.hh => def/essential.hh} | 27 +---
milena/mln/{extension/all.hh => core/essential.hh} | 32 ++---
milena/mln/core/image/all.hh | 26 +++--
.../{extension/all.hh => core/image/essential.hh} | 37 +++---
milena/mln/core/image/hexa_piter.hh | 3 +-
.../core/{trait/all.hh => routine/essential.hh} | 30 ++----
milena/mln/core/site_set/all.hh | 6 +-
milena/mln/core/site_set/box.hh | 1 -
milena/mln/core/site_set/{all.hh => essential.hh} | 17 +--
milena/mln/core/trait/all.hh | 4 +-
milena/mln/core/trait/{all.hh => essential.hh} | 24 +---
milena/mln/core/trait/op_mult.hh | 2 +-
milena/mln/debug/all.hh | 6 +-
.../mln/{core/trait/all.hh => debug/essential.hh} | 26 +---
.../{core/trait/all.hh => display/essential.hh} | 26 +---
.../mln/{core/trait/all.hh => draw/essential.hh} | 28 ++---
milena/mln/essential/1d.hh | 33 +++---
milena/mln/essential/2d.hh | 68 ++++++------
milena/mln/essential/3d.hh | 34 +++---
milena/mln/essential/routine.hh | 74 ++++++++++++
.../mln/{core/trait/all.hh => estim/essential.hh} | 26 +---
milena/mln/extension/all.hh | 2 +-
milena/mln/extension/{all.hh => essential.hh} | 24 +---
milena/mln/fun/all.hh | 6 +-
milena/mln/{extension/all.hh => fun/essential.hh} | 38 +++----
milena/mln/fun/i2v/all.hh | 3 +-
.../{core/trait/all.hh => fun/i2v/essential.hh} | 26 +---
milena/mln/fun/p2b/all.hh | 3 +-
.../{core/trait/all.hh => fun/p2b/essential.hh} | 26 +---
.../{core/trait/all.hh => fun/p2v/essential.hh} | 26 +---
milena/mln/fun/{i2v => v2b}/all.hh | 20 ++--
.../{core/trait/all.hh => fun/v2b/essential.hh} | 26 +---
milena/mln/fun/v2v/all.hh | 6 +-
.../mln/{extension/all.hh => fun/v2v/essential.hh} | 30 ++---
milena/mln/fun/{p2b => vv2v}/all.hh | 21 ++--
.../{core/trait/all.hh => fun/vv2v/essential.hh} | 27 ++---
milena/mln/fun/{p2b => x2p}/all.hh | 22 ++--
.../{core/trait/all.hh => fun/x2p/essential.hh} | 26 +---
.../{core/trait/all.hh => fun/x2v/essential.hh} | 26 +---
.../{core/trait/all.hh => fun/x2x/essential.hh} | 26 +---
milena/mln/geom/all.hh | 17 +++-
milena/mln/geom/{all.hh => essential.hh} | 20 ++--
.../mln/{core/trait/all.hh => histo/essential.hh} | 26 +---
milena/mln/{extension/all.hh => io/essential.hh} | 29 ++---
milena/mln/labeling/all.hh | 3 +-
.../{core/trait/all.hh => labeling/essential.hh} | 27 ++---
milena/mln/level/all.hh | 5 +-
.../trait/all.hh => level/approx/essential.hh} | 26 ++---
milena/mln/level/{all.hh => essential.hh} | 46 ++------
.../trait/all.hh => level/naive/essential.hh} | 27 ++---
milena/mln/level/transform.hh | 1 -
milena/mln/linear/all.hh | 6 +-
.../mln/{core/trait/all.hh => linear/essential.hh} | 26 +---
.../{core/trait/all.hh => literal/essential.hh} | 26 +---
.../{core/trait/all.hh => logical/essential.hh} | 26 +---
milena/mln/make/all.hh | 8 +-
milena/mln/{extension/all.hh => make/essential.hh} | 38 +++----
milena/mln/math/all.hh | 10 +-
.../mln/{core/trait/all.hh => math/essential.hh} | 26 +---
.../mln/{core/trait/all.hh => metal/essential.hh} | 26 +---
milena/mln/morpho/all.hh | 2 +
.../all.hh => morpho/elementary/essential.hh} | 30 ++----
milena/mln/morpho/{all.hh => essential.hh} | 49 ++------
milena/mln/{extension => neighb}/all.hh | 37 ++++--
.../mln/{core/trait/all.hh => neighb/essential.hh} | 26 +---
.../mln/{core/trait/all.hh => norm/essential.hh} | 27 ++---
milena/mln/{core/trait/all.hh => pw/essential.hh} | 26 +---
milena/mln/{extension => registration}/all.hh | 24 ++--
.../trait/all.hh => registration/essential.hh} | 26 +---
milena/mln/set/all.hh | 4 +-
milena/mln/{core/trait/all.hh => set/essential.hh} | 26 +---
milena/mln/{extension => subsampling}/all.hh | 21 ++--
.../trait/all.hh => subsampling/essential.hh} | 26 +---
milena/mln/{core/trait/all.hh => tag/essential.hh} | 26 +---
.../mln/{core/trait/all.hh => test/essential.hh} | 26 +---
milena/mln/{extension => topo}/all.hh | 37 ++++--
.../mln/{core/trait/all.hh => topo/essential.hh} | 26 +---
.../mln/{core/trait/all.hh => trace/essential.hh} | 26 +---
.../mln/{core/trait/all.hh => trait/essential.hh} | 30 ++---
milena/mln/trait/op/all.hh | 1 +
.../{core/trait/all.hh => trait/op/essential.hh} | 26 +---
.../trait/all.hh => trait/value/essential.hh} | 24 +---
milena/mln/{extension => transform}/all.hh | 19 ++--
.../{core/trait/all.hh => transform/essential.hh} | 26 +---
milena/mln/util/all.hh | 17 +++-
milena/mln/{extension/all.hh => util/essential.hh} | 33 ++---
.../trait/all.hh => value/builtin/essential.hh} | 25 +---
.../trait/all.hh => value/concept/essential.hh} | 25 +---
.../mln/{extension/all.hh => value/essential.hh} | 34 +++---
.../trait/all.hh => value/internal/essential.hh} | 26 +---
milena/mln/{extension/all.hh => win/essential.hh} | 28 ++---
milena/sandbox/scribo/demat.hh | 69 +----------
110 files changed, 1113 insertions(+), 1561 deletions(-)
copy milena/mln/{extension/all.hh => accu/essential.hh} (71%)
copy milena/mln/{extension => algebra}/all.hh (76%)
copy milena/mln/{core/trait/all.hh => algebra/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => arith/essential.hh} (78%)
copy milena/mln/{extension => binarization}/all.hh (79%)
copy milena/mln/{core/trait/all.hh => binarization/essential.hh} (78%)
copy milena/mln/{extension/all.hh => border/essential.hh} (76%)
copy milena/mln/{core/trait/all.hh => canvas/browsing/essential.hh} (78%)
copy milena/mln/{extension/all.hh => canvas/essential.hh} (76%)
copy milena/mln/{core/trait/all.hh => canvas/morpho/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => convert/essential.hh} (78%)
copy milena/mln/{extension => core}/all.hh (56%)
copy milena/mln/core/{trait/all.hh => def/essential.hh} (78%)
copy milena/mln/{extension/all.hh => core/essential.hh} (72%)
copy milena/mln/{extension/all.hh => core/image/essential.hh} (67%)
copy milena/mln/core/{trait/all.hh => routine/essential.hh} (77%)
copy milena/mln/core/site_set/{all.hh => essential.hh} (79%)
copy milena/mln/core/trait/{all.hh => essential.hh} (82%)
copy milena/mln/{core/trait/all.hh => debug/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => display/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => draw/essential.hh} (78%)
create mode 100644 milena/mln/essential/routine.hh
copy milena/mln/{core/trait/all.hh => estim/essential.hh} (78%)
copy milena/mln/extension/{all.hh => essential.hh} (79%)
copy milena/mln/{extension/all.hh => fun/essential.hh} (70%)
copy milena/mln/{core/trait/all.hh => fun/i2v/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => fun/p2b/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => fun/p2v/essential.hh} (78%)
copy milena/mln/fun/{i2v => v2b}/all.hh (79%)
copy milena/mln/{core/trait/all.hh => fun/v2b/essential.hh} (78%)
copy milena/mln/{extension/all.hh => fun/v2v/essential.hh} (76%)
copy milena/mln/fun/{p2b => vv2v}/all.hh (77%)
copy milena/mln/{core/trait/all.hh => fun/vv2v/essential.hh} (78%)
copy milena/mln/fun/{p2b => x2p}/all.hh (79%)
copy milena/mln/{core/trait/all.hh => fun/x2p/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => fun/x2v/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => fun/x2x/essential.hh} (78%)
copy milena/mln/geom/{all.hh => essential.hh} (79%)
copy milena/mln/{core/trait/all.hh => histo/essential.hh} (78%)
copy milena/mln/{extension/all.hh => io/essential.hh} (76%)
copy milena/mln/{core/trait/all.hh => labeling/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => level/approx/essential.hh} (78%)
copy milena/mln/level/{all.hh => essential.hh} (67%)
copy milena/mln/{core/trait/all.hh => level/naive/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => linear/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => literal/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => logical/essential.hh} (78%)
copy milena/mln/{extension/all.hh => make/essential.hh} (72%)
copy milena/mln/{core/trait/all.hh => math/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => metal/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => morpho/elementary/essential.hh} (77%)
copy milena/mln/morpho/{all.hh => essential.hh} (64%)
copy milena/mln/{extension => neighb}/all.hh (67%)
copy milena/mln/{core/trait/all.hh => neighb/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => norm/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => pw/essential.hh} (78%)
copy milena/mln/{extension => registration}/all.hh (74%)
copy milena/mln/{core/trait/all.hh => registration/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => set/essential.hh} (78%)
copy milena/mln/{extension => subsampling}/all.hh (79%)
copy milena/mln/{core/trait/all.hh => subsampling/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => tag/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => test/essential.hh} (78%)
copy milena/mln/{extension => topo}/all.hh (58%)
copy milena/mln/{core/trait/all.hh => topo/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => trace/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => trait/essential.hh} (75%)
copy milena/mln/{core/trait/all.hh => trait/op/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => trait/value/essential.hh} (78%)
copy milena/mln/{extension => transform}/all.hh (79%)
copy milena/mln/{core/trait/all.hh => transform/essential.hh} (78%)
copy milena/mln/{extension/all.hh => util/essential.hh} (75%)
copy milena/mln/{core/trait/all.hh => value/builtin/essential.hh} (78%)
copy milena/mln/{core/trait/all.hh => value/concept/essential.hh} (78%)
copy milena/mln/{extension/all.hh => value/essential.hh} (66%)
copy milena/mln/{core/trait/all.hh => value/internal/essential.hh} (78%)
copy milena/mln/{extension/all.hh => win/essential.hh} (76%)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 82589d5..0cb96df 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,128 @@
2008-11-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Improve 1D, 2D and 3D essential headers.
+
+ * mln/util/all.hh,
+ * mln/trait/op/all.hh,
+ * mln/set/all.hh,
+ * mln/morpho/all.hh,
+ * mln/math/all.hh,
+ * mln/make/all.hh,
+ * mln/linear/all.hh,
+ * mln/level/all.hh,
+ * mln/labeling/all.hh,
+ * mln/geom/all.hh,
+ * mln/fun/v2v/all.hh,
+ * mln/fun/p2b/all.hh,
+ * mln/fun/i2v/all.hh,
+ * mln/fun/all.hh,
+ * mln/essential/1d.hh,
+ * mln/essential/2d.hh,
+ * mln/essential/3d.hh,
+ * mln/debug/all.hh,
+ * mln/core/trait/all.hh,
+ * mln/core/site_set/all.hh,
+ * mln/core/image/all.hh,
+ * mln/convert/all.hh,
+ * mln/canvas/browsing/all.hh,
+ * mln/accu/all.hh: update includes.
+
+ * mln/algebra/quat.hh: avoid a warning.
+
+ * mln/accu/essential.hh,
+ * mln/algebra/all.hh,
+ * mln/algebra/essential.hh,
+ * mln/arith/essential.hh,
+ * mln/binarization/all.hh,
+ * mln/binarization/essential.hh,
+ * mln/border/essential.hh,
+ * mln/canvas/browsing/essential.hh,
+ * mln/canvas/essential.hh,
+ * mln/canvas/morpho/essential.hh,
+ * mln/convert/essential.hh,
+ * mln/core/all.hh,
+ * mln/core/def/essential.hh,
+ * mln/core/essential.hh,
+ * mln/core/image/essential.hh,
+ * mln/core/routine/essential.hh,
+ * mln/core/site_set/essential.hh,
+ * mln/core/trait/essential.hh,
+ * mln/debug/essential.hh,
+ * mln/display/essential.hh,
+ * mln/draw/essential.hh,
+ * mln/essential/routine.hh,
+ * mln/estim/essential.hh,
+ * mln/extension/essential.hh,
+ * mln/fun/essential.hh,
+ * mln/fun/i2v/essential.hh,
+ * mln/fun/p2b/essential.hh,
+ * mln/fun/p2v/essential.hh,
+ * mln/fun/v2b/all.hh,
+ * mln/fun/v2b/essential.hh,
+ * mln/fun/v2v/essential.hh,
+ * mln/fun/vv2v/all.hh,
+ * mln/fun/vv2v/essential.hh,
+ * mln/fun/x2p/all.hh,
+ * mln/fun/x2p/essential.hh,
+ * mln/fun/x2v/essential.hh,
+ * mln/fun/x2x/essential.hh,
+ * mln/geom/essential.hh,
+ * mln/histo/essential.hh,
+ * mln/io/essential.hh,
+ * mln/labeling/essential.hh,
+ * mln/level/approx/essential.hh,
+ * mln/level/essential.hh,
+ * mln/level/naive/essential.hh,
+ * mln/linear/essential.hh,
+ * mln/literal/essential.hh,
+ * mln/logical/essential.hh,
+ * mln/make/essential.hh,
+ * mln/math/essential.hh,
+ * mln/metal/essential.hh,
+ * mln/morpho/elementary/essential.hh,
+ * mln/morpho/essential.hh,
+ * mln/neighb/all.hh,
+ * mln/neighb/essential.hh,
+ * mln/norm/essential.hh,
+ * mln/pw/essential.hh,
+ * mln/registration/all.hh,
+ * mln/registration/essential.hh,
+ * mln/set/essential.hh,
+ * mln/subsampling/all.hh,
+ * mln/subsampling/essential.hh,
+ * mln/tag/essential.hh,
+ * mln/test/essential.hh,
+ * mln/topo/all.hh,
+ * mln/topo/essential.hh,
+ * mln/trace/essential.hh,
+ * mln/trait/essential.hh,
+ * mln/trait/op/essential.hh,
+ * mln/trait/value/essential.hh,
+ * mln/transform/all.hh,
+ * mln/transform/essential.hh,
+ * mln/util/essential.hh,
+ * mln/value/builtin/essential.hh,
+ * mln/value/concept/essential.hh,
+ * mln/value/essential.hh,
+ * mln/value/internal/essential.hh,
+ * mln/win/essential.hh: new headers.
+
+ * mln/extension/all.hh: update comments.
+
+ * mln/core/image/hexa_piter.hh: fix wrong template argument number.
+
+ * mln/core/site_set/box.hh: fix comment.
+
+ * mln/core/trait/op_mult.hh: fix a wrong namespace.
+
+ * mln/core/clock_neighb.hh: fix wrong include.
+
+ * mln/level/transform.hh: remove useless include.
+
+ * sandbox/scribo/demat.hh: use new essential headers.
+
+2008-11-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Add io::txt::save.
* mln/io/all.hh: update.
@@ -34,7 +157,6 @@
* mln/logical/not.hh,
* mln/logical/not.spe.hh: Write a dedicated version of not_inplace.
-
2008-11-03 Guillaume Lazzara <z(a)lrde.epita.fr>
Add trace::warning.
@@ -71,7 +193,6 @@
* mln/core/routine/initialize.hh: Use trace::stop and trace::resume.
-
2008-10-30 Guillaume Lazzara <z(a)lrde.epita.fr>
Add more colors and fix global constants initialization in mln/values
diff --git a/milena/mln/accu/all.hh b/milena/mln/accu/all.hh
index 4677cc4..76b09d9 100644
--- a/milena/mln/accu/all.hh
+++ b/milena/mln/accu/all.hh
@@ -60,8 +60,13 @@ namespace mln
# include <mln/accu/bbox.hh>
# include <mln/accu/count.hh>
# include <mln/accu/convolve.hh>
+//# include <mln/accu/count_adjacent_vertices.hh>
+# include <mln/accu/height.hh>
# include <mln/accu/histo.hh>
+# include <mln/accu/land.hh>
+# include <mln/accu/line.hh>
# include <mln/accu/max.hh>
+# include <mln/accu/max_h.hh>
# include <mln/accu/mean.hh>
# include <mln/accu/median_h.hh>
# include <mln/accu/min.hh>
@@ -69,7 +74,10 @@ namespace mln
# include <mln/accu/min_max.hh>
# include <mln/accu/nil.hh>
# include <mln/accu/pair.hh>
+# include <mln/accu/rank.hh>
# include <mln/accu/sum.hh>
+# include <mln/accu/tuple.hh>
+# include <mln/accu/volume.hh>
#endif // ! MLN_ACCU_ALL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/accu/essential.hh
similarity index 71%
copy from milena/mln/extension/all.hh
copy to milena/mln/accu/essential.hh
index 4458715..34124ba 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/accu/essential.hh
@@ -25,28 +25,27 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_ACCU_ESSENTIAL_HH_
+# define MLN_ACCU_ESSENTIAL_HH_
-/*! \file mln/pw/all.hh
+/*! \file mln/accu/essential.hh
*
- * \brief File that includes all extension materials.
+ * \brief File that includes the most useful accumulator types.
*
- * \todo Also include "extension images" + "extended"?
*/
+# include <mln/accu/bbox.hh>
+# include <mln/accu/count.hh>
+# include <mln/accu/histo.hh>
+# include <mln/accu/max.hh>
+# include <mln/accu/max_h.hh>
+# include <mln/accu/mean.hh>
+# include <mln/accu/median_h.hh>
+# include <mln/accu/min.hh>
+# include <mln/accu/min_h.hh>
+# include <mln/accu/min_max.hh>
+# include <mln/accu/rank.hh>
+# include <mln/accu/sum.hh>
+
+#endif // !MLN_ACCU_ESSENTIAL_HH_
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/algebra/all.hh
similarity index 76%
copy from milena/mln/extension/all.hh
copy to milena/mln/algebra/all.hh
index 4458715..ba62843 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/algebra/all.hh
@@ -25,28 +25,29 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_ALGEBRA_ALL_HH
+# define MLN_ALGEBRA_ALL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/algebra/essential.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes essential "point-wise" expression tools.
*/
namespace mln
{
- /// Namespace of extension tools.
- namespace extension {}
+ /// Namespace of "point-wise" expression tools.
+ namespace algebra {}
} // end of namespace mln
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
+# include <mln/algebra/h_mat.hh>
+# include <mln/algebra/h_vec.hh>
+# include <mln/algebra/mat.hh>
+# include <mln/algebra/quat.hh>
+# include <mln/algebra/vec.hh>
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_ALGEBRA_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/algebra/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/algebra/essential.hh
index 6071a75..69343d6 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/algebra/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_ALGEBRA_ESSENTIAL_HH
+# define MLN_ALGEBRA_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/algebra/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential "point-wise" expression tools.
*/
+# include <mln/algebra/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_ALGEBRA_ESSENTIAL_HH
diff --git a/milena/mln/algebra/quat.hh b/milena/mln/algebra/quat.hh
index b8dc3f5..4e44e90 100644
--- a/milena/mln/algebra/quat.hh
+++ b/milena/mln/algebra/quat.hh
@@ -432,6 +432,7 @@ namespace mln
mln_precondition(theta > - pi - mln_epsilon(float)
&& theta < pi + mln_epsilon(float));
mln_precondition(about_equal(norm::l2(uv), 1.f));
+ (void) pi;
this->v_[0] = cos(theta);
float sint = sin(theta);
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/arith/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/arith/essential.hh
index 6071a75..325338f 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/arith/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_ARITH_ESSENTIAL_HH
+# define MLN_ARITH_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/arith/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes the most useful arithmetic materials.
*/
+# include <mln/arith/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_ARITH_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/binarization/all.hh
similarity index 79%
copy from milena/mln/extension/all.hh
copy to milena/mln/binarization/all.hh
index 4458715..69dd6c6 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/binarization/all.hh
@@ -25,28 +25,25 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_BINARIZATION_ALL_HH
+# define MLN_BINARIZATION_ALL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/binarization/all.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes all "point-wise" expression tools.
*/
namespace mln
{
- /// Namespace of extension tools.
- namespace extension {}
+ /// Namespace of "point-wise" expression tools.
+ namespace binarization {}
} // end of namespace mln
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
+# include <mln/binarization/binarization.hh>
+# include <mln/binarization/threshold.hh>
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_BINARIZATION_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/binarization/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/binarization/essential.hh
index 6071a75..4797b37 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/binarization/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_BINARIZATION_ESSENTIAL_HH
+# define MLN_BINARIZATION_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/binarization/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential "point-wise" expression tools.
*/
+// NOTHING YET
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_BINARIZATION_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/border/essential.hh
similarity index 76%
copy from milena/mln/extension/all.hh
copy to milena/mln/border/essential.hh
index 4458715..a22a22d 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/border/essential.hh
@@ -25,28 +25,20 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_BORDER_ESSENTIAL_HH
+# define MLN_BORDER_ESSENTIAL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/border/essential.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes the most useful border-related routines.
*/
-
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
+# include <mln/border/adjust.hh>
+# include <mln/border/duplicate.hh>
+//# include <mln/border/equalize.hh>
+# include <mln/border/fill.hh>
+# include <mln/border/resize.hh>
+# include <mln/border/thickness.hh>
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_BORDER_ESSENTIAL_HH
diff --git a/milena/mln/canvas/browsing/all.hh b/milena/mln/canvas/browsing/all.hh
index 558a586..22a2968 100644
--- a/milena/mln/canvas/browsing/all.hh
+++ b/milena/mln/canvas/browsing/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -45,9 +45,14 @@ namespace mln
}
-# include <mln/canvas/browsing/directional.hh>
+# include <mln/canvas/browsing/backdiagonal2d.hh>
+# include <mln/canvas/browsing/diagonal2d.hh>
# include <mln/canvas/browsing/dir_struct_elt_incr_update.hh>
+# include <mln/canvas/browsing/directional.hh>
+# include <mln/canvas/browsing/hyper_directional.hh>
# include <mln/canvas/browsing/fwd.hh>
# include <mln/canvas/browsing/snake_fwd.hh>
+# include <mln/canvas/browsing/snake_generic.hh>
+# include <mln/canvas/browsing/snake_vert.hh>
#endif // ! MLN_CANVAS_BROWSING_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/canvas/browsing/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/canvas/browsing/essential.hh
index 6071a75..58447c6 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/canvas/browsing/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,12 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_CANVAS_BROWSING_ESSENTIAL_HH_
+# define MLN_CANVAS_BROWSING_ESSENTIAL_HH_
-/*! \file mln/core/trait/all.hh
- *
- * \brief File that includes all traits.
- */
+# include <mln/canvas/browsing/directional.hh>
+# include <mln/canvas/browsing/fwd.hh>
+# include <mln/canvas/browsing/snake_fwd.hh>
+#endif // !MLN_CANVAS_BROWSING_ESSENTIAL_HH_
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/canvas/essential.hh
similarity index 76%
copy from milena/mln/extension/all.hh
copy to milena/mln/canvas/essential.hh
index 4458715..ca13128 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/canvas/essential.hh
@@ -25,28 +25,17 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_CANVAS_ESSENTIAL_HH
+# define MLN_CANVAS_ESSENTIAL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/canvas/essential.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes the most useful canvas-related routines.
*/
+# include <mln/canvas/browsing/essential.hh>
+# include <mln/canvas/morpho/essential.hh>
+# include <mln/canvas/chamfer.hh>
+# include <mln/canvas/labeling.hh>
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_CANVAS_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/canvas/morpho/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/canvas/morpho/essential.hh
index 6071a75..4b6089e 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/canvas/morpho/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_CANVAS_MORPHO_ESSENTIAL_HH
+# define MLN_CANVAS_MORPHO_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/canvas/morpho/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes morphological canvas-related routines.
*/
-namespace mln
-{
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_CANVAS_MORPHO_ESSENTIAL_HH
diff --git a/milena/mln/convert/all.hh b/milena/mln/convert/all.hh
index 42250cb..eebb850 100644
--- a/milena/mln/convert/all.hh
+++ b/milena/mln/convert/all.hh
@@ -41,6 +41,7 @@ namespace mln
}
# include <mln/convert/from_to.hh>
+# include <mln/convert/to.hh>
# include <mln/convert/to_dpoint.hh>
# include <mln/convert/to_fun.hh>
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/convert/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/convert/essential.hh
index 6071a75..31c629b 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/convert/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,15 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_CONVERT_ESSENTIAL_HH
+# define MLN_CONVERT_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/convert/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes the most useful conversion-related routines.
*/
+# include <mln/convert/from_to.hh>
+# include <mln/convert/to.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_CONVERT_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/core/all.hh
similarity index 56%
copy from milena/mln/extension/all.hh
copy to milena/mln/core/all.hh
index 4458715..a9c177c 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/core/all.hh
@@ -25,28 +25,43 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_CORE_ALL_HH_
+# define MLN_CORE_ALL_HH_
-/*! \file mln/pw/all.hh
+/*! \file mln/core/all.hh
*
- * \brief File that includes all extension materials.
+ * \brief File that includes all the core routines.
*
- * \todo Also include "extension images" + "extended"?
*/
+# include <mln/core/a_point_of.hh>
+# include <mln/core/category.hh>
+# include <mln/core/clock_neighb.hh>
+# include <mln/core/clock_neighb2d.hh>
+# include <mln/core/dpoints_pixter.hh>
+# include <mln/core/contract.hh>
+# include <mln/core/dpoint.hh>
+# include <mln/core/grids.hh>
+# include <mln/core/faces_psite.hh>
+# include <mln/core/macros.hh>
+# include <mln/core/neighb.hh>
+# include <mln/core/pixel.hh>
+# include <mln/core/w_window.hh>
+# include <mln/core/window.hh>
+# include <mln/core/point.hh>
+# include <mln/core/pixter1d.hh>
+# include <mln/core/pixter2d.hh>
+# include <mln/core/pixter3d.hh>
+# include <mln/core/box_runstart_piter.hh>
+# include <mln/core/dpsites_piter.hh>
+# include <mln/core/tags.hh>
+# include <mln/core/var.hh>
-namespace mln
-{
+# include <mln/core/def/all.hh>
+# include <mln/core/image/all.hh>
+# include <mln/core/trait/all.hh>
+# include <mln/core/routine/all.hh>
+# include <mln/core/site_set/all.hh>
- /// Namespace of extension tools.
- namespace extension {}
+#endif // !MLN_CORE_ALL_HH_
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
diff --git a/milena/mln/core/clock_neighb.hh b/milena/mln/core/clock_neighb.hh
index 34f1864..f51243e 100644
--- a/milena/mln/core/clock_neighb.hh
+++ b/milena/mln/core/clock_neighb.hh
@@ -34,7 +34,6 @@
*/
# include <mln/core/concept/neighborhood.hh>
-# include <mln/core/internal/dpsites_impl.hh>
# include <mln/core/dpoint.hh>
# include <mln/core/site_set/p_array.hh>
@@ -58,7 +57,7 @@ namespace mln
typedef D dpoint;
/// Site associated type.
- typedef mln_point(D) point;
+ typedef mln_psite(D) point;
/*! \brief Site_Iterator type to browse the points of a generic
* neighborhood w.r.t. the ordering of delta-points.
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/core/def/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/core/def/essential.hh
index 6071a75..de77a4f 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/core/def/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 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
@@ -25,26 +25,13 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_CORE_DEF_ESSENTIAL_HH
+# define MLN_CORE_DEF_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
- *
- * \brief File that includes all traits.
- */
+/// mln/core/def/essential.hh
+/// File that includes essential core definitions.
+# include <mln/core/def/all.hh>
-namespace mln
-{
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_CORE_DEF_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/core/essential.hh
similarity index 72%
copy from milena/mln/extension/all.hh
copy to milena/mln/core/essential.hh
index 4458715..17dfff5 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/core/essential.hh
@@ -25,28 +25,24 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_CORE_ESSENTIAL_HH_
+# define MLN_CORE_ESSENTIAL_HH_
-/*! \file mln/pw/all.hh
+/*! \file mln/core/essential.hh
*
- * \brief File that includes all extension materials.
+ * \brief File that includes essential the core routines.
*
- * \todo Also include "extension images" + "extended"?
*/
+# include <mln/core/contract.hh>
+# include <mln/core/macros.hh>
+# include <mln/core/tags.hh>
+# include <mln/core/var.hh>
-namespace mln
-{
+# include <mln/core/def/essential.hh>
+# include <mln/core/image/essential.hh>
+# include <mln/core/trait/essential.hh>
+# include <mln/core/routine/essential.hh>
+# include <mln/core/site_set/essential.hh>
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // !MLN_CORE_ESSENTIAL_HH_
diff --git a/milena/mln/core/image/all.hh b/milena/mln/core/image/all.hh
index 6b68a6f..2f2d819 100644
--- a/milena/mln/core/image/all.hh
+++ b/milena/mln/core/image/all.hh
@@ -32,12 +32,11 @@
*
* \brief File that includes all image types.
*
- * \todo Make it effective after having moved image-defining files.
*/
-# include <mln/core/image/bgraph_image.hh>
-# include <mln/core/image/bgraph_psite.hh>
+//# include <mln/core/image/bgraph_image.hh>
+//# include <mln/core/image/bgraph_psite.hh>
# include <mln/core/image/cast_image.hh>
# include <mln/core/image/ch_piter.hh>
# include <mln/core/image/complex_image.hh>
@@ -45,6 +44,12 @@
# include <mln/core/image/complex_neighborhoods.hh>
# include <mln/core/image/complex_window_piter.hh>
# include <mln/core/image/complex_windows.hh>
+# include <mln/core/image/image2d.hh>
+# include <mln/core/image/flat_image.hh>
+# include <mln/core/image/image_if.hh>
+# include <mln/core/image/sub_image.hh>
+# include <mln/core/image/fi_adaptor.hh>
+# include <mln/core/image/image1d.hh>
# include <mln/core/image/decorated_image.hh>
# include <mln/core/image/extended.hh>
# include <mln/core/image/extension_fun.hh>
@@ -53,7 +58,7 @@
# include <mln/core/image/flat_image.hh>
# include <mln/core/image/graph_elt_neighborhood.hh>
# include <mln/core/image/graph_elt_window.hh>
-# include <mln/core/image/graph_image.hh>
+//# include <mln/core/image/graph_image.hh>
# include <mln/core/image/graph_neighborhood_piter.hh>
# include <mln/core/image/graph_window_piter.hh>
# include <mln/core/image/hexa.hh>
@@ -65,12 +70,12 @@
# include <mln/core/image/image_if.hh>
# include <mln/core/image/interpolated.hh>
# include <mln/core/image/lazy_image.hh>
-# include <mln/core/image/line_graph_elt_neighborhood.hh>
-# include <mln/core/image/line_graph_elt_window.hh>
-# include <mln/core/image/line_graph_image.hh>
-# include <mln/core/image/line_graph_neighborhood_piter.hh>
-# include <mln/core/image/line_graph_psite.hh>
-# include <mln/core/image/line_graph_window_piter.hh>
+//# include <mln/core/image/line_graph_elt_neighborhood.hh>
+//# include <mln/core/image/line_graph_elt_window.hh>
+//# include <mln/core/image/line_graph_image.hh>
+//# include <mln/core/image/line_graph_neighborhood_piter.hh>
+//# include <mln/core/image/line_graph_psite.hh>
+//# include <mln/core/image/line_graph_window_piter.hh>
# include <mln/core/image/mono_obased_rle_encode.hh>
# include <mln/core/image/mono_obased_rle_image.hh>
# include <mln/core/image/mono_rle_encode.hh>
@@ -92,6 +97,5 @@
# include <mln/core/image/value_enc_image.hh>
# include <mln/core/image/value_encode.hh>
-//# include <mln/core/image/fi_adaptor.hh>
#endif // ! MLN_CORE_IMAGE_ALL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/core/image/essential.hh
similarity index 67%
copy from milena/mln/extension/all.hh
copy to milena/mln/core/image/essential.hh
index 4458715..5b67315 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/core/image/essential.hh
@@ -25,28 +25,25 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_CORE_IMAGE_ESSENTIAL_HH
+# define MLN_CORE_IMAGE_ESSENTIAL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/core/image/essential.hh
*
- * \brief File that includes all extension materials.
+ * \brief File that includes essential image types.
*
- * \todo Also include "extension images" + "extended"?
*/
-
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
+# include <mln/core/image/cast_image.hh>
+# include <mln/core/image/image2d.hh>
+# include <mln/core/image/image_if.hh>
+# include <mln/core/image/sub_image.hh>
+# include <mln/core/image/image1d.hh>
+# include <mln/core/image/extended.hh>
+# include <mln/core/image/extension_fun.hh>
+# include <mln/core/image/extension_ima.hh>
+# include <mln/core/image/extension_val.hh>
+# include <mln/core/image/image3d.hh>
+# include <mln/core/image/sub_image_if.hh>
+
+#endif // ! MLN_CORE_IMAGE_ESSENTIAL_HH
diff --git a/milena/mln/core/image/hexa_piter.hh b/milena/mln/core/image/hexa_piter.hh
index ab0cd7d..ad6f36f 100644
--- a/milena/mln/core/image/hexa_piter.hh
+++ b/milena/mln/core/image/hexa_piter.hh
@@ -52,11 +52,12 @@ namespace mln
template <typename S>
class hexa_fwd_piter_
: public internal::piter_adaptor_< mln_fwd_piter(S),
+ S,
hexa_fwd_piter_<S> >
{
typedef mln_fwd_piter(S) adaptee_;
typedef hexa_fwd_piter_<S> self_;
- typedef internal::piter_adaptor_<adaptee_, self_> super_;
+ typedef internal::piter_adaptor_<adaptee_, S, self_> super_;
public:
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/core/routine/essential.hh
similarity index 77%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/core/routine/essential.hh
index 6071a75..7968313 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/core/routine/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_CORE_ROUTINE_ESSENTIAL_HH_
+# define MLN_CORE_ROUTINE_ESSENTIAL_HH_
-/*! \file mln/core/trait/all.hh
- *
- * \brief File that includes all traits.
- */
+# include <mln/core/routine/clone.hh>
+# include <mln/core/routine/exact.hh>
+# include <mln/core/routine/extend.hh>
+# include <mln/core/routine/initialize.hh>
+# include <mln/core/routine/ops.hh>
+#endif // !MLN_CORE_ROUTINE_ESSENTIAL_HH_
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
diff --git a/milena/mln/core/site_set/all.hh b/milena/mln/core/site_set/all.hh
index b919782..50f8143 100644
--- a/milena/mln/core/site_set/all.hh
+++ b/milena/mln/core/site_set/all.hh
@@ -35,12 +35,15 @@
# include <mln/core/site_set/box.hh>
-# include <mln/core/site_set/p_line2d.hh>
# include <mln/core/site_set/p_array.hh>
# include <mln/core/site_set/p_centered.hh>
+# include <mln/core/site_set/p_complex.hh>
+# include <mln/core/site_set/p_edges.hh>
+# include <mln/core/site_set/p_faces.hh>
# include <mln/core/site_set/p_if.hh>
# include <mln/core/site_set/p_image.hh>
# include <mln/core/site_set/p_key.hh>
+# include <mln/core/site_set/p_line2d.hh>
# include <mln/core/site_set/p_mutable_array_of.hh>
# include <mln/core/site_set/p_priority.hh>
# include <mln/core/site_set/p_queue.hh>
@@ -49,6 +52,7 @@
# include <mln/core/site_set/p_set.hh>
# include <mln/core/site_set/p_set_of.hh>
# include <mln/core/site_set/p_vaccess.hh>
+# include <mln/core/site_set/p_vertices.hh>
#endif // ! MLN_CORE_SITE_SET_ALL_HH
diff --git a/milena/mln/core/site_set/box.hh b/milena/mln/core/site_set/box.hh
index 7e8a29f..93973fe 100644
--- a/milena/mln/core/site_set/box.hh
+++ b/milena/mln/core/site_set/box.hh
@@ -144,7 +144,6 @@ namespace mln
box<P> to_larger(unsigned b) const;
/// Return the approximated central site of this box.
- /// FIXME: Do we want a routine as well like geom::bbox()?
P center() const;
/// Test that the box owns valid data, i.e., is initialized and
diff --git a/milena/mln/core/site_set/all.hh b/milena/mln/core/site_set/essential.hh
similarity index 79%
copy from milena/mln/core/site_set/all.hh
copy to milena/mln/core/site_set/essential.hh
index b919782..38c9a04 100644
--- a/milena/mln/core/site_set/all.hh
+++ b/milena/mln/core/site_set/essential.hh
@@ -25,30 +25,23 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_SITE_SET_ALL_HH
-# define MLN_CORE_SITE_SET_ALL_HH
+#ifndef MLN_CORE_SITE_SET_ESSENTIAL_HH
+# define MLN_CORE_SITE_SET_ESSENTIAL_HH
-/*! \file mln/core/site_set/all.hh
+/*! \file mln/core/site_set/essential.hh
*
- * \brief File that includes all site_set types.
+ * \brief File that includes essential site_set types.
*/
-
# include <mln/core/site_set/box.hh>
-# include <mln/core/site_set/p_line2d.hh>
# include <mln/core/site_set/p_array.hh>
-# include <mln/core/site_set/p_centered.hh>
# include <mln/core/site_set/p_if.hh>
-# include <mln/core/site_set/p_image.hh>
-# include <mln/core/site_set/p_key.hh>
-# include <mln/core/site_set/p_mutable_array_of.hh>
# include <mln/core/site_set/p_priority.hh>
# include <mln/core/site_set/p_queue.hh>
# include <mln/core/site_set/p_queue_fast.hh>
# include <mln/core/site_set/p_run.hh>
# include <mln/core/site_set/p_set.hh>
# include <mln/core/site_set/p_set_of.hh>
-# include <mln/core/site_set/p_vaccess.hh>
-#endif // ! MLN_CORE_SITE_SET_ALL_HH
+#endif // ! MLN_CORE_SITE_SET_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/core/trait/all.hh
index 6071a75..db65ddd 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/core/trait/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -44,7 +44,9 @@ namespace mln
}
+# include <mln/core/trait/op_mult.hh>
# include <mln/core/trait/pixter.hh>
+# include <mln/core/trait/qlf_value.hh>
#endif // ! MLN_CORE_TRAIT_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/core/trait/essential.hh
similarity index 82%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/core/trait/essential.hh
index 6071a75..e46b67e 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/core/trait/essential.hh
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_CORE_TRAIT_ESSENTIAL_HH
+# define MLN_CORE_TRAIT_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/core/trait/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential traits.
*/
+# include <mln/core/trait/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_CORE_TRAIT_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/op_mult.hh b/milena/mln/core/trait/op_mult.hh
index 8785728..460b54a 100644
--- a/milena/mln/core/trait/op_mult.hh
+++ b/milena/mln/core/trait/op_mult.hh
@@ -43,7 +43,7 @@
namespace mln
{
- namespace metal
+ namespace algebra
{
template <unsigned n, typename T>
diff --git a/milena/mln/debug/all.hh b/milena/mln/debug/all.hh
index 82d6802..e2db2f4 100644
--- a/milena/mln/debug/all.hh
+++ b/milena/mln/debug/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -46,11 +46,13 @@ namespace mln
}
+# include <mln/debug/colorize.hh>
# include <mln/debug/format.hh>
+# include <mln/debug/graph.hh>
# include <mln/debug/iota.hh>
# include <mln/debug/println.hh>
# include <mln/debug/println_with_border.hh>
-# include <mln/debug/graph.hh>
+# include <mln/debug/put_word.hh>
#endif // ! MLN_DEBUG_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/debug/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/debug/essential.hh
index 6071a75..122a6c0 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/debug/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_DEBUG_ESSENTIAL_HH
+# define MLN_DEBUG_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/debug/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential debug-related routines.
*/
+# include <mln/debug/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_DEBUG_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/display/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/display/essential.hh
index 6071a75..a32e4cc 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/display/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_DISPLAY_ESSENTIAL_HH
+# define MLN_DISPLAY_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/display/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential display routines.
*/
+# include <mln/display/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_DISPLAY_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/draw/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/draw/essential.hh
index 6071a75..3252203 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/draw/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,16 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_DRAW_ESSENTIAL_HH
+# define MLN_DRAW_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/draw/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential draw-related routines.
*/
+# include <mln/draw/box.hh>
+# include <mln/draw/label.hh>
+# include <mln/draw/line.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_DRAW_ESSENTIAL_HH
diff --git a/milena/mln/essential/1d.hh b/milena/mln/essential/1d.hh
index 742a676..cdcb52a 100644
--- a/milena/mln/essential/1d.hh
+++ b/milena/mln/essential/1d.hh
@@ -28,22 +28,23 @@
#ifndef MLN_ESSENTIAL_1D_HH_
# define MLN_ESSENTIAL_1D_HH_
-# include <core/image/image1d.hh>
-# include <core/pixter1d.hh>
-# include <core/alias/box1d.hh>
-# include <core/alias/dpoint1d.hh>
-# include <core/alias/neighb1d.hh>
-# include <core/alias/point1d.hh>
-# include <core/alias/w_window1d_float.hh>
-# include <core/alias/w_window1d_int.hh>
-# include <core/alias/window1d.hh>
-# include <geom/size1d.hh>
-# include <make/box1d.hh>
-# include <make/image1d.hh>
-# include <make/w_window1d.hh>
-# include <make/w_window1d_int.hh>
-# include <metal/array1d.hh>
-# include <win/segment1d.hh>
+# include <mln/core/image/image1d.hh>
+# include <mln/core/pixter1d.hh>
+# include <mln/core/alias/box1d.hh>
+# include <mln/core/alias/dpoint1d.hh>
+# include <mln/core/alias/neighb1d.hh>
+# include <mln/core/alias/point1d.hh>
+# include <mln/core/alias/w_window1d_float.hh>
+# include <mln/core/alias/w_window1d_int.hh>
+# include <mln/core/alias/window1d.hh>
+# include <mln/geom/size1d.hh>
+# include <mln/make/box1d.hh>
+# include <mln/make/w_window1d.hh>
+# include <mln/make/w_window1d_int.hh>
+# include <mln/metal/array1d.hh>
+# include <mln/win/segment1d.hh>
+
+# include <mln/essential/routine.hh>
#endif // ! MLN_ESSENTIAL_1D_HH_
diff --git a/milena/mln/essential/2d.hh b/milena/mln/essential/2d.hh
index e41cf4e..d31dafe 100644
--- a/milena/mln/essential/2d.hh
+++ b/milena/mln/essential/2d.hh
@@ -28,39 +28,39 @@
#ifndef MLN_ESSENTIAL_2D_HH_
# define MLN_ESSENTIAL_2D_HH_
-# include <core/clock_neighb2d.hh>
-# include <core/image/image2d.hh>
-# include <core/image/image2d_h.hh>
-# include <core/pixter2d.hh>
-# include <core/site_set/p_line2d.hh>
-# include <core/alias/box2d.hh>
-# include <core/alias/box2d_h.hh>
-# include <core/alias/dpoint2d.hh>
-# include <core/alias/dpoint2d_h.hh>
-# include <core/alias/neighb2d.hh>
-# include <core/alias/p_run2d.hh>
-# include <core/alias/p_runs2d.hh>
-# include <core/alias/point2d.hh>
-# include <core/alias/point2d_h.hh>
-# include <core/alias/w_window2d_float.hh>
-# include <core/alias/w_window2d_int.hh>
-# include <core/alias/window2d.hh>
-# include <geom/size2d.hh>
-# include <make/box2d.hh>
-# include <make/box2d_h.hh>
-# include <make/dpoint2d_h.hh>
-# include <make/image2d.hh>
-# include <make/point2d_h.hh>
-# include <make/w_window2d.hh>
-# include <make/w_window2d_int.hh>
-# include <make/double_neighb2d.hh>
-# include <metal/array2d.hh>
-# include <win/backdiag2d.hh>
-# include <win/diag2d.hh>
-# include <win/disk2d.hh>
-# include <win/hline2d.hh>
-# include <win/octagon2d.hh>
-# include <win/rectangle2d.hh>
-# include <win/vline2d.hh>
+//# include <mln/core/clock_neighb2d.hh>
+# include <mln/core/image/image2d.hh>
+//# include <mln/core/image/image2d_h.hh>
+# include <mln/core/pixter2d.hh>
+# include <mln/core/site_set/p_line2d.hh>
+# include <mln/core/alias/box2d.hh>
+# include <mln/core/alias/box2d_h.hh>
+# include <mln/core/alias/dpoint2d.hh>
+# include <mln/core/alias/dpoint2d_h.hh>
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/core/alias/p_run2d.hh>
+# include <mln/core/alias/p_runs2d.hh>
+# include <mln/core/alias/point2d.hh>
+# include <mln/core/alias/point2d_h.hh>
+# include <mln/core/alias/w_window2d_float.hh>
+# include <mln/core/alias/w_window2d_int.hh>
+# include <mln/core/alias/window2d.hh>
+# include <mln/make/box2d.hh>
+# include <mln/make/box2d_h.hh>
+# include <mln/make/dpoint2d_h.hh>
+# include <mln/make/image2d.hh>
+# include <mln/make/point2d_h.hh>
+# include <mln/make/w_window2d.hh>
+# include <mln/make/w_window2d_int.hh>
+# include <mln/make/double_neighb2d.hh>
+# include <mln/win/backdiag2d.hh>
+# include <mln/win/diag2d.hh>
+# include <mln/win/disk2d.hh>
+# include <mln/win/hline2d.hh>
+# include <mln/win/octagon2d.hh>
+# include <mln/win/rectangle2d.hh>
+# include <mln/win/vline2d.hh>
+
+# include <mln/essential/routine.hh>
#endif // ! MLN_ESSENTIAL_3D_HH_
diff --git a/milena/mln/essential/3d.hh b/milena/mln/essential/3d.hh
index d413211..8d782c6 100644
--- a/milena/mln/essential/3d.hh
+++ b/milena/mln/essential/3d.hh
@@ -28,22 +28,24 @@
#ifndef MLN_ESSENTIAL_3D_HH_
# define MLN_ESSENTIAL_3D_HH_
-# include <core/image/image3d.hh>
-# include <core/pixter3d.hh>
-# include <core/alias/box3d.hh>
-# include <core/alias/dpoint3d.hh>
-# include <core/alias/neighb3d.hh>
-# include <core/alias/point3d.hh>
-# include <core/alias/w_window3d_float.hh>
-# include <core/alias/w_window3d_int.hh>
-# include <core/alias/window3d.hh>
-# include <geom/size3d.hh>
-# include <make/box3d.hh>
-# include <make/w_window3d.hh>
-# include <make/w_window3d_int.hh>
-# include <metal/array3d.hh>
-# include <win/cube3d.hh>
-# include <win/cuboid3d.hh>
+# include <mln/core/image/image3d.hh>
+# include <mln/core/pixter3d.hh>
+# include <mln/core/alias/box3d.hh>
+# include <mln/core/alias/dpoint3d.hh>
+# include <mln/core/alias/neighb3d.hh>
+# include <mln/core/alias/point3d.hh>
+# include <mln/core/alias/w_window3d_float.hh>
+# include <mln/core/alias/w_window3d_int.hh>
+# include <mln/core/alias/window3d.hh>
+# include <mln/geom/size3d.hh>
+# include <mln/make/box3d.hh>
+# include <mln/make/w_window3d.hh>
+# include <mln/make/w_window3d_int.hh>
+# include <mln/metal/array3d.hh>
+# include <mln/win/cube3d.hh>
+# include <mln/win/cuboid3d.hh>
+
+# include <mln/essential/routine.hh>
#endif // ! MLN_ESSENTIAL_3D_HH_
diff --git a/milena/mln/essential/routine.hh b/milena/mln/essential/routine.hh
new file mode 100644
index 0000000..157b25d
--- /dev/null
+++ b/milena/mln/essential/routine.hh
@@ -0,0 +1,74 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef MLN_ESSENTIAL_ROUTINE_HH_
+# define MLN_ESSENTIAL_ROUTINE_HH_
+
+# include <mln/topo/essential.hh>
+# include <mln/accu/essential.hh>
+# include <mln/algebra/essential.hh>
+# include <mln/arith/essential.hh>
+# include <mln/binarization/essential.hh>
+# include <mln/border/essential.hh>
+# include <mln/canvas/essential.hh>
+# include <mln/convert/essential.hh>
+# include <mln/core/essential.hh>
+# include <mln/debug/essential.hh>
+# include <mln/display/essential.hh>
+# include <mln/draw/essential.hh>
+# include <mln/estim/essential.hh>
+# include <mln/extension/essential.hh>
+# include <mln/fun/essential.hh>
+# include <mln/geom/essential.hh>
+# include <mln/histo/essential.hh>
+# include <mln/io/essential.hh>
+# include <mln/labeling/essential.hh>
+# include <mln/level/essential.hh>
+# include <mln/linear/essential.hh>
+# include <mln/literal/essential.hh>
+# include <mln/logical/essential.hh>
+# include <mln/make/essential.hh>
+# include <mln/math/essential.hh>
+# include <mln/metal/essential.hh>
+# include <mln/morpho/essential.hh>
+# include <mln/neighb/essential.hh>
+# include <mln/norm/essential.hh>
+# include <mln/pw/essential.hh>
+# include <mln/registration/essential.hh>
+# include <mln/set/essential.hh>
+# include <mln/subsampling/essential.hh>
+# include <mln/tag/essential.hh>
+# include <mln/test/essential.hh>
+# include <mln/trace/essential.hh>
+# include <mln/trait/essential.hh>
+# include <mln/transform/essential.hh>
+# include <mln/util/essential.hh>
+# include <mln/value/essential.hh>
+# include <mln/win/essential.hh>
+
+#endif // !MLN_ESSENTIAL_ROUTINE_HH_
+
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/estim/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/estim/essential.hh
index 6071a75..4afe74d 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/estim/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_ESTIM_ESSENTIAL_HH
+# define MLN_ESTIM_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/estim/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential estimation materials.
*/
+# include <mln/estim/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_ESTIM_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/extension/all.hh
index 4458715..523b4dc 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/extension/all.hh
@@ -28,7 +28,7 @@
#ifndef MLN_EXTENSION_ALL_HH
# define MLN_EXTENSION_ALL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/extension/all.hh
*
* \brief File that includes all extension materials.
*
diff --git a/milena/mln/extension/all.hh b/milena/mln/extension/essential.hh
similarity index 79%
copy from milena/mln/extension/all.hh
copy to milena/mln/extension/essential.hh
index 4458715..c487483 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/extension/essential.hh
@@ -25,28 +25,16 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_EXTENSION_ESSENTIAL_HH
+# define MLN_EXTENSION_ESSENTIAL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/extension/essential.hh
*
- * \brief File that includes all extension materials.
+ * \brief File that includes essential extension materials.
*
* \todo Also include "extension images" + "extended"?
*/
+# include <mln/extension/all.hh>
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_EXTENSION_ESSENTIAL_HH
diff --git a/milena/mln/fun/all.hh b/milena/mln/fun/all.hh
index 6befff6..62c6a45 100644
--- a/milena/mln/fun/all.hh
+++ b/milena/mln/fun/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -55,7 +55,11 @@ namespace mln
# include <mln/fun/i2v/all.hh>
# include <mln/fun/p2b/all.hh>
# include <mln/fun/p2v/all.hh>
+# include <mln/fun/v2b/all.hh>
# include <mln/fun/v2v/all.hh>
+# include <mln/fun/vv2v/all.hh>
+# include <mln/fun/x2p/all.hh>
+# include <mln/fun/x2v/all.hh>
# include <mln/fun/x2x/all.hh>
diff --git a/milena/mln/extension/all.hh b/milena/mln/fun/essential.hh
similarity index 70%
copy from milena/mln/extension/all.hh
copy to milena/mln/fun/essential.hh
index 4458715..9626e45 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/fun/essential.hh
@@ -25,28 +25,24 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_FUN_ESSENTIAL_HH
+# define MLN_FUN_ESSENTIAL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/fun/essential.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes essential fun-related routines.
*/
-
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
+# include <mln/fun/c.hh>
+# include <mln/fun/ops.hh>
+# include <mln/fun/i2v/essential.hh>
+# include <mln/fun/p2b/essential.hh>
+# include <mln/fun/p2v/essential.hh>
+# include <mln/fun/v2b/essential.hh>
+# include <mln/fun/v2v/essential.hh>
+# include <mln/fun/vv2v/essential.hh>
+# include <mln/fun/x2p/essential.hh>
+# include <mln/fun/x2v/essential.hh>
+# include <mln/fun/x2x/essential.hh>
+
+#endif // ! MLN_FUN_ESSENTIAL_HH
diff --git a/milena/mln/fun/i2v/all.hh b/milena/mln/fun/i2v/all.hh
index e54f789..cc52d88 100644
--- a/milena/mln/fun/i2v/all.hh
+++ b/milena/mln/fun/i2v/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -50,6 +50,7 @@ namespace mln
# include <mln/fun/i2v/all_to.hh>
+# include <mln/fun/i2v/array.hh>
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/fun/i2v/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/fun/i2v/essential.hh
index 6071a75..6bed56e 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/fun/i2v/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_FUN_I2V_ESSENTIAL_HH
+# define MLN_FUN_I2V_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/fun/i2v/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential functions from index to value.
*/
+# include <mln/fun/i2v/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_FUN_I2V_ESSENTIAL_HH
diff --git a/milena/mln/fun/p2b/all.hh b/milena/mln/fun/p2b/all.hh
index 4c429ea..ed6e926 100644
--- a/milena/mln/fun/p2b/all.hh
+++ b/milena/mln/fun/p2b/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -50,6 +50,7 @@ namespace mln
# include <mln/fun/p2b/chess.hh>
+# include <mln/fun/p2b/has.hh>
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/fun/p2b/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/fun/p2b/essential.hh
index 6071a75..e43e022 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/fun/p2b/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_FUN_P2B_ESSENTIAL_HH
+# define MLN_FUN_P2B_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/fun/p2b/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential functions from point to boolean.
*/
+# include <mln/fun/p2b/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_FUN_P2B_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/fun/p2v/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/fun/p2v/essential.hh
index 6071a75..7830a86 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/fun/p2v/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_FUN_P2V_ESSENTIAL_HH
+# define MLN_FUN_P2V_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/fun/p2v/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential functions from point to value.
*/
+# include <mln/fun/p2v/iota.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_FUN_P2V_ESSENTIAL_HH
diff --git a/milena/mln/fun/i2v/all.hh b/milena/mln/fun/v2b/all.hh
similarity index 79%
copy from milena/mln/fun/i2v/all.hh
copy to milena/mln/fun/v2b/all.hh
index e54f789..303a4a9 100644
--- a/milena/mln/fun/i2v/all.hh
+++ b/milena/mln/fun/v2b/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,12 +25,12 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_FUN_I2V_ALL_HH
-# define MLN_FUN_I2V_ALL_HH
+#ifndef MLN_FUN_V2B_ALL_HH
+# define MLN_FUN_V2B_ALL_HH
-/*! \file mln/fun/i2v/all.hh
+/*! \file mln/fun/v2b/all.hh
*
- * \brief File that includes all functions from index to value.
+ * \brief File that includes all functions from point to value.
*/
@@ -40,8 +40,8 @@ namespace mln
namespace fun
{
- /// Namespace of functions from index to value.
- namespace i2v
+ /// Namespace of functions from point to value.
+ namespace v2b
{
}
}
@@ -49,8 +49,6 @@ namespace mln
}
-# include <mln/fun/i2v/all_to.hh>
+# include <mln/fun/v2b/threshold.hh>
-
-
-#endif // ! MLN_FUN_I2V_ALL_HH
+#endif // ! MLN_FUN_V2B_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/fun/v2b/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/fun/v2b/essential.hh
index 6071a75..92b5cf7 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/fun/v2b/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_FUN_V2B_ESSENTIAL_HH
+# define MLN_FUN_V2B_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/fun/v2b/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential functions from point to value.
*/
+# include <mln/fun/v2b/threshold.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_FUN_V2B_ESSENTIAL_HH
diff --git a/milena/mln/fun/v2v/all.hh b/milena/mln/fun/v2v/all.hh
index d0645c1..d028dde 100644
--- a/milena/mln/fun/v2v/all.hh
+++ b/milena/mln/fun/v2v/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -51,9 +51,13 @@ namespace mln
# include <mln/fun/v2v/abs.hh>
# include <mln/fun/v2v/cast.hh>
+# include <mln/fun/v2v/convert.hh>
+# include <mln/fun/v2v/dec.hh>
# include <mln/fun/v2v/enc.hh>
# include <mln/fun/v2v/id.hh>
# include <mln/fun/v2v/linear.hh>
+# include <mln/fun/v2v/norm.hh>
+# include <mln/fun/v2v/rgb_to_hsi.hh>
# include <mln/fun/v2v/saturate.hh>
diff --git a/milena/mln/extension/all.hh b/milena/mln/fun/v2v/essential.hh
similarity index 76%
copy from milena/mln/extension/all.hh
copy to milena/mln/fun/v2v/essential.hh
index 4458715..6687d6f 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/fun/v2v/essential.hh
@@ -25,28 +25,18 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_FUN_V2V_ESSENTIAL_HH
+# define MLN_FUN_V2V_ESSENTIAL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/fun/v2v/essential.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes essential functions from value to value.
*/
+# include <mln/fun/v2v/abs.hh>
+# include <mln/fun/v2v/cast.hh>
+# include <mln/fun/v2v/convert.hh>
+# include <mln/fun/v2v/rgb_to_hsi.hh>
+# include <mln/fun/v2v/saturate.hh>
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_FUN_V2V_ESSENTIAL_HH
diff --git a/milena/mln/fun/p2b/all.hh b/milena/mln/fun/vv2v/all.hh
similarity index 77%
copy from milena/mln/fun/p2b/all.hh
copy to milena/mln/fun/vv2v/all.hh
index 4c429ea..9d1128d 100644
--- a/milena/mln/fun/p2b/all.hh
+++ b/milena/mln/fun/vv2v/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,12 +25,12 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_FUN_P2B_ALL_HH
-# define MLN_FUN_P2B_ALL_HH
+#ifndef MLN_FUN_VV2V_ALL_HH
+# define MLN_FUN_VV2V_ALL_HH
-/*! \file mln/fun/p2b/all.hh
+/*! \file mln/fun/vv2v/all.hh
*
- * \brief File that includes all functions from point to boolean.
+ * \brief File that includes all functions from point to value.
*/
@@ -40,8 +40,8 @@ namespace mln
namespace fun
{
- /// Namespace of functions from point to boolean.
- namespace p2b
+ /// Namespace of functions from point to value.
+ namespace vv2v
{
}
}
@@ -49,8 +49,7 @@ namespace mln
}
-# include <mln/fun/p2b/chess.hh>
+# include <mln/fun/vv2v/max.hh>
+# include <mln/fun/vv2v/min.hh>
-
-
-#endif // ! MLN_FUN_P2B_ALL_HH
+#endif // ! MLN_FUN_VV2V_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/fun/vv2v/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/fun/vv2v/essential.hh
index 6071a75..4828e2f 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/fun/vv2v/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,15 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_FUN_V2B_ESSENTIAL_HH
+# define MLN_FUN_V2B_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/fun/vv2v/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential functions from point to value.
*/
+# include <mln/fun/vv2v/max.hh>
+# include <mln/fun/vv2v/min.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_FUN_V2B_ESSENTIAL_HH
diff --git a/milena/mln/fun/p2b/all.hh b/milena/mln/fun/x2p/all.hh
similarity index 79%
copy from milena/mln/fun/p2b/all.hh
copy to milena/mln/fun/x2p/all.hh
index 4c429ea..e7467e0 100644
--- a/milena/mln/fun/p2b/all.hh
+++ b/milena/mln/fun/x2p/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,12 +25,12 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_FUN_P2B_ALL_HH
-# define MLN_FUN_P2B_ALL_HH
+#ifndef MLN_FUN_X2V_ALL_HH
+# define MLN_FUN_X2V_ALL_HH
-/*! \file mln/fun/p2b/all.hh
+/*! \file mln/fun/x2p/all.hh
*
- * \brief File that includes all functions from point to boolean.
+ * \brief File that includes all functions from point to value.
*/
@@ -40,17 +40,15 @@ namespace mln
namespace fun
{
- /// Namespace of functions from point to boolean.
- namespace p2b
+ /// Namespace of functions from point to value.
+ namespace x2p
{
}
+
}
}
+# include <mln/fun/x2p/closest_point.hh>
-# include <mln/fun/p2b/chess.hh>
-
-
-
-#endif // ! MLN_FUN_P2B_ALL_HH
+#endif // ! MLN_FUN_X2V_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/fun/x2p/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/fun/x2p/essential.hh
index 6071a75..0b3a121 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/fun/x2p/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_FUN_X2V_ESSENTIAL_HH
+# define MLN_FUN_X2V_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/fun/x2p/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential functions from point to value.
*/
+# include <mln/fun/x2p/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_FUN_X2V_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/fun/x2v/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/fun/x2v/essential.hh
index 6071a75..8fcf626 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/fun/x2v/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_FUN_X2V_ALL_HH
+# define MLN_FUN_X2V_ALL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/fun/x2v/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential functions from vector to value.
*/
+# include <mln/fun/x2v/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_FUN_X2V_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/fun/x2x/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/fun/x2x/essential.hh
index 6071a75..dcb3e08 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/fun/x2x/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_FUN_X2X_ESSENTIAL_HH
+# define MLN_FUN_X2X_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/fun/x2x/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential functions from vector to vector.
*/
+# include <mln/fun/x2x/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_FUN_X2X_ESSENTIAL_HH
diff --git a/milena/mln/geom/all.hh b/milena/mln/geom/all.hh
index fa278fd..8d419e4 100644
--- a/milena/mln/geom/all.hh
+++ b/milena/mln/geom/all.hh
@@ -48,12 +48,27 @@ namespace mln
# include <mln/geom/bbox.hh>
# include <mln/geom/chamfer.hh>
+# include <mln/geom/max_col.hh>
+# include <mln/geom/max_ind.hh>
+# include <mln/geom/max_row.hh>
+# include <mln/geom/max_sli.hh>
+# include <mln/geom/min_col.hh>
+# include <mln/geom/min_ind.hh>
+# include <mln/geom/min_row.hh>
+# include <mln/geom/min_sli.hh>
+# include <mln/geom/ncols.hh>
+# include <mln/geom/ninds.hh>
+# include <mln/geom/nrows.hh>
+# include <mln/geom/nslis.hh>
# include <mln/geom/pmin_pmax.hh>
+# include <mln/geom/resize.hh>
# include <mln/geom/seeds2tiling.hh>
# include <mln/geom/seeds2tiling_roundness.hh>
# include <mln/geom/size1d.hh>
# include <mln/geom/size2d.hh>
# include <mln/geom/size3d.hh>
-
+# include <mln/geom/complex_geometry.hh>
+# include <mln/geom/nsites.hh>
+# include <mln/geom/delta.hh>
#endif // ! MLN_GEOM_ALL_HH
diff --git a/milena/mln/geom/all.hh b/milena/mln/geom/essential.hh
similarity index 79%
copy from milena/mln/geom/all.hh
copy to milena/mln/geom/essential.hh
index fa278fd..41d1fd9 100644
--- a/milena/mln/geom/all.hh
+++ b/milena/mln/geom/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,19 +25,19 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_GEOM_ALL_HH
-# define MLN_GEOM_ALL_HH
+#ifndef MLN_GEOM_ESSENTIAL_HH
+# define MLN_GEOM_ESSENTIAL_HH
-/*! \file mln/geom/all.hh
+/*! \file mln/geom/essential.hh
*
- * \brief File that includes all geometry related things.
+ * \brief File that includes essential geometry related things.
*/
namespace mln
{
- /// Namespace of all things related to geometry.
+ /// Namespace of essential things related to geometry.
namespace geom
{
/// Implementation namespace of geom namespace.
@@ -48,12 +48,10 @@ namespace mln
# include <mln/geom/bbox.hh>
# include <mln/geom/chamfer.hh>
-# include <mln/geom/pmin_pmax.hh>
-# include <mln/geom/seeds2tiling.hh>
-# include <mln/geom/seeds2tiling_roundness.hh>
+# include <mln/geom/resize.hh>
# include <mln/geom/size1d.hh>
# include <mln/geom/size2d.hh>
# include <mln/geom/size3d.hh>
+# include <mln/geom/nsites.hh>
-
-#endif // ! MLN_GEOM_ALL_HH
+#endif // ! MLN_GEOM_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/histo/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/histo/essential.hh
index 6071a75..fe81221 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/histo/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_HISTO_ESSENTIAL_HH
+# define MLN_HISTO_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/histo/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes histogram files.
*/
+# include <mln/histo/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_HISTO_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/io/essential.hh
similarity index 76%
copy from milena/mln/extension/all.hh
copy to milena/mln/io/essential.hh
index 4458715..d55f114 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/io/essential.hh
@@ -25,28 +25,21 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_IO_ESSENTIAL_HH_
+# define MLN_IO_ESSENTIAL_HH_
-/*! \file mln/pw/all.hh
+/*! \file mln/io/essential.hh
*
- * \brief File that includes all extension materials.
+ * \brief File that includes the most useful io routines.
*
- * \todo Also include "extension images" + "extended"?
*/
+# include <mln/io/pbm/all.hh>
+# include <mln/io/pfm/all.hh>
+# include <mln/io/pgm/all.hh>
+# include <mln/io/pnm/all.hh>
+# include <mln/io/ppm/all.hh>
+# include <mln/io/txt/all.hh>
-namespace mln
-{
+#endif // !MLN_IO_ESSENTIAL_HH_
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
diff --git a/milena/mln/labeling/all.hh b/milena/mln/labeling/all.hh
index 570b8b1..ec930f6 100644
--- a/milena/mln/labeling/all.hh
+++ b/milena/mln/labeling/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -54,6 +54,7 @@ namespace mln
# include <mln/labeling/background.hh>
# include <mln/labeling/blobs.hh>
+# include <mln/labeling/compute.hh>
# include <mln/labeling/flat_zones.hh>
# include <mln/labeling/foreground.hh>
# include <mln/labeling/level.hh>
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/labeling/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/labeling/essential.hh
index 6071a75..940f2c2 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/labeling/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,15 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_LABELING_ESSENTIAL_HH
+# define MLN_LABELING_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/labeling/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential labeling routines.
*/
+# include <mln/labeling/blobs.hh>
+# include <mln/labeling/compute.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_LABELING_ESSENTIAL_HH
diff --git a/milena/mln/level/all.hh b/milena/mln/level/all.hh
index 3b3b139..c12efec 100644
--- a/milena/mln/level/all.hh
+++ b/milena/mln/level/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -60,6 +60,7 @@ namespace mln
# include <mln/level/assign.hh>
# include <mln/level/compare.hh>
# include <mln/level/compute.hh>
+# include <mln/level/convert.hh>
# include <mln/level/fast_median.hh>
# include <mln/level/fill.hh>
# include <mln/level/median.hh>
@@ -67,11 +68,13 @@ namespace mln
# include <mln/level/memset_.hh>
# include <mln/level/naive/all.hh>
# include <mln/level/paste.hh>
+# include <mln/level/replace.hh>
# include <mln/level/saturate.hh>
# include <mln/level/sort_psites.hh>
# include <mln/level/stretch.hh>
# include <mln/level/to_enc.hh>
# include <mln/level/transform.hh>
+# include <mln/level/update.hh>
# include <mln/level/was.median.hh>
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/level/approx/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/level/approx/essential.hh
index 6071a75..441256d 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/level/approx/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,16 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_LEVEL_APPROX_ESSENTIAL_HH
+# define MLN_LEVEL_APPROX_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/level/approx/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential level-related routines with
+ * approximation.
*/
+# include <mln/level/approx/all.hh>
-namespace mln
-{
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_LEVEL_APPROX_ESSENTIAL_HH
diff --git a/milena/mln/level/all.hh b/milena/mln/level/essential.hh
similarity index 67%
copy from milena/mln/level/all.hh
copy to milena/mln/level/essential.hh
index 3b3b139..f545c0e 100644
--- a/milena/mln/level/all.hh
+++ b/milena/mln/level/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,55 +25,31 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_LEVEL_ALL_HH
-# define MLN_LEVEL_ALL_HH
+#ifndef MLN_LEVEL_ESSENTIAL_HH
+# define MLN_LEVEL_ESSENTIAL_HH
-/*! \file mln/level/all.hh
+/*! \file mln/level/essential.hh
*
- * \brief File that includes all level-related routines.
+ * \brief File that includes essential level-related routines.
*
*/
-
-namespace mln
-{
-
- /// Namespace of image processing routines related to pixel levels.
- namespace level
- {
-
- /// Implementation namespace of level namespace.
- namespace impl {
-
- /// Generic implementation namespace of level namespace.
- namespace generic {}
-
- }
-
- }
-
-}
-
# include <mln/level/abs.hh>
# include <mln/level/apply.hh>
-# include <mln/level/approx/all.hh>
# include <mln/level/assign.hh>
# include <mln/level/compare.hh>
# include <mln/level/compute.hh>
+# include <mln/level/convert.hh>
# include <mln/level/fast_median.hh>
# include <mln/level/fill.hh>
# include <mln/level/median.hh>
-# include <mln/level/memcpy_.hh>
-# include <mln/level/memset_.hh>
-# include <mln/level/naive/all.hh>
# include <mln/level/paste.hh>
+# include <mln/level/replace.hh>
# include <mln/level/saturate.hh>
-# include <mln/level/sort_psites.hh>
-# include <mln/level/stretch.hh>
-# include <mln/level/to_enc.hh>
# include <mln/level/transform.hh>
-# include <mln/level/was.median.hh>
-
+# include <mln/level/update.hh>
+# include <mln/level/approx/essential.hh>
+# include <mln/level/naive/essential.hh>
-#endif // ! MLN_LEVEL_ALL_HH
+#endif // ! MLN_LEVEL_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/level/naive/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/level/naive/essential.hh
index 6071a75..2da2a70 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/level/naive/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,15 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_LEVEL_NAIVE_ESSENTIAL_HH
+# define MLN_LEVEL_NAIVE_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/level/naive/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential level-related routines with
+ * naive approach.
*/
+# include <mln/level/naive/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_LEVEL_NAIVE_ESSENTIAL_HH
diff --git a/milena/mln/level/transform.hh b/milena/mln/level/transform.hh
index 6efdfb5..1b21772 100644
--- a/milena/mln/level/transform.hh
+++ b/milena/mln/level/transform.hh
@@ -41,7 +41,6 @@
# include <mln/core/concept/function.hh>
# include <mln/value/set.hh>
-# include <mln/value/lut_vec.hh>
// Specializations are in:
diff --git a/milena/mln/linear/all.hh b/milena/mln/linear/all.hh
index 430d72e..38c0dd4 100644
--- a/milena/mln/linear/all.hh
+++ b/milena/mln/linear/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -66,7 +66,7 @@ namespace mln
# include <mln/linear/line_convolve.hh>
# include <mln/linear/line_x2_convolve.hh>
# include <mln/linear/log.hh>
-# include <mln/linear/sobel.hh>
-# include <mln/linear/local/convolve.hh>
+//# include <mln/linear/sobel.hh>
+//# include <mln/linear/local/convolve.hh>
#endif // ! MLN_LINEAR_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/linear/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/linear/essential.hh
index 6071a75..13bf286 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/linear/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_LINEAR_ESSENTIAL_HH
+# define MLN_LINEAR_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/linear/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential linear image processing routines.
*/
+# include <mln/linear/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_LINEAR_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/literal/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/literal/essential.hh
index 6071a75..5ab4669 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/literal/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_LITERAL_ESSENTIAL_HH
+# define MLN_LITERAL_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/literal/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential literals.
*/
+# include <mln/literal/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_LITERAL_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/logical/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/logical/essential.hh
index 6071a75..acf4a8c 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/logical/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_LOGICAL_ESSENTIAL_HH
+# define MLN_LOGICAL_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/logical/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential logical operators.
*/
+# include <mln/logical/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_LOGICAL_ESSENTIAL_HH
diff --git a/milena/mln/make/all.hh b/milena/mln/make/all.hh
index 1277038..fdd4dec 100644
--- a/milena/mln/make/all.hh
+++ b/milena/mln/make/all.hh
@@ -48,21 +48,23 @@ namespace mln
# include <mln/make/box2d_h.hh>
# include <mln/make/box3d.hh>
# include <mln/make/dpoint2d_h.hh>
+# include <mln/make/dual_neighb.hh>
# include <mln/make/image.hh>
+# include <mln/make/image2d.hh>
# include <mln/make/mat.hh>
-# include <mln/make/pixel.hh>
# include <mln/make/pix.hh>
+# include <mln/make/pixel.hh>
# include <mln/make/point2d_h.hh>
# include <mln/make/vec.hh>
# include <mln/make/voronoi.hh>
-# include <mln/make/win_chamfer.hh>
+# include <mln/make/w_window.hh>
# include <mln/make/w_window1d.hh>
# include <mln/make/w_window1d_int.hh>
# include <mln/make/w_window2d.hh>
# include <mln/make/w_window2d_int.hh>
# include <mln/make/w_window3d.hh>
# include <mln/make/w_window3d_int.hh>
-# include <mln/make/w_window.hh>
# include <mln/make/w_window_line.hh>
+# include <mln/make/win_chamfer.hh>
#endif // ! MLN_MAKE_ALL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/make/essential.hh
similarity index 72%
copy from milena/mln/extension/all.hh
copy to milena/mln/make/essential.hh
index 4458715..c69e50b 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/make/essential.hh
@@ -1,4 +1,5 @@
// Copyright (C) 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
@@ -25,28 +26,23 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_MAKE_ESSENTIAL_HH
+# define MLN_MAKE_ESSENTIAL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/make/essential.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes essential make routines.
*/
-
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
+# include <mln/make/dual_neighb.hh>
+# include <mln/make/image.hh>
+# include <mln/make/mat.hh>
+# include <mln/make/pix.hh>
+# include <mln/make/pixel.hh>
+# include <mln/make/vec.hh>
+//# include <mln/make/voronoi.hh>
+# include <mln/make/w_window.hh>
+# include <mln/make/w_window_line.hh>
+//# include <mln/make/win_chamfer.hh>
+
+#endif // ! MLN_MAKE_ESSENTIAL_HH
diff --git a/milena/mln/math/all.hh b/milena/mln/math/all.hh
index 1767253..58d5693 100644
--- a/milena/mln/math/all.hh
+++ b/milena/mln/math/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -43,10 +43,14 @@ namespace mln
}
-# include <mln/math/sign.hh>
# include <mln/math/abs.hh>
-# include <mln/math/min.hh>
+# include <mln/math/jacobi.hh>
# include <mln/math/max.hh>
+# include <mln/math/min.hh>
+# include <mln/math/round.hh>
+# include <mln/math/sign.hh>
+# include <mln/math/sqr.hh>
+# include <mln/math/sqrt.hh>
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/math/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/math/essential.hh
index 6071a75..fe1defe 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/math/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_MATH_ESSENTIAL_HH
+# define MLN_MATH_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/math/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential mathematical routines.
*/
+# include <mln/math/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_MATH_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/metal/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/metal/essential.hh
index 6071a75..14f848a 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/metal/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_METAL_ESSENTIAL_HH
+# define MLN_METAL_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/metal/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential meta-programming tools.
*/
+# include <mln/metal/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_METAL_ESSENTIAL_HH
diff --git a/milena/mln/morpho/all.hh b/milena/mln/morpho/all.hh
index bcaf9c0..44b0b51 100644
--- a/milena/mln/morpho/all.hh
+++ b/milena/mln/morpho/all.hh
@@ -67,6 +67,7 @@ namespace mln
# include <mln/morpho/hit_or_miss.hh>
# include <mln/morpho/includes.hh>
# include <mln/morpho/laplacian.hh>
+# include <mln/morpho/meyer_wst.hh>
# include <mln/morpho/min.hh>
# include <mln/morpho/minus.hh>
# include <mln/morpho/opening_area.hh>
@@ -74,6 +75,7 @@ namespace mln
# include <mln/morpho/opening.hh>
# include <mln/morpho/plus.hh>
# include <mln/morpho/Rd.hh>
+# include <mln/morpho/rank_filter.hh>
# include <mln/morpho/thickening.hh>
# include <mln/morpho/thick_miss.hh>
# include <mln/morpho/thin_fit.hh>
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/morpho/elementary/essential.hh
similarity index 77%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/morpho/elementary/essential.hh
index 6071a75..14063ec 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/morpho/elementary/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_MORPHO_ELEMENTARY_ESSENTIAL_HH
+# define MLN_MORPHO_ELEMENTARY_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
- *
- * \brief File that includes all traits.
- */
+/// \file mln/morpho/elementary/essential.hh
+///
+/// File that includes essential elementary mathematical morphology
+/// routines.
+# include <mln/morpho/elementary/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_MORPHO_ELEMENTARY_ESSENTIAL_HH
diff --git a/milena/mln/morpho/all.hh b/milena/mln/morpho/essential.hh
similarity index 64%
copy from milena/mln/morpho/all.hh
copy to milena/mln/morpho/essential.hh
index bcaf9c0..b5d18f8 100644
--- a/milena/mln/morpho/all.hh
+++ b/milena/mln/morpho/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,40 +25,15 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_MORPHO_ALL_HH
-# define MLN_MORPHO_ALL_HH
+#ifndef MLN_MORPHO_ESSENTIAL_HH
+# define MLN_MORPHO_ESSENTIAL_HH
-/*! \file mln/morpho/all.hh
+/*! \file mln/morpho/essential.hh
*
- * \brief File that includes all morpho-related routines.
+ * \brief File that includes essential morpho-related routines.
*/
-
-namespace mln
-{
-
- /// Namespace of morphological image processing routines.
- namespace morpho
- {
-
- /// Namespace of morphological image processing routines
- /// implementations.
- namespace impl
- {
-
- /// Namespace of morphological image processing routines
- /// generic implementations.
- namespace generic
- {}
-
- }
- }
-}
-
-
# include <mln/morpho/closing.hh>
-# include <mln/morpho/complementation.hh>
-# include <mln/morpho/contrast.hh>
# include <mln/morpho/dilation_fast.hh>
# include <mln/morpho/dilation.hh>
# include <mln/morpho/erosion_fast.hh>
@@ -67,21 +42,15 @@ namespace mln
# include <mln/morpho/hit_or_miss.hh>
# include <mln/morpho/includes.hh>
# include <mln/morpho/laplacian.hh>
-# include <mln/morpho/min.hh>
-# include <mln/morpho/minus.hh>
+# include <mln/morpho/meyer_wst.hh>
# include <mln/morpho/opening_area.hh>
# include <mln/morpho/opening_attribute.hh>
# include <mln/morpho/opening.hh>
-# include <mln/morpho/plus.hh>
-# include <mln/morpho/Rd.hh>
-# include <mln/morpho/thickening.hh>
-# include <mln/morpho/thick_miss.hh>
-# include <mln/morpho/thin_fit.hh>
-# include <mln/morpho/thinning.hh>
+# include <mln/morpho/rank_filter.hh>
# include <mln/morpho/top_hat.hh>
-# include <mln/morpho/elementary/all.hh>
+# include <mln/morpho/elementary/essential.hh>
-#endif // ! MLN_MORPHO_ALL_HH
+#endif // ! MLN_MORPHO_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/neighb/all.hh
similarity index 67%
copy from milena/mln/extension/all.hh
copy to milena/mln/neighb/all.hh
index 4458715..aeeb4a6 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/neighb/all.hh
@@ -25,28 +25,39 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_NEIGHB_ALL_HH
+# define MLN_NEIGHB_ALL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/neighb/all.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes all neighb-related routines.
*/
-
+/*
namespace mln
{
- /// Namespace of extension tools.
- namespace extension {}
+ /// Namespace of neighblogical image processing routines.
+ /// FIXME: namespace name conflicts with class neighb in mln/core/neighb.hh
+ namespace neighb_
+ {
-} // end of namespace mln
+ /// Namespace of neighblogical image processing routines
+ /// implementations.
+ namespace impl
+ {
+ /// Namespace of neighblogical image processing routines
+ /// generic implementations.
+ namespace generic
+ {}
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
+ }
+ }
+}
+*/
+//# include <mln/neighb/get.hh>
+//# include <mln/neighb/image.hh>
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_NEIGHB_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/neighb/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/neighb/essential.hh
index 6071a75..3ff9f52 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/neighb/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_NEIGHB_ESSENTIAL_HH
+# define MLN_NEIGHB_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/neighb/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential neighb-related routines.
*/
+# include <mln/neighb/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_NEIGHB_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/norm/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/norm/essential.hh
index 6071a75..34418d2 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/norm/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,15 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_NORM_ESSENTIAL_HH
+# define MLN_NORM_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/norm/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential norm routines.
*/
+# include <mln/norm/l1.hh>
+# include <mln/norm/l2.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_NORM_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/pw/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/pw/essential.hh
index 6071a75..5364c61 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/pw/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_PW_ESSENTIAL_HH
+# define MLN_PW_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/pw/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential "point-wise" expression tools.
*/
+# include <mln/pw/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_PW_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/registration/all.hh
similarity index 74%
copy from milena/mln/extension/all.hh
copy to milena/mln/registration/all.hh
index 4458715..dd29f26 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/registration/all.hh
@@ -25,28 +25,28 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_REGISTRATION_ALL_HH
+# define MLN_REGISTRATION_ALL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/registration/all.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes all "point-wise" expression tools.
*/
namespace mln
{
- /// Namespace of extension tools.
- namespace extension {}
+ /// Namespace of "point-wise" expression tools.
+ namespace registration {}
} // end of namespace mln
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
+# include <mln/registration/get_rot.hh>
+# include <mln/registration/get_rtransf.hh>
+# include <mln/registration/icp.hh>
+# include <mln/registration/multiscale.hh>
+# include <mln/registration/registration.hh>
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_REGISTRATION_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/registration/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/registration/essential.hh
index 6071a75..d29c9d8 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/registration/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_REGISTRATION_ESSENTIAL_HH
+# define MLN_REGISTRATION_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/registration/all.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes all "point-wise" expression tools.
*/
+// NOTHING YET.
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_REGISTRATION_ESSENTIAL_HH
diff --git a/milena/mln/set/all.hh b/milena/mln/set/all.hh
index bda90b9..f7c2194 100644
--- a/milena/mln/set/all.hh
+++ b/milena/mln/set/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -44,6 +44,8 @@ namespace mln
# include <mln/set/diff.hh>
# include <mln/set/inter.hh>
+# include <mln/set/get.hh>
+# include <mln/set/has.hh>
# include <mln/set/is_subset_of.hh>
# include <mln/set/sym_diff.hh>
# include <mln/set/uni.hh>
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/set/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/set/essential.hh
index 6071a75..db20e2b 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/set/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_SET_ESSENTIAL_HH
+# define MLN_SET_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/set/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential set-related routines.
*/
+# include <mln/set/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_SET_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/subsampling/all.hh
similarity index 79%
copy from milena/mln/extension/all.hh
copy to milena/mln/subsampling/all.hh
index 4458715..88fa276 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/subsampling/all.hh
@@ -25,28 +25,25 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_SUBSAMPLING_ALL_HH
+# define MLN_SUBSAMPLING_ALL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/subsampling/all.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes all "point-wise" expression tools.
*/
namespace mln
{
- /// Namespace of extension tools.
- namespace extension {}
+ /// Namespace of "point-wise" expression tools.
+ namespace subsampling {}
} // end of namespace mln
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
+# include <mln/subsampling/gaussian_subsampling.hh>
+# include <mln/subsampling/subsampling.hh>
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_SUBSAMPLING_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/subsampling/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/subsampling/essential.hh
index 6071a75..ec1a2c5 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/subsampling/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_SUBSAMPLING_ESSENTIAL_HH
+# define MLN_SUBSAMPLING_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/subsampling/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential "point-wise" expression tools.
*/
+// NOTHING YET
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_SUBSAMPLING_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/tag/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/tag/essential.hh
index 6071a75..12569ec 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/tag/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_TAG_ESSENTIAL_HH
+# define MLN_TAG_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/tag/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential tag-related routines.
*/
+# include <mln/tag/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_TAG_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/test/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/test/essential.hh
index 6071a75..dce0571 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/test/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_TEST_ESSENTIAL_HH
+# define MLN_TEST_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/test/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential test-related routines.
*/
+# include <mln/test/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_TEST_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/topo/all.hh
similarity index 58%
copy from milena/mln/extension/all.hh
copy to milena/mln/topo/all.hh
index 4458715..2d06897 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/topo/all.hh
@@ -25,28 +25,39 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_TOPO_ALL_HH
+# define MLN_TOPO_ALL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/topo/all.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes all "point-wise" expression tools.
*/
namespace mln
{
- /// Namespace of extension tools.
- namespace extension {}
+ /// Namespace of "point-wise" expression tools.
+ namespace topo {}
} // end of namespace mln
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
+# include <mln/core/topo/adj_higher_dim_connected_n_face_iter.hh>
+# include <mln/core/topo/adj_higher_face_iter.hh>
+# include <mln/core/topo/adj_lower_dim_connected_n_face_iter.hh>
+# include <mln/core/topo/adj_lower_face_iter.hh>
+# include <mln/core/topo/adj_lower_higher_face_iter.hh>
+# include <mln/core/topo/center_only_iter.hh>
+# include <mln/core/topo/centered_iter_adapter.hh>
+# include <mln/core/topo/complex.hh>
+# include <mln/core/topo/complex_iterators.hh>
+# include <mln/core/topo/face.hh>
+# include <mln/core/topo/face_data.hh>
+# include <mln/core/topo/face_iter.hh>
+# include <mln/core/topo/n_face.hh>
+# include <mln/core/topo/n_face_iter.hh>
+# include <mln/core/topo/n_faces_set.hh>
+# include <mln/core/topo/static_n_face_iter>
+
+#endif // ! MLN_TOPO_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/topo/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/topo/essential.hh
index 6071a75..adfebf4 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/topo/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_TOPO_ESSENTIAL_HH
+# define MLN_TOPO_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/topo/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential "point-wise" expression tools.
*/
+// NOTHING YET.
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_TOPO_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/trace/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/trace/essential.hh
index 6071a75..65010dc 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/trace/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_TRACE_ESSENTIAL_HH
+# define MLN_TRACE_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/trace/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential trace-related routines.
*/
+# include <mln/trace/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_TRACE_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/trait/essential.hh
similarity index 75%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/trait/essential.hh
index 6071a75..b8a821a 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/trait/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2006, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,24 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_TRAIT_ESSENTIAL_HH
+# define MLN_TRAIT_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*!
+ * \file mln/trait/essential.hh
+ *
+ * \brief Definition of essential traits.
*
- * \brief File that includes all traits.
*/
+// meta-program to solve a trait cessential
+# include <mln/trait/solve.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
+// promote
+# include <mln/trait/promote.hh>
-# include <mln/core/trait/pixter.hh>
+// ops
+# include <mln/trait/op/essential.hh>
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_TRAIT_ESSENTIAL_HH
diff --git a/milena/mln/trait/op/all.hh b/milena/mln/trait/op/all.hh
index 2a5f512..d9c5230 100644
--- a/milena/mln/trait/op/all.hh
+++ b/milena/mln/trait/op/all.hh
@@ -66,6 +66,7 @@ namespace mln
# include <mln/trait/op/less.hh>
# include <mln/trait/op/leq.hh>
+# include <mln/trait/op/lor.hh>
# include <mln/trait/op/geq.hh>
# include <mln/trait/op/greater.hh>
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/trait/op/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/trait/op/essential.hh
index 6071a75..8f7ffb6 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/trait/op/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+// GUARD NOT REQUIRED: essential included files already have guards.
-/*! \file mln/core/trait/all.hh
+/*!
+ * \file mln/trait/op/essential.hh
+ *
+ * \brief FIXME
*
- * \brief File that includes all traits.
*/
+# include <mln/trait/op/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/trait/value/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/trait/value/essential.hh
index 6071a75..a67d803 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/trait/value/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,16 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_TRAIT_VALUE_ESSENTIAL_HH
+# define MLN_TRAIT_VALUE_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/trait/value/all.hh
*
- * \brief File that includes all traits.
+ * \brief FIXME
*/
-namespace mln
-{
+# include <mln/trait/value/all.hh>
- /*! Namespace for image traits.
- */
- namespace trait {}
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_TRAIT_VALUE_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/transform/all.hh
similarity index 79%
copy from milena/mln/extension/all.hh
copy to milena/mln/transform/all.hh
index 4458715..5abe6da 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/transform/all.hh
@@ -25,28 +25,25 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_TRANSFORM_ALL_HH
+# define MLN_TRANSFORM_ALL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/transform/all.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes all "point-wise" expression tools.
*/
namespace mln
{
- /// Namespace of extension tools.
- namespace extension {}
+ /// Namespace of "point-wise" expression tools.
+ namespace transform {}
} // end of namespace mln
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
+# include <mln/transform/distance.hh>
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_TRANSFORM_ALL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/transform/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/transform/essential.hh
index 6071a75..c6cc5f1 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/transform/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_TRANSFORM_ESSENTIAL_HH
+# define MLN_TRANSFORM_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/transform/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential "point-wise" expression tools.
*/
+// NOTHING YET
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_TRANSFORM_ESSENTIAL_HH
diff --git a/milena/mln/util/all.hh b/milena/mln/util/all.hh
index ace9c34..7e6b5ef 100644
--- a/milena/mln/util/all.hh
+++ b/milena/mln/util/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -47,19 +47,32 @@ namespace mln
}
+# include <mln/util/array.hh>
# include <mln/util/branch_iter.hh>
# include <mln/util/branch_iter_ind.hh>
+# include <mln/util/dindex.hh>
# include <mln/util/eat.hh>
# include <mln/util/graph.hh>
+# include <mln/util/greater_point.hh>
+# include <mln/util/greater_psite.hh>
# include <mln/util/ignore.hh>
+# include <mln/util/index.hh>
+# include <mln/util/lazy_set.hh>
+# include <mln/util/lemmings.hh>
+# include <mln/util/multi_site.hh>
# include <mln/util/nil.hh>
+# include <mln/util/ord.hh>
# include <mln/util/ord_pair.hh>
# include <mln/util/pix.hh>
+# include <mln/util/set.hh>
+# include <mln/util/site_pair.hh>
+# include <mln/util/timer.hh>
# include <mln/util/tracked_ptr.hh>
+# include <mln/util/tree.hh>
# include <mln/util/tree_fast.hh>
# include <mln/util/tree_fast_to_image.hh>
-# include <mln/util/tree.hh>
# include <mln/util/tree_to_fast.hh>
# include <mln/util/tree_to_image.hh>
+# include <mln/util/yes.hh>
#endif // ! MLN_UTIL_ALL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/util/essential.hh
similarity index 75%
copy from milena/mln/extension/all.hh
copy to milena/mln/util/essential.hh
index 4458715..b041f2a 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/util/essential.hh
@@ -25,28 +25,21 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_UTIL_ESSENTIAL_HH
+# define MLN_UTIL_ESSENTIAL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/util/essential.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes essential util-related routines.
*/
+# include <mln/util/array.hh>
+# include <mln/util/lazy_set.hh>
+# include <mln/util/lemmings.hh>
+# include <mln/util/ord.hh>
+# include <mln/util/ord_pair.hh>
+# include <mln/util/set.hh>
+# include <mln/util/site_pair.hh>
+# include <mln/util/tree.hh>
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
-
-} // end of namespace mln
-
-
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-
-
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_UTIL_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/value/builtin/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/value/builtin/essential.hh
index 6071a75..c232a07 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/value/builtin/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,15 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_VALUE_BUILTIN_ESSENTIAL_HH
+# define MLN_VALUE_BUILTIN_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/value/builtin/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes essential materials related to built-in types.
*/
+# include <mln/value/builtin/all.hh>
-namespace mln
-{
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_VALUE_BUILTIN_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/value/concept/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/value/concept/essential.hh
index 6071a75..d5bf76b 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/value/concept/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,15 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_VALUE_CONCEPT_ESSENTIAL_HH
+# define MLN_VALUE_CONCEPT_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/value/concept/essential.hh
*
- * \brief File that includes all traits.
+ * \brief File that includes every sub-concept of the Value concept.
*/
+# include <mln/value/concept/all.hh>
-namespace mln
-{
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_VALUE_CONCEPT_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/value/essential.hh
similarity index 66%
copy from milena/mln/extension/all.hh
copy to milena/mln/value/essential.hh
index 4458715..7ba742a 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/value/essential.hh
@@ -25,28 +25,32 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_VALUE_ESSENTIAL_HH
+# define MLN_VALUE_ESSENTIAL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/value/essential.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes essential "value types"-related materials.
*/
+# include <mln/value/concept/essential.hh>
+# include <mln/value/builtin/essential.hh>
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
+# include <mln/value/float01_8.hh>
+# include <mln/value/float01_16.hh>
-} // end of namespace mln
+# include <mln/value/gl8.hh>
+# include <mln/value/gl16.hh>
+# include <mln/value/int_s8.hh>
+# include <mln/value/int_s16.hh>
+# include <mln/value/int_s32.hh>
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
+# include <mln/value/int_u8.hh>
+# include <mln/value/int_u16.hh>
+# include <mln/value/int_u32.hh>
+# include <mln/value/rgb8.hh>
+# include <mln/value/rgb16.hh>
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_VALUE_ESSENTIAL_HH
diff --git a/milena/mln/core/trait/all.hh b/milena/mln/value/internal/essential.hh
similarity index 78%
copy from milena/mln/core/trait/all.hh
copy to milena/mln/value/internal/essential.hh
index 6071a75..5d3523e 100644
--- a/milena/mln/core/trait/all.hh
+++ b/milena/mln/value/internal/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,26 +25,14 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_CORE_TRAIT_ALL_HH
-# define MLN_CORE_TRAIT_ALL_HH
+#ifndef MLN_VALUE_INTERNAL_ESSENTIAL_HH
+# define MLN_VALUE_INTERNAL_ESSENTIAL_HH
-/*! \file mln/core/trait/all.hh
+/*! \file mln/value/internal/essential.hh
*
- * \brief File that includes all traits.
+ * \brief FIXME
*/
+# include <mln/value/internal/all.hh>
-namespace mln
-{
-
- /*! Namespace for image traits.
- */
- namespace trait {}
-
-}
-
-
-# include <mln/core/trait/pixter.hh>
-
-
-#endif // ! MLN_CORE_TRAIT_ALL_HH
+#endif // ! MLN_VALUE_INTERNAL_ESSENTIAL_HH
diff --git a/milena/mln/extension/all.hh b/milena/mln/win/essential.hh
similarity index 76%
copy from milena/mln/extension/all.hh
copy to milena/mln/win/essential.hh
index 4458715..e6fe809 100644
--- a/milena/mln/extension/all.hh
+++ b/milena/mln/win/essential.hh
@@ -25,28 +25,26 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_EXTENSION_ALL_HH
-# define MLN_EXTENSION_ALL_HH
+#ifndef MLN_WIN_ESSENTIAL_HH
+# define MLN_WIN_ESSENTIAL_HH
-/*! \file mln/pw/all.hh
+/*! \file mln/win/essential.hh
*
- * \brief File that includes all extension materials.
- *
- * \todo Also include "extension images" + "extended"?
+ * \brief File that includes essential win-related routines.
*/
+// Types.
-namespace mln
-{
-
- /// Namespace of extension tools.
- namespace extension {}
+# include <mln/win/line.hh>
+# include <mln/win/multiple.hh>
+# include <mln/win/multiple_size.hh>
-} // end of namespace mln
+// Routines.
+# include <mln/win/diff.hh>
+# include <mln/win/shift.hh>
+# include <mln/win/sym.hh>
-# include <mln/extension/fill.hh>
-# include <mln/extension/adjust_fill.hh>
-#endif // ! MLN_EXTENSION_ALL_HH
+#endif // ! MLN_WIN_ESSENTIAL_HH
diff --git a/milena/sandbox/scribo/demat.hh b/milena/sandbox/scribo/demat.hh
index f03b8bd..0867e49 100644
--- a/milena/sandbox/scribo/demat.hh
+++ b/milena/sandbox/scribo/demat.hh
@@ -31,67 +31,8 @@
# include <libgen.h>
# include <sstream>
-# include <mln/core/image/image2d.hh>
# include <mln/core/image/image1d.hh>
-
-# include <mln/core/concept/function.hh>
-# include <mln/core/image/image_if.hh>
-# include <mln/core/image/sub_image.hh>
-# include <mln/core/image/cast_image.hh>
-# include <mln/core/alias/neighb2d.hh>
-# include <mln/core/var.hh>
-# include <mln/core/routine/clone.hh>
-# include <mln/core/routine/ops.hh>
-# include <mln/core/site_set/p_vaccess.hh>
-# include <mln/core/site_set/p_set.hh>
-
-# include <mln/accu/bbox.hh>
-# include <mln/accu/count.hh>
-
-# include <mln/border/fill.hh>
-
-# include <mln/convert/to.hh>
-# include <mln/convert/to_fun.hh>
-
-# include <mln/debug/println.hh>
-# include <mln/debug/colorize.hh>
-
-# include <mln/draw/box.hh>
-
-# include <mln/fun/i2v/array.hh>
-
-# include <mln/io/pbm/load.hh>
-# include <mln/io/pbm/save.hh>
-# include <mln/io/ppm/save.hh>
-# include <mln/io/pgm/save.hh>
-# include <mln/io/txt/save.hh>
-
-# include <mln/labeling/blobs.hh>
-# include <mln/labeling/compute.hh>
-
-# include <mln/level/convert.hh>
-# include <mln/level/compute.hh>
-# include <mln/level/fill.hh>
-# include <mln/level/paste.hh>
-# include <mln/level/apply.hh>
-# include <mln/level/transform.hh>
-
-# include <mln/literal/all.hh>
-
-# include <mln/logical/not.hh>
-
-# include <mln/morpho/hit_or_miss.hh>
-# include <mln/morpho/erosion.hh>
-
-# include <mln/pw/all.hh>
-
-# include <mln/util/array.hh>
-
-# include <mln/value/int_u16.hh>
-# include <mln/value/rgb8.hh>
-
-# include <mln/win/hline2d.hh>
-# include <mln/win/vline2d.hh>
+# include <mln/essential/2d.hh>
#include <tesseract/baseapi.h>
@@ -264,17 +205,17 @@ namespace scribo
for (unsigned i = 1; i < in.ncols(); ++i)
{
if (hend.at(i) > 0)
- draw_col(tmp, i, literal::dark_orange);
+ draw_col(tmp, i, literal::orange);
if (vcol.at(i) > 0)
- draw_col(tmp, i, literal::dark_orange);
+ draw_col(tmp, i, literal::orange);
}
for (unsigned i = 1; i < in.nrows(); ++i)
{
if (hrow.at(i) > 0)
- draw_row(tmp, i, literal::dark_red);
+ draw_row(tmp, i, literal::magenta);
if (vend.at(i) > 0)
- draw_row(tmp, i, literal::dark_red);
+ draw_row(tmp, i, literal::magenta);
}
for (unsigned i = 1; i < tboxes.first.nelements(); ++i)
--
1.5.6.5
1
0
* mln/io/all.hh: update.
* mln/io/fits/load.hh,
* mln/io/pbm/load.hh,
* mln/io/pbm/save.hh,
* mln/io/pfm/load.hh,
* mln/io/pfm/save.hh,
* mln/io/pgm/load.hh,
* mln/io/pgm/save.hh,
* mln/io/pnm/save.hh,
* mln/io/ppm/load.hh,
* mln/io/ppm/save.hh: Update copyright.
* mln/io/txt/save.hh: save an image<char> to a txt file.
* mln/io/off/all.hh,
* mln/io/txt/all.hh: new missing 'all' headers.
---
milena/ChangeLog | 22 +++++++++++++
milena/mln/io/all.hh | 2 +
milena/mln/io/fits/load.hh | 2 +-
milena/mln/io/{ => off}/all.hh | 25 ++++++---------
milena/mln/io/pbm/load.hh | 2 +-
milena/mln/io/pbm/save.hh | 2 +-
milena/mln/io/pfm/load.hh | 2 +-
milena/mln/io/pfm/save.hh | 2 +-
milena/mln/io/pgm/load.hh | 2 +-
milena/mln/io/pgm/save.hh | 2 +-
milena/mln/io/pnm/save.hh | 2 +-
milena/mln/io/ppm/load.hh | 2 +-
milena/mln/io/ppm/save.hh | 2 +-
milena/mln/io/{ => txt}/all.hh | 24 +++++---------
milena/mln/io/{ppm => txt}/save.hh | 59 +++++++++++++++++++++++-------------
15 files changed, 91 insertions(+), 61 deletions(-)
copy milena/mln/io/{ => off}/all.hh (72%)
copy milena/mln/io/{ => txt}/all.hh (72%)
copy milena/mln/io/{ppm => txt}/save.hh (61%)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index c1f5639..82589d5 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,27 @@
2008-11-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Add io::txt::save.
+
+ * mln/io/all.hh: update.
+
+ * mln/io/fits/load.hh,
+ * mln/io/pbm/load.hh,
+ * mln/io/pbm/save.hh,
+ * mln/io/pfm/load.hh,
+ * mln/io/pfm/save.hh,
+ * mln/io/pgm/load.hh,
+ * mln/io/pgm/save.hh,
+ * mln/io/pnm/save.hh,
+ * mln/io/ppm/load.hh,
+ * mln/io/ppm/save.hh: Update copyright.
+
+ * mln/io/txt/save.hh: save an image<char> to a txt file.
+
+ * mln/io/off/all.hh,
+ * mln/io/txt/all.hh: new missing 'all' headers.
+
+2008-11-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Add debug::colorize.
* mln/debug/colorize.hh: create a color image from a labeled image.
diff --git a/milena/mln/io/all.hh b/milena/mln/io/all.hh
index 7a93964..51ddbb2 100644
--- a/milena/mln/io/all.hh
+++ b/milena/mln/io/all.hh
@@ -47,10 +47,12 @@ namespace mln
}
# include <mln/io/fits/all.hh>
+# include <mln/io/off/all.hh>
# include <mln/io/pbm/all.hh>
# include <mln/io/pfm/all.hh>
# include <mln/io/pgm/all.hh>
# include <mln/io/pnm/all.hh>
# include <mln/io/ppm/all.hh>
+# include <mln/io/txt/all.hh>
#endif // ! MLN_IO_ALL_HH
diff --git a/milena/mln/io/fits/load.hh b/milena/mln/io/fits/load.hh
index 4cbf0b8..c09536c 100644
--- a/milena/mln/io/fits/load.hh
+++ b/milena/mln/io/fits/load.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
diff --git a/milena/mln/io/all.hh b/milena/mln/io/off/all.hh
similarity index 72%
copy from milena/mln/io/all.hh
copy to milena/mln/io/off/all.hh
index 7a93964..bfcc080 100644
--- a/milena/mln/io/all.hh
+++ b/milena/mln/io/off/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,32 +25,27 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_IO_ALL_HH
-# define MLN_IO_ALL_HH
+#ifndef MLN_IO_OFF_ALL_HH
+# define MLN_IO_OFF_ALL_HH
-/*! \file mln/io/all.hh
+/*! \file mln/io/off/all.hh
*
- * \brief File that includes all io materials.
+ * \brief File that includes all off io materials.
*/
namespace mln
{
- /// Namespace of input/output handling.
namespace io
{
- /// Internal namespace of io namespace.
- namespace internal {}
+ /// Namespace of off input/output handling.
+ namespace off {}
}
}
-# include <mln/io/fits/all.hh>
-# include <mln/io/pbm/all.hh>
-# include <mln/io/pfm/all.hh>
-# include <mln/io/pgm/all.hh>
-# include <mln/io/pnm/all.hh>
-# include <mln/io/ppm/all.hh>
+# include <mln/io/off/load.hh>
+# include <mln/io/off/save.hh>
-#endif // ! MLN_IO_ALL_HH
+#endif // ! MLN_IO_OFF_ALL_HH
diff --git a/milena/mln/io/pbm/load.hh b/milena/mln/io/pbm/load.hh
index 40c6086..b2ba586 100644
--- a/milena/mln/io/pbm/load.hh
+++ b/milena/mln/io/pbm/load.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
diff --git a/milena/mln/io/pbm/save.hh b/milena/mln/io/pbm/save.hh
index 93d4485..5f5811a 100644
--- a/milena/mln/io/pbm/save.hh
+++ b/milena/mln/io/pbm/save.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
diff --git a/milena/mln/io/pfm/load.hh b/milena/mln/io/pfm/load.hh
index 35f5e54..96bc20d 100644
--- a/milena/mln/io/pfm/load.hh
+++ b/milena/mln/io/pfm/load.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
diff --git a/milena/mln/io/pfm/save.hh b/milena/mln/io/pfm/save.hh
index 486639e..53f18e6 100644
--- a/milena/mln/io/pfm/save.hh
+++ b/milena/mln/io/pfm/save.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
diff --git a/milena/mln/io/pgm/load.hh b/milena/mln/io/pgm/load.hh
index e7df29e..a82f5b5 100644
--- a/milena/mln/io/pgm/load.hh
+++ b/milena/mln/io/pgm/load.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
diff --git a/milena/mln/io/pgm/save.hh b/milena/mln/io/pgm/save.hh
index b02576d..f15c0eb 100644
--- a/milena/mln/io/pgm/save.hh
+++ b/milena/mln/io/pgm/save.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
diff --git a/milena/mln/io/pnm/save.hh b/milena/mln/io/pnm/save.hh
index b09465c..5c52fc4 100644
--- a/milena/mln/io/pnm/save.hh
+++ b/milena/mln/io/pnm/save.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
diff --git a/milena/mln/io/ppm/load.hh b/milena/mln/io/ppm/load.hh
index f97700b..bf9d27b 100644
--- a/milena/mln/io/ppm/load.hh
+++ b/milena/mln/io/ppm/load.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
diff --git a/milena/mln/io/ppm/save.hh b/milena/mln/io/ppm/save.hh
index c10f3ca..3893203 100644
--- a/milena/mln/io/ppm/save.hh
+++ b/milena/mln/io/ppm/save.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
diff --git a/milena/mln/io/all.hh b/milena/mln/io/txt/all.hh
similarity index 72%
copy from milena/mln/io/all.hh
copy to milena/mln/io/txt/all.hh
index 7a93964..ce00758 100644
--- a/milena/mln/io/all.hh
+++ b/milena/mln/io/txt/all.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -25,32 +25,26 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_IO_ALL_HH
-# define MLN_IO_ALL_HH
+#ifndef MLN_IO_TXT_ALL_HH
+# define MLN_IO_TXT_ALL_HH
-/*! \file mln/io/all.hh
+/*! \file mln/io/txt/all.hh
*
- * \brief File that includes all io materials.
+ * \brief File that includes all txt io materials.
*/
namespace mln
{
- /// Namespace of input/output handling.
namespace io
{
- /// Internal namespace of io namespace.
- namespace internal {}
+ /// Namespace of txt input/output handling.
+ namespace txt {}
}
}
-# include <mln/io/fits/all.hh>
-# include <mln/io/pbm/all.hh>
-# include <mln/io/pfm/all.hh>
-# include <mln/io/pgm/all.hh>
-# include <mln/io/pnm/all.hh>
-# include <mln/io/ppm/all.hh>
+# include <mln/io/txt/save.hh>
-#endif // ! MLN_IO_ALL_HH
+#endif // ! MLN_IO_TXT_ALL_HH
diff --git a/milena/mln/io/ppm/save.hh b/milena/mln/io/txt/save.hh
similarity index 61%
copy from milena/mln/io/ppm/save.hh
copy to milena/mln/io/txt/save.hh
index c10f3ca..ad5713b 100644
--- a/milena/mln/io/ppm/save.hh
+++ b/milena/mln/io/txt/save.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 EPITA
+// Copyright (C) 2008 EPITA
// Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
@@ -26,22 +26,24 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_IO_PPM_SAVE_HH
-# define MLN_IO_PPM_SAVE_HH
+#ifndef MLN_IO_TXT_SAVE_HH
+# define MLN_IO_TXT_SAVE_HH
/*!
- * \file mln/io/ppm/save.hh
+ * \file mln/io/txt/save.hh
*
- * \brief Define a function which saves an image of kind ppm into
+ * \brief Define a function which saves an image of kind TXT into
* given path.
*
*/
+# include <iostream>
+# include <fstream>
+
# include <mln/core/concept/image.hh>
-# include <mln/metal/templated_by.hh>
+# include <mln/metal/is.hh>
-# include <mln/io/pnm/save.hh>
namespace mln
{
@@ -49,37 +51,52 @@ namespace mln
namespace io
{
- namespace ppm
+ namespace txt
{
- /*! Save a Milena image as a ppm image.
+ /*! Save a Milena image as a txt image.
*
- * \param[in] ima The image to save.
- * \param[in,out] filename the destination.
+ * \param[in] ima_ The image to save. Must be an image of char.
+ * \param[in] filename the destination.
*/
- template <typename I>
- void save(const Image<I>& ima, const std::string& filename);
+ void
+ save(const image2d<char>& ima, const std::string& filename);
# ifndef MLN_INCLUDE_ONLY
- template <typename I>
inline
- void save(const Image<I>& ima, const std::string& filename)
+ void
+ save(const image2d<char>& ima, const std::string& filename)
{
- mln::metal::templated_by<mln_value(I), value::rgb >::check();
-
- //call the generic function for pnm files
- io::pnm::save(PPM, exact(ima), filename);
+ trace::entering("mln::io::txt::save");
+
+ mln_precondition(ima.has_data());
+ std::ofstream ostr(filename.c_str());
+ unsigned col = 0;
+ typedef image2d<char> I;
+ mln_piter_(I) p(ima.domain());
+ for_all(p)
+ {
+ ostr << ima(p);
+ if (++col == ima.ncols())
+ {
+ ostr << std::endl;
+ col = 0;
+ }
+ }
+ ostr.close();
+
+ trace::exiting("mln::io::txt::save");
}
# endif // ! MLN_INCLUDE_ONLY
- } // end of namespace mln::ppm
+ } // end of namespace mln::io::txt
} // end of namespace mln::io
} // end of namespace mln
-#endif // ! MLN_IO_PPM_SAVE_HH
+#endif // ! MLN_IO_TXT_SAVE_HH
--
1.5.6.5
1
0
* mln/debug/colorize.hh: create a color image from a labeled image.
Use (cached) random colors.
---
milena/ChangeLog | 7 ++
milena/mln/debug/colorize.hh | 125 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 132 insertions(+), 0 deletions(-)
create mode 100644 milena/mln/debug/colorize.hh
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 6dc42f8..c1f5639 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,12 @@
2008-11-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Add debug::colorize.
+
+ * mln/debug/colorize.hh: create a color image from a labeled image.
+ Use (cached) random colors.
+
+2008-11-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Rewrite not_inplace.
* mln/logical/not.hh,
diff --git a/milena/mln/debug/colorize.hh b/milena/mln/debug/colorize.hh
new file mode 100644
index 0000000..179518e
--- /dev/null
+++ b/milena/mln/debug/colorize.hh
@@ -0,0 +1,125 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef MLN_DEBUG_COLORIZE_HH
+# define MLN_DEBUG_COLORIZE_HH
+
+/*! \file mln/debug/colorize.hh
+ *
+ * \brief Fill an image with successive values.
+ */
+
+# include <mln/core/concept/image.hh>
+# include <mln/fun/i2v/array.hh>
+# include <mln/value/rgb8.hh>
+# include <mln/literal/black.hh>
+# include <mln/level/transform.hh>
+
+
+namespace mln
+{
+
+ namespace debug
+ {
+
+ namespace colorize_
+ {
+ static unsigned min_value = 20;
+ static unsigned max_value = 220;
+ }
+
+
+ /// Create a new color image from a labeled image and fill each component
+ /// with a random color.
+ /*!
+ * litera::black is used for component 0, e.g. the background.
+ * Min and max values for RGB values can be set through the global
+ * variables mln::debug::colorize_::min_value and
+ * mln::debug::colorize_::max_value.
+ *
+ * \param[in] labeled_image A labeled image (\sa labeling::blobs).
+ * \param[in] nlabels Number of labels.
+ */
+ template <typename I, typename J>
+ mln_concrete(I) colorize(const Image<J>& labeled_image, mln_value(J) nlabels);
+
+
+# ifndef MLN_INCLUDE_ONLY
+
+
+ namespace internal
+ {
+
+ template <typename V>
+ V random_color();
+
+ mln::value::rgb8
+ random_color()
+ {
+ return mln::value::rgb8(colorize_::min_value + (rand() % colorize_::max_value),
+ colorize_::min_value + (rand() % colorize_::max_value),
+ colorize_::min_value + (rand() % colorize_::max_value));
+ }
+
+ }
+
+ template <typename I, typename J>
+ inline
+ mln_concrete(I)
+ colorize(const Image<J>& input, mln_value(J) nlabels)
+ {
+ trace::entering("debug::colorize");
+ mln_precondition(exact(input).has_data());
+
+ static fun::i2v::array<mln_value(I)> f(0);
+ int diff_size = f.size() - (nlabels + 1);
+ if (diff_size < 0)
+ {
+ f.resize(nlabels + 1);
+ unsigned i = f.size() + diff_size;
+ // We want to treat comp 0 differently since it is the background.
+ if (i == 0)
+ i = 1;
+ f(0) = literal::black;
+ for (; i < f.size(); ++i)
+ f(i) = internal::random_color();
+ }
+ mln_precondition(f.size() == (nlabels + 1));
+ mln_concrete(I) output = level::transform(input, f);
+
+ trace::exiting("debug::colorize");
+ return output;
+ }
+
+# endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace mln::debug
+
+} // end of namespace mln
+
+
+#endif // ! MLN_DEBUG_COLORIZE_HH
--
1.5.6.5
1
0
* mln/logical/not.hh,
* mln/logical/not.spe.hh: Write a dedicated version of not_inplace.
---
milena/ChangeLog | 8 ++++++++
milena/mln/logical/not.hh | 23 ++++++++++++++++++-----
milena/mln/logical/not.spe.hh | 35 +++++++++++++++++++++++++++++------
3 files changed, 55 insertions(+), 11 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 80c3f74..6dc42f8 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,4 +1,12 @@
2008-11-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Rewrite not_inplace.
+
+ * mln/logical/not.hh,
+ * mln/logical/not.spe.hh: Write a dedicated version of not_inplace.
+
+
+2008-11-03 Guillaume Lazzara <z(a)lrde.epita.fr>
Add trace::warning.
diff --git a/milena/mln/logical/not.hh b/milena/mln/logical/not.hh
index 69e5a29..fbbca34 100644
--- a/milena/mln/logical/not.hh
+++ b/milena/mln/logical/not.hh
@@ -82,15 +82,28 @@ namespace mln
{
template <typename I, typename O>
inline
- void not__(const I& input, O& output)
+ void not_(const I& input, O& output)
{
- trace::entering("logical::impl::generic::not__");
+ trace::entering("logical::impl::generic::not_");
mln_piter(I) p(input.domain());
for_all(p)
output(p) = ! input(p);
- trace::exiting("logical::impl::generic::not__");
+ trace::exiting("logical::impl::generic::not_");
+ }
+
+ template <typename I>
+ inline
+ void not_inplace(I& inout)
+ {
+ trace::entering("logical::impl::generic::not_");
+
+ mln_piter(I) p(inout.domain());
+ for_all(p)
+ inout(p) = ! inout(p);
+
+ trace::exiting("logical::impl::generic::not_");
}
}
@@ -109,7 +122,7 @@ namespace mln
mln_concrete(I) output;
initialize(output, input);
- impl::not__(mln_trait_image_speed(I)(), exact(input), output);
+ impl::not_(mln_trait_image_speed(I)(), exact(input), output);
trace::exiting("logical::not");
return output;
@@ -122,7 +135,7 @@ namespace mln
trace::entering("logical::not_inplace");
mln_precondition(exact(input).has_data());
- impl::not__(mln_trait_image_speed(I)(), exact(input), exact(input));
+ impl::not_inplace(mln_trait_image_speed(I)(), exact(input));
trace::exiting("logical::not_inplace");
}
diff --git a/milena/mln/logical/not.spe.hh b/milena/mln/logical/not.spe.hh
index 8e5f7c6..927f4f5 100644
--- a/milena/mln/logical/not.spe.hh
+++ b/milena/mln/logical/not.spe.hh
@@ -55,28 +55,51 @@ namespace mln
namespace generic
{
template <typename I, typename O>
- void not__(const I& input, O& output);
+ void not_(const I& input, O& output);
+
+ template <typename I>
+ void not_inplace(I& inout);
}
template <typename I, typename O>
inline
- void not__(trait::image::speed::any, const I& input, O& output)
+ void not_(trait::image::speed::any, const I& input, O& output)
+ {
+ generic::not_(input, output);
+ }
+
+ template <typename I>
+ inline
+ void not_inplace(trait::image::speed::any, I& inout)
{
- generic::not__(input, output);
+ generic::not_inplace(inout);
}
template <typename I, typename O>
inline
- void not__(trait::image::speed::fastest, const I& input, O& output)
+ void not_(trait::image::speed::fastest, const I& input, O& output)
{
- trace::entering("logical::impl::not__");
+ trace::entering("logical::impl::not_");
mln_pixter(const I) ip(input);
mln_pixter(O) op(output);
for_all_2(ip, op)
op.val() = ! ip.val();
- trace::exiting("logical::impl::not__");
+ trace::exiting("logical::impl::not_");
+ }
+
+ template <typename I>
+ inline
+ void not_inplace(trait::image::speed::fastest, I& inout)
+ {
+ trace::entering("logical::impl::not_inplace");
+
+ mln_pixter(I) p(inout);
+ for_all(p)
+ p.val() = ! p.val();
+
+ trace::exiting("logical::impl::not_inplace");
}
} // end of namespace mln::logical::impl
--
1.5.6.5
1
0
* scribo/demat.hh: Use tesseract and store the result in an image of
char.
---
milena/sandbox/ChangeLog | 8 ++
milena/sandbox/scribo/demat.hh | 140 ++++++++++++++++++++++++++--------------
2 files changed, 99 insertions(+), 49 deletions(-)
diff --git a/milena/sandbox/ChangeLog b/milena/sandbox/ChangeLog
index 6f31c88..e1bd1f1 100644
--- a/milena/sandbox/ChangeLog
+++ b/milena/sandbox/ChangeLog
@@ -1,3 +1,11 @@
+2008-11-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add tesseract support for Scribo.
+
+ * scribo/demat.hh: Use tesseract and store the result in an image of
+ char.
+
+
2008-11-03 Ugo Jardonnet <jardonnet(a)lrde.epita.fr>
INIM: Move classif work in the inim directory.
diff --git a/milena/sandbox/scribo/demat.hh b/milena/sandbox/scribo/demat.hh
index ff332d3..f03b8bd 100644
--- a/milena/sandbox/scribo/demat.hh
+++ b/milena/sandbox/scribo/demat.hh
@@ -29,6 +29,7 @@
# define DEMAT_HH_
# include <libgen.h>
+# include <sstream>
# include <mln/core/image/image2d.hh>
# include <mln/core/image/image1d.hh>
@@ -53,6 +54,7 @@
# include <mln/convert/to_fun.hh>
# include <mln/debug/println.hh>
+# include <mln/debug/colorize.hh>
# include <mln/draw/box.hh>
@@ -62,6 +64,7 @@
# include <mln/io/pbm/save.hh>
# include <mln/io/ppm/save.hh>
# include <mln/io/pgm/save.hh>
+# include <mln/io/txt/save.hh>
# include <mln/labeling/blobs.hh>
# include <mln/labeling/compute.hh>
@@ -90,6 +93,8 @@
# include <mln/win/hline2d.hh>
# include <mln/win/vline2d.hh>
+#include <tesseract/baseapi.h>
+
namespace scribo
{
@@ -103,39 +108,82 @@ namespace scribo
char *input_file = 0;
int dbg_file_id = 0;
- std::string output_file(const char *name)
+ std::string output_file(const char *name, unsigned file_id)
{
- std::string str = "";
-// str += dbg_file_id;
-// str += "-";
-// str += input_file;
-// str += "-";
- str += name;
- return str;
+ std::ostringstream os;
+ os << "./"
+ << file_id
+ << "_"
+ << input_file
+ << "_"
+ << name;
+ return os.str();
}
void draw_component_boxes(image2d<rgb8>& output, const util::array<box2d>& boxes)
{
for (unsigned i = 1; i < boxes.nelements(); ++i)
if (boxes[i].is_valid())
+ {
+ output(boxes[i].center()) = literal::red;
draw::box(output, boxes[i], literal::red);
+ }
}
template <typename V>
void save_lbl_image(const image2d<V>& lbl, unsigned nlabels,
- const char *filename)
+ const char *filename, unsigned file_id)
{
- image2d<rgb8> output(lbl.domain());
+ image2d<rgb8> output = debug::colorize<image2d<rgb8>, image2d<V> >(lbl, nlabels);
+ io::ppm::save(output, output_file(filename, file_id));
+ }
- fun::i2v::array<rgb8> f(nlabels + 1);
- f(0) = literal::black;
- for (unsigned i = 1; i <= nlabels; ++i)
- f(i) = rgb8(255 / ((i % 10) + 1), (100 + i) % 255, (255 + i)%255);
- output = level::transform(lbl, f);
- io::ppm::save(output, output_file(filename));
+
+ /// Functions related to Text Recognition.
+ /// \{
+
+ void
+ text_recognition(const image2d<bool>& in, const image2d<int_u16>& lbl,
+ const util::array<box2d>& tboxes)
+ {
+ /// Use txt bboxes here with Tesseract
+ std::cout << "Text recognition..." << std::endl;
+
+ TessBaseAPI::InitWithLanguage(NULL, NULL, "fra", NULL, false, 0, NULL);
+ image2d<char> txt(in.domain());
+ level::fill(txt, ' ');
+
+ for (unsigned i = 1; i < tboxes.nelements(); ++i)
+ {
+ if (tboxes[i].is_valid())
+ {
+ // FIXME: do not create a new image.
+ image2d<bool> b(tboxes[i], 0);
+ level::fill(b, false);
+ level::fill(b, in | (tboxes[i] | (pw::value(lbl) == pw::cst(i))));
+
+ char* s = TessBaseAPI::TesseractRect(
+ (unsigned char*) b.buffer(),
+ sizeof (bool), // Pixel size.
+ b.ncols() * sizeof (bool), // Row_offset
+ 0, // Left
+ 0, // Top
+ b.ncols(), // n cols
+ b.nrows()); // n rows
+
+ point2d p = tboxes[i].center();
+ p.col() -= (tboxes[i].pmax().col() - tboxes[i].pmin().col()) / 2;
+ if (s != 0)
+ debug::put_word(txt, p, s);
+ free(s);
+ }
+ }
+ io::txt::save(txt, "out.txt");
}
+ /// \}
+
/// Functions related to the matrix extraction
/// \{
@@ -216,17 +264,17 @@ namespace scribo
for (unsigned i = 1; i < in.ncols(); ++i)
{
if (hend.at(i) > 0)
- draw_row(tmp, i, literal::dark_orange);
+ draw_col(tmp, i, literal::dark_orange);
if (vcol.at(i) > 0)
- draw_row(tmp, i, literal::dark_orange);
+ draw_col(tmp, i, literal::dark_orange);
}
for (unsigned i = 1; i < in.nrows(); ++i)
{
if (hrow.at(i) > 0)
- draw_col(tmp, i, literal::dark_red);
+ draw_row(tmp, i, literal::dark_red);
if (vend.at(i) > 0)
- draw_col(tmp, i, literal::dark_red);
+ draw_row(tmp, i, literal::dark_red);
}
for (unsigned i = 1; i < tboxes.first.nelements(); ++i)
@@ -235,7 +283,7 @@ namespace scribo
for (unsigned i = 1; i < tboxes.second.nelements(); ++i)
draw_hline(tmp, tboxes.second[i], literal::red);
- io::ppm::save(tmp, output_file("matrix.ppm"));
+ io::ppm::save(tmp, output_file("matrix.ppm", 4));
#endif
}
@@ -254,7 +302,7 @@ namespace scribo
{
std::cout << "component boxes" << std::endl;
int_u16 nlabels = 0;
- image2d<int_u16> lbl = labeling::blobs(filter, c4(), nlabels);
+ image2d<int_u16> lbl = labeling::blobs(filter, c8(), nlabels);
return labeling::compute(accu::meta::bbox(), lbl, nlabels);
}
@@ -289,12 +337,10 @@ namespace scribo
// Lignes verticales
std::cout << "Removing vertical lines" << std::endl;
win::vline2d vline(l);
- io::pbm::save(in, "ero_in_before");
- trace::quiet = false;
image2d<bool> vfilter = morpho::erosion(in, vline);
#ifndef NOUT
- io::pbm::save(vfilter, output_file("table-vfilter.pbm"));
+ io::pbm::save(vfilter, output_file("table-vfilter.pbm", 1));
#endif
boxes_t vboxes = component_boxes(vfilter);
@@ -307,7 +353,7 @@ namespace scribo
image2d<bool> hfilter = morpho::erosion(in, hline);
#ifndef NOUT
- io::pbm::save(hfilter, output_file("table-hfilter.pbm"));
+ io::pbm::save(hfilter, output_file("table-hfilter.pbm", 2));
#endif
boxes_t hboxes = component_boxes(hfilter);
@@ -318,7 +364,7 @@ namespace scribo
image2d<rgb8> tmp = clone(output);
draw_component_boxes(tmp, vboxes);
draw_component_boxes(tmp, hboxes);
- io::ppm::save(tmp, output_file("table-filtered.ppm"));
+ io::ppm::save(tmp, output_file("table-filtered.ppm", 3));
#endif
return std::make_pair(vboxes, hboxes);
@@ -364,11 +410,11 @@ namespace scribo
util::array<mln_result(accu_count_t)> nsitecomp
= labeling::compute(accu_count_t(), lbl, nlabels);
- std::cout << "nlabels with small comps = " << nlabels
- << " == " << nsitecomp.nelements() << std::endl;
V ncomp = 0;
+
fun::i2v::array<V> f(nsitecomp.nelements());
f(0) = 0;
+
for (unsigned i = 1; i <= nlabels; ++i)
{
if (nsitecomp[i] < min_comp_size)
@@ -377,15 +423,11 @@ namespace scribo
f(i) = ++ncomp;
}
- std::cout << "f.size() =" << f.size()
- << " - nsitecomp.nelements() =" << nsitecomp.nelements()
- << std::endl;
lbl = level::transform(lbl, f);
nlabels = ncomp;
#ifndef NOUT
- std::cout << "nlabels = " << nlabels << std::endl;
- save_lbl_image(lbl, nlabels, "lbl-small-comps-removed.pgm");
+ save_lbl_image(lbl, nlabels, "lbl-small-comps-removed.pgm", 6);
#endif
}
@@ -405,7 +447,7 @@ namespace scribo
lbl = level::transform(lbl, left_link);
#ifndef NOUT
- save_lbl_image(lbl, ncomp, "lbl-grouped-boxes.pgm");
+ save_lbl_image(lbl, ncomp, "lbl-grouped-boxes.pgm", 7);
#endif
util::array<box2d> result;
@@ -421,10 +463,10 @@ namespace scribo
/// the current bbox.
void update_link(fun::i2v::array<int_u16>& left_link, image2d<int_u16>& lbl,
const point2d& p, const point2d& c,
- unsigned i, unsigned dmax)
+ unsigned i, int dmax)
{
- if (lbl.domain().has(p) && lbl(p) != 0 && lbl(p) != i
- && (p.col() - c.col()) < dmax)
+ if (lbl.domain().has(p) && lbl(p) != 0u && lbl(p) != i
+ && (math::abs(p.col() - c.col())) < dmax)
{
if (left_link(lbl(p)) == lbl(p) && most_left(left_link, i) != lbl(p))
left_link(lbl(p)) = i;
@@ -452,14 +494,14 @@ namespace scribo
for (unsigned i = 1; i <= ncomp; ++i)
{
unsigned midcol = (cboxes[i].pmax().col() - cboxes[i].pmin().col()) / 2;
- unsigned dmax = midcol + bbox_distance;
+ int dmax = midcol + bbox_distance;
point2d c = cboxes[i].center();
/// First site on the right of the central site
point2d p(c.row(), c.col() + 1);
// FIXME: Lemmings with a condition on the distance => write a special version?
- while (lbl.domain().has(p) && (lbl(p) == 0 || lbl(p) == i)
- && (p.col() - c.col()) < dmax)
+ while (lbl.domain().has(p) && (lbl(p) == 0u || lbl(p) == i)
+ && math::abs(p.col() - c.col()) < dmax)
++p.col();
update_link(left_link, lbl, p, c, i, dmax);
@@ -470,6 +512,7 @@ namespace scribo
util::array<box2d>
extract_text(image2d<bool>& in,
+ image2d<int_u16>& lbl,
image2d<rgb8>& output,
unsigned bbox_distance,
unsigned min_comp_size)
@@ -482,7 +525,7 @@ namespace scribo
// Find character bboxes.
V nlabels;
- image2d<V> lbl = labeling::blobs(in, c4(), nlabels);
+ lbl = labeling::blobs(in, c8(), nlabels);
//Remove small components.
remove_small_comps_i2v(lbl, nlabels, min_comp_size);
@@ -492,7 +535,7 @@ namespace scribo
#ifndef NOUT
image2d<rgb8> tmp = clone(output);
draw_component_boxes(tmp, cboxes);
- io::ppm::save(tmp, output_file("character-bboxes.ppm"));
+ io::ppm::save(tmp, output_file("character-bboxes.ppm", 5));
#endif
//merge_bboxes(cboxes, lbl, nlabels);
@@ -531,7 +574,7 @@ namespace scribo
//Load image
image2d<bool> in;
io::pbm::load(in, argv[1]);
- in = logical::not_(in);
+ logical::not_inplace(in);
image2d<rgb8> output = level::convert(rgb8(), in);
@@ -543,15 +586,14 @@ namespace scribo
internal::extract_matrix(in, tblboxes);
}
+ image2d<value::int_u16> lbl;
util::array<box2d> tboxes =
- internal::extract_text(in, output, bbox_distance, min_comp_size);
+ internal::extract_text(in, lbl, output, bbox_distance, min_comp_size);
internal::draw_component_boxes(output, tboxes);
- io::ppm::save(output, internal::output_file("out"));
+ io::ppm::save(output, internal::output_file("out.ppm", 8));
- /// Use txt bboxes here with Tesseract
- /// for (i = 1; i < tboxes.nelements(); ++i)
- /// tesseract(in | tboxes[i])
+ internal::text_recognition(in, lbl, tboxes);
}
} // end of namespace scribo
--
1.5.6.5
1
0