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
September 2008
- 12 participants
- 359 discussions
https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
Index: ChangeLog
from Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Sandbox: Update access.hh.
After Theo:
* jardonnet/virtual/access.hh: Concept check, Type sum ...
* jardonnet/virtual/access.cc: Update testes.
access.cc | 2 +-
access.hh | 60 +++++++++++++++++++++++++++++++++++++++++++-----------------
2 files changed, 44 insertions(+), 18 deletions(-)
Index: jardonnet/virtual/access.hh
--- jardonnet/virtual/access.hh (revision 2187)
+++ jardonnet/virtual/access.hh (working copy)
@@ -5,6 +5,8 @@
# include <mln/core/image2d.hh>
# include <mln/metal/is.hh>
# include <mln/core/concept/function.hh>
+# include <mln/fun/internal/selector.hh>
+# include <mln/convert/to.hh>
namespace mln
{
@@ -14,37 +16,48 @@
template < typename I >
struct nearest_neighbor
- : public Function_x2x< nearest_neighbor<I> >
+ : public fun::internal::selector_<const algebra::vec<3,float>,
+ // 3,float is a dummy parameter (real is n,T)
+ mln_value(I), nearest_neighbor<I> >::ret
{
typedef mln_value(I) result;
- template < typename V >
+ nearest_neighbor(const I& ima) : ima(ima) {}
+
+ template < unsigned n, typename T >
mln_value(I)
- operator()(const I& img, const V& v) const
+ operator()(const I& img, const algebra::vec<n,T>& x) const
{
- mln_point(I) p = algebra::to_point<mln_point(I)>(v);
+ mln_point(I) p = convert::to<mln_point(I)>(x);
return img(p);
}
+ const I& ima;
};
template < typename I >
struct linear
- : public Function_x2x< linear<I> >
+ : public fun::internal::selector_<const algebra::vec<1,float>,
+ // float is a dummy parameter (real is C)
+ mln_value(I), linear<I> >::ret
{
typedef mln_value(I) result;
+ linear(const I& ima) : ima(ima) {}
+
template <typename C>
mln_value(I)
operator()(const I& img,
const algebra::vec<1,C>& v) const
{
+ typedef mln_sum(mln_value(I)) vsum;
+
// looking for img(x);
double x = v[0];
// p1
double xa = mln_point(I)::coord(v[0]);
- double ya = img(point1d(xa));
+ vsum ya = img(point1d(xa));
// x makes sens in img
if (x == xa)
@@ -52,23 +65,32 @@
// p2
double xb = mln_point(I)::coord(v[0] + 1);
- double yb = img(point1d(xb));
+ vsum yb = img(point1d(xb));
// Taylor-young
- return ya + (x - xa) * (yb - ya) / (xb - xa);
+ return convert::to<mln_value(I)>
+ (ya + (x - xa) * (yb - ya) / (xb - xa));
}
+
+ const I& ima;
};
template < typename I >
struct bilinear
- : public Function_x2x< bilinear<I> >
+ : public fun::internal::selector_<const algebra::vec<3,float>,
+ // 3,float is a dummy parameter (real is n,T)
+ mln_value(I), linear<I> >::ret
{
typedef mln_value(I) result;
- template <typename V>
+ bilinear(const I& ima) : ima(ima) {}
+
+ template <unsigned n, typename T>
mln_value(I)
- operator()(const I& img, const V& v) const
+ operator()(const I& img, const algebra::vec<n,T>& v) const
{
+ typedef mln_sum(mln_value(I)) vsum;
+
// q12----r2----q22
// | | |
// | x |
@@ -90,17 +112,20 @@
point2d q22 = point2d(x2, y2);
// linear interpolation #1
- mln_value(I) img_r1 = img(q11) * (x2 - x) / (x2 - x1) +
+ vsum img_r1 = img(q11) * (x2 - x) / (x2 - x1) +
img(q21) * (x - x1) / (x2 - x1);
// linear interpolation #2
- mln_value(I) img_r2 = img(q12) * (x2 - x) / (x2 - x1) +
+ vsum img_r2 = img(q12) * (x2 - x) / (x2 - x1) +
img(q22) * (x - x1) / (x2 - x1);
// interpolating in y direction
- return img_r1 * (y2 - y) / (y2 -y1)
- + img_r2 * (y - y1) /(y2 - y1);
+ return convert::to<mln_value(I)>
+ (img_r1 * (y2 - y) / (y2 -y1)
+ + img_r2 * (y - y1) /(y2 - y1));
}
+
+ const I& ima;
};
}
@@ -112,8 +137,9 @@
access(const I& img, const mln_point(I)& p,
const T& trans, const F& interp)
{
- mlc_is(typename T::invert, Bijection_x2x<typename T::invert>)::check();
- mlc_is(F, Function_x2x<F>)::check();
+ mlc_is(typename T::invert,
+ Bijection_x2x<typename T::invert>)::check();
+ mlc_is(F, Function<F>)::check();
return interp(img, (trans.inv())(p));
}
Index: jardonnet/virtual/access.cc
--- jardonnet/virtual/access.cc (revision 2187)
+++ jardonnet/virtual/access.cc (working copy)
@@ -13,7 +13,7 @@
point2d p(5,5);
algebra::vec<2,float> v = make::vec(3,4);
fun::x2x::translation<2,float> t(v);
- interpolation::nearest_neighbor< image2d<int> > nn;
+ interpolation::nearest_neighbor< image2d<int> > nn(img);
debug::iota(img);
1
0
https://svn.lrde.epita.fr/svn/oln/trunk/milena
Index: ChangeLog
from Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Minor fix : Translation Rotation.
* mln/fun/x2x/translation.hh,
* mln/fun/x2x/rotation.hh: Fix wrong namespaces.
* sandbox/jardonnet/virtual/access.hh: Fix concept check.
mln/fun/x2x/rotation.hh | 2 +-
mln/fun/x2x/translation.hh | 6 ++----
sandbox/jardonnet/virtual/access.hh | 2 +-
3 files changed, 4 insertions(+), 6 deletions(-)
Index: mln/fun/x2x/translation.hh
--- mln/fun/x2x/translation.hh (revision 2186)
+++ mln/fun/x2x/translation.hh (working copy)
@@ -53,10 +53,8 @@
*/
template <unsigned n, typename C>
struct translation
-
- : internal::x2x_linear_impl_< algebra::vec<n,C>, translation<n,C> >
- ,
- public Bijection_x2x< translation<n,C> >
+ : fun::internal::x2x_linear_impl_< algebra::vec<n,C>, translation<n,C> >
+ , public Bijection_x2x< translation<n,C> >
{
typedef fun::internal::x2x_linear_impl_< algebra::vec<n,C>, translation<n,C> > super_;
Index: mln/fun/x2x/rotation.hh
--- mln/fun/x2x/rotation.hh (revision 2186)
+++ mln/fun/x2x/rotation.hh (working copy)
@@ -53,7 +53,7 @@
*/
template <unsigned n, typename C>
struct rotation
- : internal::x2x_linear_impl_< algebra::vec<n,C>, rotation<n,C> >
+ : fun::internal::x2x_linear_impl_< algebra::vec<n,C>, rotation<n,C> >
, public Bijection_x2x< rotation<n,C> >
{
typedef fun::internal::x2x_linear_impl_< algebra::vec<n,C>, rotation<n,C> > super_;
Index: sandbox/jardonnet/virtual/access.hh
--- sandbox/jardonnet/virtual/access.hh (revision 2186)
+++ sandbox/jardonnet/virtual/access.hh (working copy)
@@ -112,7 +112,7 @@
access(const I& img, const mln_point(I)& p,
const T& trans, const F& interp)
{
- mlc_is(T, Bijection_x2x<T>)::check();
+ mlc_is(typename T::invert, Bijection_x2x<typename T::invert>)::check();
mlc_is(F, Function_x2x<F>)::check();
return interp(img, (trans.inv())(p));
1
0
https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
Index: ChangeLog
from Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Sandbox: virtual transform, Add concept check.
* jardonnet/virtual/access.hh: Add concept check.
* jardonnet/virtual/access.cc: Update in consequence.
access.cc | 4 ++--
access.hh | 30 ++++++++++++++++++++++--------
2 files changed, 24 insertions(+), 10 deletions(-)
Index: jardonnet/virtual/access.hh
--- jardonnet/virtual/access.hh (revision 2185)
+++ jardonnet/virtual/access.hh (working copy)
@@ -3,7 +3,8 @@
# include <mln/core/image1d.hh>
# include <mln/core/image2d.hh>
-# include <mln/math/round.hh>
+# include <mln/metal/is.hh>
+# include <mln/core/concept/function.hh>
namespace mln
{
@@ -11,10 +12,13 @@
namespace interpolation
{
+ template < typename I >
struct nearest_neighbor
+ : public Function_x2x< nearest_neighbor<I> >
{
+ typedef mln_value(I) result;
- template <typename I, typename V>
+ template < typename V >
mln_value(I)
operator()(const I& img, const V& v) const
{
@@ -24,9 +28,13 @@
};
+ template < typename I >
struct linear
+ : public Function_x2x< linear<I> >
{
- template <typename I, typename C>
+ typedef mln_value(I) result;
+
+ template <typename C>
mln_value(I)
operator()(const I& img,
const algebra::vec<1,C>& v) const
@@ -43,7 +51,7 @@
return img(xa);
// p2
- double xb = mln_point(I)::coord(v[0] + 0.49999);
+ double xb = mln_point(I)::coord(v[0] + 1);
double yb = img(point1d(xb));
// Taylor-young
@@ -51,10 +59,13 @@
}
};
-
+ template < typename I >
struct bilinear
+ : public Function_x2x< bilinear<I> >
{
- template <typename I, typename V>
+ typedef mln_value(I) result;
+
+ template <typename V>
mln_value(I)
operator()(const I& img, const V& v) const
{
@@ -69,9 +80,9 @@
double y = v[1];
double x1 = mln_point(I)::coord(v[0]);
- double x2 = mln_point(I)::coord(v[0]+ 4.9999);
+ double x2 = mln_point(I)::coord(v[0]+ 1);
double y1 = mln_point(I)::coord(v[1]);
- double y2 = mln_point(I)::coord(v[1]+ 4.9999);
+ double y2 = mln_point(I)::coord(v[1]+ 1);
point2d q11 = point2d(x1, y1);
point2d q12 = point2d(x1, y2);
@@ -101,6 +112,9 @@
access(const I& img, const mln_point(I)& p,
const T& trans, const F& interp)
{
+ mlc_is(T, Bijection_x2x<T>)::check();
+ mlc_is(F, Function_x2x<F>)::check();
+
return interp(img, (trans.inv())(p));
}
Index: jardonnet/virtual/access.cc
--- jardonnet/virtual/access.cc (revision 2185)
+++ jardonnet/virtual/access.cc (working copy)
@@ -13,7 +13,7 @@
point2d p(5,5);
algebra::vec<2,float> v = make::vec(3,4);
fun::x2x::translation<2,float> t(v);
- interpolation::nearest_neighbor nn;
+ interpolation::nearest_neighbor< image2d<int> > nn;
debug::iota(img);
@@ -30,7 +30,7 @@
{
for (int j = 4; j < 54; j++)
std::cout <<
- access::access(img, point2d(i,j), t, nn);
+ mln::access::access(img, point2d(i,j), t, nn);
std::cout << std::endl;
}
}
1
0
URL: https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
ChangeLog:
2008-09-05 Matthieu Garrigues <garrigues(a)lrde.epita.fr>
Fixes to install the gimp plugin.
* nivault/plugin-gimp/autogen.sh: s/main.c/main.cc
* nivault/plugin-gimp/configure.ac: move install dir to home to
install it without administrator rights (dirty)
* nivault/plugin-gimp/src/main.cc: Change place in the gimp menu.
---
autogen.sh | 2 +-
configure.ac | 3 ++-
src/main.cc | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
Index: trunk/milena/sandbox/nivault/plugin-gimp/configure.ac
===================================================================
--- trunk/milena/sandbox/nivault/plugin-gimp/configure.ac (revision 2184)
+++ trunk/milena/sandbox/nivault/plugin-gimp/configure.ac (revision 2185)
@@ -59,7 +59,8 @@
AC_SUBST(GIMP_CFLAGS)
AC_SUBST(GIMP_LIBS)
-GIMP_LIBDIR=`$PKG_CONFIG --variable=gimplibdir gimp-2.0`
+#GIMP_LIBDIR=`$PKG_CONFIG --variable=gimplibdir gimp-2.0`
+GIMP_LIBDIR=`echo ~/.gimp-2.4`
AC_SUBST(GIMP_LIBDIR)
Index: trunk/milena/sandbox/nivault/plugin-gimp/src/main.cc
===================================================================
--- trunk/milena/sandbox/nivault/plugin-gimp/src/main.cc (revision 2184)
+++ trunk/milena/sandbox/nivault/plugin-gimp/src/main.cc (revision 2185)
@@ -84,7 +84,7 @@
G_N_ELEMENTS (args), 0,
args, NULL);
- gimp_plugin_menu_register (PROCEDURE_NAME, "<Image>/Tools/");
+ gimp_plugin_menu_register (PROCEDURE_NAME, "<Image>/Filters/Milena");
}
static void
Index: trunk/milena/sandbox/nivault/plugin-gimp/autogen.sh
===================================================================
--- trunk/milena/sandbox/nivault/plugin-gimp/autogen.sh (revision 2184)
+++ trunk/milena/sandbox/nivault/plugin-gimp/autogen.sh (revision 2185)
@@ -10,7 +10,7 @@
PROJECT="GIMP Plug-In Template"
TEST_TYPE=-f
-FILE=src/main.c
+FILE=src/main.cc
AUTOCONF_REQUIRED_VERSION=2.54
AUTOMAKE_REQUIRED_VERSION=1.6
1
0
https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008
Index: ChangeLog
from Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
Augment tutorial example for Z.
* milena/doc/tutorial/examples/for_Z.cc: Augment.
* milena/mln/debug/println.spe.hh (has): Replace ima.has by
ima.domain.has so that we do not print the domain extension.
* milena/mln/core/site_set/p_if.hh (pset, pset_): Rename as...
(s, s_): ...these; more consistent with the other code.
* milena/mln/core/image/image_if.hh (todo): Fix typo.
* milena/mln/core/internal/image_domain_morpher.hh
(operator()): Fix missing preconditions.
* milena/mln/value/rgb.hh (operator<<): Remove spaces.
* milena/mln/geom/bbox.hh (bbox): Add overload for images.
doc/tutorial/examples/for_Z.cc | 120 +++++++++++++++++++++++++++++-
mln/core/image/image_if.hh | 2
mln/core/internal/image_domain_morpher.hh | 6 +
mln/core/site_set/p_if.hh | 34 ++++----
mln/debug/println.spe.hh | 4 -
mln/geom/bbox.hh | 13 +++
mln/value/rgb.hh | 10 +-
7 files changed, 161 insertions(+), 28 deletions(-)
Index: milena/doc/tutorial/examples/for_Z.cc
--- milena/doc/tutorial/examples/for_Z.cc (revision 2183)
+++ milena/doc/tutorial/examples/for_Z.cc (working copy)
@@ -1,12 +1,24 @@
# include <mln/core/image/image2d.hh>
+
# include <mln/core/image/image_if.hh>
+# include <mln/core/image/sub_image.hh>
+
+# include <mln/core/site_set/p_vaccess.hh>
+# include <mln/convert/from_to.hh>
+# include <mln/core/alias/p_runs2d.hh>
+
# include <mln/core/alias/neighb2d.hh>
+# include <mln/core/var.hh>
# include <mln/value/int_u8.hh>
+# include <mln/value/rgb8.hh>
+# include <mln/literal/colors.hh>
# include <mln/pw/all.hh>
# include <mln/convert/to_fun.hh>
# include <mln/debug/println.hh>
# include <mln/labeling/blobs.hh>
+# include <mln/level/fill.hh>
+# include <mln/geom/bbox.hh>
namespace mln
@@ -82,10 +94,37 @@
}
+
+namespace my
+{
+
+ template <typename I>
+ void fill(I& ima, mln_value(I) v)
+ {
+ mln_piter(I) p(ima.domain());
+ for_all(p)
+ ima(p) = v;
+ }
+
+ template <typename I, typename J>
+ void paste(const I& data, J& dest)
+ {
+ mln_piter(I) p(data.domain());
+ for_all(p)
+ dest(p) = data(p);
+ }
+
+} // end of namespace my
+
+
+
+
+
int main()
{
using namespace mln;
using value::int_u8;
+ using value::rgb8;
bool vals[6][5] = {
@@ -103,6 +142,83 @@
image2d<int_u8> lab = labeling::blobs(ima, c4(), nlabels);
debug::println(lab);
- debug::println(lab | (pw::value(lab) != 0u));
- debug::println(lab | row_oddity);
+
+ mln_VAR(lab_0, lab | (pw::value(lab) != 0u));
+ debug::println(lab_0);
+
+
+// box2d b3 = geom::bbox(lab | (pw::value(lab) == 3u));
+// std::cout << b3 << std::endl
+// << std::endl;
+
+// // mln_VAR(lab3, lab | b3);
+// // debug::println(lab3);
+// // std::cout << lab3.domain() << std::endl
+// // << std::endl;
+
+
+// {
+// std::cout << "(ima | sub_D) | pred" << std::endl << std::endl;
+
+// mln_VAR(pred, pw::value(lab) == 3u);
+
+// std::cout << (lab | b3).domain() << std::endl;
+// debug::println(lab | b3);
+
+// std::cout << ((lab | b3) | pred).domain() << std::endl;
+// debug::println((lab | b3) | pred);
+// }
+
+
+// // il existe une difference entre:
+// //
+// // - ima | sub_D ou le sub_D DOIT etre inclus dans ima.domain
+// // et
+// // - ima / sub_D qui reste a ecrire...
+// // ou dans ce cas, on aurait (ima / sub_D).domain() == sub_D | f:p->b = ima.domain().has(p)
+
+
+// {
+// std::cout << "(ima | pred) | sub_D" << std::endl << std::endl;
+
+// mln_VAR(pred, pw::value(lab) == 3u);
+
+// // OK :-)
+// std::cout << (lab | pred).domain() << std::endl;
+// debug::println(lab | pred);
+
+// // KO :-)
+// // Cf. commentaire plus haut
+// // ici l'erreur est que b3 n'est pas un sous-domaine de celui de "lab | pred"...
+// /*
+// std::cout << ((lab | pred) | b3).domain() << std::endl;
+// debug::println((lab | pred) | b3);
+// */
+// }
+
+
+// debug::println(lab | row_oddity);
+
+// my::fill(lab_0, 9);
+// debug::println(lab_0);
+// debug::println(lab);
+
+
+// image2d<rgb8> cool(ima.domain());
+// level::fill(cool, literal::black);
+
+// level::fill( inplace(cool | (pw::value(lab) == 1u)),
+// literal::red );
+
+// debug::println(cool);
+
+
+ {
+ p_vaccess< int_u8, p_runs2d > s;
+ convert::from_to(lab_0, s);
+ std::cout << s << std::endl;
+ std::cout << s(3) << std::endl;
+ std::cout << s(3).bbox() << std::endl;
+ }
+
}
Index: milena/mln/debug/println.spe.hh
--- milena/mln/debug/println.spe.hh (revision 2183)
+++ milena/mln/debug/println.spe.hh (working copy)
@@ -129,7 +129,7 @@
for_all(p)
{
- if (input.has(p))
+ if (input.domain().has(p))
std::cout << format(input(p)) << " ";
else
std::cout << " ";
@@ -173,7 +173,7 @@
for (int i = max_row; i >= row; --i)
std::cout << ' ';
for (col = b.min_col(); col <= max_col; ++col)
- if (input.has(p))
+ if (input.domain().has(p))
std::cout << format(input(p)) << ' ';
else
std::cout << " ";
Index: milena/mln/core/site_set/p_if.hh
--- milena/mln/core/site_set/p_if.hh (revision 2183)
+++ milena/mln/core/site_set/p_if.hh (working copy)
@@ -30,9 +30,9 @@
/*! \file mln/core/site_set/p_if.hh
*
- * \brief Definition of the restriction of a point set w.r.t. a predicate.
+ * \brief Definition of the restriction of a site set w.r.t. a predicate.
*
- * \todo Change pset_ attribute type to S*.
+ * \todo Change s_ attribute type to S*.
*/
# include <mln/core/internal/site_set_base.hh>
@@ -62,21 +62,21 @@
} // end of namespace trait
- /*! \brief Restrict a point set \p pset to points that verify \p f.
+ /*! \brief Restrict a site set \p s to points that verify \p f.
*
- * \param[in] pset A point set.
+ * \param[in] s A site set.
* \param[in] f A function from point to Boolean.
* \return A subset of points.
*/
template <typename S, typename F>
p_if<S, F>
- operator | (const Site_Set<S>& pset, const Function_p2b<F>& f);
+ operator | (const Site_Set<S>& s, const Function_p2b<F>& f);
/*! \brief Generic subset class.
*
- * Parameter \c S is a point set type; parameter F is a function
+ * Parameter \c S is a site set type; parameter F is a function
* from point to Boolean.
*/
template <typename S, typename F>
@@ -103,8 +103,8 @@
typedef fwd_piter piter;
- /// Constructor with a point set \p pset and a predicate \p f.
- p_if(const S& pset, const F& f);
+ /// Constructor with a site set \p s and a predicate \p f.
+ p_if(const S& s, const F& f);
/// Constructor without argument.
p_if();
@@ -132,7 +132,7 @@
protected:
- S pset_;
+ S s_;
F f_;
};
@@ -144,9 +144,9 @@
template <typename S, typename F>
inline
p_if<S, F>
- operator | (const Site_Set<S>& pset, const Function_p2b<F>& f)
+ operator | (const Site_Set<S>& s, const Function_p2b<F>& f)
{
- p_if<S, F> tmp(exact(pset), exact(f));
+ p_if<S, F> tmp(exact(s), exact(f));
return tmp;
}
@@ -158,7 +158,7 @@
bool
p_if<S,F>::has(const psite& p) const
{
- return pset_.has(p) && f_(p);
+ return s_.has(p) && f_(p) == true;
}
template <typename S, typename F>
@@ -166,7 +166,7 @@
bool
p_if<S,F>::is_valid() const
{
- return pset_.is_valid();
+ return s_.is_valid();
}
template <typename S, typename F>
@@ -174,7 +174,7 @@
const S&
p_if<S,F>::overset() const
{
- return pset_;
+ return s_;
}
template <typename S, typename F>
@@ -187,8 +187,8 @@
template <typename S, typename F>
inline
- p_if<S,F>::p_if(const S& pset, const F& f)
- : pset_(pset),
+ p_if<S,F>::p_if(const S& s, const F& f)
+ : s_(s),
f_(f)
{
}
@@ -212,7 +212,7 @@
std::size_t
p_if<S,F>::memory_size() const
{
- return pset_.memory_size() + sizeof(f_);
+ return s_.memory_size() + sizeof(f_);
}
# endif // ! MLN_INCLUDE_ONLY
Index: milena/mln/core/image/image_if.hh
--- milena/mln/core/image/image_if.hh (revision 2183)
+++ milena/mln/core/image/image_if.hh (working copy)
@@ -33,7 +33,7 @@
* \brief Definition of a image which domain is restricted by a
* function.
*
- * \todo Relax Function_p2v into Function_v2v.
+ * \todo Relax Function_p2b into Function_v2b.
*/
# include <mln/core/internal/image_domain_morpher.hh>
Index: milena/mln/core/internal/image_domain_morpher.hh
--- milena/mln/core/internal/image_domain_morpher.hh (revision 2183)
+++ milena/mln/core/internal/image_domain_morpher.hh (working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -102,6 +102,8 @@
image_domain_morpher<I,S,E>::operator()(const mln_psite(S)& p) const
{
mln_precondition(this->delegatee_() != 0);
+ mln_precondition(exact(this)->has(p));
+ mln_precondition(this->delegatee_()->has(p));
return this->delegatee_()->operator()(p);
}
@@ -111,6 +113,8 @@
image_domain_morpher<I,S,E>::operator()(const mln_psite(S)& p)
{
mln_precondition(this->delegatee_() != 0);
+ mln_precondition(exact(this)->has(p));
+ mln_precondition(this->delegatee_()->has(p));
return this->delegatee_()->operator()(p);
}
Index: milena/mln/value/rgb.hh
--- milena/mln/value/rgb.hh (revision 2183)
+++ milena/mln/value/rgb.hh (working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -479,10 +479,10 @@
inline
std::ostream& operator<<(std::ostream& ostr, const rgb<n>& v)
{
- return ostr << "(" << debug::format(v.red())
- << ", " << debug::format(v.green())
- << ", " << debug::format(v.blue())
- << ")";
+ return ostr << '(' << debug::format(v.red())
+ << ',' << debug::format(v.green())
+ << ',' << debug::format(v.blue())
+ << ')';
}
template <unsigned n>
Index: milena/mln/geom/bbox.hh
--- milena/mln/geom/bbox.hh (revision 2183)
+++ milena/mln/geom/bbox.hh (working copy)
@@ -53,6 +53,11 @@
box<mln_site(S)> bbox(const Site_Set<S>& pset);
+ /// Compute the precise bounding box of a point set \p pset.
+ template <typename I>
+ box<mln_site(I)> bbox(const Image<I>& ima);
+
+
# ifndef MLN_INCLUDE_ONLY
namespace impl
@@ -110,6 +115,14 @@
return b;
}
+ template <typename I>
+ box<mln_site(I)> bbox(const Image<I>& ima_)
+ {
+ const I& ima = exact(ima_);
+ mln_precondition(ima.has_data());
+ return geom::bbox(ima.domain());
+ }
+
# endif // ! MLN_INCLUDE_ONLY
} // end of namespace mln::geom
1
0
https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008/milena
Index: ChangeLog
from Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
Add a tutorial example for Z.
* doc/tutorial/examples/for_Z.cc: New.
* mln/trait/op/lor.hh: New.
* mln/trait/op/all.hh: Update.
* mln/value/ops.hh: Add some doc.
* mln/value/builtin/ops.hh: Make op== and op!= commute when a
builtin is involved: "bi == obj" is rewritten into
"obj == scalar(bi)".
doc/tutorial/examples/for_Z.cc | 108 +++++++++++++++++++++++++++++++++++++++++
mln/trait/op/all.hh | 2
mln/trait/op/lor.hh | 18 +++---
mln/value/builtin/ops.hh | 6 +-
mln/value/ops.hh | 3 +
5 files changed, 126 insertions(+), 11 deletions(-)
Index: doc/tutorial/examples/for_Z.cc
--- doc/tutorial/examples/for_Z.cc (revision 0)
+++ doc/tutorial/examples/for_Z.cc (revision 0)
@@ -0,0 +1,108 @@
+# include <mln/core/image/image2d.hh>
+# include <mln/core/image/image_if.hh>
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/value/int_u8.hh>
+
+# include <mln/pw/all.hh>
+# include <mln/convert/to_fun.hh>
+# include <mln/debug/println.hh>
+# include <mln/labeling/blobs.hh>
+
+
+namespace mln
+{
+
+ namespace trait
+ {
+
+// template <template <class, class> class Op,
+// typename F, typename S>
+// struct set_binary_< Op, mln::Function_v2v, F, mln::value::Scalar, S >
+// {
+// typedef Op< F, pw::cst_<mln_value_equiv(S)> > Op_;
+// typedef typename Op_::ret ret;
+// };
+
+ template <template <class, class> class Op,
+ typename F,
+ typename R, typename A>
+ struct set_precise_binary_< Op, F, R (*)(A) >
+ {
+ typedef Op< F, fun::C<R (*)(A)> > Op_;
+ typedef typename Op_::ret ret;
+ };
+
+ template <typename F, typename S>
+ struct set_binary_< op::eq, mln::Function_v2v, F, mln::value::Scalar, S >
+ {
+ typedef mln_trait_op_eq(F, pw::cst_<mln_value_equiv(S)>) ret;
+ };
+
+
+ // const Image | Function_v2v
+
+// template <typename I, typename F>
+// struct set_binary_< op::lor, mln::Image, /* FIXME: const */ I, mln::Function_v2v, F >
+// {
+// typedef image_if<const I, F> ret;
+// };
+
+ } // end of namespace mln::trait
+
+
+ template <typename F, typename S>
+ mln_trait_op_eq(F,S)
+ operator == (const Function_v2v<F>& fun, const value::Scalar<S>& s)
+ {
+ return exact(fun) == pw::cst( value::equiv(s) );
+ }
+
+
+ template <typename I, typename R, typename A>
+ image_if< const I, fun::C<R(*)(A)> >
+ operator | (const Image<I>& ima, R (*f)(A) )
+ {
+ return exact(ima) | convert::to_fun(f);
+ }
+
+
+// template <typename O, typename R, typename A>
+// mln_trait_op_lor(const O, fun::C<R(*)(A)>)
+// operator | (const Object<O>& lhs, R (*rhs)(A) )
+// {
+// return exact(lhs) | convert::to_fun(rhs);
+// }
+
+} // end of namespace mln
+
+
+bool row_oddity(mln::point2d p)
+{
+ return p.row() % 2;
+}
+
+
+int main()
+{
+ using namespace mln;
+ using value::int_u8;
+
+
+ bool vals[6][5] = {
+ {0, 1, 1, 0, 0},
+ {0, 1, 1, 0, 0},
+ {0, 0, 0, 0, 0},
+ {1, 1, 0, 1, 0},
+ {1, 0, 1, 1, 1},
+ {1, 0, 0, 0, 0}
+ };
+ image2d<bool> ima = make::image2d(vals);
+ debug::println(ima);
+
+ int_u8 nlabels;
+ image2d<int_u8> lab = labeling::blobs(ima, c4(), nlabels);
+ debug::println(lab);
+
+ debug::println(lab | (pw::value(lab) != 0u));
+ debug::println(lab | row_oddity);
+}
Index: mln/trait/op/lor.hh
--- mln/trait/op/lor.hh (revision 2182)
+++ mln/trait/op/lor.hh (working copy)
@@ -25,19 +25,21 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_TRAIT_OP_OR_HH
-# define MLN_TRAIT_OP_OR_HH
+#ifndef MLN_TRAIT_OP_LOR_HH
+# define MLN_TRAIT_OP_LOR_HH
-/*! \file mln/trait/op/or.hh
+/*! \file mln/trait/op/lor.hh
*
- * \brief Declaration of the "binary or" operator trait.
+ * \brief Declaration of the "binary logical or" operator trait.
+ *
+ * \todo Add land (for logical and).
*/
# include <mln/trait/op/decl.hh>
-# define mln_trait_op_or(L, R) typename mln::trait::op::or_< L , R >::ret
-# define mln_trait_op_or_(L, R) mln::trait::op::or_< L , R >::ret
+# define mln_trait_op_lor(L, R) typename mln::trait::op::lor< L , R >::ret
+# define mln_trait_op_lor_(L, R) mln::trait::op::lor< L , R >::ret
@@ -51,7 +53,7 @@
{
template <typename L, typename R>
- struct or_ : public solve_binary<or_, L, R>
+ struct lor : public solve_binary<lor, L, R>
{
};
@@ -65,4 +67,4 @@
# include <mln/trait/solve.hh>
-#endif // ! MLN_TRAIT_OP_OR_HH
+#endif // ! MLN_TRAIT_OP_LOR_HH
Index: mln/trait/op/all.hh
--- mln/trait/op/all.hh (revision 2182)
+++ mln/trait/op/all.hh (working copy)
@@ -74,6 +74,8 @@
# include <mln/trait/op/or.hh>
# include <mln/trait/op/xor.hh>
+# include <mln/trait/op/lor.hh>
+
# include <mln/trait/op/not.hh>
// Ordering.
Index: mln/value/ops.hh
--- mln/value/ops.hh (revision 2182)
+++ mln/value/ops.hh (working copy)
@@ -157,6 +157,9 @@
operator % (const value::Scalar<Vl>& lhs, const value::Scalar<Vr>& rhs);
+ // Swap arguments so that "scalar_ OP Object" is "Object OP
+ // scalar_". As a consequence, the user only has to define what
+ // happens with a scalar as a rhs.
template <typename S, typename O>
mln_trait_op_plus(O, value::scalar_<S>)
Index: mln/value/builtin/ops.hh
--- mln/value/builtin/ops.hh (revision 2182)
+++ mln/value/builtin/ops.hh (working copy)
@@ -121,7 +121,7 @@
operator Symb (const Object<O>& lhs, const Builtin & rhs); \
\
template <typename O> \
- mln_trait_op_##Name (value::scalar_< Builtin >, O) \
+ mln_trait_op_##Name (O, value::scalar_< Builtin >) \
operator Symb (const Builtin & lhs, const Object<O>& rhs); \
\
struct m_a_c_r_o__e_n_d__w_i_t_h__s_e_m_i_c_o_l_u_m_n
@@ -136,10 +136,10 @@
} \
\
template <typename O> \
- mln_trait_op_##Name (value::scalar_< Builtin >, O) \
+ mln_trait_op_##Name (O, value::scalar_< Builtin >) \
operator Symb (const Builtin & lhs, const Object<O>& rhs) \
{ \
- return value::scalar(lhs) Symb exact(rhs); \
+ return exact(rhs) Symb value::scalar(lhs); \
} \
\
struct m_a_c_r_o__e_n_d__w_i_t_h__s_e_m_i_c_o_l_u_m_n
1
0
https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
Index: ChangeLog
from Ugo Jardonnet <jardonnet(a)lrde.epita.fr>
Start working on image virtual transformation.
* jardonnet/virtual: New.
* jardonnet/virtual/access.hh (access): Virtual access to image.
It also contains image interpolation routines.
* jardonnet/virtual/access.cc: Test file.
* jardonnet/virtual/Makefile: New.
Makefile | 2 +
access.cc | 36 +++++++++++++++++++
access.hh | 112
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 150 insertions(+)
Index: jardonnet/virtual/access.hh
--- jardonnet/virtual/access.hh (revision 0)
+++ jardonnet/virtual/access.hh (revision 0)
@@ -0,0 +1,112 @@
+#ifndef _ACCESS_HH
+# define _ACCESS_HH
+
+# include <mln/core/image1d.hh>
+# include <mln/core/image2d.hh>
+# include <mln/math/round.hh>
+
+namespace mln
+{
+
+ namespace interpolation
+ {
+
+ struct nearest_neighbor
+ {
+
+ template <typename I, typename V>
+ mln_value(I)
+ operator()(const I& img, const V& v) const
+ {
+ mln_point(I) p = algebra::to_point<mln_point(I)>(v);
+ return img(p);
+ }
+
+ };
+
+ struct linear
+ {
+ template <typename I, typename C>
+ mln_value(I)
+ operator()(const I& img,
+ const algebra::vec<1,C>& v) const
+ {
+ // looking for img(x);
+ double x = v[0];
+
+ // p1
+ double xa = mln_point(I)::coord(v[0]);
+ double ya = img(point1d(xa));
+
+ // x makes sens in img
+ if (x == xa)
+ return img(xa);
+
+ // p2
+ double xb = mln_point(I)::coord(v[0] + 0.49999);
+ double yb = img(point1d(xb));
+
+ // Taylor-young
+ return ya + (x - xa) * (yb - ya) / (xb - xa);
+ }
+ };
+
+
+ struct bilinear
+ {
+ template <typename I, typename V>
+ mln_value(I)
+ operator()(const I& img, const V& v) const
+ {
+ // q12----r2----q22
+ // | | |
+ // | x |
+ // | | |
+ // q11----r1----q21
+
+ // looking for img(P(x,y))
+ double x = v[0];
+ double y = v[1];
+
+ double x1 = mln_point(I)::coord(v[0]);
+ double x2 = mln_point(I)::coord(v[0]+ 4.9999);
+ double y1 = mln_point(I)::coord(v[1]);
+ double y2 = mln_point(I)::coord(v[1]+ 4.9999);
+
+ point2d q11 = point2d(x1, y1);
+ point2d q12 = point2d(x1, y2);
+ point2d q21 = point2d(x2, y1);
+ point2d q22 = point2d(x2, y2);
+
+ // linear interpolation #1
+ mln_value(I) img_r1 = img(q11) * (x2 - x) / (x2 - x1) +
+ img(q21) * (x - x1) / (x2 - x1);
+
+ // linear interpolation #2
+ mln_value(I) img_r2 = img(q12) * (x2 - x) / (x2 - x1) +
+ img(q22) * (x - x1) / (x2 - x1);
+
+ // interpolating in y direction
+ return img_r1 * (y2 - y) / (y2 -y1)
+ + img_r2 * (y - y1) /(y2 - y1);
+ }
+ };
+ }
+
+ namespace access
+ {
+
+ template <typename I, typename T, typename F>
+ mln_value(I)
+ access(const I& img, const mln_point(I)& p,
+ const T& trans, const F& interp)
+ {
+ return interp(img, (trans.inv())(p));
+ }
+
+ }
+
+}
+
+#endif /* _ACCESS_HH */
+
Index: jardonnet/virtual/access.cc
--- jardonnet/virtual/access.cc (revision 0)
+++ jardonnet/virtual/access.cc (revision 0)
@@ -0,0 +1,36 @@
+
+#include <iostream>
+#include "access.hh"
+#include <mln/core/image2d.hh>
+#include <mln/fun/x2x/all.hh>
+#include <mln/debug/iota.hh>
+#include <mln/algebra/vec.hh>
+
+int main()
+{
+ using namespace mln;
+ image2d<int> img(50,50);
+ point2d p(5,5);
+ algebra::vec<2,float> v = make::vec(3,4);
+ fun::x2x::translation<2,float> t(v);
+ interpolation::nearest_neighbor nn;
+
+ debug::iota(img);
+
+ for (int i = 0; i < 50; i++)
+ {
+ for (int j = 0; j < 50; j++)
+ std::cout << img(point2d(i,j));
+ std::cout << std::endl;
+ }
+
+ std::cout << std::endl;
+
+ for (int i = 3; i < 53; i++)
+ {
+ for (int j = 4; j < 54; j++)
+ std::cout <<
+ access::access(img, point2d(i,j), t, nn);
+ std::cout << std::endl;
+ }
+}
Index: jardonnet/virtual/Makefile
--- jardonnet/virtual/Makefile (revision 0)
+++ jardonnet/virtual/Makefile (revision 0)
@@ -0,0 +1,2 @@
+all:
+ g++ access.cc -I../../..
\ No newline at end of file
1
0
https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008/milena
Index: ChangeLog
from Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
Fix merging errors.
* mln/core/site_set/p_array.hh (bb_needs_update_): Remove.
* mln/core/site_set/p_if.hh (include): Fix missing dir.
* mln/core/image/safe.hh (operator()): Fix warning.
* mln/core/image/flat_image.hh (p): Fix warning.
* mln/fun/ops.hh: Fix double ctors.
* mln/algebra/h_vec.hh (namespace): Fix self incl.
* mln/algebra/vec.hh (namespace): Fix fwd decl.
Misc.
* doc/tutorial/examples/p_vaccess.cc,
* mln/core/site_set/p_priority.hh,
* mln/core/site_set/p_key.hh (eiter): Prefer using a macro.
doc/tutorial/examples/p_vaccess.cc | 2 +-
mln/algebra/h_vec.hh | 32 ++++++++++++++------------------
mln/algebra/vec.hh | 4 ++--
mln/core/image/flat_image.hh | 4 ++--
mln/core/image/safe.hh | 2 +-
mln/core/site_set/p_array.hh | 4 +---
mln/core/site_set/p_if.hh | 2 +-
mln/core/site_set/p_key.hh | 2 +-
mln/core/site_set/p_priority.hh | 13 ++++++++-----
mln/fun/ops.hh | 8 --------
10 files changed, 31 insertions(+), 42 deletions(-)
Index: doc/tutorial/examples/p_vaccess.cc
--- doc/tutorial/examples/p_vaccess.cc (revision 2180)
+++ doc/tutorial/examples/p_vaccess.cc (working copy)
@@ -100,7 +100,7 @@
for (unsigned l = 0; l <= nlabels; ++l)
{
std::cout << "arr(" << l << ") = ";
- mln_iter_(util::set<p_run2d>) r(arr(l).set_hook_());
+ util::set<p_run2d>::eiter r(arr(l).set_hook_());
for_all(r)
std::cout << r << ' ';
std::cout << std::endl;
Index: mln/core/site_set/p_array.hh
--- mln/core/site_set/p_array.hh (revision 2180)
+++ mln/core/site_set/p_array.hh (working copy)
@@ -324,15 +324,13 @@
template <typename P>
inline
p_array<P>::p_array()
- : bb_needs_update_(false)
{
}
template <typename P>
inline
p_array<P>::p_array(const std::vector<P>& vect)
- : vect_(vect),
- bb_needs_update_(true)
+ : vect_(vect)
{
}
Index: mln/core/site_set/p_priority.hh
--- mln/core/site_set/p_priority.hh (revision 2180)
+++ mln/core/site_set/p_priority.hh (working copy)
@@ -75,7 +75,6 @@
p_priority<P,Q> >
{
typedef p_priority<P,Q> self_;
- typedef util::set<P> set_;
public:
/// Element associated type.
@@ -86,10 +85,14 @@
typedef p_double_psite<self_, Q> psite;
/// Forward Site_Iterator associated type.
- typedef p_double_piter<self_, typename set_::bkd_iter, mln_fwd_piter(Q)> fwd_piter;
+ typedef p_double_piter< self_,
+ mln_bkd_eiter(util::set<P>),
+ mln_fwd_piter(Q) > fwd_piter;
/// Backward Site_Iterator associated type.
- typedef p_double_piter<self_, typename set_::fwd_iter, mln_bkd_piter(Q)> bkd_piter;
+ typedef p_double_piter< self_,
+ mln_fwd_eiter(util::set<P>),
+ mln_bkd_piter(Q) > bkd_piter;
/// Site_Iterator associated type.
typedef fwd_piter piter;
@@ -387,7 +390,7 @@
// Containers p_ and q_ are not consistent in size!
return false;
- typename util::set<P>::iter p(p_);
+ mln_eiter(util::set<P>) p(p_);
for_all(p)
if (q_.find(p) == q_.end())
// We have an empty queue (with priority p)!
@@ -409,7 +412,7 @@
std::ostream& operator<<(std::ostream& ostr, const p_priority<P,Q>& pq)
{
ostr << '{';
- typename util::set<P>::bkd_iter p(pq.priorities());
+ mln_bkd_eiter(util::set<P>) p(pq.priorities());
for_all(p)
{
ostr << ' ' << p << ':';
Index: mln/core/site_set/p_key.hh
--- mln/core/site_set/p_key.hh (revision 2180)
+++ mln/core/site_set/p_key.hh (working copy)
@@ -634,7 +634,7 @@
std::ostream& operator<<(std::ostream& ostr, const p_key<K,P>& pk)
{
ostr << '{';
- typename util::set<K>::fwd_iter k(pk.keys());
+ mln_fwd_eiter(util::set<K>) k(pk.keys());
for_all(k)
{
ostr << ' ' << k << ':';
Index: mln/core/site_set/p_if.hh
--- mln/core/site_set/p_if.hh (revision 2180)
+++ mln/core/site_set/p_if.hh (working copy)
@@ -221,7 +221,7 @@
-# include <mln/core/p_if_piter.hh>
+# include <mln/core/site_set/p_if_piter.hh>
Index: mln/core/image/safe.hh
--- mln/core/image/safe.hh (revision 2180)
+++ mln/core/image/safe.hh (working copy)
@@ -165,7 +165,7 @@
template <typename I>
inline
- typename safe_image<I>::lvalue
+ mln_morpher_lvalue(I)
safe_image<I>::operator()(const mln_psite(I)& p)
{
mln_precondition(this->has_data());
Index: mln/core/image/flat_image.hh
--- mln/core/image/flat_image.hh (revision 2180)
+++ mln/core/image/flat_image.hh (working copy)
@@ -233,7 +233,7 @@
template <typename T, typename S>
inline
const T&
- flat_image<T,S>::operator()(const mln_psite(S)& p) const
+ flat_image<T,S>::operator()(const mln_psite(S)&) const
{
mln_precondition(this->has_data());
return this->data_->val_;
@@ -242,7 +242,7 @@
template <typename T, typename S>
inline
const T&
- flat_image<T,S>::operator()(const mln_psite(S)& p)
+ flat_image<T,S>::operator()(const mln_psite(S)&)
{
mln_precondition(this->has_data());
return this->data_->val_;
Index: mln/fun/ops.hh
--- mln/fun/ops.hh (revision 2180)
+++ mln/fun/ops.hh (working copy)
@@ -60,10 +60,6 @@
{ \
} \
\
- Name##_##Out##_expr_() \
- { \
- } \
- \
template <typename P> \
result operator()(const P& p) const \
{ \
@@ -120,10 +116,6 @@
{ \
} \
\
- Name##_##Out##_expr_() \
- { \
- } \
- \
template <typename P> \
result operator()(const P& p) const \
{ \
Index: mln/algebra/h_vec.hh
--- mln/algebra/h_vec.hh (revision 2180)
+++ mln/algebra/h_vec.hh (working copy)
@@ -141,24 +141,6 @@
return *this;
}
- namespace algebra
- {
-
- // Immersion of a vector in its homogeneous space.
- template <unsigned n, typename T>
- inline
- h_vec<n, T> vec<n,T>::to_h_vec() const
- {
- h_vec<n, T> tmp;
- for (unsigned i = 0; i < n; ++i)
- tmp[i] = this->data_[i];
- tmp[n] = literal::one;
- return tmp;
- }
-
- } // end of namespace mln::algebra
-
-
template <unsigned d, typename C>
inline
vec<d,C> h_vec<d,C>::to_vec() const
@@ -172,6 +154,20 @@
return tmp;
}
+ // Immersion of a vector in its homogeneous space.
+
+ template <unsigned n, typename T>
+ inline
+ h_vec<n, T>
+ vec<n,T>::to_h_vec() const
+ {
+ h_vec<n, T> tmp;
+ for (unsigned i = 0; i < n; ++i)
+ tmp[i] = this->data_[i];
+ tmp[n] = literal::one;
+ return tmp;
+ }
+
# endif // ! MLN_INCLUDE_ONLY
} // end of namespace mln::algebra
Index: mln/algebra/vec.hh
--- mln/algebra/vec.hh (revision 2180)
+++ mln/algebra/vec.hh (working copy)
@@ -53,14 +53,14 @@
namespace mln
{
- // Fwd decls.
+ // Forward declarations.
namespace algebra {
template <unsigned n, typename T> class vec;
+ template <unsigned d, typename C> struct h_vec;
}
namespace literal {
struct zero_t;
}
- template <unsigned d, typename C> struct h_vec;
1
0
04 Sep '08
https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008/milena
Index: ChangeLog
from Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
Move test files from core/ to sub-directories.
* tests/core/alias,
* tests/core/image
* tests/core/other,
* tests/core/routine,
* tests/core/site_set: New directories.
* tests/core/bgraph_image.cc,
* tests/core/box1d.cc,
* tests/core/box2d.cc,
* tests/core/box3d.cc,
* tests/core/cast_image.cc,
* tests/core/category.cc,
* tests/core/clock_neighb2d.cc,
* tests/core/clock_test.cc,
* tests/core/clone.cc,
* tests/core/complex.cc,
* tests/core/complex_image.cc,
* tests/core/decorated_image.cc,
* tests/core/dpoint1d.cc,
* tests/core/dpoint2d.cc,
* tests/core/dpoint3d.cc,
* tests/core/dpoints_pixter.cc,
* tests/core/exact.cc,
* tests/core/fi_adaptor.cc,
* tests/core/graph_elt_neighborhood.cc,
* tests/core/graph_elt_window.cc,
* tests/core/graph_image.cc,
* tests/core/graph_image_wst.cc,
* tests/core/hexa.cc,
* tests/core/image1d.cc,
* tests/core/image2d.cc,
* tests/core/image2d_h.cc,
* tests/core/image3d.cc,
* tests/core/image_if.cc,
* tests/core/image_if_interval.cc,
* tests/core/image_if_value.cc,
* tests/core/initialize.cc,
* tests/core/interpolated.cc,
* tests/core/line_graph_elt_neighborhood.cc,
* tests/core/line_graph_elt_window.cc,
* tests/core/line_graph_image.cc,
* tests/core/line_piter.cc,
* tests/core/mono_obased_rle_image.cc,
* tests/core/mono_rle_image.cc,
* tests/core/neighb.cc,
* tests/core/obased_rle_image.cc,
* tests/core/p_array.cc,
* tests/core/p_bgraph.cc,
* tests/core/p_image2d.cc,
* tests/core/p_priority_queue.cc,
* tests/core/p_priority_queue_fast.cc,
* tests/core/p_priority_queue_fast_with_array.cc,
* tests/core/p_queue.cc,
* tests/core/p_queue_fast.cc,
* tests/core/p_runs.cc,
* tests/core/p_set.cc,
* tests/core/pixel.cc,
* tests/core/pixter1d.cc,
* tests/core/pixter1d_more.cc,
* tests/core/pixter2d.cc,
* tests/core/pixter2d_more.cc,
* tests/core/pixter3d.cc,
* tests/core/pixter3d_more.cc,
* tests/core/plain.cc,
* tests/core/point1d.cc,
* tests/core/point2d.cc,
* tests/core/point3d.cc,
* tests/core/point_set_compatibility.cc,
* tests/core/pset_array.cc,
* tests/core/pset_if.cc,
* tests/core/rle_image.cc,
* tests/core/safe_image.cc,
* tests/core/sparse_image.cc,
* tests/core/sub_image.cc,
* tests/core/t_image.cc,
* tests/core/tr_image.cc,
* tests/core/translate_image.cc,
* tests/core/value_enc_image.cc,
* tests/core/w_window1d_int.cc,
* tests/core/w_window2d_int.cc,
* tests/core/w_window3d_int.cc,
* tests/core/window1d.cc,
* tests/core/window2d.cc,
* tests/core/window3d.cc: Rename...
* tests/core/alias/box1d.cc,
* tests/core/alias/box2d.cc,
* tests/core/alias/box3d.cc,
* tests/core/alias/dpoint1d.cc,
* tests/core/alias/dpoint2d.cc,
* tests/core/alias/dpoint3d.cc,
* tests/core/alias/point1d.cc,
* tests/core/alias/point2d.cc,
* tests/core/alias/point3d.cc,
* tests/core/alias/w_window1d_int.cc,
* tests/core/alias/w_window2d_int.cc,
* tests/core/alias/w_window3d_int.cc,
* tests/core/alias/window1d.cc,
* tests/core/alias/window2d.cc,
* tests/core/alias/window3d.cc: ...as these and...
* tests/core/image/bgraph_image.cc,
* tests/core/image/cast_image.cc,
* tests/core/image/complex_image.cc,
* tests/core/image/decorated_image.cc,
* tests/core/image/fi_adaptor.cc,
* tests/core/image/graph_image.cc,
* tests/core/image/graph_image_wst.cc,
* tests/core/image/hexa.cc,
* tests/core/image/image1d.cc,
* tests/core/image/image2d.cc,
* tests/core/image/image2d_h.cc,
* tests/core/image/image3d.cc,
* tests/core/image/image_if.cc,
* tests/core/image/image_if_interval.cc,
* tests/core/image/image_if_value.cc,
* tests/core/image/interpolated.cc,
* tests/core/image/line_graph_image.cc,
* tests/core/image/mono_obased_rle_image.cc,
* tests/core/image/mono_rle_image.cc,
* tests/core/image/obased_rle_image.cc,
* tests/core/image/plain.cc,
* tests/core/image/rle_image.cc,
* tests/core/image/safe_image.cc,
* tests/core/image/sparse_image.cc,
* tests/core/image/sub_image.cc,
* tests/core/image/t_image.cc,
* tests/core/image/tr_image.cc,
* tests/core/image/translate_image.cc,
* tests/core/image/value_enc_image.cc: ...as these and...
* tests/core/other/category.cc,
* tests/core/other/clock_neighb2d.cc,
* tests/core/other/clock_test.cc,
* tests/core/other/complex.cc,
* tests/core/other/dpoints_pixter.cc,
* tests/core/other/graph_elt_neighborhood.cc,
* tests/core/other/graph_elt_window.cc,
* tests/core/other/line_graph_elt_neighborhood.cc,
* tests/core/other/line_graph_elt_window.cc,
* tests/core/other/line_piter.cc,
* tests/core/other/neighb.cc,
* tests/core/other/pixel.cc,
* tests/core/other/pixter1d.cc,
* tests/core/other/pixter1d_more.cc,
* tests/core/other/pixter2d.cc,
* tests/core/other/pixter2d_more.cc,
* tests/core/other/pixter3d.cc,
* tests/core/other/pixter3d_more.cc,
* tests/core/other/point_set_compatibility.cc: ...as these and...
* tests/core/routine/clone.cc,
* tests/core/routine/exact.cc,
* tests/core/routine/initialize.cc: ...as these and...
* tests/core/site_set/p_array.cc,
* tests/core/site_set/p_bgraph.cc,
* tests/core/site_set/p_image2d.cc,
* tests/core/site_set/p_priority_queue.cc,
* tests/core/site_set/p_priority_queue_fast.cc,
* tests/core/site_set/p_priority_queue_fast_with_array.cc,
* tests/core/site_set/p_queue.cc,
* tests/core/site_set/p_queue_fast.cc,
* tests/core/site_set/p_runs.cc,
* tests/core/site_set/p_set.cc,
* tests/core/site_set/pset_array.cc,
* tests/core/site_set/pset_if.cc: ...these.
* tests/core/alias/Makefile.am,
* tests/core/image/Makefile.am,
* tests/core/other/Makefile.am,
* tests/core/routine/Makefile.am,
* tests/core/site_set/Makefile.am: New.
* tests/core/Makefile.am: Update.
* tests/core/h_vec.cc: Rename as...
* tests/algebra/h_vec.cc: ...this.
Update.
* tests/algebra/Makefile.am: Update.
algebra/Makefile.am | 2
core/Makefile.am | 192 ----------------------
core/alias/Makefile.am | 38 ++++
core/alias/box1d.cc | 2
core/alias/box2d.cc | 2
core/alias/box3d.cc | 2
core/alias/dpoint1d.cc | 2
core/alias/dpoint2d.cc | 2
core/alias/dpoint3d.cc | 2
core/alias/point1d.cc | 2
core/alias/point2d.cc | 2
core/alias/point3d.cc | 2
core/alias/w_window1d_int.cc | 2
core/alias/w_window2d_int.cc | 2
core/alias/w_window3d_int.cc | 2
core/alias/window1d.cc | 2
core/alias/window2d.cc | 2
core/alias/window3d.cc | 2
core/image/Makefile.am | 72 ++++++++
core/image/bgraph_image.cc | 2
core/image/cast_image.cc | 2
core/image/complex_image.cc | 2
core/image/decorated_image.cc | 2
core/image/fi_adaptor.cc | 2
core/image/graph_image.cc | 2
core/image/graph_image_wst.cc | 2
core/image/hexa.cc | 2
core/image/image1d.cc | 2
core/image/image2d.cc | 2
core/image/image2d_h.cc | 2
core/image/image3d.cc | 2
core/image/image_if.cc | 2
core/image/image_if_interval.cc | 2
core/image/image_if_value.cc | 2
core/image/interpolated.cc | 2
core/image/line_graph_image.cc | 2
core/image/mono_obased_rle_image.cc | 2
core/image/mono_rle_image.cc | 2
core/image/obased_rle_image.cc | 2
core/image/plain.cc | 2
core/image/rle_image.cc | 2
core/image/safe_image.cc | 2
core/image/sparse_image.cc | 2
core/image/sub_image.cc | 2
core/image/t_image.cc | 2
core/image/translate_image.cc | 2
core/image/value_enc_image.cc | 2
core/other/Makefile.am | 46 +++++
core/other/category.cc | 2
core/other/complex.cc | 2
core/other/graph_elt_neighborhood.cc | 2
core/other/graph_elt_window.cc | 2
core/other/line_graph_elt_neighborhood.cc | 2
core/other/line_graph_elt_window.cc | 2
core/other/line_piter.cc | 2
core/other/neighb.cc | 2
core/other/pixel.cc | 2
core/other/pixter1d.cc | 2
core/other/pixter1d_more.cc | 2
core/other/pixter2d.cc | 2
core/other/pixter2d_more.cc | 2
core/other/pixter3d.cc | 2
core/other/pixter3d_more.cc | 2
core/other/point_set_compatibility.cc | 2
core/routine/Makefile.am | 14 +
core/routine/clone.cc | 2
core/routine/exact.cc | 2
core/routine/initialize.cc | 2
core/site_set/Makefile.am | 32 +++
core/site_set/p_array.cc | 2
core/site_set/p_bgraph.cc | 2
core/site_set/p_image2d.cc | 2
core/site_set/p_priority_queue.cc | 2
core/site_set/p_priority_queue_fast.cc | 2
core/site_set/p_priority_queue_fast_with_array.cc | 2
core/site_set/p_queue.cc | 2
core/site_set/p_queue_fast.cc | 2
core/site_set/p_runs.cc | 2
core/site_set/p_set.cc | 2
core/site_set/pset_if.cc | 2
80 files changed, 283 insertions(+), 259 deletions(-)
Index: tests/core/image/sub_image.cc
--- tests/core/image/sub_image.cc (revision 0)
+++ tests/core/image/sub_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/sub_image.cc
+/*! \file tests/core/image/sub_image.cc
*
* \brief Tests on mln::sub_image.
*/
Index: tests/core/image/image_if_value.cc
--- tests/core/image/image_if_value.cc (revision 0)
+++ tests/core/image/image_if_value.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/image_if_value.cc
+/*! \file tests/core/image/image_if_value.cc
*
* \brief Tests on mln::image_if_value.
*/
Index: tests/core/image/decorated_image.cc
--- tests/core/image/decorated_image.cc (revision 0)
+++ tests/core/image/decorated_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/decorated_image.cc
+/// \file tests/core/image/decorated_image.cc
/// \brief Tests on mln::decorated_image.
#include <mln/core/image/image2d.hh>
Index: tests/core/image/cast_image.cc
--- tests/core/image/cast_image.cc (revision 0)
+++ tests/core/image/cast_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/cast_image.cc
+/*! \file tests/core/image/cast_image.cc
*
* \brief Tests on mln::cast_image.
*/
Index: tests/core/image/sparse_image.cc
--- tests/core/image/sparse_image.cc (revision 0)
+++ tests/core/image/sparse_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/sparse_image.cc
+/*! \file tests/core/image/sparse_image.cc
*
* \brief Test on mln::sparse_image.hh.
*/
Index: tests/core/image/translate_image.cc
--- tests/core/image/translate_image.cc (revision 0)
+++ tests/core/image/translate_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/translate_image.cc
+/*! \file tests/core/image/translate_image.cc
*
* \brief Tests on mln::core::translate_image.hh.
*/
Index: tests/core/image/graph_image_wst.cc
--- tests/core/image/graph_image_wst.cc (revision 0)
+++ tests/core/image/graph_image_wst.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/graph_image_wst.cc
+/// \file tests/core/image/graph_image_wst.cc
/// \brief Tests on the Watershed Transform on a mln::graph_image.
#include <vector>
Index: tests/core/image/image_if.cc
--- tests/core/image/image_if.cc (revision 0)
+++ tests/core/image/image_if.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/image_if.cc
+/*! \file tests/core/image/image_if.cc
*
* \brief Tests on mln::image_if.
*/
Index: tests/core/image/obased_rle_image.cc
--- tests/core/image/obased_rle_image.cc (revision 0)
+++ tests/core/image/obased_rle_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/obased_rle_image.cc
+/*! \file tests/core/image/obased_rle_image.cc
*
* \brief Test on mln::obased_rle_image.hh.
*/
Index: tests/core/image/plain.cc
--- tests/core/image/plain.cc (revision 0)
+++ tests/core/image/plain.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/plain.cc
+/*! \file tests/core/image/plain.cc
*
* \brief Test on mln::plain.
*/
Index: tests/core/image/value_enc_image.cc
--- tests/core/image/value_enc_image.cc (revision 0)
+++ tests/core/image/value_enc_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/rle_image.cc
+/*! \file tests/core/image/rle_image.cc
*
* \brief Test on mln::core::value_enc_image.hh.
*/
Index: tests/core/image/graph_image.cc
--- tests/core/image/graph_image.cc (revision 0)
+++ tests/core/image/graph_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/graph_image.cc
+/// \file tests/core/image/graph_image.cc
/// \brief Tests on mln::graph_image.
#include <vector>
Index: tests/core/image/image_if_interval.cc
--- tests/core/image/image_if_interval.cc (revision 0)
+++ tests/core/image/image_if_interval.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/image_if_interval.cc
+/*! \file tests/core/image/image_if_interval.cc
*
* \brief Tests on mln::image_if_interval.
*/
Index: tests/core/image/bgraph_image.cc
--- tests/core/image/bgraph_image.cc (revision 0)
+++ tests/core/image/bgraph_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/bgraph_image.cc
+/// \file tests/core/image/bgraph_image.cc
/// \brief Tests on mln::bgraph_image.
#include <vector>
Index: tests/core/image/t_image.cc
--- tests/core/image/t_image.cc (revision 0)
+++ tests/core/image/t_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/t_image.cc
+/*! \file tests/core/image/t_image.cc
*
* \brief Tests on mln::t_image.
*/
Index: tests/core/image/image1d.cc
--- tests/core/image/image1d.cc (revision 0)
+++ tests/core/image/image1d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/image1d.cc
+/*! \file tests/core/image/image1d.cc
*
* \brief Tests on mln::image1d.
*/
Index: tests/core/image/image2d.cc
--- tests/core/image/image2d.cc (revision 0)
+++ tests/core/image/image2d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/image2d.cc
+/*! \file tests/core/image/image2d.cc
*
* \brief Tests on mln::image2d.
*/
Index: tests/core/image/fi_adaptor.cc
--- tests/core/image/fi_adaptor.cc (revision 0)
+++ tests/core/image/fi_adaptor.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/fi_adaptor.cc
+/// \file tests/core/image/fi_adaptor.cc
/// \brief Test on mln::fi_adaptor.
#include <mln/core/image/fi_adaptor.hh>
Index: tests/core/image/image3d.cc
--- tests/core/image/image3d.cc (revision 0)
+++ tests/core/image/image3d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/image3d.cc
+/*! \file tests/core/image/image3d.cc
*
* \brief Tests on mln::image3d.
*/
Index: tests/core/image/complex_image.cc
--- tests/core/image/complex_image.cc (revision 0)
+++ tests/core/image/complex_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/complex_image.cc
+/// \file tests/core/image/complex_image.cc
/// \brief Test of mln::complex_image.
#include <iostream>
Index: tests/core/image/line_graph_image.cc
--- tests/core/image/line_graph_image.cc (revision 0)
+++ tests/core/image/line_graph_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/graph_image.cc
+/// \file tests/core/image/graph_image.cc
/// \brief Tests on mln::graph_image.
#include <vector>
Index: tests/core/image/mono_rle_image.cc
--- tests/core/image/mono_rle_image.cc (revision 0)
+++ tests/core/image/mono_rle_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/mono_rle_image.cc
+/*! \file tests/core/image/mono_rle_image.cc
*
* \brief Test on mln::labeling::blobs.
*/
Index: tests/core/image/image2d_h.cc
--- tests/core/image/image2d_h.cc (revision 0)
+++ tests/core/image/image2d_h.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/image2d_h.cc
+/*! \file tests/core/image/image2d_h.cc
*
* \brief Tests on mln::image2d_h
*/
Index: tests/core/image/safe_image.cc
--- tests/core/image/safe_image.cc (revision 0)
+++ tests/core/image/safe_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/safe_image.cc
+/*! \file tests/core/image/safe_image.cc
*
* \brief Tests on mln::safe_image.
*/
Index: tests/core/image/rle_image.cc
--- tests/core/image/rle_image.cc (revision 0)
+++ tests/core/image/rle_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/rle_image.cc
+/*! \file tests/core/image/rle_image.cc
*
* \brief Test on mln::rle_image.hh.
*/
Index: tests/core/image/hexa.cc
--- tests/core/image/hexa.cc (revision 0)
+++ tests/core/image/hexa.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/hexa.cc
+/*! \file tests/core/image/hexa.cc
*
* \brief Tests on mln::hexa
*/
Index: tests/core/image/Makefile.am
--- tests/core/image/Makefile.am (revision 0)
+++ tests/core/image/Makefile.am (revision 0)
@@ -0,0 +1,72 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+include $(top_srcdir)/milena/tests/tests.mk
+
+check_PROGRAMS = \
+ bgraph_image \
+ cast_image \
+ complex_image \
+ decorated_image \
+ graph_image \
+ graph_image_wst \
+ hexa \
+ image1d \
+ image2d \
+ image2d_h \
+ image3d \
+ image_if \
+ image_if_interval \
+ image_if_value \
+ interpolated \
+ line_graph_image \
+ mono_obased_rle_image \
+ mono_rle_image \
+ obased_rle_image \
+ plain \
+ rle_image \
+ safe_image \
+ sparse_image \
+ sub_image \
+ t_image \
+ tr_image \
+ translate_image \
+ value_enc_image
+
+bgraph_image_SOURCES = bgraph_image.cc
+cast_image_SOURCES = cast_image.cc
+complex_image_SOURCES = complex_image.cc
+decorated_image_SOURCES = decorated_image.cc
+graph_image_SOURCES = graph_image.cc
+graph_image_wst_SOURCES = graph_image_wst.cc
+hexa_SOURCES = hexa.cc
+image1d_SOURCES = image1d.cc
+image2d_SOURCES = image2d.cc
+image2d_h_SOURCES = image2d_h.cc
+image3d_SOURCES = image3d.cc
+image_if_SOURCES = image_if.cc
+image_if_interval_SOURCES = image_if_interval.cc
+image_if_value_SOURCES = image_if_value.cc
+interpolated_SOURCES = interpolated.cc
+line_graph_image_SOURCES = line_graph_image.cc
+mono_obased_rle_image_SOURCES = mono_obased_rle_image.cc
+mono_rle_image_SOURCES = mono_rle_image.cc
+obased_rle_image_SOURCES = obased_rle_image.cc
+plain_SOURCES = plain.cc
+rle_image_SOURCES = rle_image.cc
+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
+translate_image_SOURCES = translate_image.cc
+value_enc_image_SOURCES = value_enc_image.cc
+
+# Tests depending on the FreeImagePlus library.
+if FREEIMAGEPLUS
+ check_PROGRAMS += fi_adaptor
+ fi_adaptor_SOURCES = fi_adaptor.cc
+ fi_adaptor_CPPFLAGS = $(AM_CPPFLAGS) $(FREEIMAGEPLUS_CPPFLAGS)
+ fi_adaptor_LDFLAGS = $(AM_LDFLAGS) $(FREEIMAGEPLUS_LDFLAGS)
+endif
+
+TESTS = $(check_PROGRAMS)
Index: tests/core/image/mono_obased_rle_image.cc
--- tests/core/image/mono_obased_rle_image.cc (revision 0)
+++ tests/core/image/mono_obased_rle_image.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/mono_obased_rle_image.cc
+/*! \file tests/core/image/mono_obased_rle_image.cc
*
* \brief Test on mln::mono_obased_rle_image.hh.
*/
Index: tests/core/image/interpolated.cc
--- tests/core/image/interpolated.cc (revision 0)
+++ tests/core/image/interpolated.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/interpolated.cc
+/*! \file tests/core/image/interpolated.cc
*
* \brief Tests on mln::interpolated.
*/
Index: tests/core/site_set/p_array.cc
--- tests/core/site_set/p_array.cc (revision 0)
+++ tests/core/site_set/p_array.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/p_array.cc
+/*! \file tests/core/site_set/p_array.cc
*
* \brief Tests on mln::p_array.
*/
Index: tests/core/site_set/p_queue_fast.cc
--- tests/core/site_set/p_queue_fast.cc (revision 0)
+++ tests/core/site_set/p_queue_fast.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/p_queue_fast.cc
+/*! \file tests/core/site_set/p_queue_fast.cc
*
* \brief Tests on mln::p_queue_fast.
*/
Index: tests/core/site_set/p_priority_queue_fast.cc
--- tests/core/site_set/p_priority_queue_fast.cc (revision 0)
+++ tests/core/site_set/p_priority_queue_fast.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/p_priority_fast.cc
+/*! \file tests/core/site_set/p_priority_fast.cc
*
* \brief Tests on mln::p_priority_fast.
*/
Index: tests/core/site_set/p_bgraph.cc
--- tests/core/site_set/p_bgraph.cc (revision 0)
+++ tests/core/site_set/p_bgraph.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/p_bgraph.cc
+/// \file tests/core/site_set/p_bgraph.cc
/// \brief Tests on mln::p_bgraph (the psite based on boost-graph).
#include <mln/core/site_set/p_bgraph.hh>
Index: tests/core/site_set/p_queue.cc
--- tests/core/site_set/p_queue.cc (revision 0)
+++ tests/core/site_set/p_queue.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/p_queue.cc
+/*! \file tests/core/site_set/p_queue.cc
*
* \brief Tests on mln::p_queue.
*/
Index: tests/core/site_set/p_priority_queue.cc
--- tests/core/site_set/p_priority_queue.cc (revision 0)
+++ tests/core/site_set/p_priority_queue.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/p_priority.cc
+/*! \file tests/core/site_set/p_priority.cc
*
* \brief Tests on mln::p_priority.
*/
Index: tests/core/site_set/Makefile.am
--- tests/core/site_set/Makefile.am (revision 0)
+++ tests/core/site_set/Makefile.am (revision 0)
@@ -0,0 +1,32 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+include $(top_srcdir)/milena/tests/tests.mk
+
+check_PROGRAMS = \
+ p_array \
+ p_bgraph \
+ p_image2d \
+ p_priority_queue \
+ p_priority_queue_fast \
+ p_priority_queue_fast_with_array \
+ p_queue \
+ p_queue_fast \
+ p_runs \
+ p_set \
+ pset_array \
+ pset_if
+
+p_array_SOURCES = p_array.cc
+p_bgraph_SOURCES = p_bgraph.cc
+p_image2d_SOURCES = p_image2d.cc
+p_priority_queue_SOURCES = p_priority_queue.cc
+p_priority_queue_fast_SOURCES = p_priority_queue_fast.cc
+p_priority_queue_fast_with_array_SOURCES = p_priority_queue_fast.cc
+p_queue_SOURCES = p_priority_queue_fast.cc
+p_queue_fast_SOURCES = p_priority_queue_fast.cc
+p_runs_SOURCES = p_runs.cc
+p_set_SOURCES = p_set.cc
+pset_array_SOURCES = pset_array.cc
+pset_if_SOURCES = pset_if.cc
+
+TESTS = $(check_PROGRAMS)
Index: tests/core/site_set/p_runs.cc
--- tests/core/site_set/p_runs.cc (revision 0)
+++ tests/core/site_set/p_runs.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/p_runs.cc
+/*! \file tests/core/site_set/p_runs.cc
*
* \brief Test on mln::p_runs_ and related tools.
*/
Index: tests/core/site_set/p_image2d.cc
--- tests/core/site_set/p_image2d.cc (revision 0)
+++ tests/core/site_set/p_image2d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/p_image2d.cc
+/*! \file tests/core/site_set/p_image2d.cc
*
* \brief Tests on mln::p_image2d.
*/
Index: tests/core/site_set/pset_if.cc
--- tests/core/site_set/pset_if.cc (revision 0)
+++ tests/core/site_set/pset_if.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/p_if.cc
+/*! \file tests/core/site_set/p_if.cc
*
* \brief Tests on mln::p_if.
*/
Index: tests/core/site_set/p_priority_queue_fast_with_array.cc
--- tests/core/site_set/p_priority_queue_fast_with_array.cc (revision 0)
+++ tests/core/site_set/p_priority_queue_fast_with_array.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/p_priority_fast_with_array.cc
+/*! \file tests/core/site_set/p_priority_fast_with_array.cc
*
* \brief Tests on mln::p_priority_fast_with_array.
*/
Index: tests/core/site_set/p_set.cc
--- tests/core/site_set/p_set.cc (revision 0)
+++ tests/core/site_set/p_set.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/p_set.cc
+/*! \file tests/core/site_set/p_set.cc
*
* \brief Tests on mln::p_set.
*/
Index: tests/core/other/neighb.cc
--- tests/core/other/neighb.cc (revision 0)
+++ tests/core/other/neighb.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/neighb.cc
+/// \file tests/core/other/neighb.cc
/// \brief Tests on mln::neighb<D> specializations.
#include <mln/core/alias/neighb1d.hh>
Index: tests/core/other/graph_elt_window.cc
--- tests/core/other/graph_elt_window.cc (revision 0)
+++ tests/core/other/graph_elt_window.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/graph_elt_window.cc
+/// \file tests/core/other/graph_elt_window.cc
/// \brief Tests on mln::graph_elt_window.
#include <iostream>
Index: tests/core/other/graph_elt_neighborhood.cc
--- tests/core/other/graph_elt_neighborhood.cc (revision 0)
+++ tests/core/other/graph_elt_neighborhood.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/graph_elt_neighborhood.cc
+/// \file tests/core/other/graph_elt_neighborhood.cc
/// \brief Tests on mln::graph_elt_neighborhood.
#include <iostream>
Index: tests/core/other/point_set_compatibility.cc
--- tests/core/other/point_set_compatibility.cc (revision 0)
+++ tests/core/other/point_set_compatibility.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/point_set_compatibility.cc
+/// \file tests/core/other/point_set_compatibility.cc
/// \brief Tests on the compatibility of some point sites with some
/// point sets (and their iterators).
Index: tests/core/other/pixter1d.cc
--- tests/core/other/pixter1d.cc (revision 0)
+++ tests/core/other/pixter1d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/pixter1d.cc
+/// \file tests/core/other/pixter1d.cc
/// \brief Tests on 1-D image pixters.
#include <mln/core/image/image1d.hh>
Index: tests/core/other/pixter2d.cc
--- tests/core/other/pixter2d.cc (revision 0)
+++ tests/core/other/pixter2d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/pixter2d.cc
+/// \file tests/core/other/pixter2d.cc
/// \brief Tests on 2-D image pixters.
#include <mln/core/image/image2d.hh>
Index: tests/core/other/pixter3d.cc
--- tests/core/other/pixter3d.cc (revision 0)
+++ tests/core/other/pixter3d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/pixter3d.cc
+/// \file tests/core/other/pixter3d.cc
/// \brief Tests on 3-D image pixters.
#include <mln/core/image/image3d.hh>
Index: tests/core/other/line_graph_elt_window.cc
--- tests/core/other/line_graph_elt_window.cc (revision 0)
+++ tests/core/other/line_graph_elt_window.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/line_graph_elt_window.cc
+/// \file tests/core/other/line_graph_elt_window.cc
/// \brief Tests on mln::line_graph_elt_window.
#include <vector>
Index: tests/core/other/line_graph_elt_neighborhood.cc
--- tests/core/other/line_graph_elt_neighborhood.cc (revision 0)
+++ tests/core/other/line_graph_elt_neighborhood.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/line_graph_elt_neighborhood.cc
+/// \file tests/core/other/line_graph_elt_neighborhood.cc
/// \brief Tests on mln::line_graph_elt_neighborhood.
#include <vector>
Index: tests/core/other/complex.cc
--- tests/core/other/complex.cc (revision 0)
+++ tests/core/other/complex.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/complex.cc
+/// \file tests/core/other/complex.cc
/// \brief Test of mln::complex.
#include <iostream>
Index: tests/core/other/category.cc
--- tests/core/other/category.cc (revision 0)
+++ tests/core/other/category.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/category.cc
+/*! \file tests/core/other/category.cc
*
* \brief Tests on mln::category.
*/
Index: tests/core/other/pixel.cc
--- tests/core/other/pixel.cc (revision 0)
+++ tests/core/other/pixel.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/pixel.cc
+/*! \file tests/core/other/pixel.cc
*
* \brief Tests on mln::pixel.
*/
Index: tests/core/other/pixter1d_more.cc
--- tests/core/other/pixter1d_more.cc (revision 0)
+++ tests/core/other/pixter1d_more.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/pixter1d.cc
+/*! \file tests/core/other/pixter1d.cc
*
* \brief Tests on mln::fwd_pixter1d.
*/
Index: tests/core/other/pixter2d_more.cc
--- tests/core/other/pixter2d_more.cc (revision 0)
+++ tests/core/other/pixter2d_more.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/pixter2d.cc
+/*! \file tests/core/other/pixter2d.cc
*
* \brief Tests on mln::fwd_pixter2d.
*/
Index: tests/core/other/pixter3d_more.cc
--- tests/core/other/pixter3d_more.cc (revision 0)
+++ tests/core/other/pixter3d_more.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/pixter3d.cc
+/*! \file tests/core/other/pixter3d.cc
*
* \brief Tests on mln::fwd_pixter3d.
*/
Index: tests/core/other/Makefile.am
--- tests/core/other/Makefile.am (revision 0)
+++ tests/core/other/Makefile.am (revision 0)
@@ -0,0 +1,46 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+include $(top_srcdir)/milena/tests/tests.mk
+
+check_PROGRAMS = \
+ category \
+ clock_neighb2d \
+ clock_test \
+ complex \
+ dpoints_pixter \
+ graph_elt_neighborhood \
+ graph_elt_window \
+ line_graph_elt_neighborhood \
+ line_graph_elt_window \
+ line_piter \
+ neighb \
+ pixel \
+ pixter1d \
+ pixter1d_more \
+ pixter2d \
+ pixter2d_more \
+ pixter3d \
+ pixter3d_more \
+ point_set_compatibility
+
+category_SOURCES = category.cc
+clock_neighb2d_SOURCES = clock_neighb2d.cc
+clock_test_SOURCES = clock_test.cc
+complex_SOURCES = complex.cc
+dpoints_pixter_SOURCES = dpoints_pixter.cc
+graph_elt_neighborhood_SOURCES = graph_elt_neighborhood.cc
+graph_elt_window_SOURCES = graph_elt_window.cc
+line_graph_elt_neighborhood_SOURCES = line_graph_elt_neighborhood.cc
+line_graph_elt_window_SOURCES = line_graph_elt_window.cc
+line_piter_SOURCES = line_piter.cc
+neighb_SOURCES = neighb.cc
+pixel_SOURCES = pixel.cc
+pixter1d_SOURCES = pixter1d.cc
+pixter1d_more_SOURCES = pixter1d_more.cc
+pixter2d_SOURCES = pixter2d.cc
+pixter2d_more_SOURCES = pixter2d_more.cc
+pixter3d_SOURCES = pixter3d.cc
+pixter3d_more_SOURCES = pixter3d_more.cc
+point_set_compatibility_SOURCES = point_set_compatibility.cc
+
+TESTS = $(check_PROGRAMS)
Index: tests/core/other/line_piter.cc
--- tests/core/other/line_piter.cc (revision 0)
+++ tests/core/other/line_piter.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/line_piter.cc
+/*! \file tests/core/other/line_piter.cc
*
* \brief Tests on mln::line_piter.
*/
Index: tests/core/routine/clone.cc
--- tests/core/routine/clone.cc (revision 0)
+++ tests/core/routine/clone.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/clone.cc
+/*! \file tests/core/routine/clone.cc
*
* \brief Tests on mln::clone.
*/
Index: tests/core/routine/initialize.cc
--- tests/core/routine/initialize.cc (revision 0)
+++ tests/core/routine/initialize.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/initialize.cc
+/*! \file tests/core/routine/initialize.cc
*
* \brief Tests on mln::initialize.
*/
Index: tests/core/routine/exact.cc
--- tests/core/routine/exact.cc (revision 0)
+++ tests/core/routine/exact.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/exact.cc
+/*! \file tests/core/routine/exact.cc
*
* \brief Tests on mln::exact.
*/
Index: tests/core/routine/Makefile.am
--- tests/core/routine/Makefile.am (revision 0)
+++ tests/core/routine/Makefile.am (revision 0)
@@ -0,0 +1,14 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+include $(top_srcdir)/milena/tests/tests.mk
+
+check_PROGRAMS = \
+ clone \
+ exact \
+ initialize
+
+clone_SOURCES = clone.cc
+exact_SOURCES = exact.cc
+initialize_SOURCES = initialize.cc
+
+TESTS = $(check_PROGRAMS)
Index: tests/core/alias/w_window1d_int.cc
--- tests/core/alias/w_window1d_int.cc (revision 0)
+++ tests/core/alias/w_window1d_int.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/// \file tests/core/w_window1d_int.cc
+/// \file tests/core/alias/w_window1d_int.cc
/// \brief Tests on mln::w_window1d_int.
#include <mln/core/alias/w_window1d_int.hh>
Index: tests/core/alias/window1d.cc
--- tests/core/alias/window1d.cc (revision 0)
+++ tests/core/alias/window1d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/window1d.cc
+/*! \file tests/core/alias/window1d.cc
*
* \brief Tests on mln::window1d.
*/
Index: tests/core/alias/w_window2d_int.cc
--- tests/core/alias/w_window2d_int.cc (revision 0)
+++ tests/core/alias/w_window2d_int.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/w_window2d_int.cc
+/*! \file tests/core/alias/w_window2d_int.cc
*
* \brief Tests on mln::w_window2d_int.
*/
Index: tests/core/alias/window2d.cc
--- tests/core/alias/window2d.cc (revision 0)
+++ tests/core/alias/window2d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/window2d.cc
+/*! \file tests/core/alias/window2d.cc
*
* \brief Tests on mln::window2d.
*/
Index: tests/core/alias/w_window3d_int.cc
--- tests/core/alias/w_window3d_int.cc (revision 0)
+++ tests/core/alias/w_window3d_int.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/w_window3d_int.cc
+/*! \file tests/core/alias/w_window3d_int.cc
*
* \brief Tests on mln::w_window3d_int.
*/
Index: tests/core/alias/window3d.cc
--- tests/core/alias/window3d.cc (revision 0)
+++ tests/core/alias/window3d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/window3d.cc
+/*! \file tests/core/alias/window3d.cc
*
* \brief Tests on mln::window3d.
*/
Index: tests/core/alias/box1d.cc
--- tests/core/alias/box1d.cc (revision 0)
+++ tests/core/alias/box1d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/box1d.cc
+/*! \file tests/core/alias/box1d.cc
*
* \brief Tests on mln::box1d.
*/
Index: tests/core/alias/point1d.cc
--- tests/core/alias/point1d.cc (revision 0)
+++ tests/core/alias/point1d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/point1d.cc
+/*! \file tests/core/alias/point1d.cc
*
* \brief Tests on mln::point1d.
*/
Index: tests/core/alias/box2d.cc
--- tests/core/alias/box2d.cc (revision 0)
+++ tests/core/alias/box2d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/box2d.cc
+/*! \file tests/core/alias/box2d.cc
*
* \brief Tests on mln::box2d.
*/
Index: tests/core/alias/point2d.cc
--- tests/core/alias/point2d.cc (revision 0)
+++ tests/core/alias/point2d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/point2d.cc
+/*! \file tests/core/alias/point2d.cc
*
* \brief Tests on mln::point2d.
*/
Index: tests/core/alias/box3d.cc
--- tests/core/alias/box3d.cc (revision 0)
+++ tests/core/alias/box3d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/box3d.cc
+/*! \file tests/core/alias/box3d.cc
*
* \brief Tests on mln::box3d.
*/
Index: tests/core/alias/point3d.cc
--- tests/core/alias/point3d.cc (revision 0)
+++ tests/core/alias/point3d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/point3d.cc
+/*! \file tests/core/alias/point3d.cc
*
* \brief Tests on mln::point3d.
*/
Index: tests/core/alias/dpoint1d.cc
--- tests/core/alias/dpoint1d.cc (revision 0)
+++ tests/core/alias/dpoint1d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/dpoint1d.cc
+/*! \file tests/core/alias/dpoint1d.cc
*
* \brief Tests on mln::dpoint1d.
*/
Index: tests/core/alias/dpoint2d.cc
--- tests/core/alias/dpoint2d.cc (revision 0)
+++ tests/core/alias/dpoint2d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/dpoint2d.cc
+/*! \file tests/core/alias/dpoint2d.cc
*
* \brief Tests on mln::dpoint2d.
*/
Index: tests/core/alias/dpoint3d.cc
--- tests/core/alias/dpoint3d.cc (revision 0)
+++ tests/core/alias/dpoint3d.cc (working copy)
@@ -25,7 +25,7 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/dpoint3d.cc
+/*! \file tests/core/alias/dpoint3d.cc
*
* \brief Tests on mln::dpoint3d.
*/
Index: tests/core/alias/Makefile.am
--- tests/core/alias/Makefile.am (revision 0)
+++ tests/core/alias/Makefile.am (revision 0)
@@ -0,0 +1,38 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+include $(top_srcdir)/milena/tests/tests.mk
+
+check_PROGRAMS = \
+box1d \
+box2d \
+box3d \
+dpoint1d \
+dpoint2d \
+dpoint3d \
+point1d \
+point2d \
+point3d \
+w_window1d_int \
+w_window2d_int \
+w_window3d_int \
+window1d \
+window2d \
+window3d
+
+box1d_SOURCES = box1d.cc
+box2d_SOURCES = box2d.cc
+box3d_SOURCES = box3d.cc
+dpoint1d_SOURCES = dpoint1d.cc
+dpoint2d_SOURCES = dpoint2d.cc
+dpoint3d_SOURCES = dpoint3d.cc
+point1d_SOURCES = point1d.cc
+point2d_SOURCES = point2d.cc
+point3d_SOURCES = point3d.cc
+w_window1d_int_SOURCES = w_window1d_int.cc
+w_window2d_int_SOURCES = w_window2d_int.cc
+w_window3d_int_SOURCES = w_window3d_int.cc
+window1d_SOURCES = window1d.cc
+window2d_SOURCES = window2d.cc
+window3d_SOURCES = window3d.cc
+
+TESTS = $(check_PROGRAMS)
Index: tests/core/Makefile.am
--- tests/core/Makefile.am (revision 2179)
+++ tests/core/Makefile.am (working copy)
@@ -2,189 +2,9 @@
include $(top_srcdir)/milena/tests/tests.mk
-check_PROGRAMS = \
- box1d \
- box2d \
- box3d \
- \
- cast_image \
- category \
- clock_neighb2d \
- clock_test \
- clone \
- complex \
- complex_image \
- \
- decorated_image \
- dpoint1d \
- dpoint2d \
- dpoint3d \
- dpoints_pixter \
- \
- exact \
- \
- h_vec \
- hexa \
- \
- image1d \
- image2d \
- image2d_h \
- image3d \
- image_if \
- image_if_interval \
- image_if_value \
- initialize \
- interpolated \
- \
- graph_elt_neighborhood \
- graph_elt_window \
- graph_image \
- \
- line_graph_elt_neighborhood \
- line_graph_elt_window \
- line_graph_image \
- line_piter \
- \
- mono_obased_rle_image \
- mono_rle_image \
- \
- neighb \
- \
- obased_rle_image \
- \
- p_priority_queue \
- p_priority_queue_fast \
- p_priority_queue_fast_with_array \
- p_queue \
- p_queue_fast \
- p_runs \
- p_set \
- pixel \
- pixter1d \
- pixter1d_more \
- pixter2d \
- pixter2d_more \
- pixter3d \
- pixter3d_more \
- plain \
- point1d \
- point2d \
- point3d \
- point_set_compatibility \
- pset_array \
- pset_if \
- \
- rle_image \
- \
- safe_image \
- sparse_image \
- sub_image \
- \
- t_image \
- tr_image \
- translate_image \
- \
- window1d \
- window2d \
- window3d \
- w_window1d_int \
- w_window2d_int \
- w_window3d_int
-
-box1d_SOURCES = box1d.cc
-box2d_SOURCES = box2d.cc
-box3d_SOURCES = box3d.cc
-
-cast_image_SOURCES = cast_image.cc
-category_SOURCES = category.cc
-clock_neighb2d_SOURCES = clock_neighb2d.cc
-clock_test_SOURCES = clock_test.cc
-clone_SOURCES = clone.cc
-complex_SOURCES = complex.cc
-complex_image_SOURCES = complex_image.cc
-
-decorated_image_SOURCES = decorated_image.cc
-dpoint1d_SOURCES = dpoint1d.cc
-dpoint2d_SOURCES = dpoint2d.cc
-dpoint3d_SOURCES = dpoint3d.cc
-dpoints_pixter_SOURCES = dpoints_pixter.cc
-
-exact_SOURCES = exact.cc
-
-h_vec_SOURCES = h_vec.cc
-hexa_SOURCES = hexa.cc
-
-image1d_SOURCES = image1d.cc
-image2d_SOURCES = image2d.cc
-image2d_h_SOURCES = image2d_h.cc
-image3d_SOURCES = image3d.cc
-image_if_SOURCES = image_if.cc
-image_if_interval_SOURCES = image_if_interval.cc
-image_if_value_SOURCES = image_if_value.cc
-initialize_SOURCES = initialize.cc
-interpolated_SOURCES = interpolated.cc
-
-graph_elt_neighborhood_SOURCES = graph_elt_neighborhood.cc
-graph_elt_window_SOURCES = graph_elt_window.cc
-graph_image_SOURCES = graph_image.cc
-
-line_graph_elt_neighborhood_SOURCES = line_graph_elt_neighborhood.cc
-line_graph_elt_window_SOURCES = line_graph_elt_window.cc
-line_graph_image_SOURCES = line_graph_image.cc
-line_piter_SOURCES = line_piter.cc
-
-mono_obased_rle_image_SOURCES = mono_obased_rle_image.cc
-mono_rle_image_SOURCES = mono_rle_image.cc
-
-neighb_SOURCES = neighb.cc
-
-obased_rle_image_SOURCES = obased_rle_image.cc
-
-p_priority_queue_SOURCES = p_priority_queue.cc
-p_priority_queue_fast_SOURCES = p_priority_queue_fast.cc
-p_priority_queue_fast_with_array_SOURCES = p_priority_queue_fast.cc
-p_queue_SOURCES = p_priority_queue_fast.cc
-p_queue_fast_SOURCES = p_priority_queue_fast.cc
-p_runs_SOURCES = p_runs.cc
-p_set_SOURCES = p_set.cc
-pixel_SOURCES = pixel.cc
-pixter1d_SOURCES = pixter1d.cc
-pixter1d_more_SOURCES = pixter1d_more.cc
-pixter2d_SOURCES = pixter2d.cc
-pixter2d_more_SOURCES = pixter2d_more.cc
-pixter3d_SOURCES = pixter3d.cc
-pixter3d_more_SOURCES = pixter3d_more.cc
-plain_SOURCES = plain.cc
-point1d_SOURCES = point1d.cc
-point2d_SOURCES = point2d.cc
-point3d_SOURCES = point3d.cc
-point_set_compatibility_SOURCES = point_set_compatibility.cc
-pset_array_SOURCES = pset_array.cc
-pset_if_SOURCES = pset_if.cc
-
-rle_image_SOURCES = rle_image.cc
-
-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
-translate_image_SOURCES = translate_image.cc
-
-window1d_SOURCES = window1d.cc
-window2d_SOURCES = window2d.cc
-window3d_SOURCES = window3d.cc
-w_window1d_int_SOURCES = w_window1d_int.cc
-w_window2d_int_SOURCES = w_window2d_int.cc
-w_window3d_int_SOURCES = w_window3d_int.cc
-
-# Tests depending on the FreeImagePlus library.
-if FREEIMAGEPLUS
- check_PROGRAMS += fi_adaptor
- fi_adaptor_SOURCES = fi_adaptor.cc
- fi_adaptor_CPPFLAGS = $(AM_CPPFLAGS) $(FREEIMAGEPLUS_CPPFLAGS)
- fi_adaptor_LDFLAGS = $(AM_LDFLAGS) $(FREEIMAGEPLUS_LDFLAGS)
-endif
-
-TESTS = $(check_PROGRAMS)
+SUBDIRS = \
+ alias \
+ image \
+ other \
+ routine \
+ site_set
Index: tests/algebra/Makefile.am
--- tests/algebra/Makefile.am (revision 2179)
+++ tests/algebra/Makefile.am (working copy)
@@ -3,11 +3,13 @@
include $(top_srcdir)/milena/tests/tests.mk
check_PROGRAMS = \
+ h_vec \
mat \
mat2 \
vec \
vec2
+h_vec_SOURCES = h_vec.cc
mat_SOURCES = mat.cc
mat2_SOURCES = mat2.cc
vec_SOURCES = vec.cc
1
0
https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008/milena
Index: ChangeLog
from Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
Remove two useless files from mln/core/.
* mln/core/dp_array.hh: Remove.
* sandbox/garrigues/fllt/fllt_simple.cc
(dp_array): Replace by util::array.
* mln/core/point_pair.hh: Remove. This class is only used by
a single file (sandbox/pellegrin/set/core/p_line_graph.hh).
The latter file is a sandbox try and is now obsolete.
fllt_simple.cc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Index: sandbox/garrigues/fllt/fllt_simple.cc
--- sandbox/garrigues/fllt/fllt_simple.cc (revision 2178)
+++ sandbox/garrigues/fllt/fllt_simple.cc (working copy)
@@ -38,7 +38,7 @@
#include <mln/core/image/cast_image.hh>
#include <mln/core/site_set/p_queue_fast.hh>
-#include <mln/core/dp_array.hh>
+#include <mln/util/array.hh>
#include <mln/value/int_u8.hh>
@@ -149,9 +149,9 @@
{
// C6 neigboohood.
//static std::vector<dpoint2d> nbhs[2];
- static dp_array<dpoint2d> nbhs[2];
+ static util::array<dpoint2d> nbhs[2];
- static inline const dp_array<dpoint2d>& get(point2d p)
+ static inline const util::array<dpoint2d>& get(point2d p)
{
static bool toto = false;
@@ -176,7 +176,7 @@
return nbhs[abs(p[1] % 2)];
}
};
- dp_array<dpoint2d> c6_neighb::nbhs[2];
+ util::array<dpoint2d> c6_neighb::nbhs[2];
struct c6_interpixel
1
0