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 #include <mln/core/image/image2d.hh>
00027 #include <mln/make/image2d.hh>
00028 #include <mln/data/sort_psites.hh>
00029 #include <mln/core/site_set/p_array.hh>
00030
00031
00032 int main ()
00033 {
00034 using namespace mln;
00035
00036 int vals[] = { 0, 3, 4,
00037 2, 2, 2,
00038 0, 1, 4 };
00039 image2d<int> ima = make::image2d(vals);
00040 p_array<point2d> array_inc = data::sort_psites_increasing(ima);
00041 p_array<point2d> array_dec = data::sort_psites_decreasing(ima);
00042
00043 {
00044 p_array<point2d>::fwd_piter p1(array_inc);
00045 p_array<point2d>::bkd_piter p2(array_dec);
00046 for_all_2(p1, p2)
00047 mln_assertion(ima(p1) == ima(p2));
00048 }
00049
00050 p_array<point2d> array_inc_ref;
00051 p_array<point2d> array_dec_ref;
00052
00053 typedef def::coord C;
00054 for (C i = 0; i < 3; ++i)
00055 for (C j = 0; j < 3; ++j)
00056 array_inc_ref.append(point2d(i, j));
00057
00058 for (C i = 2; i >= 0; --i)
00059 for (C j = 2; j >= 0; --j)
00060 array_dec_ref.append(point2d(i, j));
00061
00062 mln_assertion(array_inc == array_inc_ref);
00063 mln_assertion(array_dec == array_dec_ref);
00064 }