1. 04 Sep, 2008 2 commits
    • Thierry Geraud's avatar
      Move image files in the proper core sub-directory. · 501b9e98
      Thierry Geraud authored
      	Move image files from mln/core/ to mln/core/image/.
      	
      	* mln/core/bgraph_image.hh,
      	* mln/core/bgraph_psite.hh,
      	* mln/core/cast_image.hh,
      	* mln/core/decorated_image.hh,
      	* mln/core/fi_adaptor.hh,
      	* mln/core/graph_elt_neighborhood.hh,
      	* mln/core/graph_elt_window.hh,
      	* mln/core/graph_image.hh,
      	* mln/core/graph_neighborhood_piter.hh,
      	* mln/core/graph_psite.hh,
      	* mln/core/graph_window_piter.hh,
      	* mln/core/hexa.hh,
      	* mln/core/hexa_piter.hh,
      	* mln/core/image1d.hh,
      	* mln/core/image2d.hh,
      	* mln/core/image2d_h.hh,
      	* mln/core/image3d.hh,
      	* mln/core/image_if.hh,
      	* mln/core/inplace.hh,
      	* mln/core/interpolated.hh,
      	* mln/core/line_graph_elt_neighborhood.hh,
      	* mln/core/line_graph_elt_window.hh,
      	* mln/core/line_graph_image.hh,
      	* mln/core/line_graph_neighborhood_piter.hh,
      	* mln/core/line_graph_psite.hh,
      	* mln/core/line_graph_window_piter.hh,
      	* mln/core/mono_obased_rle_encode.hh,
      	* mln/core/mono_obased_rle_image.hh,
      	* mln/core/mono_rle_encode.hh,
      	* mln/core/mono_rle_image.hh,
      	* mln/core/obased_rle_encode.hh,
      	* mln/core/obased_rle_image.hh,
      	* mln/core/plain.hh,
      	* mln/core/rle_encode.hh,
      	* mln/core/rle_image.hh,
      	* mln/core/safe.hh,
      	* mln/core/sparse_encode.hh,
      	* mln/core/sparse_image.hh,
      	* mln/core/sub_image.hh,
      	* mln/core/t_image.hh,
      	* mln/core/tr_image.hh,
      	* mln/core/tr_mesh.hh,
      	* mln/core/translate_image.hh,
      	* mln/core/value_enc_image.hh,
      	* mln/core/value_encode.hh: Rename as...
      
      	* mln/core/image/bgraph_image.hh,
      	* mln/core/image/bgraph_psite.hh,
      	* mln/core/image/cast_image.hh,
      	* mln/core/image/decorated_image.hh,
      	* mln/core/image/fi_adaptor.hh,
      	* mln/core/image/graph_elt_neighborhood.hh,
      	* mln/core/image/graph_elt_window.hh,
      	* mln/core/image/graph_image.hh,
      	* mln/core/image/graph_neighborhood_piter.hh,
      	* mln/core/image/graph_psite.hh,
      	* mln/core/image/graph_window_piter.hh,
      	* mln/core/image/hexa.hh,
      	* mln/core/image/hexa_piter.hh,
      	* mln/core/image/image1d.hh,
      	* mln/core/image/image2d.hh,
      	* mln/core/image/image2d_h.hh,
      	* mln/core/image/image3d.hh,
      	* mln/core/image/image_if.hh,
      	* mln/core/image/inplace.hh,
      	* mln/core/image/interpolated.hh,
      	* mln/core/image/line_graph_elt_neighborhood.hh,
      	* mln/core/image/line_graph_elt_window.hh,
      	* mln/core/image/line_graph_image.hh,
      	* mln/core/image/line_graph_neighborhood_piter.hh,
      	* mln/core/image/line_graph_psite.hh,
      	* mln/core/image/line_graph_window_piter.hh,
      	* mln/core/image/mono_obased_rle_encode.hh,
      	* mln/core/image/mono_obased_rle_image.hh,
      	* mln/core/image/mono_rle_encode.hh,
      	* mln/core/image/mono_rle_image.hh,
      	* mln/core/image/obased_rle_encode.hh,
      	* mln/core/image/obased_rle_image.hh,
      	* mln/core/image/plain.hh,
      	* mln/core/image/rle_encode.hh,
      	* mln/core/image/rle_image.hh,
      	* mln/core/image/safe.hh,
      	* mln/core/image/sparse_encode.hh,
      	* mln/core/image/sparse_image.hh,
      	* mln/core/image/sub_image.hh,
      	* mln/core/image/t_image.hh,
      	* mln/core/image/tr_image.hh,
      	* mln/core/image/tr_mesh.hh,
      	* mln/core/image/translate_image.hh,
      	* mln/core/image/value_enc_image.hh,
      	* mln/core/image/value_encode.hh: ...these.
      	Update guards and includes.
      	
      	* tools/seed2tiling.cc,
      	* tools/area_flooding.cc,
      	* tests/trait/image/images.cc,
      	* tests/trait/ch_value.cc,
      	* tests/debug/iota.cc,
      	* tests/debug/println_with_border.cc,
      	* tests/debug/println.cc,
      	* tests/histo/compute.cc,
      	* tests/histo/to_image1d.cc,
      	* tests/core/graph_elt_neighborhood.cc,
      	* tests/core/image_if_value.cc,
      	* tests/core/window1d.cc,
      	* tests/core/window2d.cc,
      	* tests/core/clock_neighb2d.cc,
      	* tests/core/window3d.cc,
      	* tests/core/graph_image_wst.cc,
      	* tests/core/image_if_interval.cc,
      	* tests/core/bgraph_image.cc,
      	* tests/core/mono_rle_image.cc,
      	* tests/core/pixter2d_more.cc,
      	* tests/core/cast_image.cc,
      	* tests/core/point_set_compatibility.cc,
      	* tests/core/pixter1d.cc,
      	* tests/core/pixter2d.cc,
      	* tests/core/obased_rle_image.cc,
      	* tests/core/pixter3d.cc,
      	* tests/core/graph_image.cc,
      	* tests/core/pixel.cc,
      	* tests/core/pixter3d_more.cc,
      	* tests/core/pset_if.cc,
      	* tests/core/mono_obased_rle_image.cc,
      	* tests/core/sub_image.cc,
      	* tests/core/graph_elt_window.cc,
      	* tests/core/sparse_image.cc,
      	* tests/core/clone.cc,
      	* tests/core/plain.cc,
      	* tests/core/t_image.cc,
      	* tests/core/p_runs.cc,
      	* tests/core/image1d.cc,
      	* tests/core/fi_adaptor.cc,
      	* tests/core/image2d.cc,
      	* tests/core/image3d.cc,
      	* tests/core/image2d_h.cc,
      	* tests/core/clock_test.cc,
      	* tests/core/decorated_image.cc,
      	* tests/core/translate_image.cc,
      	* tests/core/image_if.cc,
      	* tests/core/initialize.cc,
      	* tests/core/line_graph_elt_window.cc,
      	* tests/core/value_enc_image.cc,
      	* tests/core/line_graph_elt_neighborhood.cc,
      	* tests/core/pset_array.cc,
      	* tests/core/line_graph_image.cc,
      	* tests/core/dpoints_pixter.cc,
      	* tests/core/safe_image.cc,
      	* tests/core/pixter1d_more.cc,
      	* tests/core/rle_image.cc,
      	* tests/core/hexa.cc,
      	* tests/core/tr_image.cc,
      	* tests/core/interpolated.cc,
      	* tests/core/line_piter.cc,
      	* tests/neighb/image.cc,
      	* tests/draw/label.cc,
      	* tests/draw/graph.cc,
      	* tests/draw/line.cc,
      	* tests/level/transform_full.cc,
      	* tests/level/median.cc,
      	* tests/level/compute_full.cc,
      	* tests/level/sort_psites_full.cc,
      	* tests/level/median_hline2d.cc,
      	* tests/level/abs.cc,
      	* tests/level/assign_full.cc,
      	* tests/level/apply_full.cc,
      	* tests/level/fill_full.cc,
      	* tests/level/median_fast.cc,
      	* tests/level/compute.cc,
      	* tests/level/sort_psites.cc,
      	* tests/level/assign.cc,
      	* tests/level/approx/median.cc,
      	* tests/level/fill.cc,
      	* tests/level/abs_full.cc,
      	* tests/level/memcpy_.cc,
      	* tests/level/median_dir.cc,
      	* tests/level/stretch_full.cc,
      	* tests/level/paste_full.cc,
      	* tests/level/compare_full.cc,
      	* tests/level/saturate_full.cc,
      	* tests/level/transform.cc,
      	* tests/level/replace.cc,
      	* tests/level/stretch.cc,
      	* tests/level/paste.cc,
      	* tests/level/fill_with_value.cc,
      	* tests/level/naive/median.cc,
      	* tests/level/take.cc,
      	* tests/level/apply.cc,
      	* tests/level/compare.cc,
      	* tests/level/saturate.cc,
      	* tests/level/memset_.cc,
      	* tests/arith/minus.cc,
      	* tests/arith/minus_full.cc,
      	* tests/arith/times.cc,
      	* tests/arith/times_full.cc,
      	* tests/arith/plus.cc,
      	* tests/arith/plus_full.cc,
      	* tests/arith/revert.cc,
      	* tests/arith/revert_full.cc,
      	* tests/linear/convolve.cc,
      	* tests/linear/lap.cc,
      	* tests/linear/log.cc,
      	* tests/linear/line_convolve.cc,
      	* tests/linear/sobel.cc,
      	* tests/linear/local/convolve.cc,
      	* tests/linear/gaussian.cc,
      	* tests/accu/pair.cc,
      	* tests/accu/median.cc,
      	* tests/accu/compute.cc,
      	* tests/accu/mean.cc,
      	* tests/accu/nil.cc,
      	* tests/accu/min.cc,
      	* tests/accu/max.cc,
      	* tests/value/stack.cc,
      	* tests/value/float01.cc,
      	* tests/border/duplicate_full.cc,
      	* tests/border/mirror_full.cc,
      	* tests/border/equalize_full.cc,
      	* tests/border/get_full.cc,
      	* tests/border/resize.cc,
      	* tests/border/find_full.cc,
      	* tests/border/resize_image1d_1.cc,
      	* tests/border/fill_full.cc,
      	* tests/border/resize_image2d_1.cc,
      	* tests/border/resize_image1d_2.cc,
      	* tests/border/duplicate.cc,
      	* tests/border/resize_image1d_3.cc,
      	* tests/border/mirror.cc,
      	* tests/border/resize_image3d_1.cc,
      	* tests/border/resize_image2d_2.cc,
      	* tests/border/resize_image2d_3.cc,
      	* tests/border/resize_image3d_2.cc,
      	* tests/border/adjust_full.cc,
      	* tests/border/resize_image3d_3.cc,
      	* tests/border/resize_sub_image.cc,
      	* tests/border/equalize.cc,
      	* tests/border/get.cc,
      	* tests/border/find.cc,
      	* tests/border/resize_image_if.cc,
      	* tests/border/resize_full.cc,
      	* tests/border/fill.cc,
      	* tests/border/adjust.cc,
      	* tests/test/positive.cc,
      	* tests/convert/to_p_set.cc,
      	* tests/convert/to_tiles.cc,
      	* tests/convert/to_image.cc,
      	* tests/convert/to_window.cc,
      	* tests/estim/mean.cc,
      	* tests/pw/value.cc,
      	* tests/geom/max_sli.cc,
      	* tests/geom/resize.cc,
      	* tests/geom/nrows.cc,
      	* tests/geom/seed2tiling_roundness.cc,
      	* tests/geom/seed2tiling.cc,
      	* tests/geom/min_row.cc,
      	* tests/geom/ninds.cc,
      	* tests/geom/max_row.cc,
      	* tests/geom/min_ind.cc,
      	* tests/geom/ncols.cc,
      	* tests/geom/max_ind.cc,
      	* tests/geom/min_col.cc,
      	* tests/geom/max_col.cc,
      	* tests/geom/nslis.cc,
      	* tests/geom/min_sli.cc,
      	* tests/fun/x2x/rotation.cc,
      	* tests/fun/v2v/rgb_hsi_conversion.cc,
      	* tests/binarization/threshold.cc,
      	* tests/morpho/contrast.cc,
      	* tests/morpho/meyer_wst_long.cc,
      	* tests/morpho/gradient.cc,
      	* tests/morpho/artificial_line_graph_image_wst.cc,
      	* tests/morpho/rank_filter.cc,
      	* tests/morpho/dilation.cc,
      	* tests/morpho/line_graph_image_wst.cc,
      	* tests/morpho/meyer_wst.cc,
      	* tests/morpho/thinning.cc,
      	* tests/morpho/erosion.cc,
      	* tests/morpho/dilation_max_h.cc,
      	* tests/morpho/hit_or_miss.cc,
      	* tests/morpho/combined.cc,
      	* tests/morpho/gradient_elementary.cc,
      	* tests/morpho/laplacian.cc,
      	* tests/morpho/closing_volume.cc,
      	* tests/morpho/closing_area.cc,
      	* tests/morpho/closing_height.cc,
      	* tests/morpho/opening_volume.cc,
      	* tests/morpho/opening_area.cc,
      	* tests/morpho/lena_line_graph_image_wst1.cc,
      	* tests/morpho/opening_height.cc,
      	* tests/morpho/erosion_min_h.cc,
      	* tests/morpho/lena_line_graph_image_wst2.cc,
      	* tests/display/show.cc,
      	* tests/display/save_and_show.cc,
      	* tests/display/color_pretty.cc,
      	* tests/io/pgm/pgm27.cc,
      	* tests/io/pgm/pgm19.cc,
      	* tests/io/pgm/pgm.cc,
      	* tests/io/pgm/pgm16.cc,
      	* tests/io/fits/fits.cc,
      	* tests/io/ppm/ppm.cc,
      	* tests/io/ppm/ppm23.cc,
      	* tests/io/ppm/ppm16.cc,
      	* tests/io/pbm/pbm.cc,
      	* tests/logical/or.cc,
      	* tests/logical/not.cc,
      	* tests/logical/or_full.cc,
      	* tests/logical/and_not.cc,
      	* tests/logical/and.cc,
      	* tests/logical/not_full.cc,
      	* tests/logical/and_not_full.cc,
      	* tests/logical/and_full.cc,
      	* tests/canvas/chamfer.cc,
      	* tests/canvas/browsing/directional.cc,
      	* tests/canvas/browsing/fwd.cc,
      	* tests/canvas/browsing/snake_fwd.cc,
      	* tests/util/tree_to_image.cc,
      	* tests/util/branch_iter_ind.cc,
      	* tests/util/lemmings.cc,
      	* tests/util/tree_fast_to_image.cc,
      	* tests/util/branch_iter.cc,
      	* tests/labeling/regional_maxima.cc,
      	* tests/labeling/background.cc,
      	* tests/labeling/blobs.cc,
      	* tests/labeling/flat_zones.cc,
      	* tests/labeling/level.cc,
      	* tests/labeling/foreground.cc,
      	* tests/labeling/regional_minima.cc,
      	* apps/statues/mesh-segm.cc,
      	* apps/statues/mesh-skel.cc,
      	* doc/tutorial/examples/sub_image.cc,
      	* doc/tutorial/examples/p_line2d.cc,
      	* doc/tutorial/examples/p_array.cc,
      	* doc/tutorial/examples/p_array.2.cc,
      	* doc/tutorial/examples/image_if.cc,
      	* doc/tutorial/examples/p_image.cc,
      	* doc/tutorial/examples/p_queue.cc,
      	* doc/tutorial/examples/image_plain.cc,
      	* doc/tutorial/examples/p_vaccess.cc,
      	* doc/tutorial/examples/window.cc,
      	* doc/tutorial/examples/p_key.cc,
      	* doc/tutorial/examples/p_key.2.cc,
      	* doc/tutorial/examples/image2d.cc,
      	* doc/tutorial/examples/image_safe.cc,
      	* doc/tutorial/examples/proxy.cc,
      	* doc/tutorial/examples/p_run.cc,
      	* doc/tutorial/examples/box.cc,
      	* doc/tutorial/examples/image_flat.cc,
      	* doc/tutorial/examples/p_mutable_array_of.cc,
      	* doc/benchmark/p_runs.cc,
      	* doc/benchmark/image2d.cc,
      	* doc/examples/labeling_algo.cc,
      	* mln/debug/put_word.hh,
      	* mln/core/internal/graph_vicinity_piter.hh,
      	* mln/core/internal/line_graph_vicinity_piter.hh,
      	* mln/core/p_image2d.hh,
      	* mln/core/site_set/p_bgraph.hh,
      	* mln/core/site_set/p_graph_piter.hh,
      	* mln/core/site_set/p_bgraph_piter.hh,
      	* mln/core/site_set/p_line_graph.hh,
      	* mln/core/site_set/p_line_graph_piter.hh,
      	* mln/core/site_set/p_graph.hh,
      	* mln/draw/graph.hh,
      	* mln/level/fill_with_image.hh,
      	* mln/level/replace.hh,
      	* mln/level/paste.hh,
      	* mln/level/fill.spe.hh,
      	* mln/level/fill_with_value.hh,
      	* mln/linear/line_x2_convolve.hh,
      	* mln/accu/count_adjacent_vertices.hh,
      	* mln/accu/rank.hh,
      	* mln/accu/rank_high_quant.hh,
      	* mln/accu/rank_bool.hh,
      	* mln/border/mirror.hh,
      	* mln/make/image1d.hh,
      	* mln/make/image2d.hh,
      	* mln/convert/to_tiles.hh,
      	* mln/convert/to_image.hh,
      	* mln/convert/to_window.hh,
      	* mln/geom/chamfer.hh,
      	* mln/morpho/opening_area_on_vertices.hh,
      	* mln/morpho/line_gradient.hh,
      	* mln/morpho/closing_area_on_vertices.hh,
      	* mln/display/color_pretty.hh,
      	* mln/display/remove.hh,
      	* mln/display/save.hh,
      	* mln/display/show.hh,
      	* mln/io/pfm/load.hh,
      	* mln/io/pgm/load.hh,
      	* mln/io/fits/load.hh,
      	* mln/io/pnm/load.hh,
      	* mln/io/ppm/load.hh,
      	* mln/io/pbm/load.hh,
      	* sandbox/duhamel/main_mesh_image.cc,
      	* sandbox/duhamel/queue_p_priority.cc,
      	* sandbox/duhamel/graph_labeling.hh,
      	* sandbox/duhamel/translate_image.hh,
      	* sandbox/duhamel/slow_seed2tiling.cc,
      	* sandbox/duhamel/labeling_algo.cc,
      	* sandbox/duhamel/main.cc,
      	* sandbox/duhamel/paste.hh,
      	* sandbox/duhamel/color_sub.cc,
      	* sandbox/duhamel/chamfer.cc,
      	* sandbox/duhamel/mem.hh,
      	* sandbox/duhamel/labeling_algo.hh,
      	* sandbox/duhamel/extract_array.cc,
      	* sandbox/duhamel/abr_to_image.cc,
      	* sandbox/duhamel/translate_image.cc,
      	* sandbox/pellegrin/first_test.cc,
      	* sandbox/pellegrin/set/test/p_runs.cc,
      	* sandbox/pellegrin/set/test/pset_if.cc,
      	* sandbox/pellegrin/set/core/p_bgraph.hh,
      	* sandbox/pellegrin/set/core/p_line_graph.hh,
      	* sandbox/pellegrin/set/core/p_graph.hh,
      	* sandbox/pellegrin/cond_inheritance/test_cond_inherit.cc,
      	* sandbox/aroumougame/skeleton/mesh-skel_region.cc,
      	* sandbox/aroumougame/skeleton/miscellenous.hh,
      	* sandbox/aroumougame/skeleton/test.cc,
      	* sandbox/aroumougame/skeleton/test_image2d.cc,
      	* sandbox/aroumougame/skeleton/mesh-skel.cc,
      	* sandbox/aroumougame/skeleton/test_image3d.cc,
      	* sandbox/aroumougame/skeleton/thinning.hh,
      	* sandbox/aroumougame/skeleton/sedt.hh,
      	* sandbox/nivault/rotation.cc,
      	* sandbox/nivault/plugin-gimp/src/build-image.hh,
      	* sandbox/nivault/extract_score.cc,
      	* sandbox/nivault/extract_character.cc,
      	* sandbox/nivault/median.hh,
      	* sandbox/jardonnet/test/reduce.cc,
      	* sandbox/jardonnet/test/icp_ref.cc,
      	* sandbox/jardonnet/test/gaussian.cc,
      	* sandbox/jardonnet/test/icp.cc,
      	* sandbox/jardonnet/test/gaussian_subsampling.cc,
      	* sandbox/jardonnet/test/test.cc,
      	* sandbox/jardonnet/test/type.cc,
      	* sandbox/jardonnet/test/subsampling.cc,
      	* sandbox/jardonnet/registration/chamfer.hh,
      	* sandbox/geraud/fllt/fllt.hh,
      	* sandbox/geraud/fllt/fllt.svg.1.cc,
      	* sandbox/geraud/fllt/fllt.svg.7.hh,
      	* sandbox/geraud/fllt/fllt.svg.2.cc,
      	* sandbox/geraud/fllt/fllt.svg.3.cc,
      	* sandbox/geraud/fllt/fllt.svg.4.cc,
      	* sandbox/geraud/fllt/fllt.svg.5.cc,
      	* sandbox/geraud/fllt/fllt.svg.6.cc,
      	* sandbox/geraud/fllt/fllt_test.hh,
      	* sandbox/geraud/fllt.svg.7.hh,
      	* sandbox/geraud/dmap.cc,
      	* sandbox/geraud/fllt.svg.6.cc,
      	* sandbox/geraud/win_fun.cc,
      	* sandbox/geraud/irm.cc,
      	* sandbox/geraud/cs2d/tuto.cc,
      	* sandbox/geraud/cs2d/kruskal.cc,
      	* sandbox/geraud/cs2d/dbl_neighb.cc,
      	* sandbox/geraud/cs2d/cs2d.hh,
      	* sandbox/geraud/cs2d/tuto_bis.cc,
      	* sandbox/geraud/max_tree_nnodes.cc,
      	* sandbox/vigouroux/yuv/test.cc,
      	* sandbox/vigouroux/yuv/get_blue.hh,
      	* sandbox/vigouroux/yuv/get_red.hh,
      	* sandbox/vigouroux/yuv/testfun.cc,
      	* sandbox/vigouroux/yuv/rgb_to_yuv.hh,
      	* sandbox/vigouroux/yuv/get_green.hh,
      	* sandbox/vigouroux/hsi/get_blue.hh,
      	* sandbox/vigouroux/hsi/get_red.hh,
      	* sandbox/vigouroux/hsi/rgb_to_hsi.hh,
      	* sandbox/vigouroux/hsi/get_green.hh,
      	* sandbox/vigouroux/function.hh,
      	* sandbox/vigouroux/tests.cc,
      	* sandbox/vigouroux/cmy/rgb_to_cmy.hh,
      	* sandbox/vigouroux/cmy/test.cc,
      	* sandbox/vigouroux/cmy/get_blue.hh,
      	* sandbox/vigouroux/cmy/fun.hh,
      	* sandbox/vigouroux/cmy/testfun.cc,
      	* sandbox/vigouroux/cmy/get_green.hh,
      	* sandbox/vigouroux/xyz/test.cc,
      	* sandbox/vigouroux/xyz/rgb_to_xyz.hh,
      	* sandbox/vigouroux/xyz/get_blue.hh,
      	* sandbox/vigouroux/xyz/get_red.hh,
      	* sandbox/vigouroux/xyz/testfun.cc,
      	* sandbox/vigouroux/xyz/get_green.hh,
      	* sandbox/vigouroux/moyenne.cc,
      	* sandbox/vigouroux/lap.cc,
      	* sandbox/vigouroux/yiq/test.cc,
      	* sandbox/vigouroux/yiq/get_blue.hh,
      	* sandbox/vigouroux/yiq/get_red.hh,
      	* sandbox/vigouroux/yiq/rgb_to_yiq.hh,
      	* sandbox/vigouroux/yiq/testfun.cc,
      	* sandbox/vigouroux/yiq/get_green.hh,
      	* sandbox/vigouroux/color.cc,
      	* sandbox/vigouroux/load.cc,
      	* sandbox/vigouroux/conv/test.cc,
      	* sandbox/vigouroux/conv/getred.hh,
      	* sandbox/vigouroux/conv/tored.hh,
      	* sandbox/vigouroux/conv/torgb.hh,
      	* sandbox/vigouroux/conv/rgbto.hh,
      	* sandbox/vigouroux/gradation.hh,
      	* sandbox/vigouroux/testfun.cc,
      	* sandbox/vigouroux/color/rgb_to_hsl.hh,
      	* sandbox/vigouroux/color/rgb_to_cmy.hh,
      	* sandbox/vigouroux/color/rgb_to_xyz.hh,
      	* sandbox/vigouroux/color/tests.cc,
      	* sandbox/vigouroux/color/rgb_to_hsv.hh,
      	* sandbox/vigouroux/color/rgb_to_yiq.hh,
      	* sandbox/vigouroux/color/rgb_to_hsi.hh,
      	* sandbox/vigouroux/color/rgb_to_yuv.hh,
      	* sandbox/garrigues/level_set.hh,
      	* sandbox/garrigues/fllt/test_fllt_lena_tiles.cc,
      	* sandbox/garrigues/fllt/test_fllt10.cc,
      	* sandbox/garrigues/fllt/test_fllt_tiny.cc,
      	* sandbox/garrigues/fllt/test_fllt12.cc,
      	* sandbox/garrigues/fllt/essai.cc,
      	* sandbox/garrigues/fllt/fllt_simple.svg.1.cc,
      	* sandbox/garrigues/fllt/fllt_simple.svg.3.cc,
      	* sandbox/garrigues/fllt/fllt_simple.cc,
      	* sandbox/garrigues/fllt/test_fllt10_inv.cc,
      	* sandbox/garrigues/fllt/fllt_theo.cc,
      	* sandbox/garrigues/fllt/test_fllt3.cc,
      	* sandbox/garrigues/fllt/test_fllt5.cc,
      	* sandbox/garrigues/fllt/test_fllt7.cc,
      	* sandbox/garrigues/fllt/test_fllt9.cc,
      	* sandbox/garrigues/fllt/fllt_merge.hh,
      	* sandbox/garrigues/fllt/test_fllt3_inv.cc,
      	* sandbox/garrigues/fllt/test_fllt_lena.cc,
      	* sandbox/garrigues/fllt/test_fllt.cc,
      	* sandbox/garrigues/fllt/test_flltb.cc,
      	* sandbox/garrigues/fllt/test_fllt7_inv.cc,
      	* sandbox/garrigues/fllt/test_fllt13.cc,
      	* sandbox/garrigues/fllt/test_fllt15.cc,
      	* sandbox/garrigues/fllt/fllt_simple.svg.2.cc,
      	* sandbox/garrigues/fllt/fllt.hh,
      	* sandbox/garrigues/fllt/test.cc,
      	* sandbox/garrigues/fllt/give_confs.cc,
      	* sandbox/garrigues/fllt/test_fllt2.cc,
      	* sandbox/garrigues/fllt/test_fllt4.cc,
      	* sandbox/garrigues/fllt/test_fllt6.cc,
      	* sandbox/garrigues/fllt/test_fllt8.cc,
      	* sandbox/garrigues/tiled_image2d/tiled_image2d.hh,
      	* sandbox/garrigues/tiled_image2d/tiled_image2d.cc,
      	* sandbox/garrigues/image_identity/interpolated.hh,
      	* sandbox/garrigues/factures/extract_array_highlight.cc,
      	* sandbox/garrigues/factures/extract_array.cc,
      	* sandbox/folio/test/psn.cc,
      	* sandbox/folio/test/psn_log.cc,
      	* sandbox/folio/test/naive.cc,
      	* sandbox/folio/test/dt_maze.cc,
      	* sandbox/folio/test/chamfer.cc,
      	* sandbox/folio/test/dt_bench.cc,
      	* sandbox/folio/test/dt.cc,
      	* sandbox/folio/psn.cc,
      	* sandbox/folio/psn_log.cc,
      	* sandbox/folio/naive.cc,
      	* sandbox/folio/chamfer.cc,
      	* sandbox/folio/dt.cc,
      	* sandbox/beguin/irm_g.cc,
      	* sandbox/beguin/fusion_graph.hh,
      	* sandbox/beguin/irm.cc,
      	* sandbox/abraham/tests/morpho/test_component_tree.cc,
      	* sandbox/abraham/tests/morpho/test_watershed.cc,
      	* sandbox/abraham/tests/morpho/test_watershed_topo.cc,
      	* sandbox/abraham/tests/io/tikz/tikz.cc,
      	* sandbox/abraham/mln/morpho/basic_najman.hh: Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008@2172 4aad255d-cdde-0310-9447-f3009e2ae8c0
      501b9e98
    • Thierry Geraud's avatar
      Move site set files in the proper core sub-directory. · ee53dffb
      Thierry Geraud authored
      	Move site_set files from mln/core/ to mln/core/site_set/.
      	
      	* mln/core/box.hh,.
      	* mln/core/box_piter.hh,.
      	* mln/core/line2d.hh,.
      	* mln/core/p_array.hh,.
      	* mln/core/p_bgraph.hh,.
      	* mln/core/p_bgraph_piter.hh,.
      	* mln/core/p_graph.hh,.
      	* mln/core/p_graph_piter.hh,.
      	* mln/core/p_line_graph.hh,.
      	* mln/core/p_line_graph_piter.hh,.
      	* mln/core/p_priority_queue.hh,.
      	* mln/core/p_queue.hh,.
      	* mln/core/p_queue_fast.hh,.
      	* mln/core/p_run.hh,.
      	* mln/core/p_set.hh,.
      	* mln/core/pset_if.hh: Rename as...
      	* mln/core/site_set/box.hh,
      	* mln/core/site_set/box_piter.hh,
      	* mln/core/site_set/line2d.hh,
      	* mln/core/site_set/p_array.hh,
      	* mln/core/site_set/p_bgraph.hh,
      	* mln/core/site_set/p_bgraph_piter.hh,
      	* mln/core/site_set/p_graph.hh,
      	* mln/core/site_set/p_graph_piter.hh,
      	* mln/core/site_set/p_line_graph.hh,
      	* mln/core/site_set/p_line_graph_piter.hh,
      	* mln/core/site_set/p_priority_queue.hh,
      	* mln/core/site_set/p_queue.hh,
      	* mln/core/site_set/p_queue_fast.hh,
      	* mln/core/site_set/p_run.hh,
      	* mln/core/site_set/p_set.hh,
      	* mln/core/site_set/pset_if.hh: ...these.
      	Update guards.
      	
      	* tests/core/p_priority_queue.cc,
      	* tests/core/p_set.cc,
      	* tests/core/point_set_compatibility.cc,
      	* tests/core/p_queue_fast.cc,
      	* tests/core/p_bgraph.cc,
      	* tests/core/pset_if.cc,
      	* tests/core/p_array.cc,
      	* tests/core/p_queue.cc,
      	* tests/draw/graph.cc,
      	* tests/level/sort_psites_full.cc,
      	* tests/level/sort_psites.cc,
      	* tests/convert/to_p_array.cc,
      	* tests/convert/to_image.cc,
      	* tests/geom/pmin_pmax.cc,
      	* tests/geom/bbox.cc,
      	* tests/set/is_subset_of.cc,
      	* tests/display/color_pretty.cc,
      	* tests/util/tree_to_image.cc,
      	* tests/util/tree_fast_to_image.cc,
      	* doc/tutorial/examples/p_line2d.cc,
      	* doc/tutorial/examples/p_array.cc,
      	* doc/tutorial/examples/p_array.2.cc,
      	* doc/tutorial/examples/p_image.cc,
      	* doc/tutorial/examples/p_queue.cc,
      	* doc/tutorial/examples/window.cc,
      	* doc/tutorial/examples/image2d.cc,
      	* doc/tutorial/examples/image_safe.cc,
      	* doc/tutorial/examples/proxy.cc,
      	* doc/tutorial/examples/p_mutable_array_of.cc,
      	* mln/debug/println_with_border.spe.hh,
      	* mln/debug/println.spe.hh,
      	* mln/core/line_graph_image.hh,
      	* mln/core/internal/graph_vicinity_piter.hh,
      	* mln/core/internal/image_if_base.hh,
      	* mln/core/internal/line_graph_vicinity_piter.hh,
      	* mln/core/p_priority_queue_fast.hh,
      	* mln/core/bgraph_image.hh,
      	* mln/core/p_priority_queue_fast_with_array.hh,
      	* mln/core/obased_rle_image.hh,
      	* mln/core/graph_image.hh,
      	* mln/core/line_graph_psite.hh,
      	* mln/core/box1d.hh,
      	* mln/core/box3d.hh,
      	* mln/core/alias/p_run2d.hh,
      	* mln/core/pset_if_piter.hh,
      	* mln/core/p_array_piter.hh,
      	* mln/core/p_array_bb.hh,
      	* mln/core/t_image.hh,
      	* mln/core/bgraph_psite.hh,
      	* mln/core/p_image2d_piter.hh,
      	* mln/core/image_if.hh,
      	* mln/core/graph_psite.hh,
      	* mln/core/clock_neighb.hh,
      	* mln/core/line_piter.hh,
      	* mln/core/site_set/p_image.hh,
      	* mln/core/site_set/p_key.hh,
      	* mln/core/box2d.hh,
      	* mln/core/box2d_h.hh,
      	* mln/core/p_run_piter.hh,
      	* mln/core/mono_obased_rle_image.hh,
      	* mln/core/concept/window.hh,
      	* mln/core/sparse_image.hh,
      	* mln/core/p_runs.hh,
      	* mln/draw/graph.hh,
      	* mln/draw/line.hh,
      	* mln/draw/plot.hh,
      	* mln/draw/label.hh,
      	* mln/accu/bbox.hh,
      	* mln/make/voronoi.hh,
      	* mln/convert/impl/from_image_to_site_set.hh,
      	* mln/convert/to_p_set.hh,
      	* mln/convert/to_p_array.hh,
      	* mln/geom/seeds2tiling.hh,
      	* mln/display/color_pretty.hh,
      	* mln/util/tree_to_image.hh,
      	* mln/util/tree_fast_to_image.hh,
      	* mln/labeling/blobs.hh,
      	* sandbox/pellegrin/set/test/p_queue_fast.cc,
      	* sandbox/pellegrin/set/test/p_bgraph.cc,
      	* sandbox/pellegrin/set/test/p_queue.cc,
      	* sandbox/pellegrin/set/test/p_priority_queue.cc,
      	* sandbox/pellegrin/set/test/pset_if.cc,
      	* sandbox/pellegrin/set/test/p_set.cc,
      	* sandbox/pellegrin/set/core/p_priority_queue_fast.hh,
      	* sandbox/pellegrin/set/core/p_bgraph.hh,
      	* sandbox/pellegrin/set/core/p_run.hh,
      	* sandbox/pellegrin/set/core/p_line_graph.hh,
      	* sandbox/pellegrin/set/core/pset_if.hh,
      	* sandbox/pellegrin/set/core/p_array.hh,
      	* sandbox/pellegrin/set/core/p_queue.hh,
      	* sandbox/pellegrin/set/core/p_priority_queue.hh,
      	* sandbox/pellegrin/set/core/p_runs.hh,
      	* sandbox/pellegrin/set/core/p_set.hh,
      	* sandbox/pellegrin/set/core/p_priority_queue_fast_with_array.hh,
      	* sandbox/pellegrin/set/core/line2d.hh,
      	* sandbox/pellegrin/set/core/p_graph.hh,
      	* sandbox/pellegrin/set/core/p_queue_fast.hh,
      	* sandbox/aroumougame/skeleton/miscellenous.hh,
      	* sandbox/aroumougame/skeleton/thinning.hh,
      	* sandbox/jardonnet/registration/tools.hh,
      	* sandbox/jardonnet/registration/quat7.hh,
      	* sandbox/jardonnet/registration/cloud.hh,
      	* sandbox/geraud/fllt/fllt.hh,
      	* sandbox/geraud/fllt/fllt.svg.1.cc,
      	* sandbox/geraud/fllt/fllt.svg.7.hh,
      	* sandbox/geraud/fllt/fllt.svg.2.cc,
      	* sandbox/geraud/fllt/fllt.svg.3.cc,
      	* sandbox/geraud/fllt/fllt.svg.4.cc,
      	* sandbox/geraud/fllt/fllt.svg.5.cc,
      	* sandbox/geraud/fllt/fllt.svg.6.cc,
      	* sandbox/geraud/fllt/fllt_test.hh,
      	* sandbox/geraud/fllt.svg.7.hh,
      	* sandbox/geraud/p_runs__with_dedicated_piter.hh,
      	* sandbox/geraud/fllt.svg.6.cc,
      	* sandbox/geraud/cs2d/cs2d_morpho.hh,
      	* sandbox/garrigues/level_set.hh,
      	* sandbox/garrigues/fllt/fllt_simple.svg.1.cc,
      	* sandbox/garrigues/fllt/fllt_simple.svg.3.cc,
      	* sandbox/garrigues/fllt/fllt_simple.cc,
      	* sandbox/garrigues/fllt/types.hh,
      	* sandbox/garrigues/fllt/fllt_theo.cc,
      	* sandbox/garrigues/fllt/fllt_types.hh,
      	* sandbox/garrigues/fllt/fllt_simple.svg.2.cc,
      	* sandbox/garrigues/fllt/fllt.hh,
      	* sandbox/garrigues/fllt/give_confs.cc,
      	* sandbox/abraham/tests/morpho/test_component_tree.cc,
      	* sandbox/abraham/tests/morpho/test_watershed.cc,
      	* sandbox/abraham/tests/morpho/test_watershed_topo.cc,
      	* sandbox/abraham/mln/morpho/basic_najman.hh: Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008@2171 4aad255d-cdde-0310-9447-f3009e2ae8c0
      ee53dffb
  2. 03 Sep, 2008 4 commits
  3. 02 Sep, 2008 2 commits
  4. 01 Sep, 2008 3 commits
    • Ugo Jardonnet's avatar
      Sandbox: Update metal::array. · ce21efdc
      Ugo Jardonnet authored
      	* jardonnet/array/array.cc: Update Test.
      	* jardonnet/array/array.hh: Add stc/dyn getters.
      	* jardonnet/array/Makefile: New.
      
      	* jardonnet/test/icp.cc: .
      	* jardonnet/registration/tools.hh: .
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2162 4aad255d-cdde-0310-9447-f3009e2ae8c0
      ce21efdc
    • Ugo Jardonnet's avatar
      Sandbox: Start working on metal::array. · ce88d19c
      Ugo Jardonnet authored
      	metal::array:
      
      	* jardonnet/array: New.
      	* jardonnet/array/array.cc: Test.
      	* jardonnet/array/array.hh: metal::array base.
      	* jardonnet/array/old,
      	* jardonnet/array/old/nd.hh,
      	* jardonnet/array/old/1d.hh,
      	* jardonnet/array/old/2d.hh,
      	* jardonnet/array/old/3d.hh,
      	* jardonnet/array/old/all.hh,
      	* jardonnet/array/old/1d.hxx,
      	* jardonnet/array/old/objs.hh,
      	* jardonnet/array/old/2d.hxx,
      	* jardonnet/array/old/3d.hxx: Olena 0.11 array type.
      
      	Minor ICP updates (old):
      
      	* jardonnet/test/icp_ref.cc,
      	* jardonnet/test/icp.cc,
      	* jardonnet/registration/icp.hh: Fix plotting.
      	* jardonnet/test/img/c55.pbm: New test img.
      	* jardonnet/test/Makefile: Clean up.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2161 4aad255d-cdde-0310-9447-f3009e2ae8c0
      ce88d19c
    • Thierry Geraud's avatar
      Add image domain extension morphers plus the flat image. · 3e9e8c07
      Thierry Geraud authored
      	Add image domain extension morphers.
      	
      	* mln/core/image/extension_ima.hh: New.
      	* mln/trait/ch_value.hh (ch_value_): New overload to deal with
      	extension_ima.
      	* mln/core/image/extension_fun.hh: New.
      	* mln/core/image/extension_val.hh: New.
      	* mln/core/routine: New directory.
      	* mln/core/routine/all.hh: New.
      	* mln/core/routine/extend.hh: New.
      	* doc/tutorial/examples/image_if.cc: Augment to test extensions.
      	
      	Add the flat image type.
      
      	* mln/core/image/flat_image.hh: New.
      	* doc/tutorial/examples/image_flat.cc: New.
      	* mln/core/image/status.txt: Update.
      
      	Enforce consistency for iterator naming.
      	
      	* mln/core/macros.hh
      	(mln_iter, mln_fwd_iter, mln_bkd_iter): Rename as...
      	(mln_eiter, mln_fwd_eiter, mln_bkd_eiter): ...these.
      	* mln/core/site_set/p_key.hh,
      	* mln/core/site_set/p_mutable_array_of.hh,
      	* mln/core/site_set/p_set_of.hh,
      	* mln/core/p_runs.hh,
      	* mln/util/set.hh,
      	* mln/util/array.hh: Update.
      
      	Misc.
      	
      	* mln/core/image/instant.hh (file): Fix.
      	* sandbox/geraud/p_runs__with_dedicated_piter.hh (todo): Remove;
      	obsolete.
      	* mln/core/internal/morpher_lvalue.hh
      	(mln_morpher_lvalue): New macro.
      	* mln/core/internal/image_identity.hh: Use the new macro.
      	* mln/core/safe.hh: Likewise.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008@2160 4aad255d-cdde-0310-9447-f3009e2ae8c0
      3e9e8c07
  5. 28 Aug, 2008 1 commit
    • Thierry Geraud's avatar
      Move new site sets in proper place, cleanup, and bug fix. · 40493cf9
      Thierry Geraud authored
      	Move site set files that only belong to that branch
      	to a dedicated new directory.
      	
      	* mln/core/site_set: New directory.
      
      	* mln/core/p_double.hh,
      	* mln/core/p_key.hh,
      	* mln/core/p_mutable_array_of.hh,
      	* mln/core/p_set_of.hh,
      	* mln/core/p_vaccess.hh: Move to...
      	* mln/core/site_set/p_double.hh,
      	* mln/core/site_set/p_key.hh,
      	* mln/core/site_set/p_mutable_array_of.hh,
      	* mln/core/site_set/p_set_of.hh,
      	* mln/core/site_set/p_vaccess.hh: ...here.
      	(file, guards): Update.
      
      	* mln/core/p_queue_fast.hh,
      	* mln/core/alias/p_runs2d.hh,
      	* mln/core/p_queue.hh,
      	* mln/core/p_priority_queue.hh,
      	* mln/core/p_set.hh,
      	* mln/core/safe.hh,
      	* mln/core/p_runs.hh: Update.
      
      	* doc/tutorial/examples/image_if.cc,
      	* doc/tutorial/examples/p_queue.cc,
      	* doc/tutorial/examples/p_vaccess.cc,
      	* doc/tutorial/examples/p_key.cc,
      	* doc/tutorial/examples/p_key.2.cc,
      	* doc/tutorial/examples/p_run.cc,
      	* doc/tutorial/examples/p_mutable_array_of.cc:
      	Update and augment.
      
      	* mln/core/site_set/all.hh: New.
      	* mln/trait/site_set/status.txt: Move to...
      	* mln/core/site_set/status.txt: ...here and update.
      
      	Bug fix.
      
      	* mln/core/p_queue_fast.hh: Fix doc.
      	* mln/core/site_set/p_double.hh (todo): Remove; obsolete.
      	(todo): New.
      	* mln/core/site_set/p_mutable_array_of.hh,
      	* mln/core/site_set/p_set_of.hh (site_set_base_):
      	Fix the 1st param.  This base class expects a type to deduce the
      	site type and, in compound site sets, such type cannot be an
      	element (a compound).
      	(doc): Fix.
      	(has): Implement so remove FIXME.
      	(insert): Add missing precondition.
      	* mln/core/site_set/p_mutable_array_of.hh (reserve): New.
      	* mln/core/safe.hh (speed): Fix.
      	
      	A couple of site set cleanup.
      
      	* mln/core/p_queue.hh: Revamp.
      	(todo): New.
      	* mln/core/p_image2d.hh: Copy to...
      	* mln/core/site_set/p_image.hh: ...this new file.
      	Revamp to make it generic.
      	* doc/tutorial/examples/p_image.cc: New.
      
      	Also move the image status file.
      
      	* mln/trait/image/status.txt: Move to...
      	* mln/core/image/status.txt: ...here.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008@2159 4aad255d-cdde-0310-9447-f3009e2ae8c0
      40493cf9
  6. 27 Aug, 2008 1 commit
    • Thierry Geraud's avatar
      Fix a couple of bugs and augment tutorial examples. · 7459ac27
      Thierry Geraud authored
      	* doc/tutorial/examples/p_array.cc: Augment with a test on p_array
      	update.
      	* doc/tutorial/examples/p_array.2.cc: Augment with index
      	manipulation.
      	* doc/tutorial/examples/p_vaccess.cc: Augment with extra output.
      	* mln/trait/site_set/status.txt (pset_array): Fix status.
      	* mln/core/p_vaccess.hh (set_1_): Fix return type.
      	* mln/core/p_double.hh (super): Rename that private typedef as...
      	(super_): ...this.
      	(change_target): New overriding in p_double_piter.  That fixes a
      	bug since such iterators have to perform some extra
      	code (w.r.t. the inherited method) when setting the site set.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008@2158 4aad255d-cdde-0310-9447-f3009e2ae8c0
      7459ac27
  7. 26 Aug, 2008 2 commits
    • Thierry Geraud's avatar
      Make the 'plain' and 'safe' morphers work. · f5fc3276
      Thierry Geraud authored
      	* doc/tutorial/examples/image_plain.cc: New.
      	* doc/tutorial/examples/image_safe.cc: New.
      	* mln/trait/image/status.txt: Update.
      	* mln/core/safe.hh (data_): Update, i.e., rename as...
      	(data): ...this.
      	(trait::image_): New.
      	* mln/core/plain.hh: Likewise.
      	(operator=): New overload for 'plain' arg.
      	(plain): New ctor overload for 'plain' arg.
      	* mln/core/concept/site_set.hh
      	(operator==, operator<=): Fix warning.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008@2157 4aad255d-cdde-0310-9447-f3009e2ae8c0
      f5fc3276
    • Thierry Geraud's avatar
      Revamp the default ordering mechanism. · 6c08d5c2
      Thierry Geraud authored
      	Revamp the default ordering mechanism (was util::less).  It now
      	relies on the trait solving material so we can now factor
      	definitions.
      	
      	* mln/trait/op/ord.hh: New.
      	* mln/trait/op/all.hh: Update.
      	* mln/util/ord.hh: New.
      	* mln/util/set.hh,
      	* mln/core/p_key.hh (util::less): Replace by...
      	(util::ord): ...this.
      	* mln/core/point.hh, 
      	* mln/core/dpoint.hh (less_than): Remove.
      	* mln/algebra/vec.hh,
      	* mln/core/box.hh,
      	* mln/core/concept/gpoint.hh,
      	* mln/core/concept/gdpoint.hh,
      	* mln/core/line2d.hh,
      	* mln/core/p_run.hh,
      	* mln/core/p_runs.hh,
      	(set_precise_unary_): New specializations.
      	(util::less): Remove.
      	* mln/core/concept/site_set.hh
      	(set_precise_unary_): New specialization without
      	implementation.
      	* mln/util/less.hh: Remove.
      	* mln/util/less_than.hh: Remove.
      
      	Disambiguate between aliases (such as point2d) and taking a
      	variable (with the now obsolete mln_alias macro).
      	
      	* mln/core/alias.hh: Rename as...
      	* mln/core/var.hh: ...this.
      	(mln_alias): Rename as...
      	(mln_VAR): ...this.
      	* sandbox/geraud/cs2d/kruskal.cc: Update.
      	* sandbox/geraud/cs2d/tuto_bis.cc: Update.
      
      	Misc.
      	
      	* doc/tutorial/examples/line2d.cc: Rename as...
      	* doc/tutorial/examples/p_line2d.cc: ...this.
      	* mln/trait/all.hh: Fix (c).
      	* mln/util/index.hh (dindex_): Move to...
      	* mln/util/dindex.hh: ...this new file.
      	* mln/util/index.hh,
      	* mln/util/dindex.hh (operator<): New.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008@2156 4aad255d-cdde-0310-9447-f3009e2ae8c0
      6c08d5c2
  8. 21 Aug, 2008 1 commit
    • Thierry Geraud's avatar
      Playing with runs, several update, and some bug fixes. · 22c30ed7
      Thierry Geraud authored
      
      	Prefer a value type as parameter over a value set type.
      	
      	* mln/core/p_vaccess.hh (todo): Remove; done:
      	(internal): Move material in...
      	* mln/core/internal/site_set_impl.hh: ...this new file.
      	(p_vaccess_impl__nsites, p_vaccess_impl__bbox),
      	(p_vaccess_impl): Rename as...
      	(site_set_impl__nsites, site_set_impl__bbox),
      	(site_set_impl): ...these.
      	* mln/core/p_vaccess.hh (clear): New method.
      	(Sp): Rename as...
      	(S): ...this.
      	(Sv): Change this parameter into...
      	(V): ...this one and update.
      	
      	The semantics of this parameter is now a value type (no more a
      	value set type).  That is an idea to generalize.  To every value
      	type V is associated the value set type mln::value::set<V>.  That
      	will simplify a lot of code in different parts of the library.
      
      	Propagate.
      	
      	* mln/core/p_set_of.hh (nelements, clear): New methods.
      	(todo): Remove; done:
      	(site_set_impl): New inheritance.
      	(nsites, bbox): Update properties.
      	(insert): Update code.
      	* mln/core/concept/site_set.hh (clear): New expected method when
      	the contents property is 'dynamic'.
      	(element): Add static check.
      	* mln/core/box.hh (P): Add static check.
      	(element): New typedef.
      	* mln/core/p_mutable_array_of.hh (nelements); New method.
      	(clear): Fix missing method.
      	(is_empty_): Add this overriding so that 'is_empty' works.
      	* mln/core/p_array.hh (clear): Fix missing postcondition.
      	* mln/core/sparse_image.hh (todo): Remove; done:
      	(p_run_set): Replace by...
      	(p_set_of<p_run<P>>): ...this type.
      
      	Add aliases.
      	
      	* mln/core/alias: New directory.
      	* mln/core/alias/p_run2d.hh: New.
      	* mln/core/alias/p_runs2d.hh: New.
      
      	Introduce a general converter.
      	
      	* mln/convert/to_p_run_set.hh: Remove; obsolete because replace by
      	a more generic new mechanism:
      	* mln/convert/impl: New directory.
      	* mln/convert/impl/from_image_to_site_set.hh: New.
      	* mln/convert/impl/all.hh: New.
      	* mln/convert/from_to.hh: New.
      	* mln/convert/all.hh: Update.
      
      	Update tutorial examples.
      	
      	* doc/tutorial/examples/p_run_set.cc: Rename as...
      	* doc/tutorial/examples/p_run.cc: ...this.
      	Update.
      	* doc/tutorial/examples/p_vaccess.cc,
      	* doc/tutorial/examples/p_mutable_array_of.cc: Update.
      
      	Now bench.  The result is twofold:
      	- p_set_of<p_run<P>> is as fast as the deprecated p_run_set<P>;
      	- the dedicated iterators (in my sandbox) are twice as fast as the
      	  general ones (the p_double_* stuff); yet such a difference is not
      	  so significant!
      
      	* mln/core/p_runs.hh (clear): New method; just to be able to
      	bench!
      	* sandbox/geraud/p_runs__with_dedicated_piter.hh
      	(clear): New method.
      	* doc/benchmark/p_runs.cc: Update.
      	
      	Misc.
      
      	* doc/tutorial/examples/proxy.cc: Update/fix.
      	* mln/core/image2d.hh (alt): Fix missing update.
      	* doc/benchmark/image2d.cc: Likewise.
      	* mln/core/internal/site_set_base.hh (S): Fix typo; rename as...
      	(P): ...this.
      	* mln/core/macros.hh
      	(mln_i_element, mln_i_element_),
      	(mln_r_element, mln_r_element_): New macros.
      	* mln/core/pset_if.hh
      	(is_valid, memory_size): Fix missing methods.
      	* mln/core/pset_if_piter.hh (pi_change_target_): Fix sig.
      	* mln/labeling/blobs.hh (todo): New.
      	(blobs): Add a test on label overflow.
      	* mln/trait/image/status.txt: Fix missing image type.
      	
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008@2155 4aad255d-cdde-0310-9447-f3009e2ae8c0
      22c30ed7
  9. 20 Aug, 2008 1 commit
    • Thierry Geraud's avatar
      Huge summer cleanup. · 34bf6dae
      Thierry Geraud authored
      
      	
      	Part 0:  New metal stuff for use in proxy-related meta-programs.
      	----------------------------------------------------------------
      
      
      	
      	* mln/metal/unqualif.hh (todo): New.
      	* mln/metal/const.hh (const_): New overloads for pointers.
      	* mln/metal/is_a.hh (is_a): New overload to handle & and const&.
      	(make_): Likewise.
      	* mln/metal/is.hh (is): New overload to handle constness.
      	* mln/metal/unref.hh (unref): New overload to handle const&.
      	* mln/metal/is_not_ref.hh: New.
      	* mln/metal/is_ref.hh: New.
      	* mln/metal/ref.hh: New.
      
      	
      
      	Part I:  Cleanup traits.
      	------------------------
      
      	
      	
      	Reduce dependencies between trait structures and the solving
      	meta-programs.  Forward declarations of the latter are included
      	before the definition of trait structures and meta-programs are
      	eventually included at EOF.
      
      	
      	* mln/trait/op/decl.hh: New.  Forward declare the couple of
      	solving meta-programs.
      
      	* mln/trait/op/leq.hh,
      	* mln/trait/op/times.hh,
      	* mln/trait/op/div.hh,
      	* mln/trait/op/plus.hh,
      	* mln/trait/op/neq.hh,
      	* mln/trait/op/greater.hh,
      	* mln/trait/op/minus.hh,
      	* mln/trait/op/not.hh,
      	* mln/trait/op/postdec.hh,
      	* mln/trait/op/predec.hh,
      	* mln/trait/op/and.hh,
      	* mln/trait/op/eq.hh,
      	* mln/trait/op/less.hh,
      	* mln/trait/op/xor.hh,
      	* mln/trait/op/uplus.hh,
      	* mln/trait/op/geq.hh,
      	* mln/trait/op/mod.hh,
      	* mln/trait/op/postinc.hh,
      	* mln/trait/op/preinc.hh,
      	* mln/trait/op/uminus.hh,
      	* mln/trait/op/or.hh: Update.
      
      	Group category materials in the same file.
      	
      	* mln/trait/solve.hh (super_category_): Move...
      	* mln/category.hh: ...here.
      	Consequently mln::trait::internal::super_category_ is now
      	mln::internal::super_category_.
      
      	Allow the category associated type to hold extra information.  In
      	particular we need for proxy to carry the super category
      	information.  For that, in meta-programs, it is now used as a
      	'regular' type (no more as a meta-type), e.g., we propagate
      	'Image<void>' as a parameter in meta-programs instead of 'Image'.
      	In the case of multiple possible super categories, for instance
      	for builtin types, we have 'Category<Super_Category>'.
      	
      	* mln/trait/solve_unary.hh (trait_set_unary_): New.  This
      	structure removes the parameter of the category to access the
      	definition of trait::set_unary_.
      	(Category_T): Replace in meta-code this meta-class parameter by...
      	(Category): ...this class parameter.
      	* mln/trait/solve_binary.hh: Likewise.
      
      	* tests/trait/super.cc,
      	* mln/value/builtin/symbolics.hh,
      	* mln/value/builtin/floatings.hh,
      	* mln/value/builtin/integers.hh: Update.
      
      
      	
      	PART II.  Make the default coordinate type easily changeable.
      	-------------------------------------------------------------
      
      
      	
      	Introduce a one-place definition of the default coordinate used in
      	point2d and related classes.  This definition is changed from
      	"int" to "short int" to save memory when containers of coordinates
      	are involved.
      	
      	* mln/core/def: New directory for definitions.
      	* mln/core/def/coord.hh: New.
      	* mln/core/dpoint.hh,
      	* mln/core/point.hh: Include this new file.
      
      	* mln/core/dpoint2d.hh,
      	* mln/core/point1d.hh,
      	* mln/core/point2d.hh,
      	* mln/core/point3d.hh,
      	* mln/make/box3d.hh,
      	* mln/make/dpoint1d.hh,
      	* mln/make/dpoint2d.hh,
      	* mln/make/dpoint3d.hh,
      	* mln/make/box1d.hh,
      	* mln/make/box2d.hh,
      	* mln/make/box3d.hh,
      	* mln/make/point1d.hh,
      	* mln/make/point2d.hh,
      	* mln/make/point3d.hh,
      	* mln/trait/image/props.hh (int): Replace by...
      	(def::coord): ...this.
      
      	
      
      	PART III.  Make the proxy mechanism more powerful.
      	--------------------------------------------------
      
      	
      
      	The proxy mechanism can now handle the several cases in the nature
      	of the subject:
      	- with type "T", the subject is a temporary object or an object
      	  copy;
      	- with type "T&", the subject is modifiable through a non-const
      	  proxy;
      	- with type "const T&", the subject is handle by reference (not
      	  copied) yet it is never modifiable.
      
      	
      	The "unproxy()" method is split into:
      	- unproxy_() [const]
      	  These methods are automatically inherited thru internal::proxy_impl.
      	  The '_' suffix emphasizes their technical-detail (non-user) nature.
      	- subj_()
      	  This method has to be defined in proxy concrete classes.  It
      	  shall return the immediate subject of the proxy.  This not-const
      	  method is unique.  A proper "unproxy_() const" method is defined
      	  from it.
      
      	The "subject" typedef is replaced by "q_subject" which is
      	qualified (so that the proxy mechanism can handle different cases
      	described above).  This typedef is no more defined explicitly by
      	the client, it is automatically set thanks to inheritance with the
      	first parameter of the internal::proxy_impl class.
      	
      	* mln/core/concept/proxy.hh (unproxy): Replace this const method
      	by...
      	(subj_): ...this mutable one.
      	(subject): Remove this typedef.
      	(FIXME): Fix'n remove.
      	(subject, unproxy_rec): New external material to access the actual
      	subject type and object.  If we have a proxy to a proxy, that is, a
      	recursive construction, the subject at end is returned.
      	* mln/core/macros.hh (mln_q_subject): New.
      	(mln_subject): Deactivate for safety purpose.  The user should not
      	have to access the actual subject type. 
      	
      	Recap:
      	
      	- P::q_subject is the qualified immediate subject
      	  (that may be itself a proxy type)
      	v.
      	- subject<P> is the subject type at end 
      	  (it cannot be a proxy type)
      
      	- p.subject_() gives the immediate subject object
      	  (which may be a proxy object)
      	v.
      	- unproxy_rec(p) gives the subject object at end
      	  (it cannot be a proxy object).
      	
      	* mln/core/concept/proxy.hh
      	(Proxy): Update ctor to perform the proper checks.
      	(unproxy_couple): Rename as...
      	(helper_unproxy_binop): ...this.
      	(mln_def_binop_proxy, operator, set_unary_, set_binary_): Update.
      	(internal): Move material into...
      	* mln/core/concept/proxy.hxx: ...this new file.
      	(helper_subject_of, helper_unproxy_rec, helper_get_proxy_impl):
      	New helpers to handle the different cases.
      
      	Proxies are automatically equipped with some new material:
      	
      	* mln/core/concept/proxy.hxx:
      	(q_subject, unproxy_): New in proxy_impl.
      	(HOT_actual_subject, get_subject): New in helper_get_proxy_impl
      	when recursion ends, that is, when the subject is no more a proxy.
      	(subject_impl): New structure to be specialized (see below).
      	
      	IMPORTANT:
      	
      	For a proxy to look like an actual subject, it shall have the
      	interface of the later.  For that, the "subject_impl"
      	parameterized structure has to be specialized.  See
      	mln/core/point2d.hh for an example.
      	
      	Consequently to the modifications of the proxy mechanism, some
      	pieces of code are now obsolete:
      	
      	* mln/accu/internal/base.hh (q_subject, subject, unproxy): Remove.
      	(subj_): New.
      	(base_): Pass the qualified R type as parameter to proxy_impl.
      	* mln/core/concept/site_proxy.hh (internal): Remove.  We can now
      	use the default material for all proxies.
      	* mln/core/internal/pseudo_site_base.hh (is_mutable): Remove this
      	parameter.  It is now obsolete since the immediate subject type is
      	qualified, namely the parameter P.
      	(subject, q_subject): Remove.
      	(site): Update.  It now relies on proxy material.
      	(to_site): New method.  It is now final thanks to get_subject().
      	* mln/core/internal/site_relative_iterator_base.hh
      	(unproxy): Replace by...
      	(subj_): ...this.
      	* mln/core/internal/site_iterator_base.hh: Likewise.
      	(site_impl): Remove this obsolete inheritance.  Now the
      	implementation is offered by the proxy mechanism.
      	(operator site, to_site): Update; use get_subject.
      	* mln/core/point2d.hh (site_const_impl, site_impl): Replace by...
      	(subject_impl): ...these.
      
      	Last.
      	
      	* doc/tutorial/examples/proxy.cc: New.
      
      	
      	
      	PART IV.  Add some utility code.
      	--------------------------------
      
      
      	
      	The main idea is to provide iterators for util::set and
      	util::array so that such structures can be involved in some site
      	set types with a common interface.  In particular, they can be
      	used by the new material of mln/core/p_double.hh
      
      
      	Finalize the util::set class.  It is now fully functional.  A
      	major improvement is that the method ".has()" does no more require
      	that the data are unfrozen.
      	
      	* mln/util/set.hh (set_fwd_iter, set_bkd_iter): New classes.
      	(fwd_iter, bkd_iter, iter): New typedefs.
      	(first_element, last_element, memory_size): New.
      	(is_frozen_): New.  Hum... we should think of adding a public
      	freeze method.
      	(has): Now work when the set is frozen thanks to...
      	(v_has_, dicho_): ...these new private methods.
      	(insert): New overload with a set as argument.
      	(remove): New method.
      	(todo): Remove; done.
      	(todo): New.
      	(documentation): Layout.
      	(vect): Rename this method as...
      	(std_vector): ...this more explicit name.
      	(operator<<): Change the output.
      
      	A new class, util::array, is introduce.  It is nearly a regular
      	dynamic array expect that it will provide a remove-element method
      	with O(1) complexity.  This feature is not yet implemented (see
      	the todo).
      	
      	* mln/util/array.hh: New.
      
      	Misc.
      	
      	* mln/core/contract.hh (mln_implies): Replace this macro by...
      	(implies): ...this routine.  Nota: the macro did not work!
      	* mln/core/macros.hh
      	(mln_bkd_iter, mln_fwd_iter, mln_iter): New.
      	(mln_element): New.
      	* mln/fun/v2v/inc.hh: New.
      	* mln/fun/v2v/dec.hh: New.
      	* mln/util/index.hh (operator++, operator--): New.
      	(todo): New.
      	* mln/util/timer.hh: New.
      	* mln/util/yes.hh (operator==, operator!=): New overloads.
      	* mln/util/less.hh (op_less, op_less_or_equal): New.
      	* mln/value/viter.hh (change_target, index_): New.
      	(fwd_viter_, bkd_viter_): New overload ctor without argument.
      
      
      	
      	PART V.  Cleanup site set definitions.
      	--------------------------------------
      
      	
      
      	A lot of work here has been done to FACTOR (!) code and make it
      	safer.
      	
      	
      	First add a re-target feature to pseudo sites.
      
      	* mln/core/concept/pseudo_site.hh (target_t): Rename this typedef
      	as...
      	(target): ...this.
      	(target_, change_target): New methods expected in concrete
      	classes.
      	(has_target): New final method.
      	(if_possible::change_target): Update.
      	* mln/core/macros.hh (mln_target_): New.
      	
      	Add some methods in the site set interface.
      	
      	* mln/core/concept/site_set.hh (is_valid): New method.  Some site
      	set types are always valid, some others can sometimes be
      	invalid (think of an initialized box!)
      	(memory_size): New.
      	(i_element, insert): New methods expected by site sets with
      	"dynamic contents".
      	(r_element, remove): New methods expected by site sets with "free
      	contents".  Nota bene: having a "growing contents" means that no
      	removal is possible.
      	(q_box): New typedef expected by site sets knowing their bounding
      	box.
      	(bbox): Turn this method into optional.
      	(internal): New material to check the presence of methods that
      	some site sets feature.
      	(Site_Set): Use this material to check the presence of the nsites,
      	bbox, insert, and remove methods.
      	(todo): Remove; done.
      	* mln/accu/bbox.hh (box_): Update to...
      	(box): ...the new class name.
      	(take): Rely on is_valid instead of nsites.
      	* mln/core/box.hh,
      	* mln/core/p_queue_fast.hh,
      	* mln/core/p_priority_queue.hh,
      	* mln/core/p_set.hh,
      	* mln/core/line2d.hh,
      	* mln/core/p_run.hh,
      	* mln/core/p_run_piter.hh,
      	* mln/core/p_array.hh,
      	* mln/core/p_runs.hh: Update.
      	* mln/core/concept/box.hh (q_box): New typedef.
      	(nsites): Handle the case of a non-initialized box.
      	* doc/tutorial/examples/cpp_issue.cc: New.  It illustrates the
      	impossibility of having a "typedef box" (and thus a method having
      	for signature "box bbox() const") due to the type "box<P>".
      
      	Some site set types are indexed (featuring an operator[]).  The
      	triplet of psite, fwd_piter, and bkd_piter is factored for such
      	types.  It is the case for:
      	- p_array<P>
      	- p_set<P>
      	- line2d.
      
      	* mln/core/p_array.hh (p_array_psite): Rename as...
      	(p_indexed_psite): ...this and update.
      	(p_indexed_fwd_piter, p_indexed_bkd_piter): New iterators.
      	(psite, fwd_piter, bkd_piter): Update.
      	(trait): Update.
      	(element, piter, i_element): New typedefs.
      	(has_index): Remove; replace by...
      	(has): ...this overload with util::index.
      	(operator[]): New overload with util::index.
      	(vect): Rename as...
      	(std_vector): ...this.
      	(memory_size, hook_std_vector_): New.
      	* mln/core/p_set.hh: Likewise.
      	(p_set): Change inheritance (remove dependency on set_of_) into
      	delegation with...
      	(s_): ...this new attribute whose type is util::set.
      	(remove): Re-activate and make it work.
      	(bb_, bbox): Remove because it is too costly to maintain.
      	* mln/core/p_array_piter.hh: Obsolete changes.
      	* mln/core/line2d.hh
      	(vect_): Change this attribute to...
      	(arr_): ...this new one with type being a p_array.
      	(beg_, end_): Remove those useless attributes.
      	(begin, end, bbox): New methods.
      	(line2d): Update like previous site set types.
      	* doc/tutorial/examples/line2d.cc: New.
      	
      	Re-vamp the p_queue_fast so that it completely relies on p_array.
      	
      	* mln/core/p_queue_fast.hh (include): Remove about all
      	includes (useless!).  Add p_array.hh.
      	(trait): Update.
      	(element, psite, piter): New typedefs.
      	(fwd_piter, bkd_piter): Now use the indexed iterators.
      	(has): Replace by...
      	(compute_has): ...this re-written method.
      	(has): Now take a psite (!)
      	(npoints, vect): Rename as...
      	(nsites, std_vector): ...these.
      	(bbox, push_force, is_empty): Remove.
      	(i_element, insert, purge, memory_size): New.
      	(bb_, vect_needs_update_): Remove.  They are useless since:
      	(q_): Change type from std::vector to p_array.
      	(begin_, end_): Change type from std::size_t to unsigned.
      	(operator[]): New.
      	(p_queue_fast, reserve, clear, pop, push): Re-write.
      	(pop_front): Fix missing precondition.
      
      	Completely re-write the priority queue class so that this class is
      	unique.  Put differently we had three classes:
      	- p_priority_queue
      	- p_priority_queue_fast
      	- p_priority_queue_fast_with_array
      	and now we have one factored class:
      	- p_priority!
      	Yet this class does not handle a bounding box (to be implemented).
      	
      	* mln/core/p_priority_queue.hh (p_priority_queue): Rename as...
      	(p_priority): ...this.
      	Re-write completely and update; noticeable changes are:
      	(T): Replace this element-type parameter by...
      	(Q): ...this new parameter; it is the queue-type.
      	(bbox, operator[], push_force): Remove these methods.
      	(insert): New method.
      	(exists_priority, operator()): New methods.
      	(lowest_priority, highest_priority): New methods.
      	
      	* doc/tutorial/examples/p_queue.cc: New.  Illustrate what can be
      	done with both p_queue_fast and p_priority_queue.
      
      	About site sets based on runs, cleanup and speedup code.
      	A couple of important remarks:
      	- p_run<P> does not rely on p_indexed stuff because the dedicated
      	  code is more efficient; just think of calling .next() and
      	  computing the i-th point (slow) instead of just
      	  inc/dec-rementing the last coordinate (fast).
      	- p_runs<P> is a transition class between has-been code and
      	  will-be code; it will be automatically replaced by composite
      	  site set types s.a. p_array_of< p_run<P> >.
      
      	* mln/core/p_run.hh: Update like previous site set types.
      	(set_run): Rename this method as...
      	(init): ...this.  It is now consistent with other lib types.
      	(p_): Rename this attribute as...
      	(start_): ...this more explicit name.
      	(first): Rename this method as...
      	(start): ...this.
      	(end): New method.
      	(bb_): Remove this attribute since it is easily and efficiently
      	computable.
      	(is_valid_): Likewise.
      	(bbox): Update; now return by copy.
      	(std::size_t): Change this type of length into...
      	(unsigned short): ...this sufficient type.
      	(util::less): New specialization.
      	(psite, piter): New typedefs.
      	(p_run_psite): New.  There was no psite for p_run!  Instead a type
      	of point was used so there was no very efficient ".has(p)"
      	method...
      	(has): Overload for psite.  It is quick :-)
      	* mln/core/p_run_piter.hh: Update.
      	(assign_run, to_point, operator[], ind, operator P): Remove; now
      	obsolete because factored in super classes.
      	(i_, p_, run_, is_valid_): Likewise for these attributes.
      	* mln/core/p_runs.hh (p_runs): Rename as...
      	(p_run_set): ...this.
      	(fwd_piter, bkd_piter): Use p_double stuff; see below.
      	Update the full class file.  Nota bene: this class will be soon
      	obsolete!  Yet to bench the difference after changes we keep track
      	of an up-to-date version:
      	* sandbox/geraud/p_runs__with_dedicated_piter.hh: Copy of previous
      	code to bench purpose.
      	* doc/benchmark/p_runs.cc: New.
      	* doc/tutorial/examples/p_run_set.cc: New.
      	* mln/convert/to_p_run_set.hh: New.
      
      	Add composite site set types, meaning types for "composites of
      	site sets".  For instance, a dynamic array of site sets or a
      	mathematical set of site sets.
      	
      	* mln/core/p_double.hh: New.
      	* mln/core/p_mutable_array_of.hh: New.
      	* mln/core/p_set_of.hh: New.
      	* doc/tutorial/examples/p_mutable_array_of.cc: New.
      
      	New site set types that are value-oriented.
      	
      	* mln/core/p_vaccess.hh: New.
      	* mln/core/obsolete_p_vaccess.hh: New.
      	* mln/core/p_key.hh: New.
      	* doc/tutorial/examples/p_vaccess.cc: New.
      	* doc/tutorial/examples/p_key.cc: New.
      	* doc/tutorial/examples/p_key.2.cc: New.
      
      	Misc.
      	
      	* mln/core/p_queue.hh (npoints): Rename as...
      	(nsites): ...this.
      	(is_empty): Remove; obsolete.
      	* mln/core/internal/site_set_base.hh
      	(is_empty): New method; it dispatches to is_empty_.
      	(is_empty_): New default implementation based on the nsites
      	method.  This method has to be overridden by sub-classes that can
      	test their emptiness though they do not feature the nsites method.
      	* mln/core/concept/site_set.hh (insert_all): Replace this method by...
      	(operator+=): ...this external operator and add static checks.
      	* doc/tutorial/examples/image2d.cc,
      	* doc/tutorial/examples/window.cc: Update.
      	* mln/trait/site_set/props.hh (todo): New.
      	(contents::free): Fix typo in return of the name() method.
      	
      	Last.
      
      	* mln/trait/site_set/status.txt: Layout and update.  That is THE
      	reference file to know the work done v. remaining to be done on
      	site sets.
      
      
      	
      	PART VI.  Some work on image types.
      	-----------------------------------
      
      
      	Cleanup the internal classes.
      	
      	* mln/core/internal/data.hh (todo): New.
      	* mln/core/internal/image_base.hh (morpher_lvalue_): Move into...
      	* mln/core/internal/morpher_lvalue.hh: ...this new file.
      	* mln/core/internal/check/image_all.hh: Typo.
      	* mln/core/internal/check/image_fastest.hh (ctor): Fix a missing
      	static check.
      	* mln/core/internal/image_identity.hh
      	(image_identity_impl__fastest, image_identity_impl): New.
      	Actually this new code should be located elsewhere.
      
      	Bench image2d and compare iterations with different
      	implementations.
      	
      	* mln/core/point.hh (operator[]): Change return from "C" to "const
      	C&".
      	(last_coord): New.
      	(plus_infty, minus_infty): New.
      	(cut_): New.
      	* mln/core/internal/coord_impl.hh
      	(ind, row, col, sli): Change return from "C" to "const C&".
      	* mln/core/window.hh: Update.
      	* mln/core/box_piter.hh (next_): Speedup a bit.
      	* mln/core/image2d.hh (alt): New temporary method to bench purpose.
      	* doc/benchmark/image2d.cc: New.
      
      	First attempt to deal with temporary mutable morphers.
      	
      	* mln/core/image: New directory.
      	* mln/core/image/all.hh,
      	* mln/core/image/instant.hh: New files.
      	* mln/core/sub_image.hh (operator|): New overload for instant
      	images.
      	* mln/level/fill_with_value.hh (fill_with_value): Likewsie. 
      	* doc/tutorial/examples/sub_image.cc: Use fill_with_value to show
      	that instant morphers can be mutable.
      
      	Start to update p_run-based image types.
      
      	* mln/core/sparse_image.hh: Update using p_run_set<P>.
      
      	Misc.
      	
      	* mln/core/plain.hh (include): Remove useless dependence on
      	algebra::vec.
      	* mln/pw/image.hh (speed): Fix wrong property.
      
      
      	
      	PART VII.  What is not in previous parts.
      	-----------------------------------------
      
      	
      	
      	* doc/tutorial/examples/p_array.cc: Replace some dynamic
      	assertions by static checks.
      	* mln/core/concept/gdpoint.hh (todo): New.
      	* mln/core/internal/piter_adaptor.hh
      	(pi_change_target_): New default implementation.
      	(pi_set_from_): Remove this method expected in subclasses.
      	(change_target): Call pi_change_target_.
      	* mln/core/pset_if_piter.hh: Update.
      	* mln/debug/put_word.hh: New.
      	* mln/debug/println.hh (todo): New.
      	* mln/debug/println.spe.hh (todo): New.
      	(println): Revamp 2D version so it can work on a wider set of
      	images.  It no longer relies on the "at(row,col)" method.
      	(println): Overload for image2d<char>.
      	* mln/geom/bbox.hh (bbox_): Fix signature.
      	* mln/labeling/blobs.hh (unsigned): Replace its use by...
      	(L): ...this parameter.  That is a feature bug fix!
      	* mln/morpho/internal: New.
      	* mln/morpho/internal/elementary.hh: New.
      	* mln/morpho/gradient_elementary.hh: Use new stuff.
      	* mln/morpho/dilation_elementary.hh: Add temporary code.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008@2154 4aad255d-cdde-0310-9447-f3009e2ae8c0
      34bf6dae
  10. 18 Aug, 2008 1 commit
    • Aroune Aroumougame's avatar
      skeleton of 2d images. · 1dbd6c8c
      Aroune Aroumougame authored
      	* aroumougame/skeleton/io.hh: New.
      	* aroumougame/skeleton/mesh-skel.cc: process skeleton of 3D objects
      	* aroumougame/skeleton/mesh-skel_region.cc: process skeleton of 3D
      	* objects by local neighborhood
      	* aroumougame/skeleton/miscellenous.hh: New.
      	* aroumougame/skeleton/sedt.hh: process the squared euclidean
      	* distance transform
      	* aroumougame/skeleton/test.cc: .
      	* aroumougame/skeleton/test_image2d.cc: .
      	* aroumougame/skeleton/thinning.hh: add the filtered skeleton routine
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2153 4aad255d-cdde-0310-9447-f3009e2ae8c0
      1dbd6c8c
  11. 14 Aug, 2008 2 commits
    • Roland Levillain's avatar
      Kill more warnings in tests. · 0da8aa45
      Roland Levillain authored
      	* mln/morpho/Rd.hh (mln::morpho::impl::Rd::Rd): Add braces around
      	inner `if' to avoid (visual) ambiguity w.r.t. a dangling `else'.
      	* mln/morpho/contrast.hh: Wrap long lines.
      	* mln/morpho/opening.hh, tests/morpho/contrast.cc:
      	Add FIXMEs.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2152 4aad255d-cdde-0310-9447-f3009e2ae8c0
      0da8aa45
    • Roland Levillain's avatar
      Fix many tests. · af17b31f
      Roland Levillain authored
      	* mln/core/decorated_image.hh
      	(mln::decorated_image<I, D>::rvalue): New typedef.
      	(mln::decorated_image<I, D>::lvalue): Set to impl_::lvalue.
      	(mln::decorated_image<I, D>::read_): Have it return a rvalue, not
      	a value.
      	(mln::decorated_image<I, D>::operator()(const psite&) const)
      	(mln::decorated_image<I, D>::operator()(const psite&)):
      	New operators
      	(mln::internal::decorated_image_impl_<I, E>::write_): Fix access
      	to delegatee's data.
      	* mln/math/abs.hh (mln::level::abs(const value::int_u<n>&)):
      	Declare this overload.
      	(mln::math::abs(int))
      	(mln::math::abs(long))
      	(mln::math::abs(float))
      	(mln::math::abs(double))
      	(mln::math::abs(long double)):
      	New overloads.
      	* mln/border/fill.hh,
      	* mln/level/memset_.hh:
      	Include header cstring for std::memset.
      	* mln/make/w_window.hh: Wrap long lines.
      	* mln/convert/to_image.hh: Likewise.
      	(mln::convert::to_image(const Weighted_Window<W>&)): Fill the
      	image with zeros before copying weights.
      	* mln/convert/to_p_array.hh: Include missing header
      	mln/core/concept/image.hh for mln::Image.
      	* mln/win/line.hh (mln::win::line<M,i,C>::line): Replace a dynamic
      	assertion by a static one.
      	* mln/value/float01_.hh
      	(mln::trait::value< mln::value::float01_<n> >::min)
      	(mln::trait::value< mln::value::float01_<n> >::max)
      	(mln::trait::value< mln::value::float01_<n> >::epsilon)
      	* mln/value/float01_f.hh
      	(mln::trait::value< mln::value::float01_f >::min)
      	(mln::trait::value< mln::value::float01_f >::max)
      	(mln::trait::value< mln::value::float01_f >::epsilon)
      	* mln/value/internal/gray_.hh
      	(mln::trait::value< mln::value::internal::gray_<n> >::min)
      	(mln::trait::value< mln::value::internal::gray_<n> >::max)
      	(mln::trait::value< mln::value::internal::gray_<n> >::epsilon)
      	* mln/value/internal/gray_f.hh
      	(mln::trait::value< mln::value::internal::gray_f >::min)
      	(mln::trait::value< mln::value::internal::gray_f >::max)
      	(mln::trait::value< mln::value::internal::gray_f >::epsilon):
      	Remove useless `const' qualifier on return type.
      	* mln/value/proxy.hh
      	(mln::value::proxy<I>::~proxy)
      	(mln::value::proxy<const I>::~proxy):
      	Change the return type of checked `read_' routine to
      	mln_rvalue(I).
      	* mln/value/stack.hh
      	(mln::value::stack_image<n, I>::read_)
      	(mln::value::stack_image<n, I>::operator()(const psite&)):
      	Set return type to rvalue.
      	* mln/fun/v2v/rgb_to_hsi.hh: Add missing copyright header.
      	Add missing header guards.
      	Wrap long lines.
      	(mln::fun::v2v::f_rgb_to_hsi_<T_hsi>): Remove useless variable.
      	* mln/geom/seeds2tiling.hh (mln::geom::impl::seeds2tiling): Add
      	braces around inner `if' to avoid (visual) ambiguity w.r.t. a 
      	dangling `else'.
      	* mln/core/fi_adaptor.hh (mln::fi_adaptor<I>::load): Ensure the
      	image is correctly loaded.
      
      	* tests/core/decorated_image.cc: Exercise
      	mln::decorated_image< const I, D >.
      	* tests/core/fi_adaptor.cc: Use a smaller kernel for the median
      	filter.
      	Use tests/data.hh and MLN_IMG_DIR to find the img/ dir.
      	Don't call display::show.
      	* tests/core/w_window1d_int.cc: Use meaninful input.
      	Update documentation.
      	* tests/linear/log.cc: Update expected values.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2151 4aad255d-cdde-0310-9447-f3009e2ae8c0
      af17b31f
  12. 13 Aug, 2008 2 commits
  13. 12 Aug, 2008 5 commits
  14. 11 Aug, 2008 9 commits
    • Roland Levillain's avatar
      Add a complex-base image type. · 0a619acf
      Roland Levillain authored
      	* mln/core/complex_image.hh: New.
      	* mln/trait/ch_value.hh
      	(mln::trait::impl::ch_value_<M<D, tag::psite_<P>, tag::value_<T> >, V>):
      	New specialization for mln::complex_image<D, P, T>.
      	* mln/core/p_complex.hh (mln::p_complex<D, P>::cplx):
      	New mutable accessor.
      	* mln/core/complex_psite.hh
      	(mln::complex_psite<D, P>::n)
      	(mln::complex_psite<D, P>::face_id):
      	New accessors.
      	* mln/core/face.hh
      	(any_face_handle<D>::any_face_handle(const face_handle<N, D>&)):
      	New ctor.
      	(any_face_handle<D>::any_face_handle(const any_face_handle<D>&)):
      	Don't forget to initialize n_.
      	(any_face_handle<D>::any_face_handle(complex<D>&, unsigned, unsigned)):
      	Ensure N is compatible with D.
      	* tests/core/complex_image.cc: Exercise mln::complex_image.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2143 4aad255d-cdde-0310-9447-f3009e2ae8c0
      0a619acf
    • Roland Levillain's avatar
      Aesthetic changes w.r.t. domain names in graph-based images. · f601a073
      Roland Levillain authored
      	* mln/core/graph_image.hh: s/g/pg/.
      	* mln/core/line_graph_image.hh: s/g/plg/.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2142 4aad255d-cdde-0310-9447-f3009e2ae8c0
      f601a073
    • Roland Levillain's avatar
      Follow g++ 4.3 advice w.r.t. nested `if' statements. · ccf89b17
      Roland Levillain authored
      	* mln/canvas/labeling.hh (mln::canvas::labeling<F>::pass_1())
      	* mln/morpho/meyer_wst.hh (mln::morpho::meyer_wst<I, N, L>):
      	Add braces around inner `if' to avoid (visual) ambiguity w.r.t. a
      	dangling `else'.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2141 4aad255d-cdde-0310-9447-f3009e2ae8c0
      ccf89b17
    • Roland Levillain's avatar
      * build-aux/with-swilena.m4: Require SWIG 1.3.31. · 59471945
      Roland Levillain authored
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2140 4aad255d-cdde-0310-9447-f3009e2ae8c0
      59471945
    • Roland Levillain's avatar
      Wrap more morphological filters. · 0076aae9
      Roland Levillain authored
      	* morpho.ixx: Wrap mln::morpho::closing, mln::morpho::opening
      	mln::morpho::gradient_internal, mln::morpho::gradient_external,
      	mln::morpho::opening_area.
      	(instantiate_closing, instantiate_opening)
      	(instantiate_gradient_internal, instantiate_gradient_external)
      	(instantiate_opening_area):
      	New macros.
      	Use them...
      	(instantiate_morpho): ...here.
      	Deduce the previous `L' parameter from `mln_value(I)', and remove
      	it from the list of parameters of the macro.
      	* image2d_int_u8.i: Adjust.
      	* image2d_int.i: Use macros instantiate_erosion and
      	instantiate_dilation.
      
      	* python/data.py: New.
      	* python/test.py: Rename as...
      	* python/image2d-misc.py: ...this.
      	* python/lena.py: Rename as...
      	* python/morpho-fun.py: ...this.
      	Exercise more morphological filters.
      	Move WST-based segmentation tests...
      	* python/morpho-segm.py: ...here (new test).
      	* python/swilena.py: Add documentation header.
      	* python/Makefile.am (python_PYTHON): Add data.py.
      	(TESTS): Add morpho-segm.py.
      	s/test.py/image2d-misc.py/
      	s/lena.py/morpho-fun.py/
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2139 4aad255d-cdde-0310-9447-f3009e2ae8c0
      0076aae9
    • Roland Levillain's avatar
      Provide instantiation macros for module `morpho'. · bdf45d1c
      Roland Levillain authored
      	* morpho.ixx (instantiate_dilation, instantiate_erosion)
      	(instantiate_gradient, instantiate_closing_area)
      	(instantiate_meyer_wst):
      	New SWIG macros.
      	(instantiate_morpho): Likewise.
      	Use it...
      	* image2d_int_u8.i: ...here, to simplify the wrapping of morpho
      	routines.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2138 4aad255d-cdde-0310-9447-f3009e2ae8c0
      bdf45d1c
    • Roland Levillain's avatar
      Wrap morphological gradient and area closing. · 9b2770de
      Roland Levillain authored
      	* morpho.ixx: Wrap mln::morpho::gradient and
      	mln::morpho::closing_area.
      	* image2d_int_u8.i (meyer_wst): Rename as...
      	(meyer_wst32): ...this.
      	(gradient, closing_area, meyer_wst): New wrappings.
      	* python/lena.py: Exercise gradient and area closing (along with
      	Meyer's watershed transform).
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2137 4aad255d-cdde-0310-9447-f3009e2ae8c0
      9b2770de
    • Roland Levillain's avatar
      Simplify the wrappings of mln::neighb2d and mln::window2d. · 70877a7d
      Roland Levillain authored
      	* neighb2d.i, window2d.i: Wrap the classes directly, instead of
      	using simplified, inlined declarations.
      	* box2d.i: Aesthetic changes.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2136 4aad255d-cdde-0310-9447-f3009e2ae8c0
      70877a7d
    • Roland Levillain's avatar
      Clean up Swilena a bit. · 74196224
      Roland Levillain authored
      	* box2d.i, dpoint2d.i: Remove dead code.
      	* image2d.ixx: Likewise.
      	(instantiate_image2d): Indent.
      	* intp.ixx: Add missing `module' statement.
      	* fill.ixx: Use macro mln_value() in fill()'s signature, as in the
      	original one.
      	* ch_value.ixx
      	(ch_value< image2d< int_u<8> >, int_u<32> >): Turn into...
      	(ch_value< image2d< int_u<8> >, V >): ...this.
      	Adjust documentation.
      	* image2d_int.i: Add a FIXME.
      	* point2d.i: Aesthetic change.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@2135 4aad255d-cdde-0310-9447-f3009e2ae8c0
      74196224
  15. 09 Aug, 2008 4 commits