---
ChangeLog | 4 ++++
README | 17 ++++++++++-------
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6a03c2a..79cb28f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2009-08-19 Guillaume Lazzara <lazzara(a)lrde.epita.fr>
+ * README: Be consistent with the documentation.
+
+2009-08-19 Guillaume Lazzara <lazzara(a)lrde.epita.fr>
+
Install scribo headers in a specific scribo include dir.
* bootstrap: Add new arguments to generate_dist_headers.sh
diff --git a/README b/README
index 52fd5b0..41c65cc 100644
--- a/README
+++ b/README
@@ -71,16 +71,19 @@ code or e-mail us.
Installation
============
-To install Olena on your system, type in the classical sequence at
-the command prompt::
+To install Olena on your system, create a `build' directory (even
+though it is not mandatory) and type in the classical sequence at the
+command prompt::
- ./configure
+ mkdir build
+ cd build
+ ../configure
make
make install (as root)
-Note that an installation is specific to the compiler used to install
-it. Indeed, the call to ``./configure`` enables some workarounds and,
-consequently, users must compile with the same compiler to avoid
+Note that an installation is specific to the compiler used to install
+it. Indeed, the call to ``../configure`` enables some workarounds
+and, consequently, users must compile with the same compiler to avoid
compatibility problems.
Between ``make`` and ``make install``, you may also want to run::
@@ -195,7 +198,7 @@ milena
swilena
-
+
python
Some Python bindings for Milena.
--
1.5.6.5
* doc/examples/accu-wrong-instanciation.cc.raw: Fix an incomplete
namespace specification.
* doc/figures/fill-subimage-cfun-1.ppm,
* doc/outputs/fill-subimage-cfun.txt,
* doc/examples/fill-subimage-cfun.cc,
* doc/examples/split/fill-subimage-cfun-1.cc.raw,
* doc/examples/split/fill-subimage-cfun-2.cc.raw,
* doc/examples/split/fill-subimage-cfun-3.cc.raw: Rename as...
* doc/figures/fill-imageif-cfun-1.ppm,
* doc/outputs/fill-imageif-cfun.txt,
* doc/examples/fill-imageif-cfun.cc,
* doc/examples/split/fill-imageif-cfun-1.cc.raw,
* doc/examples/split/fill-imageif-cfun-2.cc.raw,
* doc/examples/split/fill-imageif-cfun-3.cc.raw: ... this.
* doc/examples/tuto3/first_routine.cc,
* doc/examples/tuto4_genericity_and_algorithms.cc,
* doc/examples/split/tuto3_first_routine-1.cc.raw,
* doc/examples/split/tuto3_first_routine-5.cc.raw,
* doc/examples/split/tuto3_first_routine-7.cc.raw,
* doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw:
Update sample code
* doc/examples/examples.mk,
* doc/figures/figures.mk,
* doc/outputs/outputs.mk: Regen.
* doc/ref_guide/ref_guide.tex,
* doc/tutorial/tutorial.tex: Fix typos and update according to
some Yann's comments.
---
milena/ChangeLog | 37 ++++++++
.../doc/examples/accu-wrong-instanciation.cc.raw | 2 +-
milena/doc/examples/examples.mk | 6 +-
...{fill-subimage-cfun.cc => fill-imageif-cfun.cc} | 0
...ge-cfun-1.cc.raw => fill-imageif-cfun-1.cc.raw} | 0
...ge-cfun-2.cc.raw => fill-imageif-cfun-2.cc.raw} | 0
...ge-cfun-3.cc.raw => fill-imageif-cfun-3.cc.raw} | 0
.../examples/split/tuto3_first_routine-1.cc.raw | 30 ++++++-
.../examples/split/tuto3_first_routine-5.cc.raw | 4 +-
.../examples/split/tuto3_first_routine-7.cc.raw | 3 +-
.../split/tuto4_genericity_and_algorithms-2.cc.raw | 2 +-
milena/doc/examples/tuto3/first_routine.cc | 19 +++--
.../examples/tuto4_genericity_and_algorithms.cc | 2 +-
milena/doc/figures/figures.mk | 2 +-
...subimage-cfun-1.ppm => fill-imageif-cfun-1.ppm} | Bin 206 -> 206 bytes
...ill-subimage-cfun.txt => fill-imageif-cfun.txt} | 0
milena/doc/outputs/outputs.mk | 2 +-
milena/doc/ref_guide/ref_guide.tex | 30 +++++--
milena/doc/tutorial/tutorial.tex | 94 ++++++++++++++-----
19 files changed, 181 insertions(+), 52 deletions(-)
rename milena/doc/examples/{fill-subimage-cfun.cc => fill-imageif-cfun.cc} (100%)
rename milena/doc/examples/split/{fill-subimage-cfun-1.cc.raw => fill-imageif-cfun-1.cc.raw} (100%)
rename milena/doc/examples/split/{fill-subimage-cfun-2.cc.raw => fill-imageif-cfun-2.cc.raw} (100%)
rename milena/doc/examples/split/{fill-subimage-cfun-3.cc.raw => fill-imageif-cfun-3.cc.raw} (100%)
rename milena/doc/figures/{fill-subimage-cfun-1.ppm => fill-imageif-cfun-1.ppm} (100%)
rename milena/doc/outputs/{fill-subimage-cfun.txt => fill-imageif-cfun.txt} (100%)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 1d123b0..6f01493 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,42 @@
2009-08-19 Guillaume Lazzara <lazzara(a)lrde.epita.fr>
+ Update documentation.
+
+ * doc/examples/accu-wrong-instanciation.cc.raw: Fix an incomplete
+ namespace specification.
+
+ * doc/figures/fill-subimage-cfun-1.ppm,
+ * doc/outputs/fill-subimage-cfun.txt,
+ * doc/examples/fill-subimage-cfun.cc,
+ * doc/examples/split/fill-subimage-cfun-1.cc.raw,
+ * doc/examples/split/fill-subimage-cfun-2.cc.raw,
+ * doc/examples/split/fill-subimage-cfun-3.cc.raw: Rename as...
+
+ * doc/figures/fill-imageif-cfun-1.ppm,
+ * doc/outputs/fill-imageif-cfun.txt,
+ * doc/examples/fill-imageif-cfun.cc,
+ * doc/examples/split/fill-imageif-cfun-1.cc.raw,
+ * doc/examples/split/fill-imageif-cfun-2.cc.raw,
+ * doc/examples/split/fill-imageif-cfun-3.cc.raw: ... this.
+
+ * doc/examples/tuto3/first_routine.cc,
+ * doc/examples/tuto4_genericity_and_algorithms.cc,
+ * doc/examples/split/tuto3_first_routine-1.cc.raw,
+ * doc/examples/split/tuto3_first_routine-5.cc.raw,
+ * doc/examples/split/tuto3_first_routine-7.cc.raw,
+ * doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw:
+ Update sample code
+
+ * doc/examples/examples.mk,
+ * doc/figures/figures.mk,
+ * doc/outputs/outputs.mk: Regen.
+
+ * doc/ref_guide/ref_guide.tex,
+ * doc/tutorial/tutorial.tex: Fix typos and update according to
+ some Yann's comments.
+
+2009-08-19 Guillaume Lazzara <lazzara(a)lrde.epita.fr>
+
Small fixes.
* mln/core/concept/image.hh: Always include data/compare.hh.
diff --git a/milena/doc/examples/accu-wrong-instanciation.cc.raw b/milena/doc/examples/accu-wrong-instanciation.cc.raw
index 27f8a86..888d36e 100644
--- a/milena/doc/examples/accu-wrong-instanciation.cc.raw
+++ b/milena/doc/examples/accu-wrong-instanciation.cc.raw
@@ -1 +1 @@
-data::compute(accu::meta::max, ima);
+data::compute(accu::meta::stat::max, ima);
diff --git a/milena/doc/examples/examples.mk b/milena/doc/examples/examples.mk
index fac55db..c0b75be 100644
--- a/milena/doc/examples/examples.mk
+++ b/milena/doc/examples/examples.mk
@@ -24,6 +24,9 @@ examples/split/fill-3.cc.raw \
examples/split/fill-call-1-1.cc.raw \
examples/split/fill-call-1-2.cc.raw \
examples/split/fill-call-1-3.cc.raw \
+examples/split/fill-imageif-cfun-1.cc.raw \
+examples/split/fill-imageif-cfun-2.cc.raw \
+examples/split/fill-imageif-cfun-3.cc.raw \
examples/split/fill-part-image-1.cc.raw \
examples/split/fill-part-image-2.cc.raw \
examples/split/fill-subdomain-1.cc.raw \
@@ -32,9 +35,6 @@ examples/split/fill-subdomain-3.cc.raw \
examples/split/fill-subdomain-4.cc.raw \
examples/split/fill-subdomain-shorter-1.cc.raw \
examples/split/fill-subdomain-shorter-2.cc.raw \
-examples/split/fill-subimage-cfun-1.cc.raw \
-examples/split/fill-subimage-cfun-2.cc.raw \
-examples/split/fill-subimage-cfun-3.cc.raw \
examples/split/forall-piter-1.cc.raw \
examples/split/fun-p2v-1-1.cc.raw \
examples/split/graph-data-1.cc.raw \
diff --git a/milena/doc/examples/fill-subimage-cfun.cc b/milena/doc/examples/fill-imageif-cfun.cc
similarity index 100%
rename from milena/doc/examples/fill-subimage-cfun.cc
rename to milena/doc/examples/fill-imageif-cfun.cc
diff --git a/milena/doc/examples/split/fill-subimage-cfun-1.cc.raw b/milena/doc/examples/split/fill-imageif-cfun-1.cc.raw
similarity index 100%
rename from milena/doc/examples/split/fill-subimage-cfun-1.cc.raw
rename to milena/doc/examples/split/fill-imageif-cfun-1.cc.raw
diff --git a/milena/doc/examples/split/fill-subimage-cfun-2.cc.raw b/milena/doc/examples/split/fill-imageif-cfun-2.cc.raw
similarity index 100%
rename from milena/doc/examples/split/fill-subimage-cfun-2.cc.raw
rename to milena/doc/examples/split/fill-imageif-cfun-2.cc.raw
diff --git a/milena/doc/examples/split/fill-subimage-cfun-3.cc.raw b/milena/doc/examples/split/fill-imageif-cfun-3.cc.raw
similarity index 100%
rename from milena/doc/examples/split/fill-subimage-cfun-3.cc.raw
rename to milena/doc/examples/split/fill-imageif-cfun-3.cc.raw
diff --git a/milena/doc/examples/split/tuto3_first_routine-1.cc.raw b/milena/doc/examples/split/tuto3_first_routine-1.cc.raw
index 4470aa7..3e66206 100644
--- a/milena/doc/examples/split/tuto3_first_routine-1.cc.raw
+++ b/milena/doc/examples/split/tuto3_first_routine-1.cc.raw
@@ -1,3 +1,26 @@
+#include <mln/core/image/image2d.hh>
+#include <mln/core/image/dmorph/image_if.hh>
+#include <mln/core/alias/neighb2d.hh>
+
+#include <mln/data/fill.hh>
+
+#include <mln/labeling/blobs.hh>
+#include <mln/labeling/compute.hh>
+#include <mln/labeling/blobs.hh>
+
+#include <mln/data/compare.hh>
+
+#include <mln/util/array.hh>
+
+#include <mln/value/label_8.hh>
+
+#include <mln/accu/math/count.hh>
+
+#include <mln/pw/all.hh>
+
+#include <tests/data.hh>
+#include <doc/tools/sample_utils.hh>
+
namespace mln
{
@@ -17,7 +40,9 @@ namespace mln
V nlabels;
mln_ch_value(I,V) lbl = labeling::blobs(ima, nbh, nlabels);
util::array<unsigned>
- count = labeling::compute(accu::meta::math::count(), lbl, nlabels);
+ count = labeling::compute(accu::meta::math::count(),
+ lbl,
+ nlabels);
mln_concrete(I) output;
initialize(output, ima);
@@ -25,7 +50,8 @@ namespace mln
for (unsigned i = 1; i <= nlabels; ++i)
if (count[i] < 10u)
- data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), literal::zero);
+ data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(),
+ literal::zero);
trace::exiting("my_algorithm");
return output;
diff --git a/milena/doc/examples/split/tuto3_first_routine-5.cc.raw b/milena/doc/examples/split/tuto3_first_routine-5.cc.raw
index 3d16132..846e805 100644
--- a/milena/doc/examples/split/tuto3_first_routine-5.cc.raw
+++ b/milena/doc/examples/split/tuto3_first_routine-5.cc.raw
@@ -2,4 +2,6 @@
V nlabels;
mln_ch_value(I,V) lbl = labeling::blobs(ima, nbh, nlabels);
util::array<unsigned>
- count = labeling::compute(accu::meta::math::count(), lbl, nlabels);
+ count = labeling::compute(accu::meta::math::count(),
+ lbl,
+ nlabels);
diff --git a/milena/doc/examples/split/tuto3_first_routine-7.cc.raw b/milena/doc/examples/split/tuto3_first_routine-7.cc.raw
index 7a9c927..71c730c 100644
--- a/milena/doc/examples/split/tuto3_first_routine-7.cc.raw
+++ b/milena/doc/examples/split/tuto3_first_routine-7.cc.raw
@@ -1,3 +1,4 @@
for (unsigned i = 1; i <= nlabels; ++i)
if (count[i] < 10u)
- data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), literal::zero);
+ data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(),
+ literal::zero);
diff --git a/milena/doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw b/milena/doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw
index edae3e8..2c08459 100644
--- a/milena/doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw
+++ b/milena/doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw
@@ -1 +1 @@
- box2d roi = make::box2d(20, 20, 40, 40);
+ box2d roi = make::box2d(20, 20, 39, 39);
diff --git a/milena/doc/examples/tuto3/first_routine.cc b/milena/doc/examples/tuto3/first_routine.cc
index 7b0725b..609fd4e 100644
--- a/milena/doc/examples/tuto3/first_routine.cc
+++ b/milena/doc/examples/tuto3/first_routine.cc
@@ -1,5 +1,7 @@
-/// \file doc/examples/tuto3/first_routine.cc
+/// \file
+/// \brief First generic routine.
+// \{
#include <mln/core/image/image2d.hh>
#include <mln/core/image/dmorph/image_if.hh>
#include <mln/core/alias/neighb2d.hh>
@@ -23,7 +25,6 @@
#include <tests/data.hh>
#include <doc/tools/sample_utils.hh>
-// \{
namespace mln
{
@@ -43,7 +44,9 @@ namespace mln
V nlabels;
mln_ch_value(I,V) lbl = labeling::blobs(ima, nbh, nlabels);
util::array<unsigned>
- count = labeling::compute(accu::meta::math::count(), lbl, nlabels);
+ count = labeling::compute(accu::meta::math::count(),
+ lbl,
+ nlabels);
mln_concrete(I) output;
initialize(output, ima);
@@ -51,7 +54,8 @@ namespace mln
for (unsigned i = 1; i <= nlabels; ++i)
if (count[i] < 10u)
- data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), literal::zero);
+ data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(),
+ literal::zero);
trace::exiting("my_algorithm");
return output;
@@ -88,7 +92,9 @@ namespace sandbox
V nlabels;
mln_ch_value(I,V) lbl = labeling::blobs(ima, nbh, nlabels);
util::array<unsigned>
- count = labeling::compute(accu::meta::math::count(), lbl, nlabels);
+ count = labeling::compute(accu::meta::math::count(),
+ lbl,
+ nlabels);
// \}
// \{
@@ -100,7 +106,8 @@ namespace sandbox
// \{
for (unsigned i = 1; i <= nlabels; ++i)
if (count[i] < 10u)
- data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), literal::zero);
+ data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(),
+ literal::zero);
// \}
// \{
diff --git a/milena/doc/examples/tuto4_genericity_and_algorithms.cc b/milena/doc/examples/tuto4_genericity_and_algorithms.cc
index b906a60..78237a4 100644
--- a/milena/doc/examples/tuto4_genericity_and_algorithms.cc
+++ b/milena/doc/examples/tuto4_genericity_and_algorithms.cc
@@ -81,7 +81,7 @@ int main()
image2d<value::rgb8> lena_bak = duplicate(lena);
// \{
- box2d roi = make::box2d(20, 20, 40, 40);
+ box2d roi = make::box2d(20, 20, 39, 39);
// \}
// \{
data::fill((lena | roi).rw(), literal::green);
diff --git a/milena/doc/figures/figures.mk b/milena/doc/figures/figures.mk
index 1ae617c..38fc1d1 100644
--- a/milena/doc/figures/figures.mk
+++ b/milena/doc/figures/figures.mk
@@ -8,11 +8,11 @@ figures/extend-4.ppm \
figures/extend-5.ppm \
figures/fill-1.ppm \
figures/fill-2.ppm \
+figures/fill-imageif-cfun-1.ppm \
figures/fill-subdomain-1.pbm \
figures/fill-subdomain-2.ppm \
figures/fill-subdomain-3.ppm \
figures/fill-subdomain-4.ppm \
-figures/fill-subimage-cfun-1.ppm \
figures/ima2d-rot-1.ppm \
figures/ima2d-rot-2.ppm \
figures/ima_save.pbm \
diff --git a/milena/doc/figures/fill-subimage-cfun-1.ppm b/milena/doc/figures/fill-imageif-cfun-1.ppm
similarity index 100%
rename from milena/doc/figures/fill-subimage-cfun-1.ppm
rename to milena/doc/figures/fill-imageif-cfun-1.ppm
diff --git a/milena/doc/outputs/fill-subimage-cfun.txt b/milena/doc/outputs/fill-imageif-cfun.txt
similarity index 100%
rename from milena/doc/outputs/fill-subimage-cfun.txt
rename to milena/doc/outputs/fill-imageif-cfun.txt
diff --git a/milena/doc/outputs/outputs.mk b/milena/doc/outputs/outputs.mk
index 88f892b..ac71800 100644
--- a/milena/doc/outputs/outputs.mk
+++ b/milena/doc/outputs/outputs.mk
@@ -10,10 +10,10 @@ outputs/estim-sites.txt \
outputs/extend.txt \
outputs/extension-ignore.txt \
outputs/fill-call-1.txt \
+outputs/fill-imageif-cfun.txt \
outputs/fill-part-image.txt \
outputs/fill-subdomain-shorter.txt \
outputs/fill-subdomain.txt \
-outputs/fill-subimage-cfun.txt \
outputs/fill.txt \
outputs/first_routine.txt \
outputs/forall-piter.txt \
diff --git a/milena/doc/ref_guide/ref_guide.tex b/milena/doc/ref_guide/ref_guide.tex
index 4acf619..d978d3e 100644
--- a/milena/doc/ref_guide/ref_guide.tex
+++ b/milena/doc/ref_guide/ref_guide.tex
@@ -249,6 +249,7 @@ Before writing your first program, please be aware of these hints:
\begin{verbatim}
$ g++ -DNDEBUG -Ipath/to/mln my_program.cc
\end{verbatim}
+%$
\item If you decide to use optimization flags to compile for debugging,
prefer using \code{-O1}. It is much faster to compile and it gives good
@@ -256,6 +257,17 @@ $ g++ -DNDEBUG -Ipath/to/mln my_program.cc
\end{itemize}
+
+%====================================
+\clearpage
+\newpage
+\doxychapter{concepts}{Concepts}
+
+
+
+
+
+
%====================================
\clearpage
\newpage
@@ -309,7 +321,7 @@ Name & Description \\
\hline
\type{point2d} & 2D point on a regular grid \\
\type{point} & Generic point ($n$D) on a regular grid \\
-\type{util::vec} & Algebraic vector \\
+\type{algebra::vec} & Algebraic vector \\
\type{util::vertex} & Graph vertex \\
\type{util::edge} & Graph edge \\
\end{tabular}
@@ -488,8 +500,8 @@ Value type & underlying data type \\
\type{int\_u8} & \type{unsigned char} \\
\type{int\_u16} & \type{unsigned short} \\
\type{int\_u32} & \type{unsigned int} \\
-\type{rgb16} & \type{mln::util::vec$<$unsigned short$>$} \\
-\type{rgb8} & \type{mln::util::vec$<$unsigned char$>$} \\
+\type{rgb16} & \type{mln::algebra::vec$<$unsigned short$>$} \\
+\type{rgb8} & \type{mln::algebra::vec$<$unsigned char$>$} \\
\end{tabular} \\
@@ -1499,7 +1511,7 @@ Output:
Then, use \code{labeling::compute()} with the bbox accumulator:
\doxycode[3]{labeling-compute}
-\code{labeling::compute()} hold an accumulator for each component, which means it
+\code{labeling::compute()} holds an accumulator for each component, which means it
returns an array of accumulator results.
In this case, it returns an array of \type{box2d}.
@@ -1619,14 +1631,14 @@ In this example, the image is restricted to its odd lines. A new image is
created in which odd lines are in red and others in black.
Here is the simple C function used as predicate:
-\doxycode[1]{fill-subimage-cfun}
+\doxycode[1]{fill-imageif-cfun}
Restrict the image with it:
-\doxycode[3]{fill-subimage-cfun}
+\doxycode[3]{fill-imageif-cfun}
Output:
\begin{center}
-\doxyfigure[1]{fill-subimage-cfun}{3cm}
+\doxyfigure[1]{fill-imageif-cfun}{3cm}
\end{center}
%
\medskip
@@ -1827,10 +1839,10 @@ Output:
Name & Description & Possible values \\
\hline
literal::zero & Generic zero value. Can be used with various types such as
-util::vec, dpoint\dots & n.a.\\
+algebra::vec, dpoint\dots & n.a.\\
& & \\
literal::one & Generic one value. Can be used with various types such as
-util::vec, dpoint\dots & n.a.\\
+algebra::vec, dpoint\dots & n.a.\\
& & \\
literal::origin & Generic value for the origin point on a grid.& n.a.\\
& & \\
diff --git a/milena/doc/tutorial/tutorial.tex b/milena/doc/tutorial/tutorial.tex
index 407c982..7ddbb60 100644
--- a/milena/doc/tutorial/tutorial.tex
+++ b/milena/doc/tutorial/tutorial.tex
@@ -116,23 +116,27 @@ Therefore it is not possible to present all the functionalities in a
tutorial.
-Milena targets several audiences: \textit{end users}, \textit{designers} and
-\textit{providers}. \textit{End users} want to apply and assemble algorithms
-to solve image processing, pattern recognition or computer vision problems,
-\textit{designers} build new algorithms and \textit{providers} are interested
-in developing their own data structures and extend an existing library.
+Milena targets several audiences: \textit{assemblers},
+\textit{designers}, \textit{providers} and
+\textit{architects}. \textit{Assemblers} want to apply and assemble
+algorithms to solve image processing, pattern recognition or computer
+vision problems, \textit{designers} build new algorithms,
+\textit{providers} are interested in developing their own data
+structures and extend an existing library and \textit{architects} are
+basically developpers extending the core library.
-Whatever the kind of user you are, the key to learning how to use Milena is to
-become familiar with its palette of objects and the way of combining them.
+Whatever the kind of user you are, the key to learning how to use
+Milena is to become familiar with its palette of objects and the way
+of combining them.
-As an \textit{end user}, you may start with this simple tutorial and the Quick
+As an \textit{assemblers}, you may start with this simple tutorial and the Quick
tour \tofix{ref}. They describe and illustrate the key features of the library.
-\textit{End users} getting familiar with Milena and \textit{designers}, should
+\textit{Assemblers} getting familiar with Milena and \textit{designers}, should
take a look at the Quick Reference Guide \tofix{ref!}.
It is a more detailed explanations of the library's features.
-\textit{end users} and \textit{designers} may be also interested by all the
+\textit{Assemblers} and \textit{designers} may be also interested by all the
examples provided with the documentation and the tutorial. The source code is
available in \hpath{milena/doc/examples} \tofix{ref} and is usually pointed
out and commented by the documentation.
@@ -256,17 +260,17 @@ Once downloaded, you just need to uncompress the archive.
For the '.tar.gz' archive:
\begin{verbatim}
-$ tar zxvf olena-1.0.tar.gz
+$ tar zxvf olena.tar.gz
\end{verbatim}
For the '.tar.bz2' archive:
\begin{verbatim}
-$ tar jxvf olena-1.0.tar.bz2
+$ tar jxvf olena.tar.bz2
\end{verbatim}
Then, enter the new created directory:
\begin{verbatim}
-$ cd olena-1.0
+$ cd olena
\end{verbatim}
@@ -439,7 +443,7 @@ This tutorial is not the only documentation of Milena. Other documents are avail
functionalities of Milena.
Hints and full examples are also provided. The sample codes are commented
and each concept in the library is detailed. This is the reference document for any
- \textit{end user} and \textit{algorithm designer}.
+ \textit{assembler} and \textit{algorithm designer}.
\item \dir{HTML user doc} --- The full documentation of the library. The full
API is described in details. Each part of the library is classified by
@@ -603,7 +607,7 @@ script before configuring the build directory.
Run the following:
\begin{verbatim}
-$ cd /my/path/to/olena-1.0
+$ cd /my/path/to/olena
$ ./bootstrap
\end{verbatim}
@@ -619,7 +623,7 @@ When it's done, you are ready to configure the build directory.
First, make sure you are at the root directory of the milena source:
\begin{verbatim}
-$ cd /my/path/to/olena-1.0
+$ cd /my/path/to/olena
\end{verbatim}
First, create and enter a build directory:
@@ -632,6 +636,9 @@ We are now about to configure the build directory. This process will create
the necessary files to compile documentation, examples and tools and prepare the
installation.
+Note that once the configuration ends the build directory cannot be
+moved elsewhere without following the following steps again.
+
\textbf{Important Note}: the installation path prefix must be chosen at this step.
By default, Milena will be installed in /usr/local but you may like to install
it elsewhere. To do so, pass the option \textit{-{}-prefix=/installation/path/prefix}
@@ -674,7 +681,7 @@ First, be sure to be in the build directory. If you followed the previous
steps, the build directory should be in the Milena sources root directory.
\begin{verbatim}
-$ cd /my/path/to/olena-1.0/build
+$ cd /my/path/to/olena/build
\end{verbatim}
If you did not change the default install path prefix, set to
@@ -716,14 +723,14 @@ Examples are part of the documentation. The sources are located in
To compile the examples simply run:
\begin{verbatim}
-$ cd /my/path/to/olena-1.0/build/milena/doc/examples
+$ cd /my/path/to/olena/build/milena/doc/examples
$ make
\end{verbatim}
These examples can produce outputs and images. May be you would like
to run all the examples and take a look at the outputs? To do so, run:
\begin{verbatim}
-$ cd /my/path/to/olena-1.0/build/milena/doc/examples
+$ cd /my/path/to/olena/build/milena/doc/examples
$ make examples
\end{verbatim}
@@ -751,7 +758,7 @@ seed2tiling.cc & \tofix{description} \\
To build these tools, run:
\begin{verbatim}
-$ cd /my/path/to/olena-1.0/build/milena/tools
+$ cd /my/path/to/olena/build/milena/tools
$ make
\end{verbatim}
@@ -764,7 +771,7 @@ extending the library.
In order to build and run it, just do the following:
\begin{verbatim}
-$ cd /my/path/to/olena-1.0/build/milena/tests
+$ cd /my/path/to/olena/build/milena/tests
$ make check
\end{verbatim}
@@ -783,6 +790,7 @@ In the installation path prefix, Milena's files are located in:
\item include/mln/ --- The library. All the headers are located here.
\item share/olena/images --- Mesh sample files which may be used with
example programs.
+ \item share/olena/doc --- HTML and PDF documentation.
\end{itemize}
\vspace{2cm}
@@ -810,6 +818,9 @@ implementation would look like this one:
\doxyrawcode{tuto3/fill_non_generic}
+See milena/doc/examples/tuto3/fill\_non\_generic.cc.
+
+
In this example, there are a lot of \B{implicit} assumptions about the input:
\begin{itemize}
\item The input image has to be 2D;
@@ -1147,7 +1158,7 @@ then the image itself which stores the values.
%**************************
-\doxysection{tuto4images}{Sites}
+\doxysection{tuto4sites}{Sites}
A pixel is an element having both information, localization and
value. In Milena, we make a difference between a pixel, a pixel value and a pixel
@@ -1158,12 +1169,14 @@ For instance, in an image defined on a 2D regular grid, it is a 2D point with
\doxycode{tuto4_point2d}
-The image site type is defined by its underlying site set.
+Output:
+\doxyoutput{tuto4_point2d}
+The image site type is defined by its underlying site set.
%**************************
-\doxysection{tuto4images}{Site sets}
+\doxysection{tuto4sitesets}{Site sets}
Site sets are mainly used to define image domains. They hold all the available
sites in an image, consequently they do not store any values.
@@ -1181,7 +1194,36 @@ A list of available site sets is available in section \ref{siteset}.
In this section, we will detail how to create common site sets.
-This is actually simple.
+The most used site set is \type{mln::box}. The main reason is that
+common images have this kind of domain. Since it is a plain set only
+two sites are needed to define a box: the top left corner, \var{pmin},
+and the bottom right corner, \var{pmax}.
+
+By default, \var{pmin} is set to \val{(0,0)} so a box can be
+constructed from given \var{pmax} coordinates:
+
+\doxycode[1]{tuto4_site_set_create}
+
+This box is defined from \val{(0,0)} to \val{(4,4)} :
+
+\doxymoutput[1]{tuto4_site_set_create}
+
+A box can also starts from a site different from \val{(0,0)}.
+
+\doxycode[4]{tuto4_site_set_create}
+
+This box is defined from \val{(0,0)} to \val{(4,4)} :
+
+\doxymoutput[3]{tuto4_site_set_create}
+
+
+Another common site set is \type{p\_array}. It contains only sites which have been added to it.
+
+\doxycode[2]{tuto4_site_set_create}
+
+This site only contains :
+
+\doxymoutput[2]{tuto4_site_set_create}
%--------------------------
@@ -1206,6 +1248,8 @@ In this section, we will detail how to create common images.
%--------------------------
\doxysubsection{tuto4accessdata}{Accessing data}
+
+
\vspace{2cm}
\begin{center}
\tutotoc{tuto3}{tuto5}
--
1.5.6.5