Index: tools/swilena/ChangeLog from Nicolas Burrus burrus_n@lrde.epita.fr
* meta/swilena_image.i: Add operator[] for python and ruby. * meta/swilena_describe.i: Fix __str__ return type.
Index: tools/swilena/meta/swilena_image.i --- tools/swilena/meta/swilena_image.i Sun, 21 Sep 2003 21:59:21 +0200 burrus_n (oln/s/36_swilena_im 1.4 640) +++ tools/swilena/meta/swilena_image.i Sat, 27 Sep 2003 18:32:13 +0200 burrus_n (oln/s/36_swilena_im 1.5 640) @@ -30,6 +30,13 @@ { (*self)[p] = v; return *self; } Val& ref(const point ## Dim ## d& p) { return (*self)[p]; } + +#if defined(SWIGPYTHON) || defined(SWIGRUBY) + Val __getitem__(const point ## Dim ## d& p) + { return (*self)[p]; } + T& __setitem__(const point ## Dim ## d& p, Val v) + { (*self)[p] = v; return *self; } +#endif }
EXTEND_DESCRIBE(T) @@ -39,6 +46,12 @@
Val& operator()(coord); %extend { +#if defined(SWIGRUBY) + Val __getitem__(coord x) + { return (*self)(x); } + T __setitem__(coord x, Val v) + { (*self)(x) = v; return *self; } +#endif Val at(coord x) { return (*self)(x); } T& set(coord x, Val v) { (*self)(x) = v; return *self; } Val& ref(coord x) { return (*self)(x); } @@ -49,6 +62,12 @@
Val& operator()(coord, coord); %extend { +#if defined(SWIGRUBY) + Val __getitem__(coord x, coord y) + { return (*self)(x, y); } + T __setitem__(coord x, coord y, Val v) + { (*self)(x, y) = v; return *self; } +#endif Val at(coord x, coord y) { return (*self)(x, y); } T& set(coord x, coord y, Val v) @@ -62,6 +81,12 @@
Val& operator()(coord, coord, coord); %extend { +#if defined(SWIGRUBY) + Val __getitem__(coord x, coord y, coord z) + { return (*self)(x, y, z); } + T __setitem__(coord x, coord y, coord z, Val v) + { (*self)(x, y, z) = v; return *self; } +#endif Val at(coord x, coord y, coord z) { return (*self)(x, y, z); } T& set(coord x, coord y, coord z, Val v) Index: tools/swilena/meta/swilena_describe.i --- tools/swilena/meta/swilena_describe.i Sun, 21 Sep 2003 20:25:01 +0200 burrus_n (oln/s/38_swilena_de 1.2 640) +++ tools/swilena/meta/swilena_describe.i Sat, 27 Sep 2003 18:32:13 +0200 burrus_n (oln/s/38_swilena_de 1.3 640) @@ -14,10 +14,10 @@ }
#if defined(SWIGPYTHON) - const char *__str__() { + std::string __str__() { std::ostringstream os; os << (*self); - return os.str().c_str(); + return os.str(); } #endif
@@ -41,10 +41,10 @@ }
#if defined(SWIGPYTHON) - const char *__str__() { + std::string __str__() { std::ostringstream os; os << (*self); - return os.str().c_str(); + return os.str(); } #endif