* doc/Doxyfile.in: Add a new IMAGE_PATH and a new macro expansion in
PREDEFINED.
* doc/tutorial/figures/tuto4_genericity_and_algorithms-1.ppm,
* doc/tutorial/figures/tuto4_genericity_and_algorithms-2.ppm,
* doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm,
* doc/tutorial/figures/tuto4_genericity_and_algorithms-4.ppm,
* doc/tutorial/figures/tuto4_genericity_and_algorithms-5.ppm,
* doc/tutorial/figures/tuto4_genericity_and_algorithms-6.ppm,
* doc/tutorial/outputs/tuto2_first_image.txt,
* doc/tutorial/outputs/tuto4_genericity_and_algorithms.txt: Add new
reference files.
* doc/tutorial/samples/Makefile.am,
* doc/tutorial/samples/tuto4_genericity_and_algorithms.cc,
* doc/tutorial/tutorial.tex: Add step 4
in tutorial.
* doc/tutorial/samples/tuto1_first_image.cc: Rename as...
* doc/tutorial/samples/tuto2_first_image.cc: ... this.
* mln/core/concept/object.hh: update namespace indexes.
---
milena/ChangeLog | 27 ++++
milena/doc/Doxyfile.in | 7 +-
.../figures/tuto4_genericity_and_algorithms-1.ppm | Bin 0 -> 24696 bytes
.../figures/tuto4_genericity_and_algorithms-2.ppm | Bin 0 -> 24696 bytes
.../figures/tuto4_genericity_and_algorithms-3.pbm | 5 +
.../figures/tuto4_genericity_and_algorithms-4.ppm | Bin 0 -> 24696 bytes
.../figures/tuto4_genericity_and_algorithms-5.ppm | Bin 0 -> 24696 bytes
.../figures/tuto4_genericity_and_algorithms-6.ppm | Bin 0 -> 24696 bytes
milena/doc/tutorial/outputs/tuto2_first_image.txt | 14 ++
milena/doc/tutorial/samples/Makefile.am | 10 +-
.../{tuto1_first_image.cc => tuto2_first_image.cc} | 0
.../samples/tuto4_genericity_and_algorithms.cc | 97 +++++++++++++++
milena/doc/tutorial/tutorial.tex | 129 +++++++++++++++++++-
milena/mln/core/concept/object.hh | 13 ++-
14 files changed, 290 insertions(+), 12 deletions(-)
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-1.ppm
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-2.ppm
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-4.ppm
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-5.ppm
create mode 100644 milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-6.ppm
create mode 100644 milena/doc/tutorial/outputs/tuto2_first_image.txt
create mode 100644 milena/doc/tutorial/outputs/tuto4_genericity_and_algorithms.txt
rename milena/doc/tutorial/samples/{tuto1_first_image.cc => tuto2_first_image.cc}
(100%)
create mode 100644 milena/doc/tutorial/samples/tuto4_genericity_and_algorithms.cc
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 175a505..6f6463d 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,30 @@
+2009-01-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update tutorial.
+
+ * doc/Doxyfile.in: Add a new IMAGE_PATH and a new macro expansion in
+ PREDEFINED.
+
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-1.ppm,
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-2.ppm,
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm,
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-4.ppm,
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-5.ppm,
+ * doc/tutorial/figures/tuto4_genericity_and_algorithms-6.ppm,
+ * doc/tutorial/outputs/tuto2_first_image.txt,
+ * doc/tutorial/outputs/tuto4_genericity_and_algorithms.txt: Add new
+ reference files.
+
+ * doc/tutorial/samples/Makefile.am,
+ * doc/tutorial/samples/tuto4_genericity_and_algorithms.cc,
+ * doc/tutorial/tutorial.tex: Add step 4
+ in tutorial.
+
+ * doc/tutorial/samples/tuto1_first_image.cc: Rename as...
+ * doc/tutorial/samples/tuto2_first_image.cc: ... this.
+
+ * mln/core/concept/object.hh: update namespace indexes.
+
2009-01-06 Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Update rotation.
diff --git a/milena/doc/Doxyfile.in b/milena/doc/Doxyfile.in
index 3a79395..cda47dc 100644
--- a/milena/doc/Doxyfile.in
+++ b/milena/doc/Doxyfile.in
@@ -96,7 +96,8 @@ EXAMPLE_PATH = @top_srcdir@/milena/doc/tutorial/samples \
@top_srcdir@/milena/doc/tutorial/outputs
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
-IMAGE_PATH = @top_srcdir@/milena/doc/tutorial/figures \
+IMAGE_PATH = @top_srcdir@/milena/img \
+ @top_srcdir@/milena/doc/tutorial/figures \
@top_builddir@/milena/doc/tutorial/figures
INPUT_FILTER =
FILTER_PATTERNS =
@@ -282,7 +283,9 @@ PREDEFINED = "mlc_unqualif(T)=typename
mln::metal::unqualif<T>::ret"
"mln_point(T)=typename T::point" \
"mln_point_(T)=T::point" \
"mln_gradient_component(I)=typename mln::trait::ch_value< I,
mln::value::props< typename I::value >::sum >::ret" \
- "mln_gradient(I)=mln::value::stack_image< I::point::dim,
mln::trait::ch_value< I, mln::value::props< typename I::value >::sum >::ret
>"
+ "mln_gradient(I)=mln::value::stack_image< I::point::dim,
mln::trait::ch_value< I, mln::value::props< typename I::value >::sum >::ret
>" \
+ "mln_trait_value_sum_product(T, U)=typename mln::trait::value_<
mln_trait_op_times(T,U) >::sum" \
+ "mln_sum_product(T, U)=typename mln::trait::value_< mln_trait_op_times(T,U)
>::sum"
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-1.ppm
b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-1.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..e241c0d4ff2c0bc9da85214e5e1c2e3cf9139834
GIT binary patch
literal 24696
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
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-2.ppm
b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-2.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..fd9b27734ab477d8634e6c9ef908c89431043119
GIT binary patch
literal 24696
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
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm
b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm
new file mode 100644
index 0000000..350283c
--- /dev/null
+++ b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-3.pbm
@@ -0,0 +1,5 @@
+P4
+# Generated by Milena 1.0
http://olena.lrde.epita.fr
+# EPITA Research and Development Laboratory (LRDE)
+64 64
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-4.ppm
b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-4.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..9782ba03c44612412c9bfdd1f0e4e702f56bc7ac
GIT binary patch
literal 24696
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
T4Rt9C5>-YM`Ib73mg)ZkN@wRp
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-5.ppm
b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-5.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..65ad84696f581587469c3cd5b71764d17f1bb0a4
GIT binary patch
literal 24696
zcmcg!`?pqA6<t5`v!?mT>l=%BB#;@3mWl`pA-&AZi(EzHd0}Xp2&9%T6dk@w9HLMb
z`6vu^Xr>MzO$jwbF)g3@K)`>Yd06MW%zfus`|j^vYBR>V>&*2yA9L+<&OUqZ@0&b&
z(4igUx@LEEcP{9f-ZAacj?*uk*)_YfW5m$m9UU_kESP)juwip5Wa!N9>0Lv+=3cm<
zbLjcqh&p-l_^Bs$OzE26)!BXCjE>IP(>qS;y0~lRoVl~QW-sWN*g0(ulFsSAv}5qZ
zDJPwL)S%HLJ4TNjG<wviqel(0Y&+aG*#!+AhuSagt2O?8JKMg~;FE{;w?}R7(B(yY
z&i)cwH`!nticeNaZFksuyGr2(<Ucmd4yf@j+9~#LbJ^fZ&^r63jiuvMz0aoD5_9R6
z_icookvM&13+#vHk_`{S^F9U|bZ36x{5PZ~Ncm^ZRi{uZ;oq5O{y9Ut`U&=?b+sE*
z<j*{_&cXfb|5I&^y}@Z}U72U6JoD_y`m^ZU^BJ&+`M1z3_p3c!XT%LJ*cRKKWYdGS
zc39^6-Pdl$KbL>EYj8ce<UGu_>x{5xyZlGYb57Sku~%@H@fO`}G-{olU>g)Rt%5r-
z񳴭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
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-6.ppm
b/milena/doc/tutorial/figures/tuto4_genericity_and_algorithms-6.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..fb30e172212d74a21816d9ef803c1c304a90c434
GIT binary patch
literal 24696
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
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/outputs/tuto2_first_image.txt
b/milena/doc/tutorial/outputs/tuto2_first_image.txt
new file mode 100644
index 0000000..42a59f9
--- /dev/null
+++ b/milena/doc/tutorial/outputs/tuto2_first_image.txt
@@ -0,0 +1,14 @@
+- - - - - - - - - - - - - - - - - - - - -
+- | - | - | | | - | - - - | - - - - | - -
+- | - | - | - - - | - - - | - - - | - | -
+- | | | - | | | - | - - - | - - - | - | -
+- | - | - | - - - | - - - | - - - | - | -
+- | - | - | | | - | | | - | | | - - | - -
+- - - - - - - - - - - - - - - - - - - - -
+- | - | - - | - - | | - - | - - - | | - -
+- | - | - | - | - | - | - | - - - | - | -
+- | - | - | - | - | | - - | - - - | - | -
+- | | | - | - | - | - | - | - - - | - | -
+- | - | - - | - - | - | - | | | - | | - -
+- - - - - - - - - - - - - - - - - - - - -
+
diff --git a/milena/doc/tutorial/outputs/tuto4_genericity_and_algorithms.txt
b/milena/doc/tutorial/outputs/tuto4_genericity_and_algorithms.txt
new file mode 100644
index 0000000..e69de29
diff --git a/milena/doc/tutorial/samples/Makefile.am
b/milena/doc/tutorial/samples/Makefile.am
index 60223c7..f4c4877 100644
--- a/milena/doc/tutorial/samples/Makefile.am
+++ b/milena/doc/tutorial/samples/Makefile.am
@@ -44,9 +44,10 @@ noinst_PROGRAMS = \
win-create-1 \
win-create-2
-noinst_PROGRAMS += \
-tuto1_first_image \
-tuto3_rw_image
+noinst_PROGRAMS += \
+tuto2_first_image \
+tuto3_rw_image \
+tuto4_genericity_and_algorithms
accu_right_instanciation_SOURCES = accu-right-instanciation.cc
borderthickness_SOURCES = borderthickness.cc
@@ -88,8 +89,9 @@ predicate_1_SOURCES = predicate-1.cc
win_create_1_SOURCES = win-create-1.cc
win_create_2_SOURCES = win-create-2.cc
-tuto1_first_image_SOURCES = tuto1_first_image.cc
+tuto2_first_image_SOURCES = tuto2_first_image.cc
tuto3_rw_image_SOURCES = tuto3_rw_image.cc
+tuto4_genericity_and_algorithms_SOURCES = tuto4_genericity_and_algorithms.cc
all: clean-figures
mkdir -p $(OUTPUTS_BUILDDIR)
diff --git a/milena/doc/tutorial/samples/tuto1_first_image.cc
b/milena/doc/tutorial/samples/tuto2_first_image.cc
similarity index 100%
rename from milena/doc/tutorial/samples/tuto1_first_image.cc
rename to milena/doc/tutorial/samples/tuto2_first_image.cc
diff --git a/milena/doc/tutorial/samples/tuto4_genericity_and_algorithms.cc
b/milena/doc/tutorial/samples/tuto4_genericity_and_algorithms.cc
new file mode 100644
index 0000000..ca5e7f4
--- /dev/null
+++ b/milena/doc/tutorial/samples/tuto4_genericity_and_algorithms.cc
@@ -0,0 +1,97 @@
+#include <mln/essential/2d.hh>
+#include <mln/binarization/threshold.hh>
+#include <mln/debug/colorize.hh>
+#include <tests/data.hh>
+#include <doc/tutorial/tools/sample_utils.hh>
+
+struct keep_specific_colors : public mln::Function_v2b<keep_specific_colors>
+{
+ bool operator()(const mln::value::rgb16& v) const
+ {
+ return v.green() < 20000 && v.blue() > 10000;
+ }
+};
+
+int main()
+{
+ using namespace mln;
+
+ // \{
+ image2d<value::rgb16> lena;
+ io::ppm::load(lena, MLN_IMG_DIR "/small.ppm");
+ // \}
+
+
+ image2d<value::rgb16> lena_bak = duplicate(lena);
+ // \{
+ box2d roi = make::box2d(20, 20, 40, 40);
+ // \}
+ // \{
+ data::fill((lena | roi).rw(), literal::green);
+ // \}
+ doc::ppmsave(lena, "tuto4_genericity_and_algorithms");
+
+
+
+
+ lena = duplicate(lena_bak);
+ // \{
+ data::fill((lena | fun::p2b::chess()).rw(), literal::green);
+ // \}
+ doc::ppmsave(lena, "tuto4_genericity_and_algorithms");
+
+
+
+
+ lena = duplicate(lena_bak);
+ // \{
+ image2d<bool> mask;
+ initialize(mask, lena);
+ data::fill(mask, false);
+ data::fill((mask | make::box2d(10, 10, 14, 14)).rw(), true);
+ data::fill((mask | make::box2d(25, 15, 29, 18)).rw(), true);
+ data::fill((mask | make::box2d(50, 50, 54, 54)).rw(), true);
+ // \}
+ doc::pbmsave(mask, "tuto4_genericity_and_algorithms");
+ // \{
+ data::fill((lena | pw::value(mask)).rw(), literal::green);
+ // \}
+ doc::ppmsave(lena, "tuto4_genericity_and_algorithms");
+
+
+
+
+ lena = duplicate(lena_bak);
+ // \{
+ image2d<bool> lena_bw = binarization::binarization(lena,
keep_specific_colors());
+ value::label_16 nlabels;
+ image2d<value::label_16> label = labeling::blobs(lena_bw, c8(), nlabels);
+ // \}
+ doc::ppmsave(debug::colorize(value::rgb16(), label, nlabels),
"tuto4_genericity_and_algorithms");
+
+ // \{
+ data::fill((lena | (pw::value(label) == pw::cst(16u))).rw(), literal::green);
+ // \}
+ doc::ppmsave(lena, "tuto4_genericity_and_algorithms");
+
+
+
+/*
+ lena = duplicate(lena_bak);
+ // \{
+ data::fill(fun::green(lena), literal::max);
+ // \}
+ doc::ppmsave(lena, "tuto4_genericity_and_algorithms");
+
+
+
+
+ lena = duplicate(lena_bak);
+ // \{
+ mln_VAR(object, pw::value(label) == pw::cst(3));
+ data::fill((fun::green(lena) | object).rw(), literal::max);
+ // \}
+ doc::pgmsave(object, "tuto4_genericity_and_algorithms");
+ doc::ppmsave(label, "tuto4_genericity_and_algorithms");
+*/
+}
diff --git a/milena/doc/tutorial/tutorial.tex b/milena/doc/tutorial/tutorial.tex
index a8c8c64..d3aca8e 100644
--- a/milena/doc/tutorial/tutorial.tex
+++ b/milena/doc/tutorial/tutorial.tex
@@ -1,4 +1,5 @@
\documentclass{report}
+\usepackage{hevea}
\usepackage{graphicx}
\usepackage{listings}
\usepackage{makeidx}
@@ -408,7 +409,7 @@ After this step you should know how to:
\item display an image in console mode.
\end{itemize}
-The full example can be found in \doxyref{tuto1_first_image.cc}.
+\doxysee{tuto2_first_image.cc}.
\vspace{2cm}
@@ -457,7 +458,7 @@ After this step you should know how to:
\end{itemize}
-The full example can be found in \doxyref{tuto3_rw_image.cc}.
+\doxysee{tuto3_rw_image.cc}.
\vspace{2cm}
First create an empty color image with a \var{box2d} of 40x40 as domain.
@@ -493,7 +494,7 @@ Likewise, it is possible to paste data from an image to another:
Output:
\doxyfigure[3]{tuto3_rw_image}
-More details can be found in section \doxyref{fillop} and \doxyref{pasteop} in
+More details can be found in sections \doxyref{imaaccessmodval}, \doxyref{fillop} and
\doxyref{pasteop} in
the reference guide.
\vspace{2cm}
@@ -505,6 +506,73 @@ the reference guide.
%====================================
\doxychapter{tutogenericity}{Step 4: Genericity and algorithms}
+After this step you should know how to:
+ \begin{itemize}
+ \item take benefit of Olena's genericity,
+ \item work only on a region of interest in an image.
+ \end{itemize}
+
+\doxysee{tuto4_genericity_and_algorithms.cc}.
+\vspace{2cm}
+
+\doxycode[1]{tuto4_genericity_and_algorithms}
+\doxyimg{small-enlarged}
+
+\doxycode[2]{tuto4_genericity_and_algorithms}
+\doxycode[3]{tuto4_genericity_and_algorithms}
+
+\begin{center}
+ \begin{tabular}{c c c}
+ \doxyimg{small-enlarged} & ~\huge{\rightarrow}~ &
\doxyfigure[1]{tuto4_genericity_and_algorithms}{3cm} \\
+ \multicolumn{3}{c}{Fill with green a region of interest defined by a
+ \type{box2d}.} \\
+ \end{tabular}
+\end{center}
+
+
+\doxycode[4]{tuto4_genericity_and_algorithms}
+\begin{center}
+ \begin{tabular}{c c c}
+ \doxyimg{small-enlarged} & ~\huge{\rightarrow}~ &
\doxyfigure[2]{tuto4_genericity_and_algorithms}{3cm} \\
+ \multicolumn{3}{c}{Fill with green a region of interest defined by a
+ \type{Function}.} \\
+ \end{tabular}
+\end{center}
+
+
+\doxycode[5]{tuto4_genericity_and_algorithms}
+\doxycode[6]{tuto4_genericity_and_algorithms}
+\begin{center}
+ \begin{tabular}{c c c c}
+ \doxyimg{small-enlarged} &
+ \doxyfigure[3]{tuto4_genericity_and_algorithms}{3cm} &
+ ~\huge{\rightarrow}~ &
+ \doxyfigure[4]{tuto4_genericity_and_algorithms}{3cm} \\
+ \multicolumn{4}{c}{Fill with green a region of interest defined by a mask
+ image.} \\
+ \end{tabular}
+\end{center}
+
+\doxycode[7]{tuto4_genericity_and_algorithms}
+\doxycode[8]{tuto4_genericity_and_algorithms}
+
+\begin{center}
+ \begin{tabular}{c c c c}
+ \doxyimg{small-enlarged} &
+ \doxyfigure[5]{tuto4_genericity_and_algorithms}{3cm} &
+ ~\huge{\rightarrow}~ &
+ \doxyfigure[6]{tuto4_genericity_and_algorithms}{3cm} \\
+ \multicolumn{4}{c}{Fill with green a region of interest defined by its
+ label.} \\
+ \end{tabular}
+\end{center}
+
+
+
+\vspace{2cm}
+\begin{center}
+ \tutotoc{tutochangeimage}{tutoconvimage}
+\end{center}
%====================================
\doxychapter{tutoconvimage}{Step 5: Conversion between image values}
@@ -526,12 +594,65 @@ the reference guide.
%**************************
\doxysection{requirements}{Requirements}
+
+\doxysubsection{compexample}{To compile the user examples}
+
+\begin{itemize}
+ \item a POSIX shell, like Bash
+ \item a decent C++ compiler, like GNU C++
+ \item a `make' utility, like GNU or BSD `make'
+\end{itemize}
+
+
+
+\doxysubsection{compdoc}{To compile the documentation (Optional)}
+
+\begin{itemize}
+ \item a LaTeX distribution
+ \item the `listings' TeX package
+ \item the utility `convert' from ImageMagick
+ \item GNU Autogen
+ \item `hevea', a TeX to HTML conversion tool
+ \item the `texinfo' utilities from GNU
+\end{itemize}
+
+\doxysubsection{devolena}{To develop in Olena}
+\begin{itemize}
+ \item GNU Autotools (Autoconf 2.54, Automake 1.10)
+\end{itemize}
+
%**************************
\doxysection{getolena}{Getting Olena}
+The latest version of Olena is available at the following addresses:
+
+\begin{itemize}
+ \item
http://www.lrde.epita.fr/dload/olena/olena.tar.gz
+ \item
http://www.lrde.epita.fr/dload/olena/olena.tar.bz2
+\end{itemize}
+
+
%**************************
\doxysection{buildingolena}{Building Olena}
+First uncompress the archive. According to the downloaded archive, the options
+are different.
+\begin{verbatim}
+$tar zxvf olena.tar.gz
+\end{verbatim}
+Or
+\begin{verbatim}
+$tar jxvf olena.tar.bz2
+\end{verbatim}
+
+Then follow these steps:
+\begin{verbatim}
+$mkdir olena-build
+$cd olena-build
+$../olena-1.0/configure && make
+$sudo make install
+\end{verbatim}
+
%====================================
@@ -2259,7 +2380,7 @@ mln\_bkd\_nixter(I, N) & I : image type, & \\
\end{tabular}
-\doxysubsection{macrosbkdit}{Graph iterators}
+\doxysubsection{macrosgraphit}{Graph iterators}
\begin{tabular}{l|p{4cm}|p{6cm}}
Name & Arguments & Description \\
\hline
diff --git a/milena/mln/core/concept/object.hh b/milena/mln/core/concept/object.hh
index ada4df4..4a482cb 100644
--- a/milena/mln/core/concept/object.hh
+++ b/milena/mln/core/concept/object.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -70,16 +70,21 @@
* <UL>
* <LI> \ref mln
* <LI> \ref mln::accu
+ * <LI> \ref mln::algebra
* <LI> \ref mln::arith
+ * <LI> \ref mln::binarization
* <LI> \ref mln::border
* <LI> \ref mln::canvas
* <LI> \ref mln::convert
+ * <LI> \ref mln::data
* <LI> \ref mln::debug
* <LI> \ref mln::display
* <LI> \ref mln::draw
* <LI> \ref mln::estim
+ * <LI> \ref mln::extension
* <LI> \ref mln::fun
* <LI> \ref mln::geom
+ * <LI> \ref mln::graph
* <LI> \ref mln::histo
* <LI> \ref mln::io
* <LI> \ref mln::labeling
@@ -92,12 +97,16 @@
* <LI> \ref mln::metal
* <LI> \ref mln::morpho
* <LI> \ref mln::norm
+ * <LI> \ref mln::opt
* <LI> \ref mln::pw
+ * <LI> \ref mln::registration
* <LI> \ref mln::set
* <LI> \ref mln::tag
* <LI> \ref mln::test
+ * <LI> \ref mln::topo
* <LI> \ref mln::trace
* <LI> \ref mln::trait
+ * <LI> \ref mln::transform
* <LI> \ref mln::util
* <LI> \ref mln::value
* <LI> \ref mln::win
--
1.5.6.5