
ChangeLog: 2007-09-21 Guillaume Duhamel <guillaume.duhamel@lrde.epita.fr> Add println_with_border for 3d image. * println_with_border.hh: Update 3d version. --- println_with_border.hh | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) Index: trunk/milena/mln/debug/println_with_border.hh =================================================================== --- trunk/milena/mln/debug/println_with_border.hh (revision 1147) +++ trunk/milena/mln/debug/println_with_border.hh (revision 1148) @@ -38,7 +38,7 @@ # include <mln/debug/format.hh> # include <mln/core/box2d.hh> - +# include <mln/core/box3d.hh> namespace mln { @@ -81,6 +81,34 @@ std::cout << std::endl; } + // 3D version + template <typename I> + void println_with_border(const box3d& b, const Fast_Image<I>& input_) + { + const I& ima = exact(input_); + typedef mln_point(I) P; + + std::size_t len_s = b.len(P::dim - 3); + std::size_t len_r = b.len(P::dim - 2); + std::size_t len_c = b.len(P::dim - 1); + std::size_t border = ima.border (); + std::size_t real_len_s = len_s + 2 * border; + std::size_t real_len_r = len_r + 2 * border; + std::size_t real_len_c = len_c + 2 * border; + + for (std::size_t k = 0; k < real_len_s; ++k) + { + for (std::size_t j = 0; j < real_len_r; ++j) + { + for (std::size_t i = 0; i < real_len_c; ++i) + std::cout << format(ima[k * (real_len_r * real_len_c) + j * real_len_c + i]) + << ' '; + std::cout << std::endl; + } + std::cout << std::endl; + } + std::cout << std::endl; + } } // end of namespace mln::debug::impl