Index: ChangeLog
from Damien Thivolle <damien(a)lrde.epita.fr>
* configure.ac: Add support for ruby-1.7, ruby-1.8.
Index: olena/ChangeLog
from Damien Thivolle <damien(a)lrde.epita.fr>
* olena/oln/core/point2d.hh: Add header include.
* olena/oln/core/point2d.hxx: Likewise.
* olena/oln/core/point3d.hh: Likewise.
* olena/oln/core/point3d.hxx: Likewise.
Index: tools/swilena/ChangeLog
-2004-10-04 Niels Van Vliet <niels(a)lrde.epita.fr>
+2004-04-11 Damien Thivolle <damien(a)lrde.epita.fr>
- * tools/swilena/meta/swilena_structelt.i: Fix a bug.
- * tools/swilena/doc/swilena.texi: Fix a bug.
- * tools/swilena/python/Makefile.am: Add clean_local.
+ * swilena/expand.sh: Split morpho modules to make the code compile
+ faster.
+ * swilena/generate_morpho_instantiations.py: Likewise.
+ * swilena/meta/swilena_ntg.i: Add `do_nothing' argument to empty SWIG
+ macros since the SWIG preprocessor does not support them.
+ * swilena/meta/swilena_morpho.i: Likewise.
+
+2004-04-10 Niels Van Vliet <niels(a)lrde.epita.fr>
+
+ * swilena/meta/swilena_structelt.i: Fix a bug.
+ * swilena/doc/swilena.texi: Fix a bug.
+ * swilena/python/Makefile.am: Add clean_local.
2004-01-26 Astrid Wang <astrid(a)lrde.epita.fr>
Index: configure.ac
--- configure.ac Fri, 09 Apr 2004 18:30:54 +0200 thivol_d (oln/3_configure.
1.47.1.1.1.1.1.4.1.15.1.16.1.1 600)
+++ configure.ac Fri, 09 Apr 2004 19:14:02 +0200 thivol_d (oln/3_configure.
1.47.1.1.1.1.1.4.1.15.1.16.1.2 600)
@@ -416,7 +416,7 @@
AC_ARG_VAR([RUBY_CPPFLAGS], [Path to ruby.h])
AC_ARG_WITH([ruby-includedir], [Include path for ruby.h],
[RUBY_CPPFLAGS="-I$withval"],
- [RUBY_CPPFLAGS="-I/usr/lib/ruby/1.6/i386-linux"])
+ [RUBY_CPPFLAGS="-I/usr/lib/ruby/1.6/i386-linux
-I/usr/lib/ruby/1.7/i386-linux -I/usr/lib/ruby/1.8/i386-linux"])
CPPFLAGS="$CPPFLAGS $RUBY_CPPFLAGS"
AC_CHECK_HEADERS([ruby.h],,
Index: olena/oln/core/point2d.hh
--- olena/oln/core/point2d.hh Mon, 29 Mar 2004 09:26:50 +0200 odou_s (oln/c/30_point2d.hh
1.14 600)
+++ olena/oln/core/point2d.hh Sun, 11 Apr 2004 19:09:24 +0200 thivol_d
(oln/c/30_point2d.hh 1.15 600)
@@ -29,7 +29,7 @@
# define OLENA_CORE_POINT2D_HH
# include <oln/core/coord.hh>
-# include <oln/core/abstract/point.hh>
+# include <oln/core/point1d.hh>
# include <iostream>
namespace oln {
Index: olena/oln/core/point2d.hxx
--- olena/oln/core/point2d.hxx Mon, 29 Mar 2004 09:26:50 +0200 odou_s (oln/c/29_point2d.hx
1.7 600)
+++ olena/oln/core/point2d.hxx Sun, 11 Apr 2004 19:16:23 +0200 thivol_d
(oln/c/29_point2d.hx 1.8 600)
@@ -28,6 +28,7 @@
#ifndef OLENA_CORE_POINT2D_HXX
# define OLENA_CORE_POINT2D_HXX
+# include <oln/core/point1d.hh>
# include <oln/core/dpoint2d.hh>
# include <iostream>
Index: olena/oln/core/point3d.hh
--- olena/oln/core/point3d.hh Mon, 29 Mar 2004 09:26:50 +0200 odou_s (oln/c/28_point3d.hh
1.16 600)
+++ olena/oln/core/point3d.hh Sun, 11 Apr 2004 19:09:05 +0200 thivol_d
(oln/c/28_point3d.hh 1.17 600)
@@ -30,7 +30,7 @@
# include <ntg/core/predecls.hh>
# include <oln/core/coord.hh>
-# include <oln/core/abstract/point.hh>
+# include <oln/core/point2d.hh>
# include <iostream>
Index: olena/oln/core/point3d.hxx
--- olena/oln/core/point3d.hxx Mon, 29 Mar 2004 09:26:50 +0200 odou_s (oln/c/27_point3d.hx
1.6 600)
+++ olena/oln/core/point3d.hxx Sun, 11 Apr 2004 19:16:31 +0200 thivol_d
(oln/c/27_point3d.hx 1.7 600)
@@ -28,6 +28,7 @@
#ifndef OLENA_CORE_POINT3D_HXX
# define OLENA_CORE_POINT3D_HXX
+# include <oln/core/point2d.hh>
# include <oln/core/dpoint3d.hh>
# include <iostream>
Index: tools/swilena/expand.sh
--- tools/swilena/expand.sh Mon, 10 Nov 2003 14:09:27 +0100 burrus_n (oln/s/25_expand.sh
1.12 700)
+++ tools/swilena/expand.sh Sun, 11 Apr 2004 17:54:54 +0200 thivol_d (oln/s/25_expand.sh
1.13 700)
@@ -45,8 +45,12 @@
make_image(image${dim}d_float, $dim, ntg_float, ntg_float_value)
EOF
+ TYPES="ntg_bin ntg_int_u8 ntg_int_u32 ntg_int_s8 ntg_int_s32 ntg_float"
+
## Morpho algorithms
- MODULES="$MODULES morpho${dim}d"
+ for types in $TYPES; do
+ MODULES="$MODULES morpho${dim}d_${types}"
+ done
$SWILENA/generate_morpho_instantiations.py $SWILENA/src
## Arith
@@ -114,7 +118,7 @@
sdir=meta
fi
echo "swilena_${mod}_wrap.cxx swilena_${mod}.py:
\$(srcdir)/../$sdir/swilena_${mod}.i"
- echo -e "\t\$(SWIG) -c -c++ -python -I\$(srcdir)/../src -I\$(srcdir)/../meta
\$(CPPFLAGS) -o swilena_${mod}_wrap.cxx \$(srcdir)/../$sdir/swilena_${mod}.i"
+ echo -e "\t\$(SWIG) -noruntime -c++ -python -I\$(srcdir)/../src
-I\$(srcdir)/../meta \$(CPPFLAGS) -o swilena_${mod}_wrap.cxx
\$(srcdir)/../$sdir/swilena_${mod}.i"
echo
done
}
Index: tools/swilena/meta/swilena_ntg.i
--- tools/swilena/meta/swilena_ntg.i Mon, 10 Nov 2003 11:19:49 +0100 burrus_n
(oln/s/33_swilena_nt 1.7 600)
+++ tools/swilena/meta/swilena_ntg.i Sun, 11 Apr 2004 19:10:54 +0200 thivol_d
(oln/s/33_swilena_nt 1.8 600)
@@ -157,7 +157,7 @@
};
%enddef
-%define decl_complex()
+%define decl_complex(do_nothing)
template<typename repr, typename T>
class cplx
{
@@ -185,7 +185,8 @@
};
%enddef
-%define decl_ntg()
+// Swig preprocessor does not understand empty call to macros.
+%define decl_ntg(do_nothing)
%include <ntg/vect/cplx_representation.hh>
%include <ntg/core/predecls.hh>
%{
@@ -201,12 +202,12 @@
decl_scalar_class(ntg, int_s, long)
decl_bin_class(ntg, bin, bool)
- decl_complex()
+ decl_complex(do_nothing)
}
%enddef
-decl_ntg()
+decl_ntg(do_nothing)
/*
Macro are defined for every type and should be used in all modules
Index: tools/swilena/meta/swilena_morpho.i
--- tools/swilena/meta/swilena_morpho.i Sat, 27 Sep 2003 19:02:23 +0200 burrus_n
(oln/s/34_swilena_mo 1.2 600)
+++ tools/swilena/meta/swilena_morpho.i Sun, 11 Apr 2004 16:03:09 +0200 thivol_d
(oln/s/34_swilena_mo 1.3 600)
@@ -182,7 +182,7 @@
Declare generic functions for classical algorithms
*/
-%define decl_classical_family()
+%define decl_classical_family(do_nothing)
decl_morpho_2(<oln/morpho/erosion.hh>, erosion, 1)
decl_morpho_2(<oln/morpho/dilation.hh>, dilation, 1)
decl_morpho_2(<oln/morpho/opening.hh>, opening, 1)
@@ -237,7 +237,7 @@
| Extrema killer family |
`----------------------*/
-%define decl_extrema_killer_family()
+%define decl_extrema_killer_family(do_nothing)
decl_morpho_extrema_killer(<oln/morpho/extrema_killer.hh>,
sure_maxima_killer)
decl_morpho_extrema_killer(<oln/morpho/extrema_killer.hh>,
@@ -252,12 +252,12 @@
| Watershed family |
`-----------------*/
-%define decl_watershed_family()
+%define decl_watershed_family(do_nothing)
decl_morpho_watershed(watershed_seg)
decl_morpho_watershed(watershed_con)
decl_morpho_3(<oln/morpho/watershed.hh>, watershed_seg_or, 0)
%enddef
-decl_classical_family()
-decl_watershed_family()
-decl_extrema_killer_family()
+decl_classical_family(do_nothing)
+decl_watershed_family(do_nothing)
+decl_extrema_killer_family(do_nothing)
Index: tools/swilena/meta/swilena_exception.i
--- tools/swilena/meta/swilena_exception.i Sun, 21 Sep 2003 21:59:21 +0200 burrus_n
(oln/s/37_swilena_ex 1.2 600)
+++ tools/swilena/meta/swilena_exception.i Sun, 11 Apr 2004 15:38:57 +0200 thivol_d
(oln/s/37_swilena_ex 1.3 600)
@@ -9,7 +9,7 @@
// Olena uses classes that derive from std::exception. Declare it.
namespace std { class exception { public: const char *what() const; }; }
-%define START_PROTECT()
+%define START_PROTECT(do_nothing)
%exception {
try {
$action
@@ -26,8 +26,8 @@
}
%enddef
-%define END_PROTECT()
+%define END_PROTECT(do_nothing)
%exception;
%enddef
-START_PROTECT()
+START_PROTECT(do_nothing)
Index: tools/swilena/generate_morpho_instantiations.py
--- tools/swilena/generate_morpho_instantiations.py Mon, 10 Nov 2003 14:09:27 +0100
burrus_n (oln/v/24_generate_m 1.4 700)
+++ tools/swilena/generate_morpho_instantiations.py Sun, 11 Apr 2004 17:47:33 +0200
thivol_d (oln/v/24_generate_m 1.5 700)
@@ -3,6 +3,10 @@
import sys
files = []
+dict_type_num = {1: "ntg_bin", 2: "ntg_int_u8", 3:
"ntg_int_u32",
+ 4: "ntg_int_s8", 5: "ntg_int_s32", 6:
"ntg_float"}
+dict_num_type = {"ntg_bin": 1, "ntg_int_u8": 2,
"ntg_int_u32": 3,
+ "ntg_int_s8": 4, "ntg_int_s32": 5,
"ntg_float": 6}
def close_files():
for file in files:
@@ -10,14 +14,18 @@
def open_files(path):
for dim in range(1, 4):
- files.append(open(path + "/swilena_morpho%(dim)sd.i" % vars(), 'w'))
+ for type in range(1, 7):
+ str_type = dict_type_num[type]
+ files.append(open(path + "/swilena_morpho%(dim)sd_%(str_type)s.i" %
vars(), 'w'))
def write_headers():
for dim in range(1, 4):
- file = files[dim - 1]
+ for type in range(1, 7):
+ str_type = dict_type_num[type]
+ file = files[(dim - 1)* 6 + type - 1]
file.write("""// Note: this file was generated by generate_morpho.py.
-%%module swilena_morpho%(dim)sd
+%%module swilena_morpho%(dim)sd_%(str_type)s
%%include swilena_exception.i
@@ -30,8 +38,8 @@
""" % vars())
-def instantiate(dim, algorithm, *args):
- file = files[dim - 1]
+def instantiate(idx, algorithm, *args):
+ file = files[idx - 1]
swilena_algorithm = "my_" + algorithm
params = args[0]
for param in args[1:]:
@@ -51,77 +59,80 @@
win_type = "::oln::window%(dim)sd" % vars()
neighb_type = "::oln::neighborhood%(dim)sd" % vars()
+ idx = (dim - 1) * 6 + dict_num_type[type]
+
+ print idx
# FIXME: these algorithms do not work with floats
if type != "ntg_float":
- instantiate(dim, "erosion", img_type, img_type, win_type)
- instantiate(dim, "fast_erosion", img_type, img_type, win_type)
+ instantiate(idx, "erosion", img_type, img_type, win_type)
+ instantiate(idx, "fast_erosion", img_type, img_type, win_type)
- instantiate(dim, "dilation", img_type, img_type, win_type)
- instantiate(dim, "fast_dilation", img_type, img_type, win_type)
+ instantiate(idx, "dilation", img_type, img_type, win_type)
+ instantiate(idx, "fast_dilation", img_type, img_type, win_type)
- instantiate(dim, "opening", img_type, img_type, win_type)
- instantiate(dim, "fast_opening", img_type, img_type, win_type)
+ instantiate(idx, "opening", img_type, img_type, win_type)
+ instantiate(idx, "fast_opening", img_type, img_type, win_type)
- instantiate(dim, "closing", img_type, img_type, win_type)
- instantiate(dim, "fast_closing", img_type, img_type, win_type)
+ instantiate(idx, "closing", img_type, img_type, win_type)
+ instantiate(idx, "fast_closing", img_type, img_type, win_type)
- instantiate(dim, "thickening", img_type, img_type, win_type, win_type)
- instantiate(dim, "fast_thickening", img_type, img_type, win_type, win_type)
+ instantiate(idx, "thickening", img_type, img_type, win_type, win_type)
+ instantiate(idx, "fast_thickening", img_type, img_type, win_type, win_type)
- instantiate(dim, "thinning", img_type, img_type, win_type, win_type)
- instantiate(dim, "fast_thinning", img_type, img_type, win_type, win_type)
+ instantiate(idx, "thinning", img_type, img_type, win_type, win_type)
+ instantiate(idx, "fast_thinning", img_type, img_type, win_type, win_type)
- instantiate(dim, "geodesic_erosion", img_type, img_type, img_type,
neighb_type)
- instantiate(dim, "sure_geodesic_erosion", img_type, img_type, img_type,
neighb_type)
+ instantiate(idx, "geodesic_erosion", img_type, img_type, img_type,
neighb_type)
+ instantiate(idx, "sure_geodesic_erosion", img_type, img_type, img_type,
neighb_type)
- instantiate(dim, "geodesic_dilation", img_type, img_type, img_type,
neighb_type)
- instantiate(dim, "sure_geodesic_dilation", img_type, img_type,
img_type, neighb_type)
+ instantiate(idx, "geodesic_dilation", img_type, img_type, img_type,
neighb_type)
+ instantiate(idx, "sure_geodesic_dilation", img_type, img_type,
img_type, neighb_type)
- instantiate(dim, "sure_geodesic_reconstruction_dilation",
img_type, img_type, img_type, neighb_type)
- instantiate(dim, "sequential_geodesic_reconstruction_dilation",
img_type, img_type, img_type, neighb_type)
- instantiate(dim, "hybrid_geodesic_reconstruction_dilation",
img_type, img_type, img_type, neighb_type)
+ instantiate(idx, "sure_geodesic_reconstruction_dilation",
img_type, img_type, img_type, neighb_type)
+ instantiate(idx, "sequential_geodesic_reconstruction_dilation",
img_type, img_type, img_type, neighb_type)
+ instantiate(idx, "hybrid_geodesic_reconstruction_dilation",
img_type, img_type, img_type, neighb_type)
- instantiate(dim, "sure_geodesic_reconstruction_erosion",
img_type, img_type, img_type, neighb_type)
- instantiate(dim, "sequential_geodesic_reconstruction_erosion",
img_type, img_type, img_type, neighb_type)
- instantiate(dim, "hybrid_geodesic_reconstruction_erosion",
img_type, img_type, img_type, neighb_type)
+ instantiate(idx, "sure_geodesic_reconstruction_erosion",
img_type, img_type, img_type, neighb_type)
+ instantiate(idx, "sequential_geodesic_reconstruction_erosion",
img_type, img_type, img_type, neighb_type)
+ instantiate(idx, "hybrid_geodesic_reconstruction_erosion",
img_type, img_type, img_type, neighb_type)
- instantiate(dim, "hit_or_miss", img_type, img_type, win_type, win_type)
- instantiate(dim, "fast_hit_or_miss", img_type, img_type, win_type, win_type)
+ instantiate(idx, "hit_or_miss", img_type, img_type, win_type, win_type)
+ instantiate(idx, "fast_hit_or_miss", img_type, img_type, win_type, win_type)
- instantiate(dim, "hit_or_miss_opening", img_type, img_type, win_type,
win_type)
- instantiate(dim, "fast_hit_or_miss_opening", img_type, img_type, win_type,
win_type)
+ instantiate(idx, "hit_or_miss_opening", img_type, img_type, win_type,
win_type)
+ instantiate(idx, "fast_hit_or_miss_opening", img_type, img_type, win_type,
win_type)
- instantiate(dim, "hit_or_miss_opening_bg", img_type, img_type, win_type,
win_type)
- instantiate(dim, "fast_hit_or_miss_opening_bg", img_type, img_type, win_type,
win_type)
+ instantiate(idx, "hit_or_miss_opening_bg", img_type, img_type, win_type,
win_type)
+ instantiate(idx, "fast_hit_or_miss_opening_bg", img_type, img_type, win_type,
win_type)
- instantiate(dim, "hit_or_miss_closing", img_type, img_type, win_type,
win_type)
- instantiate(dim, "fast_hit_or_miss_closing", img_type, img_type, win_type,
win_type)
+ instantiate(idx, "hit_or_miss_closing", img_type, img_type, win_type,
win_type)
+ instantiate(idx, "fast_hit_or_miss_closing", img_type, img_type, win_type,
win_type)
- instantiate(dim, "hit_or_miss_closing_bg", img_type, img_type, win_type,
win_type)
- instantiate(dim, "fast_hit_or_miss_closing_bg", img_type, img_type, win_type,
win_type)
+ instantiate(idx, "hit_or_miss_closing_bg", img_type, img_type, win_type,
win_type)
+ instantiate(idx, "fast_hit_or_miss_closing_bg", img_type, img_type, win_type,
win_type)
# FIXME: these algorithms do not work with float neither binary types
if type != "ntg_bin":
- instantiate(dim, "beucher_gradient", img_type, img_type,
win_type)
- instantiate(dim, "fast_beucher_gradient", img_type,
img_type, win_type)
+ instantiate(idx, "beucher_gradient", img_type, img_type,
win_type)
+ instantiate(idx, "fast_beucher_gradient", img_type,
img_type, win_type)
- instantiate(dim, "internal_gradient", img_type, img_type,
win_type)
- instantiate(dim, "fast_internal_gradient", img_type,
img_type, win_type)
+ instantiate(idx, "internal_gradient", img_type, img_type,
win_type)
+ instantiate(idx, "fast_internal_gradient", img_type,
img_type, win_type)
- instantiate(dim, "external_gradient", img_type, img_type,
win_type)
- instantiate(dim, "fast_external_gradient", img_type,
img_type, win_type)
+ instantiate(idx, "external_gradient", img_type, img_type,
win_type)
+ instantiate(idx, "fast_external_gradient", img_type,
img_type, win_type)
- instantiate(dim, "white_top_hat", img_type, img_type,
win_type)
- instantiate(dim, "fast_white_top_hat", img_type, img_type,
win_type)
+ instantiate(idx, "white_top_hat", img_type, img_type,
win_type)
+ instantiate(idx, "fast_white_top_hat", img_type, img_type,
win_type)
- instantiate(dim, "black_top_hat", img_type, img_type,
win_type)
- instantiate(dim, "fast_black_top_hat", img_type, img_type,
win_type)
+ instantiate(idx, "black_top_hat", img_type, img_type,
win_type)
+ instantiate(idx, "fast_black_top_hat", img_type, img_type,
win_type)
- instantiate(dim, "self_complementary_top_hat", img_type,
img_type, win_type)
- instantiate(dim, "fast_self_complementary_top_hat",
img_type, img_type, win_type)
+ instantiate(idx, "self_complementary_top_hat", img_type,
img_type, win_type)
+ instantiate(idx, "fast_self_complementary_top_hat",
img_type, img_type, win_type)
- instantiate(dim, "top_hat_contrast_op", img_type, img_type,
win_type)
- instantiate(dim, "fast_top_hat_contrast_op", img_type,
img_type, win_type)
+ instantiate(idx, "top_hat_contrast_op", img_type, img_type,
win_type)
+ instantiate(idx, "fast_top_hat_contrast_op", img_type,
img_type, win_type)
# FIXME: fix this when available
#if type == "ntg_int_u8":
--
Damien Thivolle
damien.thivolle(a)lrde.epita.fr