• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List

slices_2d.cc

00001 // Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
00002 //
00003 // This file is part of Olena.
00004 //
00005 // Olena is free software: you can redistribute it and/or modify it under
00006 // the terms of the GNU General Public License as published by the Free
00007 // Software Foundation, version 2 of the License.
00008 //
00009 // Olena is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU General Public License
00015 // along with Olena.  If not, see <http://www.gnu.org/licenses/>.
00016 //
00017 // As a special exception, you may use this file as part of a free
00018 // software project without restriction.  Specifically, if other files
00019 // instantiate templates or use macros or inline functions from this
00020 // file, or you compile this file and link it with other files to produce
00021 // an executable, this file does not by itself cause the resulting
00022 // executable to be covered by the GNU General Public License.  This
00023 // exception does not however invalidate any other reasons why the
00024 // executable file might be covered by the GNU General Public License.
00025 
00026 #include <mln/debug/slices_2d.hh>
00027 #include <mln/debug/iota.hh>
00028 
00029 
00030 int main()
00031 {
00032   using namespace mln;
00033 
00034   {
00035     point3d p_orig(-1, -2, -3);
00036     box3d b(p_orig, p_orig + dpoint3d(4, 1, 2));
00037     image3d<int> vol(b); // 5 x 2 x 3
00038     debug::iota(vol);
00039 
00040     //   1  2  3 
00041     //  4  5  6 
00042     //
00043     //   7  8  9 
00044     //  10 11 12 
00045     //
00046     //   13 14 15 
00047     //  16 17 18 
00048     //
00049     //   19 20 21 
00050     //  22 23 24 
00051     //
00052     //   25 26 27 
00053     //  28 29 30 
00054 
00055     image2d<int> ima = debug::slices_2d(vol, 2, 3,
00056                                         -1);
00057 
00058     // 1  2  3  7  8  9  
00059     // 4  5  6  10 11 12 
00060     // 13 14 15 19 20 21 
00061     // 16 17 18 22 23 24 
00062     // 25 26 27 -1 -1 -1 
00063     // 28 29 30 -1 -1 -1 
00064 
00065     mln_assertion(ima(ima.domain().pmin()) ==  1);
00066     mln_assertion(ima(ima.domain().pmax()) == -1);
00067 
00068   }
00069 
00070 
00071   // Tests with ratio.
00072 
00073   {
00074     int bg = 0;
00075     image3d<int> vol(1, 1, 1);
00076     image2d<int> ima;
00077     float ratio;
00078 
00079     ratio = 1.f;
00080     ima = debug::slices_2d(vol, ratio, bg);
00081     mln_assertion(ima.nrows() == 1 && ima.ncols() == 1);
00082 
00083     ratio = 0.00001f;
00084     ima = debug::slices_2d(vol, ratio, bg);
00085     mln_assertion(ima.nrows() == 1 && ima.ncols() == 1);
00086 
00087     ratio = 100000.f;
00088     ima = debug::slices_2d(vol, ratio, bg);
00089     mln_assertion(ima.nrows() == 1 && ima.ncols() == 1);
00090   }
00091 
00092 }

Generated on Tue Oct 4 2011 15:24:28 for Milena (Olena) by  doxygen 1.7.1