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
* mln/fun/meta/blue.hh,
* mln/fun/meta/green.hh: add new meta functions to use with fun_image.
* headers.mk: Add new headers to distribution.
* tests/unit_test/Makefile.am,
* tests/unit_test/mln_fun_meta_blue.cc,
* tests/unit_test/mln_fun_meta_green.cc: Add new unit tests.
---
milena/ChangeLog | 13 +++++
milena/headers.mk | 2 +
milena/mln/fun/meta/blue.hh | 64 ++++++++++++++++++++++++++
milena/mln/fun/meta/green.hh | 64 ++++++++++++++++++++++++++
milena/tests/unit_test/Makefile.am | 4 ++
milena/tests/unit_test/mln_fun_meta_blue.cc | 11 ++++
milena/tests/unit_test/mln_fun_meta_green.cc | 11 ++++
7 files changed, 169 insertions(+), 0 deletions(-)
create mode 100644 milena/mln/fun/meta/blue.hh
create mode 100644 milena/mln/fun/meta/green.hh
create mode 100644 milena/tests/unit_test/mln_fun_meta_blue.cc
create mode 100644 milena/tests/unit_test/mln_fun_meta_green.cc
diff --git a/milena/ChangeLog b/milena/ChangeLog
index b2b7dd9..9472f63 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,18 @@
2009-01-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Add fun::meta::green and fun::meta::blue.
+
+ * mln/fun/meta/blue.hh,
+ * mln/fun/meta/green.hh: Add new meta functions to use with fun_image.
+
+ * headers.mk: Add new headers to distribution.
+
+ * tests/unit_test/Makefile.am,
+ * tests/unit_test/mln_fun_meta_blue.cc,
+ * tests/unit_test/mln_fun_meta_green.cc: Add new unit tests.
+
+2009-01-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Small fixes.
* mln/binarization/binarization.hh: remove a non-valid static test.
diff --git a/milena/headers.mk b/milena/headers.mk
index 3365173..fc78f90 100644
--- a/milena/headers.mk
+++ b/milena/headers.mk
@@ -239,7 +239,9 @@ mln/fun/x2x/rotation.hh \
mln/fun/x2x/essential.hh \
mln/fun/meta/red.hh \
mln/fun/meta/hue.hh \
+mln/fun/meta/green.hh \
mln/fun/meta/inty.hh \
+mln/fun/meta/blue.hh \
mln/fun/meta/sat.hh \
mln/fun/meta/to_enc.hh \
mln/fun/x2v/linear.hh \
diff --git a/milena/mln/fun/meta/blue.hh b/milena/mln/fun/meta/blue.hh
new file mode 100644
index 0000000..4c5a64d
--- /dev/null
+++ b/milena/mln/fun/meta/blue.hh
@@ -0,0 +1,64 @@
+// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can blueistribute 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 coveblue by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be coveblue by the GNU General
+// Public License.
+
+#ifndef MLN_FUN_META_BLUE_HH
+# define MLN_FUN_META_BLUE_HH
+
+# include <mln/core/concept/meta_fun.hh>
+# include <mln/value/rgb.hh>
+
+namespace mln {
+
+ namespace meta {
+
+ template <class T>
+ struct blue : impl< blue<T> > { typedef T value; };
+
+ }
+
+ template <unsigned n>
+ struct function< meta::blue< value::rgb<n> > > : public Function_v2w_w2v<function< meta::blue < value::rgb<n> > > >
+ {
+ typedef value::rgb<n> value;
+
+ typedef typename value::blue_t result;
+ result read(const value& c)
+ {
+ return c.blue();
+ }
+
+ typedef result& lresult;
+ lresult write(value& c)
+ {
+ return c.blue();
+ }
+ };
+
+
+}
+
+#endif // MLN_FUN_META_BLUE_HH
diff --git a/milena/mln/fun/meta/green.hh b/milena/mln/fun/meta/green.hh
new file mode 100644
index 0000000..6cce043
--- /dev/null
+++ b/milena/mln/fun/meta/green.hh
@@ -0,0 +1,64 @@
+// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can greenistribute 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 covegreen by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covegreen by the GNU General
+// Public License.
+
+#ifndef MLN_FUN_META_GREEN_HH
+# define MLN_FUN_META_GREEN_HH
+
+# include <mln/core/concept/meta_fun.hh>
+# include <mln/value/rgb.hh>
+
+namespace mln {
+
+ namespace meta {
+
+ template <class T>
+ struct green : impl< green<T> > { typedef T value; };
+
+ }
+
+ template <unsigned n>
+ struct function< meta::green< value::rgb<n> > > : public Function_v2w_w2v<function< meta::green < value::rgb<n> > > >
+ {
+ typedef value::rgb<n> value;
+
+ typedef typename value::green_t result;
+ result read(const value& c)
+ {
+ return c.green();
+ }
+
+ typedef result& lresult;
+ lresult write(value& c)
+ {
+ return c.green();
+ }
+ };
+
+
+}
+
+#endif // MLN_FUN_META_GREEN_HH
diff --git a/milena/tests/unit_test/Makefile.am b/milena/tests/unit_test/Makefile.am
index 168c709..e055ee3 100644
--- a/milena/tests/unit_test/Makefile.am
+++ b/milena/tests/unit_test/Makefile.am
@@ -236,7 +236,9 @@ mln_fun_x2x_rotation \
mln_fun_x2x_essential \
mln_fun_meta_red \
mln_fun_meta_hue \
+mln_fun_meta_green \
mln_fun_meta_inty \
+mln_fun_meta_blue \
mln_fun_meta_sat \
mln_fun_meta_to_enc \
mln_fun_x2v_linear \
@@ -1244,7 +1246,9 @@ mln_fun_x2x_rotation_SOURCES = mln_fun_x2x_rotation.cc
mln_fun_x2x_essential_SOURCES = mln_fun_x2x_essential.cc
mln_fun_meta_red_SOURCES = mln_fun_meta_red.cc
mln_fun_meta_hue_SOURCES = mln_fun_meta_hue.cc
+mln_fun_meta_green_SOURCES = mln_fun_meta_green.cc
mln_fun_meta_inty_SOURCES = mln_fun_meta_inty.cc
+mln_fun_meta_blue_SOURCES = mln_fun_meta_blue.cc
mln_fun_meta_sat_SOURCES = mln_fun_meta_sat.cc
mln_fun_meta_to_enc_SOURCES = mln_fun_meta_to_enc.cc
mln_fun_x2v_linear_SOURCES = mln_fun_x2v_linear.cc
diff --git a/milena/tests/unit_test/mln_fun_meta_blue.cc b/milena/tests/unit_test/mln_fun_meta_blue.cc
new file mode 100644
index 0000000..790ecc7
--- /dev/null
+++ b/milena/tests/unit_test/mln_fun_meta_blue.cc
@@ -0,0 +1,11 @@
+// Unit test for mln/fun/meta/blue.hh.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/meta/blue.hh>
+#include <mln/fun/meta/blue.hh>
+
+int main()
+{
+ // Nothing.
+}
diff --git a/milena/tests/unit_test/mln_fun_meta_green.cc b/milena/tests/unit_test/mln_fun_meta_green.cc
new file mode 100644
index 0000000..b302776
--- /dev/null
+++ b/milena/tests/unit_test/mln_fun_meta_green.cc
@@ -0,0 +1,11 @@
+// Unit test for mln/fun/meta/green.hh.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/meta/green.hh>
+#include <mln/fun/meta/green.hh>
+
+int main()
+{
+ // Nothing.
+}
--
1.5.6.5
1
0
* mln/binarization/binarization.hh: remove a non-valid static test.
* mln/value/rgb16.hh,
* mln/fun/v2b/threshold.hh,
* mln/binarization/threshold.hh: update comments.
* mln/debug/colorize.hh: make it work with rgb16.
* mln/value/rgb8.hh: remove useless include.
* tests/core/image/Makefile.am,
* tests/core/image/tr_image.cc: re-enable tr_image test and make it
work.
---
milena/ChangeLog | 18 +++++++++
milena/mln/binarization/binarization.hh | 32 ++++++++--------
milena/mln/binarization/threshold.hh | 38 +++++++++----------
milena/mln/debug/colorize.hh | 15 ++++---
milena/mln/fun/v2b/threshold.hh | 19 ++++-----
milena/mln/value/rgb16.hh | 18 ++++----
milena/mln/value/rgb8.hh | 19 ++++-----
milena/tests/core/image/Makefile.am | 6 +-
milena/tests/core/image/tr_image.cc | 63 +++++++++++++++++++------------
9 files changed, 128 insertions(+), 100 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 6f6463d..b2b7dd9 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,23 @@
2009-01-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Small fixes.
+
+ * mln/binarization/binarization.hh: remove a non-valid static test.
+
+ * mln/value/rgb16.hh,
+ * mln/fun/v2b/threshold.hh,
+ * mln/binarization/threshold.hh: update comments.
+
+ * mln/debug/colorize.hh: make it work with rgb16.
+
+ * mln/value/rgb8.hh: remove useless include.
+
+ * tests/core/image/Makefile.am,
+ * tests/core/image/tr_image.cc: re-enable tr_image test and make it
+ work.
+
+2009-01-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Update tutorial.
* doc/Doxyfile.in: Add a new IMAGE_PATH and a new macro expansion in
diff --git a/milena/mln/binarization/binarization.hh b/milena/mln/binarization/binarization.hh
index a333ef2..1a6f2d7 100644
--- a/milena/mln/binarization/binarization.hh
+++ b/milena/mln/binarization/binarization.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2008, 2009 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_BINARIZATION_BINARIZATION_HH
# define MLN_BINARIZATION_BINARIZATION_HH
-/*! \file mln/binarization/threshold.hh
- *
- * \brief Threshold the contents of an image into another binary one.
- */
+/// \file mln/binarization/threshold.hh
+///
+/// Threshold the contents of an image into another binary one.
# include <mln/core/concept/function.hh>
# include <mln/level/transform.hh>
@@ -43,20 +43,19 @@ namespace mln
namespace binarization
{
- /*! Thresholds the values of \p input so that they can be stored in
- * the \p output binary image.
- *
- * \param[in] input The input image.
- * \param[in] fun The thresholding function, from value(I) to bool.
- *
- * for_all(p), output(p) = fun(p)
- *
- */
+ /// Thresholds the values of \p input so that they can be stored in
+ /// the \p output binary image.
+ ///
+ /// \param[in] input The input image.
+ /// \param[in] fun The thresholding function, from value(I) to bool.
+ ///
+ /// for_all(p), output(p) = fun(p)
template <typename I, typename F>
inline
mln_concrete_ch_value(I, bool)
binarization(const Image<I>& input, const Function_v2b<F>& fun);
+
# ifndef MLN_INCLUDE_ONLY
namespace impl
@@ -79,6 +78,9 @@ namespace mln
} // end of namespace mln::binarization::impl
+
+ // Facade
+
template <typename I, typename F>
inline
mln_concrete_ch_value(I, bool)
@@ -86,8 +88,6 @@ namespace mln
{
trace::entering("binarization::binarization");
mln_precondition(exact(input).is_valid());
- mlc_is(mln_trait_value_nature(mln_value(I)),
- trait::value::nature::scalar)::check();
mln_concrete_ch_value(I, bool) output(exact(input).domain());
output = impl::binarization_(exact(input), fun);
diff --git a/milena/mln/binarization/threshold.hh b/milena/mln/binarization/threshold.hh
index 104d40e..f76cd8a 100644
--- a/milena/mln/binarization/threshold.hh
+++ b/milena/mln/binarization/threshold.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2008, 2009 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_BINARIZATION_THRESHOLD_HH
# define MLN_BINARIZATION_THRESHOLD_HH
-/*! \file mln/binarization/threshold.hh
- *
- * \brief Threshold the contents of an image into another binary one.
- */
+/// \file mln/binarization/threshold.hh
+///
+/// Threshold the contents of an image into another binary one.
# include <mln/binarization/binarization.hh>
# include <mln/fun/v2b/threshold.hh>
@@ -43,21 +43,19 @@ namespace mln
namespace binarization
{
- /*! Thresholds the values of \p input so that they can be stored in
- * the \p output binary image.
- *
- * \param[in] input The input image.
- * \param[in] threshold The threshold.
- *
- * If input(p) is greater or equal than the threshold, the
- * value in the output image in the same point will be TRUE, else FALSE.
- *
- */
+ /// Thresholds the values of \p input so that they can be stored in
+ /// the \p output binary image.
+ ///
+ /// \param[in] input The input image.
+ /// \param[in] threshold The threshold.
+ ///
+ /// If input(p) is greater or equal than the threshold, the
+ /// value in the output image in the same point will be TRUE, else FALSE.
template <typename I>
mln_concrete_ch_value(I, bool)
threshold(const Image<I>& input, const mln_value(I) threshold);
-
+
# ifndef MLN_INCLUDE_ONLY
template <typename I>
@@ -66,18 +64,18 @@ namespace mln
threshold(const Image<I>& input, const mln_value(I) threshold_value)
{
trace::entering("binarization::threshold");
-
+
mln_precondition(exact(input).is_valid());
mlc_is(mln_trait_value_nature(mln_value(I)),
trait::value::nature::scalar)::check();
mln_concrete_ch_value(I, bool) output(exact(input).domain());
-
+
// FIXME : threshold value should be a percentage.
fun::v2b::threshold< mln_value(I) > f(threshold_value);
-
+
output = binarization::binarization(exact(input), f);
-
+
trace::exiting("binarization::threshold");
return output;
}
diff --git a/milena/mln/debug/colorize.hh b/milena/mln/debug/colorize.hh
index 544a755..44021ec 100644
--- a/milena/mln/debug/colorize.hh
+++ b/milena/mln/debug/colorize.hh
@@ -85,14 +85,15 @@ namespace mln
{
template <typename V>
- V random_color();
+ V random_color(const V&);
- mln::value::rgb8
- random_color()
+ template <unsigned n>
+ mln::value::rgb<n>
+ random_color(const mln::value::rgb<n>&)
{
- 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));
+ return mln::value::rgb<n>(colorize_::min_value + (rand() % colorize_::max_value),
+ colorize_::min_value + (rand() % colorize_::max_value),
+ colorize_::min_value + (rand() % colorize_::max_value));
}
}
@@ -125,7 +126,7 @@ namespace mln
f(0) = literal::black;
}
for (; i < f.size(); ++i)
- f(i) = internal::random_color();
+ f(i) = internal::random_color(value);
}
mln_assertion(f.size() >= (label_count));
mln_ch_value(L, V) output = level::transform(input, f);
diff --git a/milena/mln/fun/v2b/threshold.hh b/milena/mln/fun/v2b/threshold.hh
index c8ea02c..85b7831 100644
--- a/milena/mln/fun/v2b/threshold.hh
+++ b/milena/mln/fun/v2b/threshold.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2008, 2009 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_FUN_V2B_THRESHOLD_HH
# define MLN_FUN_V2B_THRESHOLD_HH
-/*! \file mln/fun/v2b/threshold.hh
- *
- * \brief FIXME.
- */
+/// \file mln/fun/v2b/threshold.hh
+///
+/// FIXME.
# include <mln/core/concept/function.hh>
@@ -45,11 +45,8 @@ namespace mln
namespace v2b
{
- /*!
- *\brief Threshold function.
- * f(v) = (v >= threshold).
- *
- */
+ /// Threshold function.
+ /// f(v) = (v >= threshold).
template <typename V>
struct threshold : public Function_v2b< threshold<V> >
{
@@ -75,7 +72,7 @@ namespace mln
bool
threshold<V>::operator()(const V& v) const
{
- return (v >= a);
+ return v >= a;
}
# endif // ! MLN_INCLUDE_ONLY
diff --git a/milena/mln/value/rgb16.hh b/milena/mln/value/rgb16.hh
index 1a22013..a012aa0 100644
--- a/milena/mln/value/rgb16.hh
+++ b/milena/mln/value/rgb16.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2009 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,11 +29,10 @@
#ifndef MLN_VALUE_RGB16_HH
# define MLN_VALUE_RGB16_HH
-/*! \file mln/value/rgb16.hh
- *
- * \brief Color class for red-green-blue where every component is
- * 16-bit encoded.
- */
+/// \file mln/value/rgb16.hh
+///
+/// Color class for red-green-blue where every component is
+/// 16-bit encoded.
# include <mln/value/rgb.hh>
@@ -43,10 +43,10 @@ namespace mln
namespace value
{
- /*! \brief Color class for red-green-blue where every component is
- * 16-bit encoded.
- */
+ /// Color class for red-green-blue where every component is
+ /// 16-bit encoded.
typedef rgb<16> rgb16;
+
} // end of namespace mln::value
} // end of namespace mln
diff --git a/milena/mln/value/rgb8.hh b/milena/mln/value/rgb8.hh
index e31df55..25a2c9a 100644
--- a/milena/mln/value/rgb8.hh
+++ b/milena/mln/value/rgb8.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -28,14 +29,12 @@
#ifndef MLN_VALUE_RGB8_HH
# define MLN_VALUE_RGB8_HH
-/*! \file mln/value/rgb8.hh
- *
- * \brief Color class for red-green-blue where every component is
- * 8-bit encoded.
- */
+/// \file mln/value/rgb8.hh
+///
+/// Color class for red-green-blue where every component is
+/// 8-bit encoded.
# include <mln/value/rgb.hh>
-# include <mln/value/int_u8.hh>
namespace mln
@@ -44,10 +43,10 @@ namespace mln
namespace value
{
- /*! \brief Color class for red-green-blue where every component is
- * 8-bit encoded.
- */
+ /// Color class for red-green-blue where every component is
+ /// 8-bit encoded.
typedef rgb<8> rgb8;
+
} // end of namespace mln::value
} // end of namespace mln
diff --git a/milena/tests/core/image/Makefile.am b/milena/tests/core/image/Makefile.am
index 72f0c93..1faaaf5 100644
--- a/milena/tests/core/image/Makefile.am
+++ b/milena/tests/core/image/Makefile.am
@@ -26,8 +26,8 @@ check_PROGRAMS = \
safe_image \
## sparse_image \
sub_image \
- t_image
-## tr_image
+ t_image \
+ tr_image
## value_enc_image
noinst_HEADERS = complex_image.hh
@@ -55,7 +55,7 @@ safe_image_SOURCES = safe_image.cc
##sparse_image_SOURCES = sparse_image.cc
sub_image_SOURCES = sub_image.cc
t_image_SOURCES = t_image.cc
-##tr_image_SOURCES = tr_image.cc
+tr_image_SOURCES = tr_image.cc
##value_enc_image_SOURCES = value_enc_image.cc
# Tests depending on the FreeImagePlus library.
diff --git a/milena/tests/core/image/tr_image.cc b/milena/tests/core/image/tr_image.cc
index 90b2b9f..804a6a3 100644
--- a/milena/tests/core/image/tr_image.cc
+++ b/milena/tests/core/image/tr_image.cc
@@ -1,4 +1,5 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2009 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,10 +26,10 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/image/tr_image.cc
- *
- * \brief Tests on mln::tr_image.
- */
+/// \file tests/core/image/tr_image.cc
+///
+/// Tests on mln::tr_image.
+/// FIXME: write a real test!
#include <iostream>
@@ -44,28 +45,42 @@ int main()
using namespace mln;
using value::int_u8;
- image3d<int_u8> in(3, 3, 3);
- image3d<int_u8> out(in.domain());
+ {
+ image2d<int_u8> in(3, 3);
- debug::iota(in);
- debug::println(in);
+ debug::iota(in);
+ debug::println(in);
- fun::x2x::rotation<3, float> rot1(1.67, literal::zero);
+ algebra::vec<2, float> v;
+ v[0] = 0;
+ v[1] = 1;
+ fun::x2x::rotation<2, float> rot1(1.67, v);
- tr_image<mln_pset_(image3d<int_u8>),
- image3d<int_u8>,
- fun::x2x::rotation<3, float> >
- inter(out.domain(), in, rot1);
+ tr_image<mln_pset_(image2d<int_u8>),
+ image2d<int_u8>,
+ fun::x2x::rotation<2, float> >
+ inter(in.domain(), in, rot1);
- image3d<int_u8>::fwd_piter p(out.domain());
+ debug::println(inter);
+ }
- for_all(p)
- {
- algebra::vec<3, int> vec = p.to_site().to_vec();
- if (inter.has(p))
- out(p) = inter(vec);
- else
- out(p) = 255;
- }
- debug::println(out);
+ {
+ image3d<int_u8> in(3, 3, 3);
+
+ debug::iota(in);
+ debug::println(in);
+
+ algebra::vec<3, float> v;
+ v[0] = 0;
+ v[1] = 0;
+ v[2] = 1;
+ fun::x2x::rotation<3, float> rot1(1.67, v);
+
+ tr_image<mln_pset_(image3d<int_u8>),
+ image3d<int_u8>,
+ fun::x2x::rotation<3, float> >
+ inter(in.domain(), in, rot1);
+
+ debug::println(inter);
+ }
}
--
1.5.6.5
1
0
* doc/Doxyfile.in: Add a new IMAGE_PATH and a new macro expansion in
PREDEFINED.
* doc/tutorial/figures/tuto4_genericity_and_algorithms-1.ppm,
* doc/tutorial/figures/tuto4_genericity_and_algorithms-2.ppm,
* doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm,
* doc/tutorial/figures/tuto4_genericity_and_algorithms-4.ppm,
* doc/tutorial/figures/tuto4_genericity_and_algorithms-5.ppm,
* doc/tutorial/figures/tuto4_genericity_and_algorithms-6.ppm,
* doc/tutorial/outputs/tuto2_first_image.txt,
* doc/tutorial/outputs/tuto4_genericity_and_algorithms.txt: Add new
reference files.
* doc/tutorial/samples/Makefile.am,
* doc/tutorial/samples/tuto4_genericity_and_algorithms.cc,
* doc/tutorial/tutorial.tex: Add step 4
in tutorial.
* doc/tutorial/samples/tuto1_first_image.cc: Rename as...
* doc/tutorial/samples/tuto2_first_image.cc: ... this.
* mln/core/concept/object.hh: update namespace indexes.
---
milena/ChangeLog | 27 ++++
milena/doc/Doxyfile.in | 7 +-
.../figures/tuto4_genericity_and_algorithms-1.ppm | Bin 0 -> 24696 bytes
.../figures/tuto4_genericity_and_algorithms-2.ppm | Bin 0 -> 24696 bytes
.../figures/tuto4_genericity_and_algorithms-3.pbm | 5 +
.../figures/tuto4_genericity_and_algorithms-4.ppm | Bin 0 -> 24696 bytes
.../figures/tuto4_genericity_and_algorithms-5.ppm | Bin 0 -> 24696 bytes
.../figures/tuto4_genericity_and_algorithms-6.ppm | Bin 0 -> 24696 bytes
milena/doc/tutorial/outputs/tuto2_first_image.txt | 14 ++
milena/doc/tutorial/samples/Makefile.am | 10 +-
.../{tuto1_first_image.cc => tuto2_first_image.cc} | 0
.../samples/tuto4_genericity_and_algorithms.cc | 97 +++++++++++++++
milena/doc/tutorial/tutorial.tex | 129 +++++++++++++++++++-
milena/mln/core/concept/object.hh | 13 ++-
14 files changed, 290 insertions(+), 12 deletions(-)
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-1.ppm
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-2.ppm
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-4.ppm
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-5.ppm
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-6.ppm
create mode 100644 milena/doc/tutorial/outputs/tuto2_first_image.txt
create mode 100644 milena/doc/tutorial/outputs/tuto4_genericity_and_algorithms.txt
rename milena/doc/tutorial/samples/{tuto1_first_image.cc => tuto2_first_image.cc} (100%)
create mode 100644 milena/doc/tutorial/samples/tuto4_genericity_and_algorithms.cc
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 175a505..6f6463d 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,30 @@
+2009-01-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update tutorial.
+
+ * doc/Doxyfile.in: Add a new IMAGE_PATH and a new macro expansion in
+ PREDEFINED.
+
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-1.ppm,
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-2.ppm,
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm,
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-4.ppm,
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-5.ppm,
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-6.ppm,
+ * doc/tutorial/outputs/tuto2_first_image.txt,
+ * doc/tutorial/outputs/tuto4_genericity_and_algorithms.txt: Add new
+ reference files.
+
+ * doc/tutorial/samples/Makefile.am,
+ * doc/tutorial/samples/tuto4_genericity_and_algorithms.cc,
+ * doc/tutorial/tutorial.tex: Add step 4
+ in tutorial.
+
+ * doc/tutorial/samples/tuto1_first_image.cc: Rename as...
+ * doc/tutorial/samples/tuto2_first_image.cc: ... this.
+
+ * mln/core/concept/object.hh: update namespace indexes.
+
2009-01-06 Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Update rotation.
diff --git a/milena/doc/Doxyfile.in b/milena/doc/Doxyfile.in
index 3a79395..cda47dc 100644
--- a/milena/doc/Doxyfile.in
+++ b/milena/doc/Doxyfile.in
@@ -96,7 +96,8 @@ EXAMPLE_PATH = @top_srcdir@/milena/doc/tutorial/samples \
@top_srcdir@/milena/doc/tutorial/outputs
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
-IMAGE_PATH = @top_srcdir@/milena/doc/tutorial/figures \
+IMAGE_PATH = @top_srcdir@/milena/img \
+ @top_srcdir@/milena/doc/tutorial/figures \
@top_builddir@/milena/doc/tutorial/figures
INPUT_FILTER =
FILTER_PATTERNS =
@@ -282,7 +283,9 @@ PREDEFINED = "mlc_unqualif(T)=typename mln::metal::unqualif<T>::ret"
"mln_point(T)=typename T::point" \
"mln_point_(T)=T::point" \
"mln_gradient_component(I)=typename mln::trait::ch_value< I, mln::value::props< typename I::value >::sum >::ret" \
- "mln_gradient(I)=mln::value::stack_image< I::point::dim, mln::trait::ch_value< I, mln::value::props< typename I::value >::sum >::ret >"
+ "mln_gradient(I)=mln::value::stack_image< I::point::dim, mln::trait::ch_value< I, mln::value::props< typename I::value >::sum >::ret >" \
+ "mln_trait_value_sum_product(T, U)=typename mln::trait::value_< mln_trait_op_times(T,U) >::sum" \
+ "mln_sum_product(T, U)=typename mln::trait::value_< mln_trait_op_times(T,U) >::sum"
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-1.ppm b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-1.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..e241c0d4ff2c0bc9da85214e5e1c2e3cf9139834
GIT binary patch
literal 24696
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
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-2.ppm b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-2.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..fd9b27734ab477d8634e6c9ef908c89431043119
GIT binary patch
literal 24696
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
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm
new file mode 100644
index 0000000..350283c
--- /dev/null
+++ b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm
@@ -0,0 +1,5 @@
+P4
+# Generated by Milena 1.0 http://olena.lrde.epita.fr
+# EPITA Research and Development Laboratory (LRDE)
+64 64
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-4.ppm b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-4.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..9782ba03c44612412c9bfdd1f0e4e702f56bc7ac
GIT binary patch
literal 24696
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
T4Rt9C5>-YM`Ib73mg)ZkN@wRp
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-5.ppm b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-5.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..65ad84696f581587469c3cd5b71764d17f1bb0a4
GIT binary patch
literal 24696
zcmcg!`?pqA6<t5`v!?mT>l=%BB#;@3mWl`pA-&AZi(EzHd0}Xp2&9%T6dk@w9HLMb
z`6vu^Xr>MzO$jwbF)g3@K)`>Yd06MW%zfus`|j^vYBR>V>&*2yA9L+<&OUqZ@0&b&
z(4igUx@LEEcP{9f-ZAacj?*uk*)_YfW5m$m9UU_kESP)juwip5Wa!N9>0Lv+=3cm<
zbLjcqh&p-l_^Bs$OzE26)!BXCjE>IP(>qS;y0~lRoVl~QW-sWN*g0(ulFsSAv}5qZ
zDJPwL)S%HLJ4TNjG<wviqel(0Y&+aG*#!+AhuSagt2O?8JKMg~;FE{;w?}R7(B(yY
z&i)cwH`!nticeNaZFksuyGr2(<Ucmd4yf@j+9~#LbJ^fZ&^r63jiuvMz0aoD5_9R6
z_icookvM&13+#vHk_`{S^F9U|bZ36x{5PZ~Ncm^ZRi{uZ;oq5O{y9Ut`U&=?b+sE*
z<j*{_&cXfb|5I&^y}@Z}U72U6JoD_y`m^ZU^BJ&+`M1z3_p3c!XT%LJ*cRKKWYdGS
zc39^6-Pdl$KbL>EYj8ce<UGu_>x{5xyZlGYb57Sku~%@H@fO`}G-{olU>g)Rt%5r-
z񳴭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
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-6.ppm b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-6.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..fb30e172212d74a21816d9ef803c1c304a90c434
GIT binary patch
literal 24696
zcmZ^~WmKEn^9EY?_O!*J0(GI3mI6gXa0?D0?nr<D36c=OT?-U<cXxLWPH}fAv{X*1
zU+y~p55N22etFld$;$h#_3YVuo_S`rp2UT_f@%a3fsAn=;03WXL6D_2frJr!AtEX$
zXyM>sC;j}n?f>f$u_ogQA_O~22aJdr`RHFNdKyMRK?4GXfFa{71TiGMpfbUUU~Ow>
zLm)W_YGbgrM=!M{(*z%B8z`$hz98{RP~z1E32|{T@e3<;zA)O`<!$d=2kXUV&j{<9
zg?H|mq!TN7K0bD@cQhhjJJ;`OhR!;KvDtVA;bv;7d=XfwAV~cZgjxDX>#WI{G7l{d
z<9|!PYv~#j>K_<BHRbI*1@(dQ_Xi?ZVQcJl><rq1jlqA%YO*<T$*BH8ar`)DV&s+C
z39QqYC&3X@J92}NiQXGZCzRsihrgH);T{f2n9C3<2OP}n&9m8@cxCjZ{z)?@+|!|#
zxJ6X-@SHgSLmOHooX0TPU(HCke6}(!9b?n4inGNU^qFB5F~<G!m<eonj|F-gLu+{m
z{fs$ZDz5h%(%U)>)q#?x7%nch9P{gb>h|9A!Ym|_HQ(v>nl!j*;&IF7#lntjx`o2R
zj9Y?v|NMk!K5=w@-YbDb+Kf)~aLM{X7(Jh0y>q<c&@Um6Pe&g5pjH^dL^w8#!>NeU
zhP%jH*r?W6_%Zl$n<{b<MQ<}h01=<sqfuY5P8|T`Uu0afE%XFpzvm?BjHUicxaV1$
z(<?5XFzbdDvd2rS^raTJ9?R7A!T=J9d-qmEx&4pr%z#m16Pp)BhxVlv$vo71T{x{I
zpubU0QJ*#hm$|45>P?hIsU7O!>(cb!n#6TzLyTc_{dW-mLjDZiM-{_d2l=oeD9NEs
z><5&<&=B?~VtV)x_a1$2oCDv3vKke~ZJ{Pdh42;_`w>B0Ip)o<9_}ngd}tE4hOr+U
z#N;A<*a!F<=$=6`Rs>!!qD@f2Fo()<0;u%CKR8KL1lt`;Lf;sWM2{mw`s2}@sKEYY
zbP(#FJ}lY|)!$|Ui$))-Dl&jVoyy+nKuy1oc#|$znJ=1q2~u!NC0=-2o|PBgmNx#Y
zQ14FbrDaDCk|kkj&OOz_Yaz~U%~ECdn;XLlHFwgh!A9e2YkPEP`j2-b+p$6&6%Hll
z+2uF`O~{Lef1prAY|{*^8^PDC23<u6wWh*z5V;*x#2ffQw=~KY3GHpfhNHbw<&+r)
zB$O?0Ch*z{=xD{yul9SkTY*<Ec<NebtN=Y{Ne?#pL!0g8Hl0JRkiKomdHu4wI1q-t
zg^Er+kol$KQY@)hrt_qtL?hVXW!YslCB1_3JF49}Z4F*}en!@vH^5V-zx#f`?I5*-
zEVLft+R$Ij2Eu=M9QzIxKYS6}hFUsy?C;-W$429D^=PBf1)MMX)My^I4B0elh7-Wp
zjEZBU(3ggDutgZlAz$n!#&XaASByS4=!4-x5Jp<fCGkDO9E8i*)uB5$U(EeM4a^3z
ziQS9-j>568B8dpc!PDq4lnmPvRgKJQw?%Ma5*w(-v2cYFKdm*>hW32)C49l04C^li
zu=*q*+=;XX@aMC?yyg|~#7=hQo%e)I;fjZcyw$IT6*pmG-)uc=#_Ihvf%(=-VB==&
zeMkSF7e@BtJwG%z3<t@U+8EYDF4x8yzk_8r8$y%d3C*5}`$&Tpbrc<=-z|Za#$Fie
zCv0Go;y(aF_3U6gyt2SS#9N-H0IgL6PXU|W^<Hm~weT8;_qMIf1|+D4JhMp;Qzxsg
zD*C$G-rlJ4IZkXEbU^{Yl+?=CL7K>-EX5=pWW`-|s{UxH{ZagPR4AzR=nmJ{>$Dm8
zbWWQ_n)dX5hkHRUu-%bau<}7UG#YVw$Q)IVH2V+v5duaZnKV+1aYxCFfl<i_$B|6T
z1jcyu2i_0&bVL^J0Qocsg^GX!2cd{uIG)Xk5Qk0nFCzYh-y76H*Pu;@%(0u;x*=!W
zEEdYXf#N|34b-4eND=lu<V!e}4MB{+-PozfU8F(RGuRi@VN<xt3B*VRUV9I`)JlL?
znEA{Ixr94jTQT#y=e)V%<oDV^Z~3?Hb6d}q4WBE-tmRCPE^E=n5AGNn(0s64hs~#%
zAFM0Zr>4AIqAXQD7dHe2T>n}9ZZPHEXj)LDom)kYK?oStd;x}oPqoa!1>q&Fyog#<
zd><Ds8%vHamc6Qb7PiI{sOSO@;vA91<Nf&Z<onkE-lZhcy0V`aDQi<TsD&c4eGs-}
z@4W>J=CT%C9r6*ej@(rBwzO;<dV=gTmP!S_4%65#;!`xx6)Ve9E7vnEX;Dqnl_}>}
zY1Lh;uhx|`itIdRqG)=mI~l47eK~L!Q3^{Qe1Y6VycqO>ufqWU;s4)r$O`ol%{wBC
z;lja2a#2r_KBH#nW2nPnHy96Ork@|egoyXcLjz35`!u105Ma-3$Pb8Ie?F3o5*Tp9
zfN&9P3@)9ZGT?@iM9~LzQ09m~Y;}Yqe3`8ekAWYsI}yDIx!&K<&nUGPw9!|%cJ&ZQ
z1Jc=k-E;t(HYq|mYj<fOz#Zezu;k!9;jp#@_O7%wUzYX!X}z~}=&44kTZVf+B=IkP
z^N_IVoi}1dk>aL}XyTUkOAiBOh+RMUMp?0`htG$p$!ayjs4*;eouVNOOlh%zn<5@}
zEnqdVaj^v10-Z6a4hIalgHgHBs(gT#<?B;`V<mXq<Tck#{l3`YH>3g<>;|?k1=rfO
zY`*l2H>=yE`&_qB-?-@;LDJb=^%^IV*&u|aiA(aNgpcNfLOI1dy4~f0s#$uBQl=_N
z*SQR-dP`@hVNEB?sHTf$vI}<YUW8tNB=-M=Q6QNEC*c{0%ApHzIQ;eSFGMX`^#68&
zIw~LKIl@L!FhZlJ5j5n3(aXqHl;?05;yCgF`w|9%yWPuaIbtQ*V{N}}@7<Ye{o9(i
zOA|4IjO+1(y+^+6ryw9`y@4=9Cfa&X2(^U$J7|WOMqgsrBAAHtgI$R8@SL7skP!q|
zbH5=N_P#b(CklF|?T2wE%5#F(_M~;i43U;-FEvkaqdE*PHhZ|({<CQAh9_NL3UfnS
znJ=fhQLUAio-*GOcW3&j85Vof!H%a1Ba^D+QB2~;mWm)B;?E~DPT7B#y)&<}<V%cn
zq)j~PDW(nx<Jf0%$8{8;d7OgsS;!{dR>kWCu3PEKDd-rUB>)eilfzfGWb=aWH`3>w
z$Dx7t`Wpzh7J}SD5$OsneM7~I*W7pGlfOOb=eC~DsMYP^ab%oHKr%r5ow`@Sk~|AU
zD3?)vps!NKr7EwJS6#3AQzxY5i>|GaU7w~2(qwVqF61qEZRjPO0TCKBfe*vBM&^+|
z$SY$w#J?!5Q4{z);@|(>3xnseRTggl>-o<fd=|470UI^QT1d1U5zd^Bs~Z=~Kaq5L
zm?tJBtfq@Z5u-$RDu5$kzj_hK4|q<tBa(%?&9;OOpiT}P!fqpIy@Fs4*q7!H26v#}
zs_CF-5JbxtqX9(l<Ox!dW#(kN!#$gcSrOWZed9uuYrOsP!VhMujmF|<CKu6T2~Ve+
z-=6>N<b>aw+9K}|PEY={qhh<>&DfvED$ZNFPY}buiw^F`Xa9OS<(En5Q*jovxD@3g
za~tGuT5!EuUJ-u4<quH8Mc;5x62P1nFjOQWKwS6bgpfZuN~9;Z8-p6`dUhp(Ol_nl
zy9wt_xJPdy8cj%Bw|zH>iaRR7&us4RH2Jn$35+0+RVD$k(=Q-u9GSmmWkIKlP6IPR
zKT7-*e`>c>OsR(G7B{tl?2TS^hZ=DjclP$03POz8-lof@DQsitXXu#`e^@B|(a1f7
zKC*5Yfc<6`_aDM7!`LVru4XN(Rma%>#lQEpN1bOe`*m1HP|nb9{I|$2qwg~HV<IQH
z3p(Pz%>c`<q*N?;)PBz?899g_i}=}uMTJ^$b_|$WppSKbGtEGfdxpX7@W}S-hJlda
zhAAB^xW6Jy<C(EdyOv=xta`fE7GQaQCd#41YH?=4Ny1iX)|@s^c3NnopR}HuV>sFq
zKyw+CZtUiq3?%|rK6BqL2A4i9Oq#(6O<US-qP-@wZFMm>cPG=1Gf)36oqJx$IbWI4
z;J$9Mc+Fp)3@zgH1DNA01UwZ_U`F^r3SW_fyxKr_gbjDSd^fs-J6VRl7aSQw{=4?x
zMHA;-d<*bYo!v(?{c3b|8||NIDYO$8>}}({ljd`Vs56oaH#MY3e0cUpc{}xzl)qMf
zUK7w?H^0D7>7*`CDW^)RzEsVjrjr4&jii@hOzRjn95NyHUNSX;b`4lV7GQUWCLxxP
z#F2CO1jL*F#rglwZtr(KWCZms`005|jS>^TMwm|^vJGPoCjS<cB(%(aE{{*0p8sCe
zma(=V*RWRbW$LhkBa7I$ZktR=ui6KBgMFJm>D7R@n(2DW5KN7c_E*#2Wld`BMgy%h
zeJPm0e6M{W(O~H!6>r@$Jx^)2c|7^j?zOei%&0@8mG9hBO1gRI+%G#$?49{S@?ZSD
znH{_Dxa=8YyJNUtGdtw#1ml@HN~jrY?w1S8O6&`)mJs-mmG`<+`<{uxb(Y)$W`nm>
zVH;27{|p>OeB$0zxQ7hjiBV8TC-A8N>cMN*BVO;lKN%om`<$%~tuv~Lef+{wmA}sn
zN;J8%L-Z#QM|a0Ue%O88dEpgfzB(8HOExNq`20*r`Ci(F3<`8PuSu!gaHs&SB&N4l
z%&p9;$657G>!Q)C79)Ls@RznOgK!h49t-1M@Zo?YI0Awg-G|pezjd`i$q-t-t`5}r
z(|^dfY9MFuHLdnINsD{`dD_RUx9qq7v-`MQt64vWD3O9eHIwGqfH?BZOtEcp_uN_~
zXL|mkYOP9c=iE}QefHm(kow7z!=<H8;kwg(CW#}7y!reZqbA=f+_dUV9+Y2E%Qik<
za#r<(iCL3}-Ydk-MY?0F4PyN&E5uf8f#ft}t=&&YIHE-dco3<m@&!4^$HcV7X8U=(
z!qP=bKmK6;lHCm)VE&YSB4K{Mmf~s_vY77FXL)Ve(uGJI_4x6;LPH2lzaAo&i+11v
z0E%(Hco}k^kRe<*<@(T60U4!oRJXvCvJq}e&`4F<Pa6O*PF;RQCZqLoUdcSwluon}
zf1%#n*9R*HN9;WIdu_>l|2%Zn_T=_4uS3gNwm(G9u>9@g=eDYO8Gh3J+FuJQfKqzr
z3N@5R3_OZq$|?FQ)mOAAhQC^j^d^j-bu1YLnez6X2XjDr`_GuRKpOjZ!DFV3|Bd$M
z2d3jF%731wBIF?c|LTISKUUeK3;+2C9H=eSS7YEeLjH-f+_~Oy;d6}Q&6JwytNG<g
z$7iG}4h!6t=Gq@r@2*$&|80)n*kIpl7TKMhIM(^S?`A?qOh>AU>^)F!UYycNgURfA
zV5w1LeW3117<~~+u_Z>W4KoSWIm^8?8fl^Rz$gWRiJ5xYt{FE*H_I~1TjDs{1&2#L
zWGDRg!f`uU!nK7J`&M(^MJxL~GtIRrD%z?(qeJzC;Xh!ps|qq;bP2b-d^diMpQSJj
zU*{sovv53o&lGOJ75Jgb=WH-f7WMbN)Md57zlJ%O-yKz&t+XG3fJqyY0~-6us}f0S
zfxQr@kIC-VKi<JapWWi4_*dS(>g{N8#4$|O4Zgj-Bzi+_IK5oX^62C-0z&lV3WJp&
z>Dw2BmD&1)>PgKIg9|Mg`fQVzoo|gYz{$PqN0Hyys}Ferx&I%Y^)kBEkl3bwjWgl!
zy3<Cc@RWLA@De)gzh8T4)<!ms14?!|b`67Elx|A<ppbL76KT95;E!kX)ZN7Ou=ivA
zDRZ$Ci>h^>N)OhVJ>!kQRn@L*waY7U9n>1H)##p*#$y}C?CI9b-Rh~ezJSsLdv9m0
zsDCBCX^AD@mG#q$sWSj+m{J$%ltXLN^+x6%$zwUzrOmFQV*r|lRwrHH36;Z?s;Ezx
zgv@_GI-{bN(Dr}K4Htm6p#=BEKzoRV!b%=R$%1!K2lo&yioDL-3QR=Z<$41+YkpS1
z87PG;;${IjaMc1l3eyNKo(Kg8!jF4sP^-V3k^tdy2ijSe>efHY@N#^deEW5ZW>xxA
z={uTrDHf8+nlHOQgQtuUo3@_m#JrtrAuk=2w}QOSTMzeFLv>7c-vXa|sw!sOmOTZ+
z6r5Bn(ibY&Qe4$_EupGB)1y|mYs%|iZapwaGHLn`&;FNCB#i!_-FQszo+)R2pkAbD
zMx%z|8m#(1|9{Ueti`ys*MIgPmp#O8t2ft1-&Sd$gd#}^9n$sKXU&W{CFaJ=EiE;O
z6-%xxv{1_<mfy6<RLm{xG+rwEw4%|WUNgS(sq<9rxs^Y?r<%Cdjo8X9VVhS*2px>7
zJkP(r=AkmrGL<c=uWQhZ1{O9PPFabqi!vQ;4_90mM&zjOmylXGuSF!Uw!8`J&ON+h
z6Wbo)jw)WBrZ}6Qo&RdHjiWE$uy?dPzIM^!tEIoot-H~R{Sc|E4B1x}2R8~8hj3fG
zUJAn4BAy1oA^I3kpn^5#&&``EgU(}O<`DlTtbHl<M(+sA#6@$WG<1xmlcFsxtp!U{
zl)b9WnLH-tt(Dw;9rDIBW8<<%ll8G}!N8wnr>%?LDkRl@983u!6iF4uYmBA_OOvz(
z^TmLtbpeHYNAd4id`4+NcdF(eO#}TuEe-nj!FQYE^%3BQ|KVAor{b^I^Pk=LUDw$}
z`aioh6Gp)l_Dq@Mtb_jZ^efsF+FJEb+7#Liv_f#tiC5ZJ$(l}or&2Or#XVU1Sjo)z
zxZqJGl)X4RTV9^axv*1fQ>?pc&^}pnxH{DNsP^}&W*4-My!xa&u>QhwZ;xN&qjkZ-
zkT$-Z<CCcFpNV^>qUIk9A&SyE;q$@vr_BNDoJ<>A%1Rd<MfT`<3JpPWlcf2t0RBO7
zT-lW5iPsXNs2Yqn5c%;6voMDQ;^1;B<<R15_BWL-0||)tbrIQ4Jf7DMKruHL-~ei%
zgLt=rQW$qWZ(uD}hp$MX7k7AjPP45#+p5@Epu^gU<Xk>d7_h*SnCN|T(-oXVmf6yt
zPew`ot93DvEuN{C-XUhZZ<4p+;`z`Ty)7CjLzds-@HuXKw!a(x3bGS!AR?k3l)@o-
zsJWS2D7OHD<naM9y5)r`Dz!%VO18#~;b9{I)N3@{ylO&(%TC^M(Xq@d?^aDRy3`N^
z@;A|G`d261#HY2;xD;XEtBkQBObk4=oVQN+5C7ipmZij|x-?j`*_F;zDwXLy@0g<(
zS2i!4?HMCG`>o(^^55BrJdb45l0~gXA#mwrJ-FoJQc6=<`R7H&7QbreC7HIB+H*^=
zj_0-Z%Ll!$nz&Xj_pP)jtp6U#?EE_Uvk_4tkXR`N)V?>nYj?wZYxO7Nh7Dqs!f3Jg
z?)m}CM&?;J@XG_%z;plHeNFX@2KAaLE^IU+O3$qq_CILq+C0+<s_sW=-LO#AL?C#^
zfivb8Z+Iz=;R|k5Dkoq~_;(d0a8CuEE4CwYxjreN)3Qv3NhUo5)O$3!p`X6(uDatf
z!RJ`=<8A>-bV~B7%x&$IEH2q?t;380sRfPJ4zy8=k=sU*rx>wp=T8WkT(tGed*0@L
zUlC-&1R2Wn6s)|Ss4o$xDN^uSAq=!%Y^Zn()LF8n_*ti~YDZmE-?;HWXVLin$OPTj
zmNIgccnf7%dP(Jtp=(16$kO;tQ=D!+IHEHawuP1N^hY4D<o`o{8<&koH@1S8P?EzO
zUZx&D=I{v(;n=B`=={+3nfs}&(cfmmGrVF-<}1tiGT+Q|mfB<$&F5B_=AW3`s`M|&
zS+Z+bDyJ`}Hb+;iEiqbORlZqRXg9CPSt{wlH|Z??>?vu{UQZks=ryi<Yj?~EIn_ey
zGV5Bmaa|=ztX^T>B;9EV1KUER;4R$zvVt*NWC@S!(|gs~1rIl>*q~<EPSGf+E$ZOa
ztZMIfs-1?T*&T!&w<b`EAjDq`6hhY=W!^K0U~X;z9WN}Pq(t}nB^?JZ8MsJCF_ze=
z?%qtqJB>gv6EPkcD8Sqs`{4hZE}2VH&;w}{6aYs-D+OrzBrVDA55|0k^bLJaU#p>=
zjW9im+D=;lk#uF?sA4qTi-JDqP^nGxk-noPQ{1e0MdwQStkN%?zKRxQZP0!_OzWaP
zp$Q67F<4!~hr7@wdcxpvuye^nWrn_eHCThoxVDvMI1c&$@c$lb>=m;IO;88{b9&5{
z<wGl-><%D$G`;f(>j(^-olS6vJUcg>`8$DQjw9POA#&zju4VG)sipL>gz?$G`PHfS
z7d0#9auG{+YYU5;7kwM_N+FB<jgF<4rc28&<Q<>iYvrs4FZ}4psoPly==5)xnpfyL
z-Xb>J?Zt2oU1u}j9A#A#XDj@T>X*nOLSyT>q|*sGvy1gVOCr}>`xP4n*Lb>L)(Wo5
zcfG4K`4By2(esfN1!^_(K{@jkDfwa&d4m9AC@|+G*=anQcLETBI>}R^q}!%yzfNx-
zJk2`8y8g~5kcYKD{@$;GfgYp#Su?`MU_Np5h(dyrv(AUY--;5T)}lWOz1qTqX{N^v
z6gQGQb*+@%t3{y5((l7U#q8yV#?Zp1VKH_ho66MmSs9%6t75RyL!FQ^E~P+_O_`bE
z1Fh_uCG`TGs!A!9LA{twtHe(FYOf%q7TkZNRA3FKDvzmv3<m36L6=QVbf_DDLYj0M
zn|7e8Td2?vc=gdyr#8y!xBx?&+Ayd>htWN!g+omI8fI1!*>5YS9AfMuWM+P(Ux|&K
z?2i2&kv>C8-H!2_v&b4vaGNd92}}Gv|Ef4T(|ul{G%-hcaxu3td3O3-*+NdjoKk~D
zdH4LQdj2wr8ECz2rQl?B?L_(Yg=?j;Sua<}%wUUy1(oCvk^d}K*H`B`Ek0?%S8%MJ
z=}xb$Tvl!mtZG{!b%fOjY;+Bzv?%ZYnEKfD$+A%_(Bu~CDZjiD3gyc6N3IDu$Z0Ky
zFq7tYQY=fV(lRGZ3|lZFnKvht{leThC)NWDSl9_!zt{BiQLN7j<MpVEm!FGC(S5}x
z-RweMpgYL2^bwFtb9O+@w8oIW)#EE^CAQxe4WmTtlf%=<KSx^8Q>KE^7evC9P?=KF
zc^b5$CWUS7l;T~5f}^!)S72*fRNYs31L`atQ78coe#xk?^S(cUu{ee>t{c>TZFsTf
zq}mswiKao&V-sv=r%4&&N4u5jG&XJIH-*CiJzD0lM3xwkw9~d<AMarOWok^U`$l+j
zOqoXB3(J}6h=zroo%|N@EihuXIicf?@vM2$#@nki;t3rQ`7>o1Yl)n*FLQHK+@_ba
zT@w*gEk!@Fanm;{PUZ*Ba21Va#Z4OI{?534B<zc4Umv1pold(pC02PV|H5K+WoE|O
zl4Rr6f~7T{c39=r<=A%aD(sSEi*?2Gm8_1#TK}bs^-qcdHbA|~jf8bVe{r1w_$-%-
z0vqkd8w5NK&*2i6H^Eu)S}0s~6?hQ~xyH713SlS@Gu*6Q!IR*iORoJB_Wq7;m&TR+
zL|KEQ{~qD*HwyA8qIc&d0f9O%^T-NUL5PAmz?{~@US8AJMv>d<emO*wy~5}V4lR3n
zZ}cfvBb=CN2rWibR8)00>!$1@EvsU~BmHN;<Svj;YpcXgp+?KF;<<7Q=yI8hin#9h
z*UE|v&!0<5E=>gYp-n`l>Ak8I6@9(E`e@KiFrdlDpbWk|9BD<dNgc|!KW^XK4YqKw
z>YsS!BH;`h<)an4IE~(<FEV~ll=`c9C(cBLn+0vn!lG1z{bxnqLW2BeJ!1+&L#G&#
z!$C`v#S!U&l&O;mqLD4rUo+Gbc&0gX6VpVdPG+_y%S^gv7^T{eHOCR7d`2Iq2*lE+
zZHlCmcIJ($igHp`j9cJk@=G;MWhMB9ohF^K!NqSaZk2*7pmy7uyGsN0ABvL3?V?1E
zzN?c<ORB5j@V)I@4td5cui${n=hXxFBG{a4*&4IDTemcJirW!|b{WGl3{Gb2gmK_S
z_ryth;6=BZiNt^`H?Og5e+)}vY}Nla6F83d<E1C(3Idk253(cV-f33l?Z}&GO%3Eg
zS>Wf}H~b%4g}#@0tM4eZckGRnedWjj4gjr-{wAuemYsE6_La6*;RNtBsJG~7?X>cX
zB^9PMH%rBVM?9+RnO3yn(wASwVszj2w_c*=hEsNy`Uqy-j>d|?Y+aYO7dU>%muO-g
z)R$%Ujo8$27aL%iI%Y*C*_RHc9mW6UK^3PwXR9$=7X!NFWU?2p2XykY&vEbIcPjxN
z0fUpcps4_-DX*YIAM*HCpp5tLiM=q3z`&_r5x${T(?*d6Z;U4;-m=40$0OgCM$`}C
z!alyCO;S=ZQJ3fUirNxHm-XuUa<48uZ&1$vIZvn+E{IvUS)W~uTUKvvtWsUZw1aE3
z*IIhk8WhH<@rL1wLk|K4yym775*wqUT<Vli2q4^xyC2{S=j6cwj<j>0C7^g<pga*<
zHmv6Imyt5U_6&4;G;u13*IjD-wqFBlVN5#Ux@-PukzWqeel)~ioMAU=;OE5{$lFo)
zty7n~r*IFnU#_Is4T6juz?@CKZPWb4t%mkqN8ffx+1C#z+bNH(5cJ_;QL4|%l=9P7
zWPG(V3Q_>J+S7&p0E(7waXMg1>tXR{07WCXy!?p&JAWIitMUc!h==#tKvuY1B+vuB
zye1D!puKOAtGKal6b@!t+s22=w(uJT+60qU2A&eTY(PCV7GLf4hxo}vN5}EA)Nw{Z
zbG%gqv$N_vzJPV2<gS^jyML2`Q<qmyO^?kFmebH@k1nrQgXg_60wsrhJ@5J*HViuv
zeP+7iT)}?B!%u@+f=uT!GW8=F%fc0QnY_!Tb)Rz1&V*NNW$w)#<?ABoqCrz!>GpDK
z`>pEhD^(qUTDdi)?$7m~7g$xAxvlj8TNLSUX)o;1tZa-shbKwei1V7htSHii7Y#g)
z^|>La6irCHS*D4tkGBwZv>9$-L^3iaApU!9vg2F+r&wpkq<x<<ZAL%&)-z*ALB2|K
z+mU;I>Wqxx67Ow#c7dr9K<`GL{80`2s~W64qN6yei6ojJcdrEAwR*mfi4k^qz5gkK
zZcmtSH+urR9r;RlUin69rW8SwSYWE40BS910Wv{|vde%#Etzs|fT6l@$(*X9&bPyX
z7SoWbj~!`H3Ty^wwQ3sHQv&mZc(*XX*{FZ&s!TcYena_|Y%8Un0sNk&R972LmzdW}
zGq<wo92&E=b>wTlLTGg<sv1Q*&<@hML5;Qo-Xrp4J4P9n^5yOQ&|Up!9#Jf;vM7zq
z6$gkQxmZ}-yQ=Svs=gOv*q=3My~UWDzL6pvdu}<i`b;+el5Xup?)-vT-MjqcnSX0V
z^FJ@%YBDRGU;5ahT&}bx)3H>2X7O`<M3G3BM}UV%S&q8C5V$`btX6FD;oU;KZltWg
zrQvOCA3TNox_lJeg8PhI6DF6J6F_Ili{FIYXLr&NjD*oqA1C+T3Be#`_x16fKrz?F
z(GWjDH~4UZkD{y6u$s>k#?;UQ?-54Ku!GkY?M>-D)ii^wq7cOsptrTBlyg9z-en=B
zja9ZM0(q=W_fAD^P@e9KM?AMbKk>@U02&hcUZh^dIDJ+ct7%Zk3uw_&E4c`yY2!<J
z6dJT|l+?&0HO^-iN?cGK`%J7|4w(78n%hYY8hdGW2aRTbx42{usMOG%LfmJM5Na)Z
zyQHvW;`MF`w4H@|HwtfLeQHSF5=1g<V8C<8Gj&yn$Ih^DlDeql9`p1oJf72L<X)ud
zp6{YglxHy$B=^GMHB%1g?XYC-{M;A&PX7<zd3Cp}I%0^!*D=?aoG{_}%o6M5?)mlV
z^4!F^l!~4Vg}J5bE4i0uSTz~>=JVbSIi-mUarLW3$GeDcxx&*@=T-9z=hB<iluVjh
z1&K~Ji22y${IHyWA6h4mW=3K;TjgCaH0}rTM6?$#r~F@3`^_r#-jds>Uv_@%?<^vd
z{SFw$>!mz_2sZY-Jw^}mbDtO?9C7Kip`U(!9@4{hK55L6!9kw@=C#2nF9jxF`E?B&
zqpzhmR0#U9RUS$lTE*iJ5nLvk+wT7QR^7Yb-cFN$?#qSi*bTqix3~v0kLVUDR`E|G
zN!`>W=P%0VY2%AFfX}oQiujJW>y6Sx;AKsxyl}bu8phL{p-Rs6|1MOdxZBU`dD_|v
zbe%>uqnvv!(P#^Wj&UT}EUPUX7HEF51CD%RQPK{^vPi5JBlx<_{j41wC~?&3r>GtV
zVMTwqWEzR8=Cx3NMeCIKOAMhX2}i<nSPRO>Xt5UeM4n)OTB*IZu;8sUCXpzBcl#-N
zF&AeB3+58HC$sZ6Q##&l<nJavoAN76Og5hjtDt7u%+=J=^1*dK0wcV0!_5pY61!5}
zu^x<ucVzeP^vU(TFl`!W8=dwk;7`bgt{6N8QObEw_BX!f##Mz9v>VSqax*wd-rw>p
z^59cjL$Q8-=W3Uvv7df9u7Gz@5hpyNCidO{J^IGFLy|leMmhs+J;H~~{TkeB2lxHd
zUCr6KzIR<C*uq|>Oydf;)@|d~Qcl%ygIlFQAXDr4&=s(f{^<5^|56*iJ<})`$N7Di
zh($7Xs>5Oq@i_dru!Hhmimar$MsQxZ{1fepq7eCSn%_#E%J*xXtx#7I(8gC~sov5q
zsk~&6XVUi7qR~FYWNRSdBVDQEB<w8WW@jbpuI1^L3TT#jU`qqCiE_3bhiIhSZn+K1
zw@D2NcrA(&qh`E1AS@GZ-jy+~rF?j?f$N8Pa?w=BNZ%gc1h*5hf`0lS8zB)zys2})
z`Uu@N=^9$utz!zFJ`|U=0Ic|u#W(&w&nYQy+%6|F5jbj=!4b<I-zvnU`OJPU$;gDv
z(v!j?GlHijZH?9=)O4dschZvZ3CusE`(CnM18d`PUG74j)$*G<eekgBSm`T-5#F!z
z4+s-CRe(2<M6S!SoH&$#n9}Xo7oZKoetWb7Csknz9x3dxGx0s#$3uEzJuJf`ZhS5*
z!6RTaE~vsoVmKvG%#$*#6d>(p!B+Mia(gsT<3(kDtvJ-|H$GpwuF|KsS1=CX(BkPr
z8uIAB-IDaXVKec5E9!?+-G|MnJCw0$WlML&i*WMOIi<P8MDbX4bp9FnZqWTg4S<ri
zTk#16L2Y&=O*uy=pfOeZs)77bUvg8sVOcK;=~eMTI{%E@qn-++2)dxQ&?p8s*-`<E
zwoYi@L=dbSYV=H}$@`(Jaw>#Wa>#>4(*s6}1j#%U-EyN;SIIH;WtLf&g~FZB`o?H$
zUbNDb8Mn}ko}DA)#R7gWfZt%&r>wCvARxwJ`fKiVB5-UhGd1qd$aY#tY~$#^X-}e?
zN2Ai?6Hl$|l(ggs@6MLP@-FZ3R$k36Z~FxOi7j$F_BsZV8bvm~Pr-FAGci8$ZZX1~
zDm&1+>+*6p%}?@Qkq;-nye*@cgel}1mtDqqbEV0ktUlg*1wxdd36^%pI?pjR7?0kW
zMLqE981D%0^Jtq8epBl~9%qE{y4#Fag@kyTk3J5r^}IV=6OiO~G{xlC!CDyj;x)|J
zDm|ycWpb<7R~4!MF0V~KPZQb7Hn?Sk-hAo9vUS}%7rp8X{%|WY(usT8p7;}O6d5Vp
ztKyxU{@Pk=t?-dTknYnGWkoZ+t0f%@oS?T=U8)!KPPG*1bQu%spz5N!p$ln|L9S1i
zh2Mb4PwMOSlp*eoq9#?ip-vj4(Ck7-3N*yxl()C&Reg+Y{{s($5U3NEzGA<1#iIns
zzt#zlXP}=gdL9NMj2Sr!L3ZDvKHOu9(ge(14vpNrD3}sOtWuDr82xwpRc>zL!Bj$l
zXzC?4DAF|a?<hG{BlhvsKx9dX#Mb+Qj8xh_Uu|N6@P{*XLWLs-wN0l>9v=1FRU9u<
z(r;ENhP!r)mqHfWkgT$x8<xESzQA0xI%ldJpXKrmH-$*+t3o@<>qr*ocj;C1FxMy9
z-vLlyA5y+<#STwN?)%~8#+Vy*3UP8X8czu?a<?Cw44rlTFdh@y?KUvp5O&i2&B#bl
ziN~Ljw*h_bQp0ZksjSh#KF?~pYiXt0oWWReyo#~jK&}+PSG%ND(7?m!(MFR`8L903
zujrpt_`XZDj3eKanzbw@Hu8(;fhIOp<p_W0VlgFi{r$3MD$fiIN(qV=bVKU{wb4cj
zo#%}GO~a0azHCF>Kn+R9!fw)*#Ujl#XY1RWj(3q@`S_YzPW=UZ7=!n5s;)1=ov%;z
zjAi5f9|k@I<6GCY)KI>BNouzV8@IO%3|!KrNp{u_*3vJDWYdbH8gsqg)_jq)G3_2B
z{6@dsHJBE=KC+j^m&P}KGEE}hb7VR~AcVBI>9^(4wB?mVj!56LDMMyye$cG%FMM&3
z+R{)a@fF{Fy;^tI_o$AR3wre+U-1I|9AA=(e@%jOyARpw{hbf$duDY4l0cvpKrmHB
zh4@6!PbmUb&izDY7}d}F8n|D43!g$_b)_*isKbN%0ZFbreSDs?%!A%Sk9}t0fRV2n
zQ+&|HZ;914;vGEUUOHS6RNyf)?B!2zJv&VGdB+$Zs`ofS4=lA&jndyKJWw3cRm#bc
z-P2?>yXpxV{M_*Hxnn=QyBQ}>o!S?V1~|%1>R8)hi=xOcXj;Eg-^dE;9u}Qfq8sRx
z15`E)NagiMU4X;}xYjSD;f`_rOp_-a1qNi}&aMFC<0eJybLLivn`}pfIKjK|7^>K5
z!z)N6$)L`H`d|#=2!(R_t4a`Ej*_;x*-xSSI#Aru&Ep_BJm<|9Isw*ePhF8N*l!PZ
zjR}R0P#<&GiMPJ}?x5LkSzK}FJKsicCI*imW+kP38BYnS@NZrE<t^tWx|ts-9Nf55
zmRucKvVXZeFe~7LSzSmz_`tg*rd05&LU(&j&cQ^bdzMbYN4Y^A7TESW7EoN|VhLp2
zbG-R5LUYwz?UsS^RV&ZCIjVX17=dVo@7NhWru=mW-e+<KA+47vILhJh$sk!*-01N)
z=iHAEE`+AL6%2|8Ww_t$Yx7lNzG<y>3t|G>_}mzbFP*2{M45kj9o;qP^#eg(OAPH{
zBX<z>cZreGp>BK8Wniiff8MCvJ1tlfRPTl{aQ&RmC?(>3LmZb&*Z$3z80WjwvR2i|
z-KgWDrJ7YK!%{1{N<}WpvIc)kHI&y4QROJ*dwSm+dNg<S8++Ug7LBhBzC$)4b*eu=
zc1$gDN_1F|+-6&|E>>E4G0@)>Z>{jG2t912`=W^eg5BkKuM}t-@x%%I<w#2jRx}}W
z3Vzq+ut4AUhc=;a2yW{`-T+m&U=IfxydiFO)2E_`0$e7CGQtvj$25=Tf)47P2{d9|
z-;9O2-SAwCyT51k&gu9o5n{W(@fX7M_B!*T;sy3<%TJ_de<-iT<k)@w-1e*_;p6l2
zC#mPMZRPg$tWD8Ze##8Q*PDpg8v3S7hePfY|K69=th2fQAWEGV{hN<Z;T$TIw-@Lh
z+o@-5PH!1-5OusZwi{B$3LkkJ67DK9>=rW0d@=esyvk!?I3uLZt)e&8&zkwRz1-^(
zQ?4b*HIUWU{D5(ZG2U$Jl1K0FSaNwn%_upkoME6@EUEIZermp!yo*+LV<HG)5U|nb
zU1@)QUnO>)#{S?OyXT@hT}T?l*higz0n{2!yDa@#7hK%0Tw-{(l%Qm**HE^jcm>p2
z%T|Z$sdwEp@`JpY_9xF+<!5{`%!gZqs47ZhS95sO*<gUPm`EN9Y<=~aIIi3gBpXK3
zfj96&HD)lCLZ5V>;{|W6YK9{}^XjRZ5#^so!=lN5pS9^q_Fr)oW4vDYk+T%FGGU*9
zk1!wQOUirO*uRNO#{ce*$33)IYcqq0WA@WtO0H>7xB0+|3Bj9Jg7tj@-rFUchyU5f
z6v?N2eD9EZDmHVV!nvLDtB?SC28E`be=VyqgC%h`%0c`al@D;wqo7)nIEu~X`!sbg
ziyKEL&ll`<z9vAAnaC}E)xTwb%vQ*XJ!{N)s@_CrkTN4<WZr*-VLhzp_nv<Hh}s)4
zF+<LQLyW2ZWWPsr&%PIaDa_VhVgF1|tB$jtKi&5l+?eyOXDd0$3oa7*o{A>A+4&a~
zQgo2%bgBF5Mm6u%3v>fFM!j=MQ6IPyWSu_kx5W%o&&`V13Sb~nNzb3FHl>P7a%jYs
zqyW1>E2X~yI8B41QQ21-Z<@gvkR@bFiP2#5X;Fu+Mp|jC#XU58N0)rMrITkJ^xO&q
zp)V?=I0d+JDEqmrARxE8buU`|Bdh@TGhtnuQP8uqdvyu-3nR`)P(Eg~ckPE9vntK<
zI7w%IFWEIHWhtjNHGi_VH0-0#r@-5fK|ql6a{-F%E8A86m-1DtjTbbXC!wAqnwn?E
zM4+RX;H7`;#wi!yTSwQ2{5YtsS<CsS>>awpyxFbb=`YPD$HH6r3e%4BH|^!SaXcIy
z(x1KeWP0EVX%9>jtS^zE_w6+ZI69xPd;k{9mjpnOPds^`v)b~UJm^p{qV6~4@@aI(
zPu<02MAqje4KgzC6F|E;tmR9086B$k9do%g(Bb1jWB0oINHC^)1bjl=5v|K^3M_KN
zS^5}@zv_k4ONMry4)C3>dDg!C9ngz7q*#TjSs9;Fhjz+FpYLtbo&CJTTH5>viG&t9
z$Lw{RVB~828PQ5r>0C}3Tg}Px2t}5*LYbM;T~Ke@J4rFMi^b8{P2z*O_o18ar<=~B
zm$5!H$0v%Q7nb`^7LnI24j$cuJ-6t2asi{^M>Qz(_BQ3@4p+*DKjOcl=4ugh@4H?H
zT#rji{tEaP*M>r;`<~Qg2yLJzz|8mTTuiY{+MjpOTtxhAalQt`n2$-jWdfjwtVq2u
z;&cbTW+O$GbgScQ-OGrYWH@inb5JgLY_=QkKvdl)B%g@lpDm7m9wzF({8HX<D0o{n
zz_PHg(PWW$!o2<ZtfVhu|9XfF-J|TaGBhf;7qjA^P3eDnQQHAS;JqQ2i}K_h0ffE<
zX||!ayXt6CP9kGh0xr<Ahf{poT+D{dJy)p;!vIfTDtc(sv!6OXWatH_3H4`tUZhrZ
zes_CM?{A4=&NF`33_Df1h?H{LOHny%I2cCE#-eZ)A^o>GR6ssRKkms(lB#0yCeT~^
z(ng<;0V(N2U~)3u>OeF(nb9)uX!ji}pOz;fuijCLQ245Sqp?-f%;0(~TRK2PKRI5z
z#4Mm)o>u60SYqllNK3RjD{=-2B|mu0OBywQ{^Y1LXYD2$Y1T)3256zW1$~5n4L@xG
zf5L)1hBRKUmwSV@<1qw2gEw$l$~}XB=hp#RHvJ%HIsKgjXN<p{7`u`QiH+?Zg2iJO
z-bI-u*-Z4yqm8U|JJ8^#7V15R<S4guQw^c!;o;NA9Hr==M`FRZ(H+x*C?50Z{TJEI
zsj0KgvEtFr?eS(a)Pcs|Hs{^85`<q*>$EZSZeNu97h}oW38XQFUh$f$7sp$>F@zmB
zpM21cLEYval6!0xeoIHOs<<A{Yx8d(pWBoRav1O1?($%e&r6u<Fo5>hr`fZazPn5z
zwz}7vi}Zk(hcq>^%ZKUhRMxCSjd4z|adRA@)--Rr+PaKRJW6=v!M!q5@Y;7bUlRDQ
zZh2Cil%tk&xQlR*VnEJa>Cb9&>sP(r+rdA$rU=vfKRKmlx;|X|>;T8)rn|m6r;=H+
z1lZE})LgAmsT<v4iW#v=ua3aIce%q@lWHRfVVwlgy5knIPhMhGy&a9;1pKgy7uCbR
zGMjny3ME6&R&Q~4^iehJ574oJhznsLuxQS800)AL%NqbT*5DKcw8UT0-~*3M<VO4q
zh#RxYafqv{N>V%2-=By@8(HQq{-s`GzF4`>T5*e6)TGO>_~(Anlie&9@Aw)XshvHn
zQO}=KPqCk^eoe<hO$f_7a*6Yay;}t}8KviDeHmys>k&sxqSeXTubO5iPT@a<MHP$8
z^0>q0ES-{sBMr~iU2}f!)j&FP_qIwU+JRR=mTEhB-%(Ae@v3bE*=Oj1uOZ{cV4e4}
z%jkfS2bsq1Z}!Y~dD55WK20_1p}P0dmb*roZ=4sKx@g8uE7jj9n~v)v^HDAyQJd!F
z$=(Os3KeT!@3#udt-PNlMM(#MZbluEYjwCk*Zn^VylK*};p*qs&U&4*J-h!S=>gsL
zU^+#cacp7G;T~o>HCRki*{DbnfYJ$QftyxX7gV1yUkoNh$e6fzNIMKmWm*!fsZR~j
zEnYpk>AtfbgIdX~L6b@DXq7}P>)s9UNf)wWxAP)(PF>I0Fw9NU3D3YV1%4@af+e~7
z6!t7jpZMsaI@Bpvj*sWSWpOEIgD2!{^ddWJwZx1ZrZQ0P&5Kv1oyTZ@wr&S4`Gsv?
zjjnzJ+!BZmd{epkGU`rP!}2RuA8T-K&FZ8*-wYNyi2G+FEwn%U_<LMSLe<P-ec)3+
z_1Qp6h;97HJVXu`7<(XgR^x^BIe`}7aXX_siW-QH7I%!F9-)>uRW=Nj%>6({ASg`U
z#dxFRt`p0_bl5AviLu4@_RggL)3@Pi#VF|$_mpw@*{$WKK=o_?!2C*+YEGsJIp40H
zrKmYHjP6H&bN%){qt3_g<ep94HE;HIW5uE8;*NMtL9j}w^K(!2-oXB+6)Hz_0C#UI
zOeD*Q`>Q=&HSzdiXSXLD|BZh3Lvw;ULvV4D{1Y3Hv>-OFO3bSRUe?cTQq>kT`H;xg
zji)(!x2hykdzgH$zgxvyd%aAvl=I{<dgL!<aqv_UHU|&l4O1?F%JV8K3u12G;nsA*
zUgu@YH|I=2N{LQRf5o!(T6F8L5T*a7D1$(dKhu}eqT*b_cW})%mTr1?ek$JSN9om=
zUYe0ZYT_1GAa*I_s!e{c4A;rsJJGhG&fCA^UWS=&q23^T?yQ`rr8=?Z3$5~PCZ;lA
z<>->tzg`x;&-eU0?={?A)bShlR+)>jeeSR}aSj%UHwxx@vZ&&1b(g;%uw;En0H$=d
zch8&8uLNJiFQQOGuo1w?C*{kSx}kIjOugWA*ziNYDcbbFxQ{9w)yHyor@igI?yBbE
z)G^MIr=r`=GtN=p*By5VbG+H5;|ZqX-w#(m@VvXXUITZZ-n&s3?$fpVv&A8N;k{u;
zN@Az~*XJnBNiXYX;#w#tr`yhoXJXyOlvIDN<heWAmhYNGC)0WM`(j(2WfphsW6|qz
z$3^&6YD-=lNL!z)al^)W{`GsWAWCd{^H~31Hw#-e@nB1D%A$Oc%XPm3)LJZ%yzqM4
zLKHo9OF{!=_~n|n9ENpE#7PUxYJ0k*_q#sOHrW{$WG9c**FgOv(4e5+7I(y0U>zTm
zk|KM+0FDmXtAS4+Gy_Mwv$cbaT4uQ5Uomf%=dFruCpS(rl<A&Z75?8n4Yz5b^}ctv
zE(Tn2zr66TZMu#Alnj~|UoyUA{0Szr1UTx(x_vC@S!#}0c;+eKhM&7=y+i>IWkZg1
zJNw#Oca-R4exVtqyJmlRIsmxV30kB3WAeLakB@R%*^MAzYRi(%Co7H-T7VAi#R$_k
z-8rAF;5|>H^}2hIT&{OmyQ<OHZGRXA&YzoZQja-dYf~vOiq>j;UJ^_GLwrqx>+`+u
zwZA>%_tQEdQC<5!eOamc@7+3v6Mu)DeR)AE!sngvp87q9SN!?1j7aNeQi``$@3`gI
z0`|_uiZkXuF2$?SVwVY&WR!Wlr|6!Be(@FU8nd5eW+p^uoaYCLpB7$T392vYyLQ%M
zbkYS%D8SbFp`RC~Ga6vKDzR&M)S(u5u6_<u$?*%2?&&PmWRjPup?eoDOjS7IiXtZ5
z*VAS3na^OZgyY?R{c^m%*n^I$jCKTpvr^XLEmL$_wXDPIXtHi+`W{RMMPC{}8qv;L
z{YIH}c(s0t9!=}qV0oQlA=iT3gz4#%+*l_9WXcQ4kJFkuL<nL2Ea+Q*wWoc)(iKws
zcJ7z!Q%1pbFww(~w?<Yw2XY_Q&AA7#awObiE6thR;^vl-sRUWSqQ3Ut0~mtO(hi;j
zv<CWzs1Br+k=FqmE&*(|_cQ0>ew;_2Q%LVQk1QId>zex;ntQuEbI&=j;h{qZC3~R6
zpGH;wC{U;AUie|NR?tJ_LwCnv<oE~vUgh}b??3h|B~QNZ=nc-C57&9|PQx*HUN}WL
z$n~VqWqHl?Y#F-Nz$(%s$-Z^BIvU3`{`f1N&M;aQbj&m}NEMReGPs@#lE0wCDxqrI
z5qCWvh)bEz`VOhqIZxUS$(*%sw7w_WN_^nuX7oGcc)&hJC<F;N<@=%HZ$-K5sq6rb
z=b2K@VM)l&WBg%s?nQYW>OH9!#+fspQjbNzj+Eqk=7*-o{+W}Q#J}c&$!n%;Nk?g0
z_jqaD)lHtxHGKq|Tw>tb&D&S2?Y@#vtZ_KyIaRGIu$<_))o52w7vyxMnVIGOaEnn6
zc&$Z1ZAm|KWWwkel(c1$k`v`IyGa#xKAiYX*tg2}zApmRoP=U|z9><sOZS!)4Xj*w
z(J~Lyir`0g2;Mx?ARt8&^t90so1u2sN%Ffvq~Decx!>2*mg?8*@6klt?&fwsPIK>w
zVRbp}x2e*z9cyd9lA9>b%U{#TjE)1-`s?oZ4~$x6g9|@A=y{qTxG&VFlRCf0**}?O
z@II)|C#xz{Mx<FqKQv$1OPSYu`~E2KbTz=>4)Vzwhflb(<gQ|*0*&v$G{J#MSpG`o
zH6tei#X{BAvYKQwKsNPSCYq$rwug`A5jV*$Vpf)Nq&s3$_yh78@lUqDJSj#K!KXq`
zVE?|Q*#g9H=()sWS~74i$TI=Dnj}M3$`YwlVq{~?JSgOaeIZ;fCD7^2Qpg1NF0jok
z{EoD$58*BUsv<d?uKe4$alk?Mp>gF@ifIBYeepWFg>ZjG&gz%-*Off`PY$Qnw&--a
z;reSg3+C~qFSO&%@$&>rd+VCzMEWl6?MhVSugH_@u_+}{X*1ytYt-+pnUGT4B7BPf
zf{H#W`6icYk-PZw67{ckoHrfi72niqKEOUn1{iV>+#4dz{^Dha4?Vv*D6^-1!7lv$
z=AM$&weEEH^E6-=%k3OZsJ)#PLOs^p?V{;u-_YV{W3TdFt)z!_<-npb)w}fIp!Zzd
ztq;VWutcE`q5Z`vANTgyuQJ(t%z?XkX?_)tzAJM3eR+@uIP~PW^AjLe#btaM^Jg{L
z_bK)2ZueU`+UbuyiQ<gm6>-`D0hD0(@|JQ;o`j+q)T3hD)Qj?k_E_}0InHTE`kUnl
zj{Xn;k+WHU&Vj9Rx+0fL&ZGZQWij8pv4KzdKVu$<QH+*pHX_yfLRCZu3y=NQLO*rS
z)yy|Xw-K`}{2myn?Bj26f0k9Sdo4HusK%=wbvmeNajGoSnm(j<gTc?4%Mc(edQlbK
zffHEKu!tdcEoWNV5ZhLW<SXRS<?l`*j*z2!6E7U73q>vgG_IYff}phHJNm^+SxM{Y
zq`|k3-@PN<aij&UNq#hhK~M0VSGF*75foK5^Y$0{t2#y|-RPC|a!r;<GF&RE!ks0t
z2ID9cy!Mc<56LO5|C{%37ye#OcVntv=dzod%dHL`=7jTRTNE?Vd8lcJs%M|sMs`8k
zef?-yt;^E+MCkk;e&>^AA23e(qi)~%goOQ&eyddP{cD41`G))C!52j=s`_m;`M*cZ
zhpu4inSW;zkY5fnL}BDsJ_X#NpL{P9%g22C(JT23({iPaR!9IQw!WIsF(~+@C4d(!
z2{SOWDI^jfet~|lBs@)rnd8xqQsCPz5=v7pSUL(Q<$Uq~Y2Yl_n&28Rte^G1b`TQM
zDItO)&5G_?0V~$PHbxB?J-Rytq(c-%1!*KCq)}0+jZ#!fR4`uU+iy76b<T60=ecj@
ztgbf$5@Q4NOh80wgD1WB`ftU3$ooC5T=BVRvi=Rs6Js5;V000x=>?Yz0T|%Q1?u$f
z`rVT?0}4`#g^ufw=2RJ-bv)Zu2&%RkeK(AlMT#!;xMSVeORdClQr40VRhxWy^oZj&
zlr}yM>qc0->TtI~fu<6WbFLn<)fg7m=FMaNzW2+xE%skBVCa^|HLsuOOCnhCH+O=l
z0vJp?E9+r$C06sggIQics<epFRVGylZf)KbK>xrTpKcC1Lwqsb8^6x_HUi_YSsH_Z
z5u>d6{@O_QpvJzD@FT3zUK%?hAfR(BpoFRS+#)oE;kPT@`6pgrw|CU7#Bx`6#I7iP
z$8Mzl&cW95xN<FP3p=^dP`GV6@%es?H$@z8{497za@ANR+DUN(($bs@zkzRAHA|df
z{j(`vw9a1N(JvKa^X7+wIs>5h57|{vFV?als^}jzzP1x|Gy|i4fQmwjifUV0(lRw0
zC?cG<$ls|#frG|F!OW;aD_Ep^V7T#PU+&{*f=`6%tVzO|_@cH#+HqQ9ITEi*H9|><
zEP?{iPC^&;ZxO47C-plRrIH<hL*9rhDS+>Bo;UDTu-YMAtT|-jx5IlU{TX?fKB8<v
z0~3#Xu~b0kdQ%pBaE`dyH@0@)V8+}PhiUiwE1Fbj@YN5{FwJDlN+8Q1QRvMa?JTn^
zRY+IY0qA~R_z7Ul-A9ONIL)w^+yDwDmT37}GzBLrK7`!x%#t)SrHu)MRR<AX)`tzy
zGRLJ8p0iY61jNP$6%5;OCW9RMPeiV<)_X66*9TqieH3;)Fs@C{-+~!6lEi^CtG_)N
z4$aHk^&U4V<wMA0J!K|4u<>72-*?0&OYbIbM^ALuR_=6+=~R3mO^7TS(HQ?+?$ndv
zoK`jjcRwkz-$Z_0j*4mZH`#P9`4yV5eNb8&F1tu&d-(=t8>rqlzxN;yTFxv?kiXU9
z{ysPsaGKJCT9M(pj8RXjZ4sgAPbk-KpX5A)k<w%XeZd|fH5p~ts;rv(Q=Yfe_Q!WQ
zfcX9);c$|V4aQ4W(W=5@T_O>(#3!Vl0b4!3i6w!~dRIyNgG6b1Qt=?iFvn}g78%KJ
zRcgS#9j71$RwrIS?FF2RW{9qRsF`^$;#o==*OBs?nmW6OYQ~;<yMx$u+nhTI*TH^T
zR6`%}7M$y&l>~yH9dU2+IOkq>Srur4%H&fLYs4<`G2>A`CFx(l!-+V}1B;$WLls}h
zNAEgmT{GTP73UTE$JC+dKwtVubixAb+Y9Bm&moF03ggm(zV}zg#Du8yxJ0}S3hg}2
zE@j<l@@FnH7$djiY667z9!<TjQ2Yv=%r3Y5ikjA~%h)|URaPgpLmCAa>uz5hPAD|p
z5gRVJ{Tmm|Z}aOseh3K}VzUlzZCH)A|8`Dywc}yJR~Y9v7)8SDh;43hSs0Z!8k9ph
zoJUuSG0(56vO#$FgzRfopp(3d)s5iJ7-#vvFtGb|i9x7#>HsA&zauq@^rJ{4wik9S
z1(@3F$c>uGs&Pbx{u~lcJD2W8AH1ewYwFrA=4xU=dVIwlbP?Mlb_B5Ip(3ISz>u`W
zj{@ZASrP}vXj-+Tv2i_%C8r7yC}>j8G~Q_+gj8BTd#MMjcf0ZKhQ}My%3K`zyLZmQ
zJK7>sj~5Xzz=~gUj??ErR>dM;M`+BJ1fF8;MAOwG%`Za(giyd)+_=O^@PCvTiI)Jl
z|DIejgpmr>ma*)L@m8Gz^L(C5shVU=J0{IVR*ig(zU@2sVm8StBxIl=UMh5Kuszm@
z{jD!NmKJ)fOF1%wUD^U+E3v-a|4H}s!4AQb?L+ML3TL3Tm~Wobz{-fPFDF;4EOwPA
zoGRtMtc`svKm6tXNZ=jO-Cx5^#onk7!bgmS-690NjgwN3-MDPw-Yo+SLuxN|MvVHX
zeeS+38-m_eFHT|CE`1Ls5?^GNsP&o!X80TKy51sM%BebuG4Psi+|Lkt6f0n9@HMeX
zM`9cp&PWiU*Xu0#bf(plRZDU+m&rOM3RRn^SdLfZAILrQQ#UVZpyi4?f=@9pX}@KT
zLyGW9;!1!gI8)I(fG>Q0u+}Ko^Mv@4(VUl@#0r4ScqMZccsM{vf@XLjHdY3t$8B}s
z|I_-7&mvqf=5H^Nztdv5>H&qUqBZY?rg($*vnhuXGFB=Q7vr->{iyG0LLR3?so+xx
zT`7p=1ZhzAm6;;3SuD_4C8SSf$U-d*riZhwPO#BPHx2Mlkz<*)PcJ5ya)zGYk0|or
z8_13OUr0qCiBlUk+vCF72|w3!gTrC3wp|Z<6q5IZ9CV%aPwl$5E<<DbSaDD6$-S*N
zAvJy9tj3#*7~eQk?v?#tN5)a5`MZk)fAa#jEZVk`|9fSevE-MHR^;D=06vQvW$-;j
zOo0j9dUV$s;0#!*i;899J_Y2%L%wc)EG!K9Ja6WQ!GElhLdbis-98RQ`ifygWluQh
zdQB>EoK}g)<;)#yoB@J&Ew@vCl6iT7f!jvE{p3QASyY8K#UfFeIWDD_LL_V5a*2d@
z@&Dn?HCo-C!Pi8ornr!EN}DFr9wc!Fz#gr|Z+LIu5=BCdU2zipQ`q)`OPheSy+bAc
z1H6kARFVR^r_EhkH`}N)0ex_O(!TFBhz1XeV$~>WZ^G#h{EHWVg)N7D;)%u1a0KS<
zIIQRgL+p?b!86`lxAYMyh+ncW8+p8+^mVgtY$v~GZ)BUReX?YxeK7WPKA$Y7jkHz`
zmsMG{K0k?x6=lC_K%uCZ$tM`X0&%%1l>Wx&Z)*ZeBM{xu5-!V5Zo#mhg{VBx3djts
zuZSalphc~&H@9Vs?MqBPEc)@SbnMXW<KL@Z>=iWbWOwam92!xN275gVl2;dkyvB1b
zyBQvfFu3*2=^R<^3J}=j^ISs0$T3&%rn2dW#p&QEFR72;bFPHseLl!*4?}SuCr}~|
z<@cL^cl#OIYIG8H;N&C}U{c@{q`C>KAqL1xJ85}ezj}at!7?z(2&{>{3VRtZ#Zf|p
zChJ7hy3EG&_r6GOs$TqtlT*aA5+q|X^(t;wS=sSxkf5T9X$f&(de&43Z6#s@`i;#I
z*#-1q1uxeDBFJ#bQ=m5LZwXDHV6dkAzaVCtvh_Wf*tntV9SmpuJsOQ4dg)3Ac#>uf
zY154Uw?q6a+WdCXZ^L(jm!BCM3;mGvWaCcAdUmHk4XHyVV>sh=pcOC%1#(^zEH@^F
zoKP#a%uNb6v~jLY2-Whn^5uAGRXFsFf<w#v%Ual!UzEKk^Vq-m)AuG3@3Frsvz-l4
zpo%xpZH#p#3)M?(u2k|kMR{Eu<K{(XZB=)LrEcvx4D6)?zC9fNUa+(q&>NPeHCz^b
zgu!AO$$~*L%me9JU~Ag{Zv3%Wu0i{^a#RaUTo9y?=%j0bX7!=PvXVyCbC!OWDQ7;l
zWub#@H}2)Fgc&V93TmY$K6J*|``b_quddhz+ijfhG)fH(1*Xu`$V#eiX#EHs&^ALA
z(;=@5dmAZlozKpWh_?rXEBf(3qCq{WRP1t&fBufQdqF2>$HtHeiXfXk_Il{8Cb<rI
zLSB`g29ILPM2TQAbhMZXI2y;4L_-#cni6{8bAcWTzfA}}E;3Zm_7iLVW(+YB4g2Bt
zXDr5j*JJLj78yfzoVB6;_B#Kz#jBrYIbX@v2|Te}SeTh`{r%ztZtmX4rRM3P^sP_b
z##QoLfBRMLu}b?{*-<iHr)8g+L`II?6tsO5<*14=m5AHdx#1!`LTAVOC-mNBs|GB0
zg$3;UJ!y4dJYgO*QV4aPY1Njn5Nu2y+7gGr-djZ!ASDW>AP@)aW>4$Kq;q?@FQW3a
zz9kQx$Xy<si_oC<ve=4XkX{_@nv>b3EMMJmYq^{Zo#$2_<$^wI(Z2VaVh1wAijTra
z2|XcVGO@-FW^n<co{FD86!ftF+0-di4+>q`kHYykK7He#5-E>3BYX+$>82!N0$wMa
zk$q^(q!CpyF2xiJWq(*Z6{<erdc-s7CW4SbP`<i?YGCm6OntBk|H3)R@Y@GLO_i9q
z6HX68LsJ^z<e(-mRrPMDDREKO!+Z_@T>@n?fHJ+ZW%`CRBCBQg!_!Rmj+t-P(_4zx
z5T=au1u(tY)_M#E9$bN;-4U;YJbXz`vsCgXwPbe26HTq2*Z29Cp2i!BJ_t@-ev~=Q
z(OA<c`;sEEe(m0524VAZ%Zb9~U2Jb#&GB!FFLs;c9(%?H@SBJx$$7v+sG71egp;^z
zWCU9u(h9a^HuUvHv;--4AFxjc9CYRcg|Z@A-ue{<L_Li6;xUmm|HEUv|Lp*fP9cJN
zhDmm=m%eojH|DAAe;EH%g#RS?C^xDhW=a!hVUznw|B{V=5!*<?&aB4M;<?j*x4}j)
z?Zy2qZi+xr4}YY|=D&Sd8fnNW4Fbwa0*}qxu~fYvo5e+pu#;Q5#To46)zQcc-hXe`
zI6w3hwtsyQYJ@{Sm86?jx@}76nYFvtizJw@1sd!9CRrh#i&&V^3I8fRNA&m}(W&(8
z^MmLs@(ZF!tI0^^tZ2f!oPu(NK(pH+f!B;{$o)}F+X3oDoTE4Z0HAJP@c|6GmkDnG
zr72k1Br{?1D{->1af2ho&n_=4R*npK-WX$k)P=98LWg51vko3GLg<_?)s~z;pYBPg
z#x4Sxy>vS7zi@s3m}MZJbaPm#$xn{4cwbW4pK|5X%%i9rmmN}<blIP;3WITtIp3wG
zzI0tk-E(G>guOOJaR%90x4>es!GW7W$LN>(^TSpA;5|L;A-|5U!$DI4&F%Vu=K@0>
zbD4?$f(@zEak|yO07JkHuppO3qUr5loqSkwbzgK0lGiu98EQeepA~&e%SN!23@UVN
zxZh)A0wa|j0!29lRV0~XkjLR1Au2GXftgU1z20n_dNnoG>!<if!-6?Y)<2XBn@3Cd
zFYmVR9Z~kfwWjcwl!BZd+XH;53qj~BxEp;+qQ=Y@wtD$AXatuj=jY5~h-(*Oo3O)@
zf#yGP&9bA8)x>e7P2}egv<W5HGWe`XQ}97LoDi8y%qj4!&p70B{bnR?KNf|k^Ls^b
zxH15g_gRx0hQy=xMI3+`_>cT$S}=V=BEY!5`HE?j^+JNQG6FczddO<f#p3OxdyIS8
zyc@yL!)|_(d=y_gKk50Hq_P<0D@!}zi3M*l1C}&m)Pg0J2eRfks;jR`Yf}gxBpRqW
zK3nn~5f#y2z6@$VD*U=Vq0rehFWb~v=i;_@=C1bH5((?mFy4S5`-e}#fLb`0xz*dn
z9`zmRNM}v@zi!d;y~NylxK8K#v_8R;x`}P8=Srp6eBPwDEp_h)XS%lpx|`U|jaPbb
z)=t)5yu87<!uEILeOm>nXypzh-65qM3I5@TDlxT6LZj^hPaEh+Rlg6#CTF(@XNsmj
z@qR82Fz}jl45SlLn~is_h4gKM%9KNrJ~&2RAtlAqjO&pNsA+KlvmN*sfhwanE}a55
zK&Gsppf*M&(ei4Ta|E_d+QjM>d`TD$T0zW;%2+sf9?=-apJvZnc7+Y3M&UU*ltQRa
zMnUB5G{$;CRq(8}Dy@X7Eolc-rbS5~1{o2S#P0)&JYI^O1J0!FYkV{<98HH_ggwaY
z)!>+BcI(;NIt$EFv8|Z3g<)cw$F&7#zD?0+ewCb#Ke|xIz<b6mh6SFY_wmxBVp$tY
zt;y-(D=P;@j6~Yn>-sl2M?Xim30Az^Aw6$=Wc0;)6y72E9rALe`?nw9=Bz{K-M`NH
z@S=fCe)2riTNoDXC-*Elq}{i#y*=;&)2K;~sm@rxA4*O2;th_l0p7p%LnhMhXzg#0
zdgWjGu`%_fh|MKsG?IsEcL24PdUyYVWo?m7hIV-_H%l@B=N%50FI!8wUdv84OLJGY
z>N}~RU04e7Z;gevL30yxPW#@GTL4MCoAMhX3~$^j@?vYO-zy@Ank*3_rx=hVG2jdQ
zN7zeYUvM<iQTPOaj8T=AwjSf>|09kiq!lG+2X{=Zw7Zo)Tvccve97HKe9gw4Ojh+m
zR(oyg{NsH+?<qsI<Z!H|U0iTm_y?Ok#`n-;{QaL_c%NYox+d&@+9OaXnRDej;08@w
zT*@f-Q3E92MtU*=Ip-#jj?o~Sfd`|VrC=Mg)3`$H1@1+v5K(CH0&yH?J70=_i0)o6
z@Vre(Sv=+|?ENpdChTMYh<7jkG`nLtGe<DCVU<(sm34N#rFpAdX0xE@OQY(S%fqTI
zt6!-T_1)a6^FFOXl;&e-Nw+6`pCb|eo!w8_MZQiQmx2&JAKS08YMG`_?0wsrnfKpO
z%RTE~_au}3boT2<896t9_>Nl?8hwxHf0guRltI*k={KG?nX%4(Xkf;(9jHq&X|;<k
z147tN(YN!=pSe1v7#hVw$88o*ck23NJ@EL!8fv>z(3E#AxLSSCqUX(H9}$n+8@yuW
zV9|~BI~5^TD{~w#dRit5{1hhyPv&#S{;qZ+{-#KRvb?;_qT5f23M(-7f{c(A7^!|m
z*L=aX@5&YPXXp?aoP)Qghvo$Syx(~+FNl(uiTj*w9t(0g7URQGHLjtQVKybrOnOK=
zQsy8iO<gV-yn~ApkvANOIiy?+Z0eh^zw8{r_eelpS5s}ZJgnBIXHeQGg#`*3L+s*e
zQ)$Go#Z2-f{`}l;!Y96yN`s<?Gg`dKh^HDYE(SaLI&tGT$-&5_jC4%ozbopc_DQ7o
zZI88zuYA7RRnkD+?j8tkcKqTsD%<(|wSBF@oup^NWDfRbS7E5T->dHbh06Q?>io{G
z^*__@8*Jn+{rHaGs;_L*0-fviYI-@;8*jc<@(3Dy_ow*;y`XMG|87@6Y7fvs%>hwQ
z0-M<kSH}YWSdSGN>BDT)%45x+!B1yD1b4$fW*{I8Hzk{d)Ax0p<5i(y^oo|Eg1UTs
zOryaKhcmBMz5LKGH-rnzgDf^SO6~@Ct%4)@L|Cbg9gk23|028&fnX}7#Ld^B2mGxR
z9-AVAvkk*#Dk#{)(YGc0EswjN6EikNdPph=IbEYZy58#%?se#99bSj3r|V8=^{TvK
zPRPmFB!N>w9<t(aU?_jx2QlCq0|iudcL@cT;rjIQ0lju}ffpuFO;~$_9>l<Iz0w+_
z=Rldgf>*+JE{afXNsoE2XnK^xymV><K4Kw-M8^g#*pm%#5(_c(aLT8}@xVU%2`(vY
z)-RiPE-{x)Udkvmipf}0y;qytuwL2LTz7Qa_IYvh%onMV`c9WGO=Cyf=i0RiQ|LGO
zm(4pIWop2#8)%QmZ|JwYy_<Vk96!v{lflOWpo71|^cXGUK!08I?RSkyHJ(p@pPf$3
zhj6)xpK!DXkHM4Hfbv`;BbzhXZd$A6wWUu?gQ1SOGaw^qSI&7;O=NR4Si8@*+WOh4
z(wogu64u$I2fa}hq&soR{2l@^J262z<&OPyIKPDzu~~ITD}?*Li^HK7=0}(odYnV)
zi6@&G!yX7e0x;0NQh2L7sISsCHvghu$~ap8^x*Ov_5rw*FyHv+`cjf))kkf+@trD~
zJmk@xB^*FB;3xjz-$s38bHXRtev4`MNWp4-MP#+Wb3I$6=J`K5tjG){FF<@(qK$=J
z+Q0=zTSuWtpyCdgH@JehkN7)B$7f@!7JI3Q#IL*!&mCeLFW$?IaE#kcCSx||Yl(WO
z*!g)+I&OAxmid*6;$980qStWSV?ivbCF`uL$f}jO%Ko(O_wSpLRpJ}TeWFkDcZ^?z
zb*OxUP0+i$pYZ5AzOeKieXunkxnJAS{8?O})~e}#)c7qYE0vUwd^+i5&r!cx(xq35
ziG{@G4=Z(FLgn|V{XgO#wv{;JZA4NcRpvn>c~07c78Zq2pt4g<9tm_8TAnKbk%K?X
z%rtxK?(O3uD-0M5!>Lc0sbu0@f+)p9N9xupgz|OV@`(Xs0>ph(!$+OM7cBNhN101-
z`ND97faj6Se@%38>WCmdUq9(?BaSgyc3l^1F==x35U(;<!l7jIY-|Y9va7Zip@n?o
zUm_AJstHL(*-C_2GW~5JI)2|XUwCE}ZpE+L?uW=CuL{W+Y{FJA-O^KV!Cny58Kwwc
zzN~k*GTp$<Y;`crQO5pH%1^Z!kY0tXalcL7yUQMmZk6-TNENt}#VGP7-kN9Zd5t8@
z+wq<vALT`Ol5mL&??@9E^93mi0%I`$%v&CxzbGH5?-{}kiPZJI!^=+EXX~tl6uTsd
ztmQnEE%y1C(^cNEyO}XaZ!P#THTt95czU3?F<a?&jYW#f^->*c0hh@1b-r(B-1mV(
zJ>)19bV)^T|6VfQ88!3q&%GZ^;@1ydf*h|mXOmSu(jv~w#T&nkuT-^%;IlmRg&l6@
zeK5TUuS^=zMcB&~c3FSKzK*|VB;-P&SxO%^rl$k}x1hMP1y5K|LBC%ur;=PD;cdg%
zc=4BLiei2&D_jmL-cqjU4qkkHgMFEzo0<!LjC}{=UDg0+xspWu!8`6}#05;I5f1!@
zHxg$n_tD<mgR7+Dl!ksFBVqj!pRb_pC_~UybaHw{_EXhy<8MZ6o(C8DR~h~y+QOm*
z_l!=uyuTE!w*r55p<G8Q8LwUf%54|`T{Lfr+rDaK{3<{Brh{qlR4B3;27b5cQSVM!
z$RQua`Y+NbdmgLYmsA;oH}9EuD=~mqL_-p{x!az;_<!cVd5Yn!=Q-5RSOVYP_LUU9
z7!`7aw#e;^w-1(CHq6|OqOK%WYiA#MU;cEZPVV#Pe)v<(om(%WI#oADpPzoTmkR|y
zuzy#6%$^N9RTyl6bskNMGmx{3W}jC#GJEy3f+UF<`eya)MC`?>Ly;yZp$Hx2abR&s
zoct$XXVOzGMJsTjp1Bti86BrNVSO({85jc>FD!SECgnxZbQT=seRh=&nHDmssw|7c
z>Hk4-UZq{2vc{6k+9ChLfhUIE;^o|Ke7as(61=<}U1=R^v!E3HfPTy8*wu1-d+2A8
zW1u-STH=oRCQ3m(-CPGVB>T`Vka|)*0C|?EuH+0~2>A~j$FL^kD7Qfy(1D7I&e^n!
zT6geY60RVs63+PS-WtN4bQTw^Ho6MS5;(2**+WsV{MM1+Pcq#GmC5JT6(Hm`l=+z5
z<FTJ`GR*2_je93z_|0z|)va<aiSQRax7bU*jJ?VA^wc8w^Dwjkq5^M}xle82*3c)&
z_KU~734~*dK(9?)^MX4)9KW`BfyMD+b1kEf1X?ZqOuH6Qy1ZCgn|6G4^x;nF(E3id
zRU>dqdRU_qyTcoM*Wp(o>c;W_=Nz@zb#^Xpb?`=Z<xSXpa)VbKw_kI;-P-6j>DJLp
zWS+$?r`q14TXK`Y8dIj0300aeExEU^SueT&<@nw3vqVNlYJ9g+xf2dmr<i1uZ7uN{
zeydlbOeMViWwt>p9=D|IL05yv^*3ByUyR?AtY&sKWX&aC9#SMsp@jJSML=-w&Q4`=
zMA4XP&@b;|LYa(=<u<}ZQ~?4&*GL?<NbtBOD{E(m6;yC^yz6~kQ-*H>4w4*o#Kp)v
zG(|Rgpq0KOC|<l9U(h5bNP7;u$6VB#@B;Y!(tS_ZbIKF2H)z4%5V)_spH-peZbWQ#
zFsrfD9t^SnXnQd67=eKHzT~>D!=BC<qV?h8Z)-8CNa%bE;exx`!hMno#*e2@slzsM
z=RDg9?z|QTgEGat$HaNQ<gPG3QTDijK0ze2MKxwKMUATv_@C!3u4CA^PZMt=sXG+7
z^t|9tqWbc9oj~62wbrL^>Iyz*_18WHZ<1f^bzEy13fl@xO*sVNI27Oh>g<O)Tea!#
zLb%>6kCZ{mG|xEnxM1%tnkPHiJ$Py(;v%0PuP<rakaYk~f<K8qxRGr6DEz5Lllikk
z85;)-yi~(&iGC`oLEqSMj@m5k0>DrUuecj5xcw338UkrhwOxnVcXBO~^`6ta^(zG;
zgZrc!jMt}`f+`k%n_k`<7Bv{+U+2AtTa*wrdw|pwjRMyYI_1yUrO_vpXPj?PMU@-i
zkbqgESc(Ppg%TNYA>g=fFQqE*gmDF}!4G3-LOx2;mk)9PlA@I`F2g|u#;<6f=(4K+
zIMPz&74H~`KOQmOfIJ_(V~e!07+ZqcI*LwxcO7(*pZ?``59;`45G@Ngn6<&^z&jRV
z@NhTtMIfHxR>>uib#R3|47Gu9VJU%;PkzNKVvLf1E@6FzDfgEMfnuH`+ylN8lg9lT
zjHFpESx3bCW-YZQ35O=|R<m_tt}okEJk6|Ljd;wha9v;R)_kP4Q8`%OE;=(?O)TMq
z5TKVXh-{wKH<;F4s_O`v_xwDj2pQY^7xv8sIOc$1!Qm~|c4>|QIc0{sj?|bldIv7Q
v;^p+U9CLF7AxiLn?(s<BzHgGgnq|375?@GAjr1rBQdP#2c~-hjR%!nS^%@B*
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/outputs/tuto2_first_image.txt b/milena/doc/tutorial/outputs/tuto2_first_image.txt
new file mode 100644
index 0000000..42a59f9
--- /dev/null
+++ b/milena/doc/tutorial/outputs/tuto2_first_image.txt
@@ -0,0 +1,14 @@
+- - - - - - - - - - - - - - - - - - - - -
+- | - | - | | | - | - - - | - - - - | - -
+- | - | - | - - - | - - - | - - - | - | -
+- | | | - | | | - | - - - | - - - | - | -
+- | - | - | - - - | - - - | - - - | - | -
+- | - | - | | | - | | | - | | | - - | - -
+- - - - - - - - - - - - - - - - - - - - -
+- | - | - - | - - | | - - | - - - | | - -
+- | - | - | - | - | - | - | - - - | - | -
+- | - | - | - | - | | - - | - - - | - | -
+- | | | - | - | - | - | - | - - - | - | -
+- | - | - - | - - | - | - | | | - | | - -
+- - - - - - - - - - - - - - - - - - - - -
+
diff --git a/milena/doc/tutorial/outputs/tuto4_genericity_and_algorithms.txt b/milena/doc/tutorial/outputs/tuto4_genericity_and_algorithms.txt
new file mode 100644
index 0000000..e69de29
diff --git a/milena/doc/tutorial/samples/Makefile.am b/milena/doc/tutorial/samples/Makefile.am
index 60223c7..f4c4877 100644
--- a/milena/doc/tutorial/samples/Makefile.am
+++ b/milena/doc/tutorial/samples/Makefile.am
@@ -44,9 +44,10 @@ noinst_PROGRAMS = \
win-create-1 \
win-create-2
-noinst_PROGRAMS += \
-tuto1_first_image \
-tuto3_rw_image
+noinst_PROGRAMS += \
+tuto2_first_image \
+tuto3_rw_image \
+tuto4_genericity_and_algorithms
accu_right_instanciation_SOURCES = accu-right-instanciation.cc
borderthickness_SOURCES = borderthickness.cc
@@ -88,8 +89,9 @@ predicate_1_SOURCES = predicate-1.cc
win_create_1_SOURCES = win-create-1.cc
win_create_2_SOURCES = win-create-2.cc
-tuto1_first_image_SOURCES = tuto1_first_image.cc
+tuto2_first_image_SOURCES = tuto2_first_image.cc
tuto3_rw_image_SOURCES = tuto3_rw_image.cc
+tuto4_genericity_and_algorithms_SOURCES = tuto4_genericity_and_algorithms.cc
all: clean-figures
mkdir -p $(OUTPUTS_BUILDDIR)
diff --git a/milena/doc/tutorial/samples/tuto1_first_image.cc b/milena/doc/tutorial/samples/tuto2_first_image.cc
similarity index 100%
rename from milena/doc/tutorial/samples/tuto1_first_image.cc
rename to milena/doc/tutorial/samples/tuto2_first_image.cc
diff --git a/milena/doc/tutorial/samples/tuto4_genericity_and_algorithms.cc b/milena/doc/tutorial/samples/tuto4_genericity_and_algorithms.cc
new file mode 100644
index 0000000..ca5e7f4
--- /dev/null
+++ b/milena/doc/tutorial/samples/tuto4_genericity_and_algorithms.cc
@@ -0,0 +1,97 @@
+#include <mln/essential/2d.hh>
+#include <mln/binarization/threshold.hh>
+#include <mln/debug/colorize.hh>
+#include <tests/data.hh>
+#include <doc/tutorial/tools/sample_utils.hh>
+
+struct keep_specific_colors : public mln::Function_v2b<keep_specific_colors>
+{
+ bool operator()(const mln::value::rgb16& v) const
+ {
+ return v.green() < 20000 && v.blue() > 10000;
+ }
+};
+
+int main()
+{
+ using namespace mln;
+
+ // \{
+ image2d<value::rgb16> lena;
+ io::ppm::load(lena, MLN_IMG_DIR "/small.ppm");
+ // \}
+
+
+ image2d<value::rgb16> lena_bak = duplicate(lena);
+ // \{
+ box2d roi = make::box2d(20, 20, 40, 40);
+ // \}
+ // \{
+ data::fill((lena | roi).rw(), literal::green);
+ // \}
+ doc::ppmsave(lena, "tuto4_genericity_and_algorithms");
+
+
+
+
+ lena = duplicate(lena_bak);
+ // \{
+ data::fill((lena | fun::p2b::chess()).rw(), literal::green);
+ // \}
+ doc::ppmsave(lena, "tuto4_genericity_and_algorithms");
+
+
+
+
+ lena = duplicate(lena_bak);
+ // \{
+ image2d<bool> mask;
+ initialize(mask, lena);
+ data::fill(mask, false);
+ data::fill((mask | make::box2d(10, 10, 14, 14)).rw(), true);
+ data::fill((mask | make::box2d(25, 15, 29, 18)).rw(), true);
+ data::fill((mask | make::box2d(50, 50, 54, 54)).rw(), true);
+ // \}
+ doc::pbmsave(mask, "tuto4_genericity_and_algorithms");
+ // \{
+ data::fill((lena | pw::value(mask)).rw(), literal::green);
+ // \}
+ doc::ppmsave(lena, "tuto4_genericity_and_algorithms");
+
+
+
+
+ lena = duplicate(lena_bak);
+ // \{
+ image2d<bool> lena_bw = binarization::binarization(lena, keep_specific_colors());
+ value::label_16 nlabels;
+ image2d<value::label_16> label = labeling::blobs(lena_bw, c8(), nlabels);
+ // \}
+ doc::ppmsave(debug::colorize(value::rgb16(), label, nlabels), "tuto4_genericity_and_algorithms");
+
+ // \{
+ data::fill((lena | (pw::value(label) == pw::cst(16u))).rw(), literal::green);
+ // \}
+ doc::ppmsave(lena, "tuto4_genericity_and_algorithms");
+
+
+
+/*
+ lena = duplicate(lena_bak);
+ // \{
+ data::fill(fun::green(lena), literal::max);
+ // \}
+ doc::ppmsave(lena, "tuto4_genericity_and_algorithms");
+
+
+
+
+ lena = duplicate(lena_bak);
+ // \{
+ mln_VAR(object, pw::value(label) == pw::cst(3));
+ data::fill((fun::green(lena) | object).rw(), literal::max);
+ // \}
+ doc::pgmsave(object, "tuto4_genericity_and_algorithms");
+ doc::ppmsave(label, "tuto4_genericity_and_algorithms");
+*/
+}
diff --git a/milena/doc/tutorial/tutorial.tex b/milena/doc/tutorial/tutorial.tex
index a8c8c64..d3aca8e 100644
--- a/milena/doc/tutorial/tutorial.tex
+++ b/milena/doc/tutorial/tutorial.tex
@@ -1,4 +1,5 @@
\documentclass{report}
+\usepackage{hevea}
\usepackage{graphicx}
\usepackage{listings}
\usepackage{makeidx}
@@ -408,7 +409,7 @@ After this step you should know how to:
\item display an image in console mode.
\end{itemize}
-The full example can be found in \doxyref{tuto1_first_image.cc}.
+\doxysee{tuto2_first_image.cc}.
\vspace{2cm}
@@ -457,7 +458,7 @@ After this step you should know how to:
\end{itemize}
-The full example can be found in \doxyref{tuto3_rw_image.cc}.
+\doxysee{tuto3_rw_image.cc}.
\vspace{2cm}
First create an empty color image with a \var{box2d} of 40x40 as domain.
@@ -493,7 +494,7 @@ Likewise, it is possible to paste data from an image to another:
Output:
\doxyfigure[3]{tuto3_rw_image}
-More details can be found in section \doxyref{fillop} and \doxyref{pasteop} in
+More details can be found in sections \doxyref{imaaccessmodval}, \doxyref{fillop} and \doxyref{pasteop} in
the reference guide.
\vspace{2cm}
@@ -505,6 +506,73 @@ the reference guide.
%====================================
\doxychapter{tutogenericity}{Step 4: Genericity and algorithms}
+After this step you should know how to:
+ \begin{itemize}
+ \item take benefit of Olena's genericity,
+ \item work only on a region of interest in an image.
+ \end{itemize}
+
+\doxysee{tuto4_genericity_and_algorithms.cc}.
+\vspace{2cm}
+
+\doxycode[1]{tuto4_genericity_and_algorithms}
+\doxyimg{small-enlarged}
+
+\doxycode[2]{tuto4_genericity_and_algorithms}
+\doxycode[3]{tuto4_genericity_and_algorithms}
+
+\begin{center}
+ \begin{tabular}{c c c}
+ \doxyimg{small-enlarged} & ~\huge{\rightarrow}~ & \doxyfigure[1]{tuto4_genericity_and_algorithms}{3cm} \\
+ \multicolumn{3}{c}{Fill with green a region of interest defined by a
+ \type{box2d}.} \\
+ \end{tabular}
+\end{center}
+
+
+\doxycode[4]{tuto4_genericity_and_algorithms}
+\begin{center}
+ \begin{tabular}{c c c}
+ \doxyimg{small-enlarged} & ~\huge{\rightarrow}~ & \doxyfigure[2]{tuto4_genericity_and_algorithms}{3cm} \\
+ \multicolumn{3}{c}{Fill with green a region of interest defined by a
+ \type{Function}.} \\
+ \end{tabular}
+\end{center}
+
+
+\doxycode[5]{tuto4_genericity_and_algorithms}
+\doxycode[6]{tuto4_genericity_and_algorithms}
+\begin{center}
+ \begin{tabular}{c c c c}
+ \doxyimg{small-enlarged} &
+ \doxyfigure[3]{tuto4_genericity_and_algorithms}{3cm} &
+ ~\huge{\rightarrow}~ &
+ \doxyfigure[4]{tuto4_genericity_and_algorithms}{3cm} \\
+ \multicolumn{4}{c}{Fill with green a region of interest defined by a mask
+ image.} \\
+ \end{tabular}
+\end{center}
+
+\doxycode[7]{tuto4_genericity_and_algorithms}
+\doxycode[8]{tuto4_genericity_and_algorithms}
+
+\begin{center}
+ \begin{tabular}{c c c c}
+ \doxyimg{small-enlarged} &
+ \doxyfigure[5]{tuto4_genericity_and_algorithms}{3cm} &
+ ~\huge{\rightarrow}~ &
+ \doxyfigure[6]{tuto4_genericity_and_algorithms}{3cm} \\
+ \multicolumn{4}{c}{Fill with green a region of interest defined by its
+ label.} \\
+ \end{tabular}
+\end{center}
+
+
+
+\vspace{2cm}
+\begin{center}
+ \tutotoc{tutochangeimage}{tutoconvimage}
+\end{center}
%====================================
\doxychapter{tutoconvimage}{Step 5: Conversion between image values}
@@ -526,12 +594,65 @@ the reference guide.
%**************************
\doxysection{requirements}{Requirements}
+
+\doxysubsection{compexample}{To compile the user examples}
+
+\begin{itemize}
+ \item a POSIX shell, like Bash
+ \item a decent C++ compiler, like GNU C++
+ \item a `make' utility, like GNU or BSD `make'
+\end{itemize}
+
+
+
+\doxysubsection{compdoc}{To compile the documentation (Optional)}
+
+\begin{itemize}
+ \item a LaTeX distribution
+ \item the `listings' TeX package
+ \item the utility `convert' from ImageMagick
+ \item GNU Autogen
+ \item `hevea', a TeX to HTML conversion tool
+ \item the `texinfo' utilities from GNU
+\end{itemize}
+
+\doxysubsection{devolena}{To develop in Olena}
+\begin{itemize}
+ \item GNU Autotools (Autoconf 2.54, Automake 1.10)
+\end{itemize}
+
%**************************
\doxysection{getolena}{Getting Olena}
+The latest version of Olena is available at the following addresses:
+
+\begin{itemize}
+ \item http://www.lrde.epita.fr/dload/olena/olena.tar.gz
+ \item http://www.lrde.epita.fr/dload/olena/olena.tar.bz2
+\end{itemize}
+
+
%**************************
\doxysection{buildingolena}{Building Olena}
+First uncompress the archive. According to the downloaded archive, the options
+are different.
+\begin{verbatim}
+$tar zxvf olena.tar.gz
+\end{verbatim}
+Or
+\begin{verbatim}
+$tar jxvf olena.tar.bz2
+\end{verbatim}
+
+Then follow these steps:
+\begin{verbatim}
+$mkdir olena-build
+$cd olena-build
+$../olena-1.0/configure && make
+$sudo make install
+\end{verbatim}
+
%====================================
@@ -2259,7 +2380,7 @@ mln\_bkd\_nixter(I, N) & I : image type, & \\
\end{tabular}
-\doxysubsection{macrosbkdit}{Graph iterators}
+\doxysubsection{macrosgraphit}{Graph iterators}
\begin{tabular}{l|p{4cm}|p{6cm}}
Name & Arguments & Description \\
\hline
diff --git a/milena/mln/core/concept/object.hh b/milena/mln/core/concept/object.hh
index ada4df4..4a482cb 100644
--- a/milena/mln/core/concept/object.hh
+++ b/milena/mln/core/concept/object.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2007, 2008, 2009 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
@@ -70,16 +70,21 @@
* <UL>
* <LI> \ref mln
* <LI> \ref mln::accu
+ * <LI> \ref mln::algebra
* <LI> \ref mln::arith
+ * <LI> \ref mln::binarization
* <LI> \ref mln::border
* <LI> \ref mln::canvas
* <LI> \ref mln::convert
+ * <LI> \ref mln::data
* <LI> \ref mln::debug
* <LI> \ref mln::display
* <LI> \ref mln::draw
* <LI> \ref mln::estim
+ * <LI> \ref mln::extension
* <LI> \ref mln::fun
* <LI> \ref mln::geom
+ * <LI> \ref mln::graph
* <LI> \ref mln::histo
* <LI> \ref mln::io
* <LI> \ref mln::labeling
@@ -92,12 +97,16 @@
* <LI> \ref mln::metal
* <LI> \ref mln::morpho
* <LI> \ref mln::norm
+ * <LI> \ref mln::opt
* <LI> \ref mln::pw
+ * <LI> \ref mln::registration
* <LI> \ref mln::set
* <LI> \ref mln::tag
* <LI> \ref mln::test
+ * <LI> \ref mln::topo
* <LI> \ref mln::trace
* <LI> \ref mln::trait
+ * <LI> \ref mln::transform
* <LI> \ref mln::util
* <LI> \ref mln::value
* <LI> \ref mln::win
--
1.5.6.5
1
0
https://svn.lrde.epita.fr/svn/oln/trunk/milena
Index: ChangeLog
from Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Update rotation.
* mln/fun/x2x/rotation.hh: Assert axis is valid.
rotation.hh | 2 ++
1 file changed, 2 insertions(+)
Index: mln/fun/x2x/rotation.hh
--- mln/fun/x2x/rotation.hh (revision 3134)
+++ mln/fun/x2x/rotation.hh (working copy)
@@ -69,6 +69,8 @@
const float u = axis_[0];
const float v = axis_[1];
const float w = axis_[2];
+ //test axis is valid
+ assert(u != 0 && v != 0 && w != 0);
const float u2 = u * u;
const float v2 = v * v;
const float w2 = w * w;
1
0
https://svn.lrde.epita.fr/svn/oln/trunk/milena
Index: ChangeLog
from Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Fix rotation.
* mln/fun/x2x/rotation.hh: Fix 3d rotation Matrix.
rotation.hh | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: mln/fun/x2x/rotation.hh
--- mln/fun/x2x/rotation.hh (revision 3133)
+++ mln/fun/x2x/rotation.hh (working copy)
@@ -86,13 +86,13 @@
m_(2,0) = (u*w * (1 - cos_a) - v * std::sqrt(uvw2) * sin_a) / uvw2;
m_(2,1) = (v*w * (1 - cos_a) + u * std::sqrt(uvw2) * sin_a) / uvw2;
- m_(2,1) = (u2 + (u2 + v2) * cos_a) / uvw2;
+ m_(2,2) = (u2 + (u2 + v2) * cos_a) / uvw2;
m_(2,3) = 0;
- m_(2,0) = 0;
- m_(2,1) = 0;
- m_(2,1) = 0;
- m_(2,3) = 1;
+ m_(3,0) = 0;
+ m_(3,1) = 0;
+ m_(3,2) = 0;
+ m_(3,3) = 1;
return m_;
}
1
0
* mln/util/graph.hh: move is_valid and invalidate to...
* mln/core/concept/graph.hh: ... here. Currently, these methods have
a default implementation.
* tests/morpho/artificial_line_graph_image_wst.cc,
* tests/morpho/graph_image_wst.cc,
* tests/morpho/lena_line_graph_image_wst1.cc,
* tests/morpho/lena_line_graph_image_wst2.cc,
* tests/morpho/line_graph_image_wst.cc: use the new
graph_elt_neighborhood and line_graph_elt_neighborhood aliases.
* mln/core/image/graph_elt_neighborhood.hh
* mln/core/image/graph_elt_window.hh
* mln/core/image/line_graph_elt_neighborhood.hh
* mln/core/image/line_graph_elt_window.hh: move back definition of
neighborhood_impl specialization from *_elt_neighborhood to
*_elt_window.
---
milena/ChangeLog | 22 +++++++++++++++
milena/mln/core/concept/graph.hh | 29 ++++++++++++++++++-
milena/mln/core/image/graph_elt_neighborhood.hh | 12 --------
milena/mln/core/image/graph_elt_window.hh | 13 +++++++++
.../mln/core/image/line_graph_elt_neighborhood.hh | 12 --------
milena/mln/core/image/line_graph_elt_window.hh | 13 +++++++++
milena/mln/util/graph.hh | 23 ---------------
.../morpho/artificial_line_graph_image_wst.cc | 7 ++---
milena/tests/morpho/graph_image_wst.cc | 8 ++---
milena/tests/morpho/lena_line_graph_image_wst1.cc | 7 ++---
milena/tests/morpho/lena_line_graph_image_wst2.cc | 7 ++---
milena/tests/morpho/line_graph_image_wst.cc | 8 ++---
12 files changed, 90 insertions(+), 71 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 033dacf..9932eb3 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,25 @@
+2009-01-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix graph related tests.
+
+ * mln/util/graph.hh: move is_valid and invalidate to...
+ * mln/core/concept/graph.hh: ... here. Currently, these methods have
+ a default implementation.
+
+ * tests/morpho/artificial_line_graph_image_wst.cc,
+ * tests/morpho/graph_image_wst.cc,
+ * tests/morpho/lena_line_graph_image_wst1.cc,
+ * tests/morpho/lena_line_graph_image_wst2.cc,
+ * tests/morpho/line_graph_image_wst.cc: use the new
+ graph_elt_neighborhood and line_graph_elt_neighborhood aliases.
+
+ * mln/core/image/graph_elt_neighborhood.hh
+ * mln/core/image/graph_elt_window.hh
+ * mln/core/image/line_graph_elt_neighborhood.hh
+ * mln/core/image/line_graph_elt_window.hh: move back definition of
+ neighborhood_impl specialization from *_elt_neighborhood to
+ *_elt_window.
+
2009-01-05 Guillaume Lazzara <z(a)lrde.epita.fr>
Add step 3 in tutorial.
diff --git a/milena/mln/core/concept/graph.hh b/milena/mln/core/concept/graph.hh
index 81f4f3c..fa07e78 100644
--- a/milena/mln/core/concept/graph.hh
+++ b/milena/mln/core/concept/graph.hh
@@ -72,7 +72,14 @@ namespace mln
const E& id() const;
template<typename G2>
bool is_subgraph_of(const G2& gr) const;
-
+ */
+ /// Return true if this graph is valid.
+ /// FIXME: currently it always returns true.
+ bool is_valid() const;
+ /// Invalidate the graph.
+ /// FIXME: does nothing!
+ void invalidate();
+ /*
// Vertex and edges oriented.
unsigned v_other(unsigned id_e, unsigned id_v) const;
@@ -140,7 +147,25 @@ namespace mln
// a templated method.
//bool (E::*m14)(...) = & E::is_subgraph_of;
//m14 = 0;
-}
+ }
+
+ template <typename E>
+ inline
+ bool
+ Graph<E>::is_valid() const
+ {
+ //FIXME: should not always return true!
+ return true;
+ }
+
+ template <typename E>
+ inline
+ void
+ Graph<E>::invalidate()
+ {
+ //FIXME: No op! Should do something.
+ }
+
# endif // ! MLN_INCLUDE_ONLY
diff --git a/milena/mln/core/image/graph_elt_neighborhood.hh b/milena/mln/core/image/graph_elt_neighborhood.hh
index dc08ad9..4de7669 100644
--- a/milena/mln/core/image/graph_elt_neighborhood.hh
+++ b/milena/mln/core/image/graph_elt_neighborhood.hh
@@ -40,18 +40,6 @@
namespace mln
{
- namespace internal
- {
-
- template <typename G, typename F, typename E>
- struct neighborhood_impl<graph_elt_window<G,F>,E>
- : public neighborhood_extra_impl<graph_elt_window<G,F>,E>
- {
- };
-
- } // end of namespace mln::internal
-
-
/// Elementary neighborhood on graph class.
template <typename G, typename F>
struct graph_elt_neighborhood
diff --git a/milena/mln/core/image/graph_elt_window.hh b/milena/mln/core/image/graph_elt_window.hh
index e1929df..6143c9e 100644
--- a/milena/mln/core/image/graph_elt_window.hh
+++ b/milena/mln/core/image/graph_elt_window.hh
@@ -46,6 +46,19 @@ namespace mln
/// Forward declaration
template <typename G, typename F> class graph_elt_window;
+
+ namespace internal
+ {
+
+ template <typename G, typename F, typename E>
+ struct neighborhood_impl<graph_elt_window<G,F>,E>
+ : public neighborhood_extra_impl<graph_elt_window<G,F>,E>
+ {
+ };
+
+ } // end of namespace mln::internal
+
+
namespace trait
{
diff --git a/milena/mln/core/image/line_graph_elt_neighborhood.hh b/milena/mln/core/image/line_graph_elt_neighborhood.hh
index 92c7611..da49fdf 100644
--- a/milena/mln/core/image/line_graph_elt_neighborhood.hh
+++ b/milena/mln/core/image/line_graph_elt_neighborhood.hh
@@ -40,18 +40,6 @@
namespace mln
{
- namespace internal
- {
-
- template <typename G, typename F, typename E>
- struct neighborhood_impl<line_graph_elt_window<G,F>,E>
- : public neighborhood_extra_impl<line_graph_elt_window<G,F>,E>
- {
- };
-
- } // end of namespace mln::internal
-
-
/// Elementary neighborhood on line graph class.
template <typename G, typename F>
struct line_graph_elt_neighborhood
diff --git a/milena/mln/core/image/line_graph_elt_window.hh b/milena/mln/core/image/line_graph_elt_window.hh
index d9f7138..1cb3fee 100644
--- a/milena/mln/core/image/line_graph_elt_window.hh
+++ b/milena/mln/core/image/line_graph_elt_window.hh
@@ -46,6 +46,19 @@ namespace mln
/// Forward declaration
template <typename G, typename F> class line_graph_elt_window;
+
+ namespace internal
+ {
+
+ template <typename G, typename F, typename E>
+ struct neighborhood_impl<line_graph_elt_window<G,F>,E>
+ : public neighborhood_extra_impl<line_graph_elt_window<G,F>,E>
+ {
+ };
+
+ } // end of namespace mln::internal
+
+
namespace trait
{
diff --git a/milena/mln/util/graph.hh b/milena/mln/util/graph.hh
index 2aed416..897deb4 100644
--- a/milena/mln/util/graph.hh
+++ b/milena/mln/util/graph.hh
@@ -142,14 +142,6 @@ namespace mln
/// Construct a graph with \p nvertices vertices.
graph(unsigned nvertices);
-
- /// Return true if this graph is valid.
- /// FIXME: currently it always returns true.
- bool is_valid() const;
- /// Invalidate the graph.
- /// FIXME: does nothing!
- void invalidate();
-
/// Vertex oriented.
/// \{
@@ -288,21 +280,6 @@ namespace mln
this->data_ = new mln::internal::data<util::graph>(nvertices);
}
- inline
- bool
- graph::is_valid() const
- {
- //FIXME: should not always return true!
- return true;
- }
-
- inline
- void
- graph::invalidate()
- {
- //FIXME: No op! Should do something.
- }
-
/*---------------.
| Vertex related |
`---------------*/
diff --git a/milena/tests/morpho/artificial_line_graph_image_wst.cc b/milena/tests/morpho/artificial_line_graph_image_wst.cc
index c88ac15..415ad87 100644
--- a/milena/tests/morpho/artificial_line_graph_image_wst.cc
+++ b/milena/tests/morpho/artificial_line_graph_image_wst.cc
@@ -54,7 +54,7 @@
/// Required for line graph images.
#include <mln/core/site_set/p_edges.hh>
-#include <mln/core/image/line_graph_elt_window.hh>
+#include <mln/core/image/line_graph_elt_neighborhood.hh>
#include <mln/core/var.hh>
#include <mln/pw/all.hh>
#include <mln/fun/i2v/array.hh>
@@ -122,9 +122,8 @@ int main()
| WST. |
`------*/
- typedef line_graph_elt_window<util::graph, lg_ima_t::pset::fun_t> win_t;
- win_t win;
- neighb<win_t> nbh(win);
+ typedef line_graph_elt_neighborhood<util::graph, lg_ima_t::pset::fun_t> nbh_t;
+ nbh_t nbh;
// Perform a Watershed Transform.
unsigned nbasins;
diff --git a/milena/tests/morpho/graph_image_wst.cc b/milena/tests/morpho/graph_image_wst.cc
index 2893903..caecece 100644
--- a/milena/tests/morpho/graph_image_wst.cc
+++ b/milena/tests/morpho/graph_image_wst.cc
@@ -34,8 +34,7 @@
/// Required for graph images.
#include <mln/core/site_set/p_vertices.hh>
-#include <mln/core/image/graph_elt_window.hh>
-#include <mln/core/neighb.hh>
+#include <mln/core/image/graph_elt_neighborhood.hh>
#include <mln/core/var.hh>
#include <mln/pw/all.hh>
#include <mln/fun/i2v/array.hh>
@@ -112,9 +111,8 @@ int main()
| WST. |
`------*/
- typedef graph_elt_window<util::graph, fsite_t> win_t;
- win_t win;
- neighb<win_t> nbh(win);
+ typedef graph_elt_neighborhood<util::graph, fsite_t> nbh_t;
+ nbh_t nbh;
unsigned nbasins;
mln_const_VAR(wshed, morpho::meyer_wst(ima, nbh, nbasins));
diff --git a/milena/tests/morpho/lena_line_graph_image_wst1.cc b/milena/tests/morpho/lena_line_graph_image_wst1.cc
index b100bec..aa2d257 100644
--- a/milena/tests/morpho/lena_line_graph_image_wst1.cc
+++ b/milena/tests/morpho/lena_line_graph_image_wst1.cc
@@ -60,7 +60,7 @@
/// Required for line graph images.
#include <mln/core/site_set/p_edges.hh>
-#include <mln/core/image/line_graph_elt_window.hh>
+#include <mln/core/image/line_graph_elt_neighborhood.hh>
#include <mln/core/var.hh>
#include <mln/pw/all.hh>
#include <mln/fun/i2v/array.hh>
@@ -156,9 +156,8 @@ int main()
| WST. |
`------*/
- typedef line_graph_elt_window<util::graph, edge_sites_t> win_t;
- win_t win;
- neighb<win_t> nbh;
+ typedef line_graph_elt_neighborhood<util::graph, edge_sites_t> nbh_t;
+ nbh_t nbh;
// Perform a Watershed Transform.
int_u8 nbasins;
diff --git a/milena/tests/morpho/lena_line_graph_image_wst2.cc b/milena/tests/morpho/lena_line_graph_image_wst2.cc
index de48d35..ba822fa 100644
--- a/milena/tests/morpho/lena_line_graph_image_wst2.cc
+++ b/milena/tests/morpho/lena_line_graph_image_wst2.cc
@@ -56,7 +56,7 @@
/// Required for line graph images.
#include <mln/core/site_set/p_edges.hh>
-#include <mln/core/image/line_graph_elt_window.hh>
+#include <mln/core/image/line_graph_elt_neighborhood.hh>
#include <mln/core/var.hh>
#include <mln/pw/all.hh>
#include <mln/fun/i2v/array.hh>
@@ -109,9 +109,8 @@ int main()
| Simplification. |
`-----------------*/
- typedef line_graph_elt_window<util::graph, lg_ima_t::pset::fun_t> win_t;
- win_t win;
- neighb<win_t> nbh(win);
+ typedef line_graph_elt_neighborhood<util::graph, lg_ima_t::pset::fun_t> nbh_t;
+ nbh_t nbh;
mln_VAR(closed_lg_ima, morpho::closing_area_on_vertices(lg_ima, nbh, 20));
diff --git a/milena/tests/morpho/line_graph_image_wst.cc b/milena/tests/morpho/line_graph_image_wst.cc
index c6c2ac0..73afbda 100644
--- a/milena/tests/morpho/line_graph_image_wst.cc
+++ b/milena/tests/morpho/line_graph_image_wst.cc
@@ -33,8 +33,7 @@
/// Required for line graph images.
#include <mln/core/site_set/p_edges.hh>
-#include <mln/core/image/line_graph_elt_window.hh>
-#include <mln/core/neighb.hh>
+#include <mln/core/image/line_graph_elt_neighborhood.hh>
#include <mln/core/var.hh>
#include <mln/pw/all.hh>
#include <mln/fun/i2v/array.hh>
@@ -130,9 +129,8 @@ int main()
std::cout << "ima (" << p << ") = " << ima(p) << std::endl;
std::cout << std::endl;
- typedef line_graph_elt_window<util::graph, edge_sites_t> win_t;
- win_t win;
- neighb<win_t> nbh(win);
+ typedef line_graph_elt_neighborhood<util::graph, edge_sites_t> nbh_t;
+ nbh_t nbh;
unsigned nbasins;
mln_const_VAR(wshed, morpho::meyer_wst(ima, nbh, nbasins));
--
1.5.6.5
1
0
* doc/tutorial/figures/tuto3_rw_image-1.ppm
* doc/tutorial/figures/tuto3_rw_image-2.ppm
* doc/tutorial/figures/tuto3_rw_image-3.ppm
* doc/tutorial/outputs/tuto3_rw_image.txt: add new reference files.
* doc/tutorial/samples/ima-load.cc.raw: rename as...
* doc/tutorial/samples/ima-load.cc: ... this.
* doc/tutorial/samples/ima-save.cc: extract less lines of code.
* doc/tutorial/samples/Makefile.am,
* doc/tutorial/samples/tuto3_rw_image.cc: add a new tutorial example.
* doc/tutorial/tutorial.tex: write step 3.
* Makefile.am,
* img/small-enlarged.png,
* img/small.png,
* img/small.ppm: add new useful images and make them part of the
distribution.
* tests/data/Makefile.am: comment non activated test.
---
milena/ChangeLog | 27 +++
milena/Makefile.am | 3 +
milena/doc/tutorial/figures/tuto3_rw_image-1.ppm | Bin 0 -> 9720 bytes
milena/doc/tutorial/figures/tuto3_rw_image-2.ppm | Bin 0 -> 9720 bytes
milena/doc/tutorial/figures/tuto3_rw_image-3.ppm | Bin 0 -> 24696 bytes
milena/doc/tutorial/samples/Makefile.am | 6 +-
.../samples/{ima-load.cc.raw => ima-load.cc} | 0
milena/doc/tutorial/samples/ima-save.cc | 4 +-
milena/doc/tutorial/samples/tuto3_rw_image.cc | 46 +++++
milena/doc/tutorial/tutorial.tex | 190 +++++++++++++++++---
milena/img/small-enlarged.png | Bin 0 -> 91556 bytes
milena/img/small.png | Bin 0 -> 22653 bytes
milena/img/small.ppm | Bin 0 -> 24591 bytes
milena/tests/data/Makefile.am | 3 +-
14 files changed, 246 insertions(+), 33 deletions(-)
create mode 100644 milena/doc/tutorial/figures/tuto3_rw_image-1.ppm
create mode 100644 milena/doc/tutorial/figures/tuto3_rw_image-2.ppm
create mode 100644 milena/doc/tutorial/figures/tuto3_rw_image-3.ppm
create mode 100644 milena/doc/tutorial/outputs/tuto3_rw_image.txt
rename milena/doc/tutorial/samples/{ima-load.cc.raw => ima-load.cc} (100%)
create mode 100644 milena/doc/tutorial/samples/tuto3_rw_image.cc
create mode 100644 milena/img/small-enlarged.png
create mode 100644 milena/img/small.png
create mode 100644 milena/img/small.ppm
diff --git a/milena/ChangeLog b/milena/ChangeLog
index cc285f0..033dacf 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,32 @@
2009-01-05 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Add step 3 in tutorial.
+
+ * doc/tutorial/figures/tuto3_rw_image-1.ppm
+ * doc/tutorial/figures/tuto3_rw_image-2.ppm
+ * doc/tutorial/figures/tuto3_rw_image-3.ppm
+ * doc/tutorial/outputs/tuto3_rw_image.txt: add new reference files.
+
+ * doc/tutorial/samples/ima-load.cc.raw: rename as...
+ * doc/tutorial/samples/ima-load.cc: ... this.
+
+ * doc/tutorial/samples/ima-save.cc: extract less lines of code.
+
+ * doc/tutorial/samples/Makefile.am,
+ * doc/tutorial/samples/tuto3_rw_image.cc: add a new tutorial example.
+
+ * doc/tutorial/tutorial.tex: write step 3.
+
+ * Makefile.am,
+ * img/small-enlarged.png,
+ * img/small.png,
+ * img/small.ppm: add new useful images and make them part of the
+ distribution.
+
+ * tests/data/Makefile.am: comment non activated test.
+
+2009-01-05 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Add is_valid and invalidate to util::graph
* milena/mln/util/graph.hh: add is_valid and invalidate. These methods
diff --git a/milena/Makefile.am b/milena/Makefile.am
index 8e71f41..c400ae7 100644
--- a/milena/Makefile.am
+++ b/milena/Makefile.am
@@ -35,6 +35,9 @@ img/picasso.pbm \
img/space_debris.pgm \
img/picasso.pgm \
img/small.pbm \
+img/small-enlarged.png \
+img/small.png \
+img/small.ppm \
img/lena.ppm \
img/small.pgm
diff --git a/milena/doc/tutorial/figures/tuto3_rw_image-1.ppm b/milena/doc/tutorial/figures/tuto3_rw_image-1.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..d68c0775a6714588de773bbc67e5dadeea768ad2
GIT binary patch
literal 9720
zcmeI$u?oU45C&l9JjH>FF12Fo;3il^s377Cr1nIiCM5>Jr`Nh2WC=J(;CCp;aUS=7
z-FjH6F>Tqf)1F&uUbMe;Y&6ZYoapL(znabLx07|Q<&68A*V)Al|EdnV)0&R_VC~LV
z(x#;iKe@C0osFkjH+EQR-HRsmaZ^oIkyDYYWmzst^?r|rAD$3^00bZa0SG_<0uX=z
z1Rwwb2tWV=5P*Ob_~oma+>=U;yzv65yi<8+e7bN_?n$K%Q^a>t$tdrPPZv(gJ*m`T
viug_{8Rebv>B335CzU!(5#LEAqr5XdT{tQCpoRbhAOHafKmY;|_^-eR@=cjy
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/tuto3_rw_image-2.ppm b/milena/doc/tutorial/figures/tuto3_rw_image-2.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..8187902fba572427eb6d1e09519445290767e16a
GIT binary patch
literal 9720
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
IVU4l>2L{+MMgRZ+
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/tuto3_rw_image-3.ppm b/milena/doc/tutorial/figures/tuto3_rw_image-3.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..0c0126ecadea3455496dd5831f6d14918e2b59e4
GIT binary patch
literal 24696
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
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/outputs/tuto3_rw_image.txt b/milena/doc/tutorial/outputs/tuto3_rw_image.txt
new file mode 100644
index 0000000..e69de29
diff --git a/milena/doc/tutorial/samples/Makefile.am b/milena/doc/tutorial/samples/Makefile.am
index c15db7c..60223c7 100644
--- a/milena/doc/tutorial/samples/Makefile.am
+++ b/milena/doc/tutorial/samples/Makefile.am
@@ -44,8 +44,9 @@ noinst_PROGRAMS = \
win-create-1 \
win-create-2
-noinst_PROGRAMS += \
-tuto1_first_image
+noinst_PROGRAMS += \
+tuto1_first_image \
+tuto3_rw_image
accu_right_instanciation_SOURCES = accu-right-instanciation.cc
borderthickness_SOURCES = borderthickness.cc
@@ -88,6 +89,7 @@ win_create_1_SOURCES = win-create-1.cc
win_create_2_SOURCES = win-create-2.cc
tuto1_first_image_SOURCES = tuto1_first_image.cc
+tuto3_rw_image_SOURCES = tuto3_rw_image.cc
all: clean-figures
mkdir -p $(OUTPUTS_BUILDDIR)
diff --git a/milena/doc/tutorial/samples/ima-load.cc.raw b/milena/doc/tutorial/samples/ima-load.cc
similarity index 100%
rename from milena/doc/tutorial/samples/ima-load.cc.raw
rename to milena/doc/tutorial/samples/ima-load.cc
diff --git a/milena/doc/tutorial/samples/ima-save.cc b/milena/doc/tutorial/samples/ima-save.cc
index 3ac426e..d802555 100644
--- a/milena/doc/tutorial/samples/ima-save.cc
+++ b/milena/doc/tutorial/samples/ima-save.cc
@@ -3,7 +3,6 @@ int main()
{
using namespace mln;
- // \{
bool vals[5][5] = {
{1, 0, 1, 0, 0},
{0, 1, 0, 1, 0},
@@ -13,8 +12,7 @@ int main()
};
image2d<bool> ima = make::image(vals);
- // ...
-
+ // \{
io::pbm::save(ima, "../figures/ima_save.pbm");
// \}
}
diff --git a/milena/doc/tutorial/samples/tuto3_rw_image.cc b/milena/doc/tutorial/samples/tuto3_rw_image.cc
new file mode 100644
index 0000000..f2a9ec0
--- /dev/null
+++ b/milena/doc/tutorial/samples/tuto3_rw_image.cc
@@ -0,0 +1,46 @@
+#include <mln/essential/2d.hh>
+#include <tests/data.hh>
+#include <doc/tutorial/tools/sample_utils.hh>
+int main()
+{
+ using namespace mln;
+
+ // \{
+ image2d<value::rgb16> ima(40, 40);
+ // \}
+
+ // \{
+ data::fill(ima, literal::red);
+ // \}
+
+ // \{
+ for (def::coord row = 20; row < 30; ++row)
+ for (def::coord col = 20; col < 30; ++col)
+ ima(point2d(row, col)) = literal::blue;
+ // \}
+
+ // \{
+ for (def::coord row = 20; row < 30; ++row)
+ for (def::coord col = 20; col < 30; ++col)
+ opt::at(ima, row, col) = literal::blue;
+ // \}
+ doc::ppmsave(ima, "tuto3_rw_image");
+
+ image2d<value::rgb16> ima2 = duplicate(ima);
+
+ // \{
+ image2d<value::rgb16> lena;
+ io::ppm::load(lena, MLN_IMG_DIR "/small.ppm");
+ // \}
+
+ // \{
+ data::fill(ima, lena);
+ // \}
+ doc::ppmsave(ima, "tuto3_rw_image");
+
+ ima = ima2;
+ // \{
+ data::paste(ima, lena);
+ // \}
+ doc::ppmsave(lena, "tuto3_rw_image");
+}
diff --git a/milena/doc/tutorial/tutorial.tex b/milena/doc/tutorial/tutorial.tex
index 73ac9fd..a8c8c64 100644
--- a/milena/doc/tutorial/tutorial.tex
+++ b/milena/doc/tutorial/tutorial.tex
@@ -51,7 +51,7 @@
\label{#1}
\backslash endhtmlonly%
\backslash page #1 #2%
-\backslash htmlonly%
+\backslash htmlonly %
}
% #1 : section name
@@ -60,13 +60,13 @@
\label{#1}
\backslash endhtmlonly%
\backslash section #1 #2%
-\backslash htmlonly%
+\backslash htmlonly %
}
\newcommand{\doxysubsection}[2]{%
\label{#1}
\backslash endhtmlonly%
\backslash subsection #1 #2%
-\backslash htmlonly%
+\backslash htmlonly %
}
% #1 - part number (Optional)
@@ -74,19 +74,19 @@
\newcommand{\doxycode}[2][1]{
\backslash endhtmlonly%
\backslash include #2-#1.cc%
-\backslash htmlonly%
+\backslash htmlonly %
}
\newcommand{\doxyrawcode}[1]{
\backslash endhtmlonly%
\backslash include #1.cc.raw%
-\backslash htmlonly%
+\backslash htmlonly %
}
\newcommand{\doxyoutput}[1]{
\backslash endhtmlonly%
\backslash include #1.txt%
-\backslash htmlonly%
+\backslash htmlonly %
}
% Include file '#1' from a splitted output.
@@ -95,25 +95,31 @@
\newcommand{\doxymoutput}[2][1]{
\backslash endhtmlonly%
\backslash include #2-#1.txt%
-\backslash htmlonly%
+\backslash htmlonly %
}
\newcommand{\doxyfigure}[3][1]{
\backslash endhtmlonly%
\backslash image html #2-#1.png%
-\backslash htmlonly%
+\backslash htmlonly %
+}
+
+\newcommand{\doxyimg}[1]{
+\backslash endhtmlonly%
+\backslash image html #1.png%
+\backslash htmlonly %
}
\newcommand{\doxyref}[1]{
\backslash endhtmlonly%
\backslash ref #1%
-\backslash htmlonly%
+\backslash htmlonly %
}
\newcommand{\doxysee}[1]{
\backslash endhtmlonly%
\backslash see #1%
-\backslash htmlonly%
+\backslash htmlonly %
}
\newcommand{\tutotoc}[2]{%
@@ -148,6 +154,10 @@ $$
\pgfimage[width=#3]{figures/#2-#1}%
\label{#1}%
}
+\renewcommand{\doxyimg}[2]{%
+\pgfimage[width=#2]{../../img/#1.png}%
+\label{#1}%
+}
\renewcommand{\doxyref}[1]{\ref{#1}}
\renewcommand{\doxysee}[1]{\ref{#1}}
\renewcommand{\tutotoc}[2]{}
@@ -292,10 +302,11 @@ $$
\backslash page tutorial Tutorial
- \backslash subpage tutoforeword
+- \backslash subpage loadnsave
- \backslash subpage tutofirstimage
- \backslash subpage tutochangeimage
+- \backslash subpage tutogenericity
- \backslash subpage tutoconvimage
-- \backslash subpage tutodataimage
- \backslash subpage tutowinneighb
- \backslash subpage tutograph
@@ -313,6 +324,7 @@ $$
- \backslash subpage graphandima
- \backslash subpage arithmops
- \backslash subpage mathtools
+- \backslash subpage debugtools
- \backslash subpage globalvars
- \backslash subpage macros
\backslash htmlonly
@@ -342,19 +354,64 @@ A copy of the license is provided in the file COPYING.DOC.
- image2d
- typical use case
+\begin{center}%
+ \hspace{1cm} Go to \doxyref{loadnsave}~ \longrightarrow%
+\end{center}%
+
+
+
%====================================
-\doxychapter{tutofirstimage}{Step 1: Your first image}
+\doxychapter{loadnsave}{Step 1: Load and save images}
-After this step you should know how to:
+After this step you shoud know how to:
\begin{itemize}
-\item create an image,
-\item display an image in console mode,
+\item load an image,
\item save an image.
\end{itemize}
+\vspace{2cm}
+Currently, Olena supports the following input image formats:
+\begin{itemize}
+ \item PBM
+ \item PFM
+ \item PGM
+ \item PNM
+ \item PPM
+\end{itemize}
+
+This support is provided through two headers for each type, \header{save.hh} and
+\header{load.hh}.
+They are located in \hpath{mln/io/$<$image-format$>$/}.
+
+Once the right header is included, the image can be loaded:
+
+\doxycode{ima-load}
+
+If you wan to save an image, simply call the save routine in the proper namespace:
+\doxycode{ima-save}
+
+According to the image value type, the proper file format must be chosen.
+The supported file formats and their associated image value types are listed
+in section \doxyref{imaio}.
+
+\vspace{2cm}
+\tutotoc{tutoforeword}{tutofirstimage}
+
+
+
+%====================================
+\doxychapter{tutofirstimage}{Step 2: Create your first image}
+
+After this step you should know how to:
+ \begin{itemize}
+ \item create an image,
+ \item display an image in console mode.
+ \end{itemize}
+
The full example can be found in \doxyref{tuto1_first_image.cc}.
+\vspace{2cm}
First, declare an array of bool which will represent the image grid. Each each
cell in this grid is a site and each cell contains a value, \val{true} or
\val{false}.
@@ -370,6 +427,8 @@ several other ways described in section \doxyref{imacreate}.
To be sure that the data is correctly initialized, it is possible to display the
image in the standard output using debug::println.
\doxycode[3]{tuto1_first_image}
+Output:
+\doxyoutput{tuto1_first_image}
Finally, you may want to save the image. Since we use bool as image value, the
PBM format is the best choice. Therefore, we use io::pbm::save.
@@ -381,25 +440,82 @@ The output image looks like the following:
In this first step we used a boolean image. Many other value types are available
though. A more detailed description can be found in section
\doxyref{imapossvalues}.
-Likewise, according to the value type, the proper file format must be chosen.
-The supported file formats are listed in section \doxyref{imaio}.
-\tutotoc{tutoforeword}{tutochangeimage}
+\vspace{2cm}
+\begin{center}
+ \tutotoc{loadnsave}{tutochangeimage}
+\end{center}
+
%====================================
-\doxychapter{tutochangeimage}{Step 2: Read and write images}
+\doxychapter{tutochangeimage}{Step 3: Read and write images}
+
+After this step you should know how to:
+ \begin{itemize}
+ \item modify/initialize image values,
+ \item copy and paste data to an image.
+ \end{itemize}
+
+
+The full example can be found in \doxyref{tuto3_rw_image.cc}.
+
+\vspace{2cm}
+First create an empty color image with a \var{box2d} of 40x40 as domain.
+\doxycode[1]{tuto3_rw_image}
+
+If you want to initialize the image with the color red, simply call data::fill as follows:
+\doxycode[2]{tuto3_rw_image}
+
+Updating a site value is also possible using \code{operator()} or the
+\code{opt::at()} routine. Here we create a blue square of 10x10 pixels from site
+(20, 20) to (30, 30).
+\doxycode[3]{tuto3_rw_image}
+\doxycode[4]{tuto3_rw_image}
+
+The corresponding image:
+\doxyfigure[1]{tuto3_rw_image}
+
+An image can also be initialized/modified thanks to another image.
+Let's load a new image.
+\doxycode[5]{tuto3_rw_image}
+\var{lena} looks like:
+\doxyimg{small-enlarged}
+
+If we want to initialize \var{ima} with \var{lena}, we can use \code{data::fill}:
+\doxycode[6]{tuto3_rw_image}
+Output:
+\doxyfigure[2]{tuto3_rw_image}
+Note that to fill an image with some data, the image domain \must be smaller
+or equal to the data.
+
+Likewise, it is possible to paste data from an image to another:
+\doxycode[7]{tuto3_rw_image}
+Output:
+\doxyfigure[3]{tuto3_rw_image}
+
+More details can be found in section \doxyref{fillop} and \doxyref{pasteop} in
+the reference guide.
+
+\vspace{2cm}
+\begin{center}
+ \tutotoc{tutofirstimage}{tutogenericity}
+\end{center}
+
%====================================
-\doxychapter{tutoconvimage}{Step 3: Conversion between image values}
+\doxychapter{tutogenericity}{Step 4: Genericity and algorithms}
+
%====================================
-\doxychapter{tutodataimage}{Step 4: Fill and paste data}
+\doxychapter{tutoconvimage}{Step 5: Conversion between image values}
+
%====================================
-\doxychapter{tutowinneighb}{Step 5: Using structural elements with algorithms}
+\doxychapter{tutowinneighb}{Step 6: Using structural elements with algorithms}
+
%====================================
-\doxychapter{tutograph}{Step 6: Handle graphes with an image}
+\doxychapter{tutograph}{Step 7: Handle graphes with an image}
\end{htmlonly}
@@ -996,10 +1112,18 @@ They are located in \hpath{mln/io/$<$image-format$>$/}.
Once the right header is included, the image can be loaded:
-\doxyrawcode{ima-load}
-
-Note that for the PBM format, you \textbf{MUST} use ``\type{bool}'' as value type.
-No special value type is required for other formats though.
+\doxycode{ima-load}
+
+Note that each format is associated to specific image value types:
+\begin{tabular}{|l|l|}
+\\hline
+Format & Value type \\ \hline
+PBM & bool \\
+PFM & float, double, float01\_* \\
+PGM & unsigned, long, int, int\_u*, gl* \\
+PNM & See PGM, PBM and PPM \\
+PPM & rgb* \\
+\end{tabular}
\doxycode{ima-save}
%
@@ -2146,4 +2270,16 @@ mln\_vertex\_nbh\_vertex\_iter(G) & G : graph type & Iterator on the vertices ad
mln\_edge\_nbh\_edge\_iter(G) & G : graph type & Iterator on the edges adjacent to an edge. \\
\end{tabular}
+
+%====================================
+\newpage
+\clearpage
+%Ugly workaround to avoid missing chapter references in doxygen.
+\begin{htmlonly}
+\doxychapter{2}{}
+\end{htmlonly}
+\doxychapter{debugtools}{Debugging tools}
+
+FIXME write it
+
\end{document}
diff --git a/milena/img/small-enlarged.png b/milena/img/small-enlarged.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe604ce3f4ede59fbea425409805f7219ce13d17
GIT binary patch
literal 91556
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
U5w0OJD72@eB&Q}@En^n;KNZLTn*aa+
literal 0
HcmV?d00001
diff --git a/milena/img/small.png b/milena/img/small.png
new file mode 100644
index 0000000000000000000000000000000000000000..39c7efe59d6411df746526401ca10127bdecd1f1
GIT binary patch
literal 22653
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
literal 0
HcmV?d00001
diff --git a/milena/img/small.ppm b/milena/img/small.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..7f7d60e443360e24a24e7e2bccdc4576bec585f6
GIT binary patch
literal 24591
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
literal 0
HcmV?d00001
diff --git a/milena/tests/data/Makefile.am b/milena/tests/data/Makefile.am
index c5197b5..b8660d1 100644
--- a/milena/tests/data/Makefile.am
+++ b/milena/tests/data/Makefile.am
@@ -18,6 +18,7 @@ memset__SOURCES = memset_.cc
paste_SOURCES = paste.cc
# Lengthy tests.
-fill_full_SOURCES = fill_full.cc
+# FIXME: enable it when make full-check is enabled.
+#fill_full_SOURCES = fill_full.cc
TESTS = $(check_PROGRAMS)
--
1.5.6.5
1
0
* milena/mln/util/graph.hh: add is_valid and invalidate. These methods
should be fixed later.
* milena/mln/core/site_set/p_edges.hh,
* milena/mln/core/site_set/p_vertices.hh,
* milena/mln/util/edge.hh,
* milena/mln/util/vertex.hh: make use of the new graph methods.
---
milena/ChangeLog | 12 ++++++++++++
milena/mln/core/site_set/p_edges.hh | 7 ++++---
milena/mln/core/site_set/p_vertices.hh | 7 ++++---
milena/mln/util/edge.hh | 7 ++++---
milena/mln/util/graph.hh | 25 +++++++++++++++++++++++--
milena/mln/util/vertex.hh | 5 +++--
6 files changed, 50 insertions(+), 13 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index f0f8199..cc285f0 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,17 @@
2009-01-05 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Add is_valid and invalidate to util::graph
+
+ * milena/mln/util/graph.hh: add is_valid and invalidate. These methods
+ should be fixed later.
+
+ * milena/mln/core/site_set/p_edges.hh,
+ * milena/mln/core/site_set/p_vertices.hh,
+ * milena/mln/util/edge.hh,
+ * milena/mln/util/vertex.hh: make use of the new graph methods.
+
+2009-01-05 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Add graph_elt_neighborhood and line_graph_elt_neighborhood aliases.
* milena/headers.mk: add new headers to distribution.
diff --git a/milena/mln/core/site_set/p_edges.hh b/milena/mln/core/site_set/p_edges.hh
index a987e73..5111c93 100644
--- a/milena/mln/core/site_set/p_edges.hh
+++ b/milena/mln/core/site_set/p_edges.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009 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
@@ -204,7 +205,7 @@ namespace mln
bool
p_edges<G, F>::is_valid() const
{
- return true;/* FIXME: g.is_valid(); */
+ return g_.is_valid();
}
template <typename G, typename F>
@@ -212,7 +213,7 @@ namespace mln
void
p_edges<G, F>::invalidate()
{
- /* FIXME: g.invalidate(); */
+ g_.invalidate();
}
template <typename G, typename F>
diff --git a/milena/mln/core/site_set/p_vertices.hh b/milena/mln/core/site_set/p_vertices.hh
index cf78f0a..a095af3 100644
--- a/milena/mln/core/site_set/p_vertices.hh
+++ b/milena/mln/core/site_set/p_vertices.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009 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
@@ -227,7 +228,7 @@ namespace mln
bool
p_vertices<G,F>::is_valid() const
{
- return true; /* FIXME: g_.is_valid() */;
+ return g_.is_valid();
}
template <typename G, typename F>
@@ -235,7 +236,7 @@ namespace mln
void
p_vertices<G,F>::invalidate()
{
- /* FIXME: g_.invalidate() ;*/
+ g_.invalidate();
}
template <typename G, typename F>
diff --git a/milena/mln/util/edge.hh b/milena/mln/util/edge.hh
index e98370b..9d9c3fc 100644
--- a/milena/mln/util/edge.hh
+++ b/milena/mln/util/edge.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009 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
@@ -201,7 +202,7 @@ namespace mln
edge<G>::edge(const G& g, unsigned id)
: g_(g), id_(id)
{
- mln_precondition(/* FIXME: g_.is_valid() && */ g.has_e(id));
+ mln_precondition(g_.is_valid() && g.has_e(id));
}
template <typename G>
@@ -248,7 +249,7 @@ namespace mln
bool
edge<G>::is_valid() const
{
- return /* FIXME: g_.is_valid() && */ g_.has_e(id_);
+ return g_.is_valid() && g_.has_e(id_);
}
template <typename G>
diff --git a/milena/mln/util/graph.hh b/milena/mln/util/graph.hh
index a3f5df5..2aed416 100644
--- a/milena/mln/util/graph.hh
+++ b/milena/mln/util/graph.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2007, 2008, 2009 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
@@ -143,6 +143,12 @@ namespace mln
graph(unsigned nvertices);
+ /// Return true if this graph is valid.
+ /// FIXME: currently it always returns true.
+ bool is_valid() const;
+ /// Invalidate the graph.
+ /// FIXME: does nothing!
+ void invalidate();
/// Vertex oriented.
/// \{
@@ -282,6 +288,21 @@ namespace mln
this->data_ = new mln::internal::data<util::graph>(nvertices);
}
+ inline
+ bool
+ graph::is_valid() const
+ {
+ //FIXME: should not always return true!
+ return true;
+ }
+
+ inline
+ void
+ graph::invalidate()
+ {
+ //FIXME: No op! Should do something.
+ }
+
/*---------------.
| Vertex related |
`---------------*/
diff --git a/milena/mln/util/vertex.hh b/milena/mln/util/vertex.hh
index fcb6f5b..9b55f9b 100644
--- a/milena/mln/util/vertex.hh
+++ b/milena/mln/util/vertex.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009 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
@@ -205,7 +206,7 @@ namespace mln
bool
vertex<G>::is_valid() const
{
- return /* FIXME: g_.is_valid() && */ g_.has_v(id_);
+ return g_.is_valid() && g_.has_v(id_);
}
template<typename G>
--
1.5.6.5
1
0
3130: Add graph_elt_neighborhood and line_graph_elt_neighborhood aliases.
by Guillaume Lazzara 05 Jan '09
by Guillaume Lazzara 05 Jan '09
05 Jan '09
* milena/headers.mk: add new headers to distribution.
* milena/mln/core/image/graph_elt_neighborhood.hh,
* milena/mln/core/image/line_graph_elt_neighborhood.hh: new files. Add
new aliases for graph based neighborhoods.
* milena/mln/core/image/graph_elt_window.hh,
* milena/mln/core/image/line_graph_elt_window.hh,
* milena/mln/core/internal/neighborhood_base.hh,
* milena/tests/core/image/graph_image.cc,
* milena/tests/core/image/line_graph_image.cc,
* milena/tests/core/other/graph_elt_neighborhood.cc,
* milena/tests/core/other/line_graph_elt_neighborhood.cc,
* milena/tools/area_flooding.cc: make use of these new aliases.
* milena/tests/unit_test/Makefile.am,
* milena/tests/unit_test/mln_core_image_graph_elt_neighborhood.cc,
* milena/tests/unit_test/mln_core_image_line_graph_elt_neighborhood.cc:
Add new unit tests.
---
milena/ChangeLog | 24 ++++++
milena/headers.mk | 2 +
milena/mln/core/image/graph_elt_neighborhood.hh | 79 ++++++++++++++++++++
milena/mln/core/image/graph_elt_window.hh | 14 +---
.../mln/core/image/line_graph_elt_neighborhood.hh | 79 ++++++++++++++++++++
milena/mln/core/image/line_graph_elt_window.hh | 15 +---
milena/mln/core/internal/neighborhood_base.hh | 5 +-
milena/tests/core/image/graph_image.cc | 5 +-
milena/tests/core/image/line_graph_image.cc | 5 +-
milena/tests/core/other/graph_elt_neighborhood.cc | 6 +-
.../core/other/line_graph_elt_neighborhood.cc | 6 +-
milena/tests/unit_test/Makefile.am | 4 +
.../mln_core_image_graph_elt_neighborhood.cc | 11 +++
.../mln_core_image_line_graph_elt_neighborhood.cc | 11 +++
milena/tools/area_flooding.cc | 5 +-
15 files changed, 230 insertions(+), 41 deletions(-)
create mode 100644 milena/mln/core/image/graph_elt_neighborhood.hh
create mode 100644 milena/mln/core/image/line_graph_elt_neighborhood.hh
create mode 100644 milena/tests/unit_test/mln_core_image_graph_elt_neighborhood.cc
create mode 100644 milena/tests/unit_test/mln_core_image_line_graph_elt_neighborhood.cc
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 7b4a1f2..f0f8199 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,27 @@
+2009-01-05 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add graph_elt_neighborhood and line_graph_elt_neighborhood aliases.
+
+ * milena/headers.mk: add new headers to distribution.
+
+ * milena/mln/core/image/graph_elt_neighborhood.hh,
+ * milena/mln/core/image/line_graph_elt_neighborhood.hh: new files. Add
+ new aliases for graph based neighborhoods.
+
+ * milena/mln/core/image/graph_elt_window.hh,
+ * milena/mln/core/image/line_graph_elt_window.hh,
+ * milena/mln/core/internal/neighborhood_base.hh,
+ * milena/tests/core/image/graph_image.cc,
+ * milena/tests/core/image/line_graph_image.cc,
+ * milena/tests/core/other/graph_elt_neighborhood.cc,
+ * milena/tests/core/other/line_graph_elt_neighborhood.cc,
+ * milena/tools/area_flooding.cc: make use of these new aliases.
+
+ * milena/tests/unit_test/Makefile.am,
+ * milena/tests/unit_test/mln_core_image_graph_elt_neighborhood.cc,
+ * milena/tests/unit_test/mln_core_image_line_graph_elt_neighborhood.cc:
+ Add new unit tests.
+
2009-01-05 Nicolas Ballas <ballas(a)lrde.epita.fr>
Update documentation on properties.
diff --git a/milena/headers.mk b/milena/headers.mk
index b348a9e..3365173 100644
--- a/milena/headers.mk
+++ b/milena/headers.mk
@@ -885,6 +885,7 @@ mln/core/image/t_image.hh \
mln/core/image/hexa_piter.hh \
mln/core/image/value_enc_image.hh \
mln/core/image/fun_image.hh \
+mln/core/image/graph_elt_neighborhood.hh \
mln/core/image/sub_image_if.hh \
mln/core/image/all.hh \
mln/core/image/mono_rle_image.hh \
@@ -909,6 +910,7 @@ mln/core/image/image1d.hh \
mln/core/image/extension_val.hh \
mln/core/image/image_if.hh \
mln/core/image/hexa.hh \
+mln/core/image/line_graph_elt_neighborhood.hh \
mln/core/image/extended.hh \
mln/core/image/image2d_h.hh \
mln/core/image/image2d.hh \
diff --git a/milena/mln/core/image/graph_elt_neighborhood.hh b/milena/mln/core/image/graph_elt_neighborhood.hh
new file mode 100644
index 0000000..dc08ad9
--- /dev/null
+++ b/milena/mln/core/image/graph_elt_neighborhood.hh
@@ -0,0 +1,79 @@
+// Copyright (C) 2009 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.
+
+#ifndef MLN_CORE_IMAGE_GRAPH_ELT_NEIGHBORHOOD_HH
+# define MLN_CORE_IMAGE_GRAPH_ELT_NEIGHBORHOOD_HH
+
+/// \file mln/core/image/graph_elt_neighborhood.hh
+///
+/// Definition of the elementary ``neighborhood'' on a graph.
+
+# include <mln/core/neighb.hh>
+# include <mln/core/image/graph_elt_window.hh>
+
+
+namespace mln
+{
+
+ namespace internal
+ {
+
+ template <typename G, typename F, typename E>
+ struct neighborhood_impl<graph_elt_window<G,F>,E>
+ : public neighborhood_extra_impl<graph_elt_window<G,F>,E>
+ {
+ };
+
+ } // end of namespace mln::internal
+
+
+ /// Elementary neighborhood on graph class.
+ template <typename G, typename F>
+ struct graph_elt_neighborhood
+ : public neighb< graph_elt_window<G,F> >
+ {
+ typedef neighb< graph_elt_window<G,F> > super_;
+
+ graph_elt_neighborhood();
+ };
+
+
+# ifndef MLN_INCLUDE_ONLY
+
+template <typename G, typename F>
+inline
+graph_elt_neighborhood<G,F>::graph_elt_neighborhood()
+{
+}
+
+# endif // ! MLN_INCLUDE_ONLY
+
+}
+
+#endif // ! MLN_CORE_IMAGE_GRAPH_ELT_NEIGHBORHOOD_HH
+
diff --git a/milena/mln/core/image/graph_elt_window.hh b/milena/mln/core/image/graph_elt_window.hh
index 2e47cb2..e1929df 100644
--- a/milena/mln/core/image/graph_elt_window.hh
+++ b/milena/mln/core/image/graph_elt_window.hh
@@ -46,18 +46,6 @@ namespace mln
/// Forward declaration
template <typename G, typename F> class graph_elt_window;
- namespace internal
- {
-
- template <typename G, typename F, typename E>
- struct neighborhood_impl<graph_elt_window<G,F>,E>
- : public neighborhood_extra_impl<graph_elt_window<G,F>,E>
- {
- };
-
- } // end of namespace mln::internal
-
-
namespace trait
{
@@ -72,7 +60,7 @@ namespace mln
} // end of namespace mln::trait
- /// \brief Elementary window on graph class.
+ /// Elementary window on graph class.
template <typename G, typename F>
class graph_elt_window : public graph_window_base<mln_result(F),
graph_elt_window<G,F> >
diff --git a/milena/mln/core/image/line_graph_elt_neighborhood.hh b/milena/mln/core/image/line_graph_elt_neighborhood.hh
new file mode 100644
index 0000000..92c7611
--- /dev/null
+++ b/milena/mln/core/image/line_graph_elt_neighborhood.hh
@@ -0,0 +1,79 @@
+// Copyright (C) 2009 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.
+
+#ifndef MLN_CORE_IMAGE_GRAPH_ELT_NEIGHBORHOOD_HH
+# define MLN_CORE_IMAGE_GRAPH_ELT_NEIGHBORHOOD_HH
+
+/// \file mln/core/image/line_graph_elt_neighborhood.hh
+///
+/// Definition of the elementary ``neighborhood'' on a line graph.
+
+# include <mln/core/neighb.hh>
+# include <mln/core/image/line_graph_elt_window.hh>
+
+
+namespace mln
+{
+
+ namespace internal
+ {
+
+ template <typename G, typename F, typename E>
+ struct neighborhood_impl<line_graph_elt_window<G,F>,E>
+ : public neighborhood_extra_impl<line_graph_elt_window<G,F>,E>
+ {
+ };
+
+ } // end of namespace mln::internal
+
+
+ /// Elementary neighborhood on line graph class.
+ template <typename G, typename F>
+ struct line_graph_elt_neighborhood
+ : public neighb< line_graph_elt_window<G,F> >
+ {
+ typedef neighb< line_graph_elt_window<G,F> > super_;
+
+ line_graph_elt_neighborhood();
+ };
+
+
+# ifndef MLN_INCLUDE_ONLY
+
+template <typename G, typename F>
+inline
+line_graph_elt_neighborhood<G,F>::line_graph_elt_neighborhood()
+{
+}
+
+# endif // ! MLN_INCLUDE_ONLY
+
+}
+
+#endif // ! MLN_CORE_IMAGE_GRAPH_ELT_NEIGHBORHOOD_HH
+
diff --git a/milena/mln/core/image/line_graph_elt_window.hh b/milena/mln/core/image/line_graph_elt_window.hh
index 9717f48..d9f7138 100644
--- a/milena/mln/core/image/line_graph_elt_window.hh
+++ b/milena/mln/core/image/line_graph_elt_window.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2007, 2008, 2009 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
@@ -46,17 +46,6 @@ namespace mln
/// Forward declaration
template <typename G, typename F> class line_graph_elt_window;
- namespace internal
- {
-
- template <typename G, typename F, typename E>
- struct neighborhood_impl<line_graph_elt_window<G,F>,E>
- : public neighborhood_extra_impl<line_graph_elt_window<G,F>,E>
- {
- };
-
- } // end of namespace mln::internal
-
namespace trait
{
diff --git a/milena/mln/core/internal/neighborhood_base.hh b/milena/mln/core/internal/neighborhood_base.hh
index 4879fc1..35349fc 100644
--- a/milena/mln/core/internal/neighborhood_base.hh
+++ b/milena/mln/core/internal/neighborhood_base.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009 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
@@ -143,7 +144,7 @@ namespace mln
// neighborhood_base
-
+
template <typename W, typename E>
inline
neighborhood_base<W,E>::neighborhood_base()
diff --git a/milena/tests/core/image/graph_image.cc b/milena/tests/core/image/graph_image.cc
index f12d8f9..e8a71f2 100644
--- a/milena/tests/core/image/graph_image.cc
+++ b/milena/tests/core/image/graph_image.cc
@@ -33,6 +33,7 @@
#include <mln/core/site_set/p_vertices.hh>
#include <mln/core/image/graph_elt_window.hh>
+#include <mln/core/image/graph_elt_neighborhood.hh>
#include <mln/core/concept/function.hh>
#include <mln/core/neighb.hh>
#include <mln/core/var.hh>
@@ -204,8 +205,8 @@ int main()
}
}
- typedef neighb<win_t> neighb_t;
- neighb_t neigh(win);
+ typedef graph_elt_neighborhood<util::graph, fsite_t> neighb_t;
+ neighb_t neigh;
{
// Neighborhood - Forward iteration
mln_niter_(neighb_t) n(neigh, p);
diff --git a/milena/tests/core/image/line_graph_image.cc b/milena/tests/core/image/line_graph_image.cc
index d565a9f..fe660f5 100644
--- a/milena/tests/core/image/line_graph_image.cc
+++ b/milena/tests/core/image/line_graph_image.cc
@@ -34,6 +34,7 @@
/// Required for line graph images.
#include <mln/core/site_set/p_edges.hh>
#include <mln/core/image/line_graph_elt_window.hh>
+#include <mln/core/image/line_graph_elt_neighborhood.hh>
#include <mln/core/neighb.hh>
#include <mln/core/var.hh>
#include <mln/pw/all.hh>
@@ -163,8 +164,8 @@ int main()
}
- typedef neighb<win_t> neighb_t;
- neighb_t neigh(win);
+ typedef line_graph_elt_neighborhood<util::graph, fsite_t> neighb_t;
+ neighb_t neigh;
{
// Neighborhood - Forward iteration
diff --git a/milena/tests/core/other/graph_elt_neighborhood.cc b/milena/tests/core/other/graph_elt_neighborhood.cc
index 797b826..aafe485 100644
--- a/milena/tests/core/other/graph_elt_neighborhood.cc
+++ b/milena/tests/core/other/graph_elt_neighborhood.cc
@@ -33,12 +33,12 @@
#include <vector>
-#include <mln/core/neighb.hh>
#include <mln/core/alias/point2d.hh>
-#include <mln/core/image/graph_elt_window.hh>
#include <mln/core/site_set/p_vertices.hh>
#include <mln/util/graph.hh>
+#include <mln/core/image/graph_elt_neighborhood.hh>
+
unsigned fwd_neighb[] = { 0, 2, 3 };
unsigned bkd_neighb[] = { 3, 2, 0 };
@@ -101,7 +101,7 @@ int main()
mln_psite_(pv_t) p(pg, 1);
// ``Sliding'' neighborhood of a psite of PG.
- typedef neighb< graph_elt_window<G, F> > nbh_t;
+ typedef graph_elt_neighborhood<G, F> nbh_t;
nbh_t nbh;
unsigned i = 0;
diff --git a/milena/tests/core/other/line_graph_elt_neighborhood.cc b/milena/tests/core/other/line_graph_elt_neighborhood.cc
index 197091e..cbc7d75 100644
--- a/milena/tests/core/other/line_graph_elt_neighborhood.cc
+++ b/milena/tests/core/other/line_graph_elt_neighborhood.cc
@@ -32,11 +32,11 @@
#include <vector>
#include <mln/core/alias/point2d.hh>
-#include <mln/core/neighb.hh>
#include <mln/core/site_set/p_edges.hh>
-#include <mln/core/image/line_graph_elt_window.hh>
#include <mln/util/graph.hh>
+#include <mln/core/image/line_graph_elt_neighborhood.hh>
+
unsigned fwd_neighb[] = { 0, 2, 4 };
unsigned bkd_neighb[] = { 4, 2, 0 };
@@ -100,7 +100,7 @@ int main()
mln_psite_(pe_t) p(pe, 1);
// ``Sliding'' neighborhood of a psite of PLG.
- typedef neighb< line_graph_elt_window<G, F> > nbh_t;
+ typedef line_graph_elt_neighborhood<G, F> nbh_t;
nbh_t nbh;
unsigned i = 0;
diff --git a/milena/tests/unit_test/Makefile.am b/milena/tests/unit_test/Makefile.am
index 91e56f5..168c709 100644
--- a/milena/tests/unit_test/Makefile.am
+++ b/milena/tests/unit_test/Makefile.am
@@ -856,6 +856,7 @@ mln_core_image_t_image \
mln_core_image_hexa_piter \
mln_core_image_value_enc_image \
mln_core_image_fun_image \
+mln_core_image_graph_elt_neighborhood \
mln_core_image_sub_image_if \
mln_core_image_all \
mln_core_image_mono_rle_image \
@@ -880,6 +881,7 @@ mln_core_image_image1d \
mln_core_image_extension_val \
mln_core_image_image_if \
mln_core_image_hexa \
+mln_core_image_line_graph_elt_neighborhood \
mln_core_image_extended \
mln_core_image_image2d_h \
mln_core_image_image2d \
@@ -1862,6 +1864,7 @@ mln_core_image_t_image_SOURCES = mln_core_image_t_image.cc
mln_core_image_hexa_piter_SOURCES = mln_core_image_hexa_piter.cc
mln_core_image_value_enc_image_SOURCES = mln_core_image_value_enc_image.cc
mln_core_image_fun_image_SOURCES = mln_core_image_fun_image.cc
+mln_core_image_graph_elt_neighborhood_SOURCES = mln_core_image_graph_elt_neighborhood.cc
mln_core_image_sub_image_if_SOURCES = mln_core_image_sub_image_if.cc
mln_core_image_all_SOURCES = mln_core_image_all.cc
mln_core_image_mono_rle_image_SOURCES = mln_core_image_mono_rle_image.cc
@@ -1886,6 +1889,7 @@ mln_core_image_image1d_SOURCES = mln_core_image_image1d.cc
mln_core_image_extension_val_SOURCES = mln_core_image_extension_val.cc
mln_core_image_image_if_SOURCES = mln_core_image_image_if.cc
mln_core_image_hexa_SOURCES = mln_core_image_hexa.cc
+mln_core_image_line_graph_elt_neighborhood_SOURCES = mln_core_image_line_graph_elt_neighborhood.cc
mln_core_image_extended_SOURCES = mln_core_image_extended.cc
mln_core_image_image2d_h_SOURCES = mln_core_image_image2d_h.cc
mln_core_image_image2d_SOURCES = mln_core_image_image2d.cc
diff --git a/milena/tests/unit_test/mln_core_image_graph_elt_neighborhood.cc b/milena/tests/unit_test/mln_core_image_graph_elt_neighborhood.cc
new file mode 100644
index 0000000..b5c220b
--- /dev/null
+++ b/milena/tests/unit_test/mln_core_image_graph_elt_neighborhood.cc
@@ -0,0 +1,11 @@
+// Unit test for mln/core/image/graph_elt_neighborhood.hh.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/graph_elt_neighborhood.hh>
+#include <mln/core/image/graph_elt_neighborhood.hh>
+
+int main()
+{
+ // Nothing.
+}
diff --git a/milena/tests/unit_test/mln_core_image_line_graph_elt_neighborhood.cc b/milena/tests/unit_test/mln_core_image_line_graph_elt_neighborhood.cc
new file mode 100644
index 0000000..9e4a7de
--- /dev/null
+++ b/milena/tests/unit_test/mln_core_image_line_graph_elt_neighborhood.cc
@@ -0,0 +1,11 @@
+// Unit test for mln/core/image/line_graph_elt_neighborhood.hh.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/line_graph_elt_neighborhood.hh>
+#include <mln/core/image/line_graph_elt_neighborhood.hh>
+
+int main()
+{
+ // Nothing.
+}
diff --git a/milena/tools/area_flooding.cc b/milena/tools/area_flooding.cc
index da7c378..fc5c444 100644
--- a/milena/tools/area_flooding.cc
+++ b/milena/tools/area_flooding.cc
@@ -57,8 +57,7 @@
#include <mln/core/routine/duplicate.hh>
#include <mln/core/image/image2d.hh>
-#include <mln/core/alias/neighb2d.hh>
-#include <mln/core/image/line_graph_elt_window.hh>
+#include <mln/core/image/line_graph_elt_neighborhood.hh>
#include <mln/core/var.hh>
#include <mln/morpho/line_gradient.hh>
@@ -114,7 +113,7 @@ int main(int argc, char* argv[])
/* FIXME: I'm not sure this is the way it should be done. Anyway,
we should implement this as a canvas. */
- typedef neighb< line_graph_elt_window<util::graph, lg_ima_t::pset::fun_t> > nbh_t;
+ typedef line_graph_elt_neighborhood<util::graph, lg_ima_t::pset::fun_t> nbh_t;
nbh_t nbh;
unsigned area = 0;
--
1.5.6.5
1
0
https://svn.lrde.epita.fr/svn/oln/trunk/milena
Index: ChangeLog
from Nicolas Ballas <ballas(a)lrde.epita.fr>
Update documentation on properties.
* mln/trait/image/props.hh: Update.
props.hh | 191 +++++++++++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 145 insertions(+), 46 deletions(-)
Index: mln/trait/image/props.hh
--- mln/trait/image/props.hh (revision 3128)
+++ mln/trait/image/props.hh (working copy)
@@ -59,6 +59,29 @@
// + -- value_morpher
// |
// + -- identity_morpher
+//
+// Interface related to the category property:
+// morpher
+// => .delegatee_(): returns a pointer on the reference image.
+// => .unmorph() : returns the reference image.
+// => .rw() : States that the morpher is writable.
+
+
+
+
+
+// * value access
+
+// pw_io: /any/
+// |
+// +-- read
+// |
+// +-- read_write
+//
+// Interface related to the pw_io property
+// read_write
+// => .operator(p : psite) : lvalue, writes access to the value localized at
+// p.
// speed: /any/
// |
@@ -67,20 +90,43 @@
// + -- fast
// |
// + -- fastest
+//
+// Note that:
+// fastest value implies value_storage::oneblock and ext_domain::some
-// size: /any/
+// vw_io: /any/
// |
-// + -- regular
+// +-- read
// |
-// + -- huge
-
-// * value
+// +-- read_write
-// pw_io: /any/
+// vw_set: /any/
// |
-// +-- read
+// +-- /some/
+// | |
+// | +-- uni
+// | |
+// | +-- multi
// |
-// +-- read_write
+// +-- none
+//
+// Interface related to vw_io and vw_set properties
+// multi and vw_io::read
+// => .cells_() : const vset, returns the image cell lists.
+// multi and vw_io::read_write
+// => .cells_() : vset, returns the image cell lists.
+// uni and vw_io::read
+// => .values_taken_() : const vset, returns the value_taken set.
+// => .cells_(): const vset, same as .values_taken_().
+// uni (and vw_io::read_write)
+// => .values_taken() : vset, returns the value_taken set.
+// => .cells_() : vset, same as .values_taken_().
+
+
+
+
+
+// * organization in memory
// value_access: /any/
// |
@@ -101,22 +147,41 @@
// | + -- piecewise
// |
// + -- disrupted
+//
+// Interface related to the value_storage and value_access properties
+// singleton and value_access::direct
+// => .value_() : lvalue, returns the flat value
+// => .value_() : rvalue, returns the flat value
+// one_block
+// => .nelements_() : unsigned, number of buffer elements
+// => .point_at_index_(unsigned index) : point,
+// point corresponding to the index index
+// => .delta_index_(deltapoint dp) : unsigned
+// Return the delta index associated to dp
+// one_block and value_access::direct
+// => element_(unsigned index) : rvalue, returns the element at index.
+// => element_(unsigned index) : lvalue, returns the element at index.
+// => buffer_() : const value*: Give a hook to the value buffer
+// => buffer_() : value*: Give a hook to the value buffer
+// piecewise
+// => npieces_() const : unsigned, returns the number of memory pieces
+// piecewise and value_access::direct
+// => piece_size_(i) : unsigned, returns the size of piece memory i
+// => piece_(i) : value*: Give a hook to the i memory piece
+// => piece_(i) : const value*: Give a hook to the i memory piece
-// value_browsing:/any/
+// size: /any/
// |
-// + -- site_wise_only
+// + -- regular
// |
-// + -------- cell_wise
-// | |
-// + -- value_wise |
-// \ |
-// -- + -- cell_and_value_wise
+// + -- huge
+
-// value_io: /any/
-// |
-// + -- read_only
-// |
-// + -- read_write
+
+
+
+
+// * image geometry
// value_alignement:/any/
// |
@@ -126,24 +191,6 @@
// |
// +-- irrelevant
-// vw_io: /any/
-// |
-// +-- read
-// |
-// +-- read_write
-
-// vw_set: /any/
-// |
-// +-- /some/
-// | |
-// | +-- uni
-// | |
-// | +-- multi
-// |
-// +-- none
-
-// * site localization
-
// localization: /any/
// |
// + -- none
@@ -169,6 +216,24 @@
// + -- two_d
// |
// + -- three_d
+//
+// Interface related to the dimension and pw_iw properties
+// one_d
+// => .at_(unsigned index) : rvalue
+// one_d and pw_io::read_write
+// => .at_(unsigned index) : lvalue
+// two_d
+// => .at_(unsigned row, unsigned col) : rvalue
+// two_d and pw_io::read_write
+// => .at_(unsigned row, unsigned col) : lvalue
+// three_d
+// => .at_(unsigned slice, unsigned row, unsigned col) : rvalue
+// three_d and pw_io::read_write
+// => .at_(unsigned slice, unsigned row, unsigned col) : lvalue
+
+
+
+
// * extended domain
@@ -183,24 +248,35 @@
// | + -- infinite
// |
// + -- extendable
+// Interface related to the border property:
+// some
+// => .border_() : unsigned, returns the border thickness.
-// * extension values
-
-// ext_value: /any/
+// ext_io: /any/
// |
// + -- irrelevant
// |
-// + -- single
+// + -- read_only
// |
-// + -- multiple
+// + -- read_write
-// ext_io: /any/
+// ext_value: /any/
// |
// + -- irrelevant
// |
-// + -- read_only
+// + -- single
// |
-// + -- read_write
+// + -- multiple
+// Interface related to ext_io and ext_value properties:
+// single
+// => extension() : const mln_value(I)&
+// single and ext_io::read_write
+// => extension() : const mln_value(I)&
+// => extension() : mln_value(I)&
+
+
+
+
// * data (related to I::value)
@@ -247,6 +323,29 @@
// + -- high
+
+
+
+
+// DEPRECATED
+// value_browsing:/any/
+// |
+// + -- site_wise_only
+// |
+// + -------- cell_wise
+// | |
+// + -- value_wise |
+// \ |
+// -- + -- cell_and_value_wise
+
+// DEPRECATED
+// value_io: /any/
+// |
+// + -- read_only
+// |
+// + -- read_write
+
+
namespace mln
{
1
0