00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef MLN_MAKE_BOX2D_H_HH
00027 # define MLN_MAKE_BOX2D_H_HH
00028
00032
00033 # include <mln/core/alias/box2d_h.hh>
00034 # include <mln/make/point2d_h.hh>
00035
00036
00037 namespace mln
00038 {
00039
00040 namespace make
00041 {
00042
00052 mln::box2d_h box2d_h(unsigned nrows, unsigned ncols);
00053
00054
00068 mln::box2d_h box2d_h(def::coord min_row, def::coord min_col,
00069 def::coord max_row, def::coord max_col);
00070
00071
00072 # ifndef MLN_INCLUDE_ONLY
00073
00074 inline
00075 mln::box2d_h box2d_h(unsigned nrows, unsigned ncols)
00076 {
00077 mln_precondition(nrows != 0 && ncols != 0);
00078 mln::box2d_h tmp(point2d_h(0, 0),
00079 point2d_h(static_cast<def::coord>(nrows - 1),
00080 static_cast<def::coord>(ncols - 1)));
00081 return tmp;
00082 }
00083
00084 inline
00085 mln::box2d_h box2d_h(def::coord min_row, def::coord min_col,
00086 def::coord max_row, def::coord max_col)
00087 {
00088 mln_precondition(max_row >= min_row && max_col >= min_col);
00089 mln::box2d_h tmp(point2d_h(min_row, min_col),
00090 point2d_h(max_row, max_col));
00091 return tmp;
00092 }
00093
00094 # endif // ! MLN_INCLUDE_ONLY
00095
00096 }
00097
00098 }
00099
00100
00101 #endif // ! MLN_MAKE_BOX2D_H_HH