Olena-patches
Threads by month
- ----- 2025 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
April 2013
- 7 participants
- 363 discussions

olena: olena-2.0-586-g03eb6db doc/mln/value/value/dox: Specify that built-in types can be used.
by Guillaume Lazzara 30 Apr '13
by Guillaume Lazzara 30 Apr '13
30 Apr '13
---
milena/ChangeLog | 5 +++++
milena/doc/mln/value/value.dox | 22 ++++++++++++++++++----
2 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 063eede..d975112 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * doc/mln/value/value/dox: Specify that built-in types can be
+ used.
+
2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
Introduce a new module for useful macros.
diff --git a/milena/doc/mln/value/value.dox b/milena/doc/mln/value/value.dox
index 9a97f24..da9e9ae 100644
--- a/milena/doc/mln/value/value.dox
+++ b/milena/doc/mln/value/value.dox
@@ -1,8 +1,22 @@
/*! \defgroup valuegroup Values
- *
- * \brief All supported value types.
- *
- * \ingroup modtypes
+
+ \brief All supported value types.
+
+ Milena provides several kinds of value types detailled in this
+ section. Built-in types can also be used which includes:
+
+ \li bool
+ \li char
+ \li short int
+ \li int
+ \li long
+ \li unsigned short
+ \li unsigned int
+ \li unsigned long
+ \li float
+ \li double
+
+ \ingroup modtypes
*/
--
1.7.2.5
1
0

olena: olena-2.0-586-ge9a8db2 doc/mln/value/value/dox: Specify that built-in types can be used.
by Guillaume Lazzara 30 Apr '13
by Guillaume Lazzara 30 Apr '13
30 Apr '13
---
milena/ChangeLog | 5 +++++
milena/doc/mln/value/value.dox | 22 ++++++++++++++++++----
2 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 063eede..d975112 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * doc/mln/value/value/dox: Specify that built-in types can be
+ used.
+
2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
Introduce a new module for useful macros.
diff --git a/milena/doc/mln/value/value.dox b/milena/doc/mln/value/value.dox
index 9a97f24..da9e9ae 100644
--- a/milena/doc/mln/value/value.dox
+++ b/milena/doc/mln/value/value.dox
@@ -1,8 +1,22 @@
/*! \defgroup valuegroup Values
- *
- * \brief All supported value types.
- *
- * \ingroup modtypes
+
+ \brief All supported value types.
+
+ Milena provides several kinds of value types detailled in this
+ section. Built-in types can also be used which includes:
+
+ \li bool
+ \li char
+ \li short int
+ \li int
+ \li long
+ \li unsigned short
+ \li unsigned int
+ \li unsigned long
+ \li float
+ \li double
+
+ \ingroup modtypes
*/
--
1.7.2.5
1
0
1
0

29 Apr '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/stretch_inplace has been updated
via c7616c87d12e7ab55c23c9e98b6566cd0d5b2121 (commit)
from 62f325a806d6b026d170717a105e84ca6756b8d6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
c7616c8 Always perform data::stretch if min != max.
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 8 ++++++++
milena/mln/data/stretch.hh | 10 ++++++++--
milena/mln/data/stretch_inplace.hh | 28 +++++++++++++++++-----------
3 files changed, 33 insertions(+), 13 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

olena: olena-2.0-568-g303c7ee Always perform data::stretch if min != max.
by Guillaume Lazzara 29 Apr '13
by Guillaume Lazzara 29 Apr '13
29 Apr '13
* mln/data/stretch.hh,
* mln/data/stretch_inplace.hh: always perform stretch if min !=
max.
---
milena/ChangeLog | 8 ++++++++
milena/mln/data/stretch.hh | 10 ++++++++--
milena/mln/data/stretch_inplace.hh | 28 +++++++++++++++++-----------
3 files changed, 33 insertions(+), 13 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 5d8ff07..3b4dc77 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,11 @@
+2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Always perform data::stretch if min != max.
+
+ * mln/data/stretch.hh,
+ * mln/data/stretch_inplace.hh: always perform stretch if min !=
+ max.
+
2013-04-26 Guillaume Lazzara <z(a)lrde.epita.fr>
Regen generated files in Milena.
diff --git a/milena/mln/data/stretch.hh b/milena/mln/data/stretch.hh
index e8a6d09..2473494 100644
--- a/milena/mln/data/stretch.hh
+++ b/milena/mln/data/stretch.hh
@@ -80,7 +80,7 @@ namespace mln
template <typename V, typename I>
inline
mln_ch_value(I, V)
- stretch(const V& v, const Image<I>& input)
+ stretch(const V& v, const Image<I>& input)
{
mln_trace("data::impl::stretch");
@@ -91,8 +91,14 @@ namespace mln
mln_value(I) min_, max_;
estim::min_max(input, min_, max_);
- if (max_ != min_ && (mln_max(V) > max_ || mln_min(V) < min_))
+ if (max_ != min_)
{
+ // We always want to perform this algorithm even if (min_ ==
+ // mln_min(V) and max_ == mln_max(V)) since we need to
+ // convert the input image towards the given type and a
+ // default conversion function may not exist between V and
+ // mln_value(I).
+
//FIXME: we would like to use float instead of double but we
//can't for precision reasons. See ticket #179.
double
diff --git a/milena/mln/data/stretch_inplace.hh b/milena/mln/data/stretch_inplace.hh
index c0630e1..698f342 100644
--- a/milena/mln/data/stretch_inplace.hh
+++ b/milena/mln/data/stretch_inplace.hh
@@ -90,18 +90,24 @@ namespace mln
V min_, max_;
estim::min_max(ima, min_, max_);
- if (max_ != min_ && (mln_max(V) > max_ || mln_min(V) < min_))
+ if (max_ != min_)
{
- //FIXME: we would like to use float instead of double but we
- //can't for precision reasons. See ticket #179.
- double
- min = double(min_),
- max = double(max_),
- epsilon = mln_epsilon(float),
- M = mln_max(V) + 0.5f - epsilon,
- m = 0.0f - 0.5f + epsilon,
- a = (M - m) / (max - min),
- b = (m * max - M * min) / (max - min);
+ // We always want to perform this algorithm even if (min_ ==
+ // mln_min(V) and max_ == mln_max(V)) since we need to
+ // convert the input image towards the given type and a
+ // default conversion function may not exist between V and
+ // mln_value(I).
+
+ //FIXME: we would like to use float instead of double but we
+ //can't for precision reasons. See ticket #179.
+ double
+ min = double(min_),
+ max = double(max_),
+ epsilon = mln_epsilon(float),
+ M = mln_max(V) + 0.5f - epsilon,
+ m = 0.0f - 0.5f + epsilon,
+ a = (M - m) / (max - min),
+ b = (m * max - M * min) / (max - min);
fun::v2v::linear_sat<V, double, V> f(a, b);
data::transform_inplace(ima, f);
stretched = true;
--
1.7.2.5
1
0

olena: olena-2.0-505-gc7616c8 Always perform data::stretch if min != max.
by Guillaume Lazzara 29 Apr '13
by Guillaume Lazzara 29 Apr '13
29 Apr '13
* mln/data/stretch.hh,
* mln/data/stretch_inplace.hh: always perform stretch if min !=
max.
---
milena/ChangeLog | 8 ++++++++
milena/mln/data/stretch.hh | 10 ++++++++--
milena/mln/data/stretch_inplace.hh | 28 +++++++++++++++++-----------
3 files changed, 33 insertions(+), 13 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index ffc1c49..98523ab 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,11 @@
+2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Always perform data::stretch if min != max.
+
+ * mln/data/stretch.hh,
+ * mln/data/stretch_inplace.hh: always perform stretch if min !=
+ max.
+
2013-04-26 Guillaume Lazzara <z(a)lrde.epita.fr>
Regen generated files in Milena.
diff --git a/milena/mln/data/stretch.hh b/milena/mln/data/stretch.hh
index e8a6d09..2473494 100644
--- a/milena/mln/data/stretch.hh
+++ b/milena/mln/data/stretch.hh
@@ -80,7 +80,7 @@ namespace mln
template <typename V, typename I>
inline
mln_ch_value(I, V)
- stretch(const V& v, const Image<I>& input)
+ stretch(const V& v, const Image<I>& input)
{
mln_trace("data::impl::stretch");
@@ -91,8 +91,14 @@ namespace mln
mln_value(I) min_, max_;
estim::min_max(input, min_, max_);
- if (max_ != min_ && (mln_max(V) > max_ || mln_min(V) < min_))
+ if (max_ != min_)
{
+ // We always want to perform this algorithm even if (min_ ==
+ // mln_min(V) and max_ == mln_max(V)) since we need to
+ // convert the input image towards the given type and a
+ // default conversion function may not exist between V and
+ // mln_value(I).
+
//FIXME: we would like to use float instead of double but we
//can't for precision reasons. See ticket #179.
double
diff --git a/milena/mln/data/stretch_inplace.hh b/milena/mln/data/stretch_inplace.hh
index c0630e1..698f342 100644
--- a/milena/mln/data/stretch_inplace.hh
+++ b/milena/mln/data/stretch_inplace.hh
@@ -90,18 +90,24 @@ namespace mln
V min_, max_;
estim::min_max(ima, min_, max_);
- if (max_ != min_ && (mln_max(V) > max_ || mln_min(V) < min_))
+ if (max_ != min_)
{
- //FIXME: we would like to use float instead of double but we
- //can't for precision reasons. See ticket #179.
- double
- min = double(min_),
- max = double(max_),
- epsilon = mln_epsilon(float),
- M = mln_max(V) + 0.5f - epsilon,
- m = 0.0f - 0.5f + epsilon,
- a = (M - m) / (max - min),
- b = (m * max - M * min) / (max - min);
+ // We always want to perform this algorithm even if (min_ ==
+ // mln_min(V) and max_ == mln_max(V)) since we need to
+ // convert the input image towards the given type and a
+ // default conversion function may not exist between V and
+ // mln_value(I).
+
+ //FIXME: we would like to use float instead of double but we
+ //can't for precision reasons. See ticket #179.
+ double
+ min = double(min_),
+ max = double(max_),
+ epsilon = mln_epsilon(float),
+ M = mln_max(V) + 0.5f - epsilon,
+ m = 0.0f - 0.5f + epsilon,
+ a = (M - m) / (max - min),
+ b = (m * max - M * min) / (max - min);
fun::v2v::linear_sat<V, double, V> f(a, b);
data::transform_inplace(ima, f);
stretched = true;
--
1.7.2.5
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/newdoc has been updated
via 2c6bbd3c7ac77360750bab1e62de967793474043 (commit)
via 5cb0e43a8c37545f7e04d1f07f6ae13159ffb277 (commit)
from 804f0d0496af97354e4d48c9d758f9f7f3f26622 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
2c6bbd3 Introduce a new module for useful macros.
5cb0e43 Improve documentation in fun::p2b, fun::p2p, fun::p2v and fun::x2v.
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 31 ++
milena/doc/mln/core/macros.dox | 79 +++
milena/doc/mln/main.dox | 7 +
milena/mln/core/macros.hh | 1067 ++++++++++++++++++++++++++++++++++++-
milena/mln/fun/p2b/antilogy.hh | 16 +-
milena/mln/fun/p2b/big_chess.hh | 30 +-
milena/mln/fun/p2b/chess.hh | 22 +-
milena/mln/fun/p2b/has.hh | 14 +-
milena/mln/fun/p2b/tautology.hh | 15 +-
milena/mln/fun/p2p/fold.hh | 16 +-
milena/mln/fun/p2p/mirror.hh | 29 +-
milena/mln/fun/p2p/translation.hh | 13 +-
milena/mln/fun/p2v/elifs.hh | 16 +-
milena/mln/fun/p2v/iota.hh | 23 +-
milena/mln/fun/p2v/ternary.hh | 23 +-
milena/mln/fun/x2v/bilinear.hh | 12 +-
milena/mln/fun/x2v/l1_norm.hh | 8 +-
milena/mln/fun/x2v/nneighbor.hh | 67 ++-
milena/mln/fun/x2v/trilinear.hh | 11 +-
19 files changed, 1408 insertions(+), 91 deletions(-)
create mode 100644 milena/doc/mln/core/macros.dox
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

olena: olena-2.0-585-gceb847d Introduce a new module for useful macros.
by Guillaume Lazzara 29 Apr '13
by Guillaume Lazzara 29 Apr '13
29 Apr '13
* doc/mln/core/macros.dox: New.
* doc/mln/main.dox: New module.
* mln/core/macros.hh: Add comments.
---
milena/ChangeLog | 10 +
milena/doc/mln/core/macros.dox | 79 +++
milena/doc/mln/main.dox | 7 +
milena/mln/core/macros.hh | 1067 +++++++++++++++++++++++++++++++++++++++-
4 files changed, 1158 insertions(+), 5 deletions(-)
create mode 100644 milena/doc/mln/core/macros.dox
diff --git a/milena/ChangeLog b/milena/ChangeLog
index f55e2e2..063eede 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,15 @@
2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Introduce a new module for useful macros.
+
+ * doc/mln/core/macros.dox: New.
+
+ * doc/mln/main.dox: New module.
+
+ * mln/core/macros.hh: Add comments.
+
+2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Improve documentation in fun::p2b, fun::p2p, fun::p2v and
fun::x2v.
diff --git a/milena/doc/mln/core/macros.dox b/milena/doc/mln/core/macros.dox
new file mode 100644
index 0000000..46504a0
--- /dev/null
+++ b/milena/doc/mln/core/macros.dox
@@ -0,0 +1,79 @@
+/*! \defgroup macrositerima Image Iterators
+ *
+ * \brief All the macros to extract Image iterator types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrositerwin Window Iterators
+ *
+ * \brief All the macros to extract window iterator types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrositernbh Neighborhood Iterators
+ *
+ * \brief All the macros to extract window iterator types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrositerelt Element Iterators
+ *
+ * \brief All the macros to extract element iterator types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrositerval Value Iterators
+ *
+ * \brief All the macros to extract value iterator types.
+ *
+ * \ingroup mlnmacros
+ */
+
+
+
+
+/*! \defgroup macrosima Image Specific types
+ *
+ * \brief All the macros to extract image specific types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrosfun Function Specific types
+ *
+ * \brief All the macros to extract function specific types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrosval Value Specific types
+ *
+ * \brief All the macros to extract value specific types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrossite Site Specific types
+ *
+ * \brief All the macros to extract site specific types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macroswin Window Specific types
+ *
+ * \brief All the macros to extract window specific types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrosnbh Neighborhood Specific types
+ *
+ * \brief All the macros to extract neighborhood specific types.
+ *
+ * \ingroup mlnmacros
+ */
diff --git a/milena/doc/mln/main.dox b/milena/doc/mln/main.dox
index c413cac..52e600a 100644
--- a/milena/doc/mln/main.dox
+++ b/milena/doc/mln/main.dox
@@ -100,3 +100,10 @@
*
* \ingroup modroutines
*/
+
+/*! \defgroup mlnmacros Useful Macro Functions
+ *
+ * \brief All useful macro functions.
+ *
+ * \ingroup modroutines
+ */
diff --git a/milena/mln/core/macros.hh b/milena/mln/core/macros.hh
index 6eecd1d..25bfcc1 100644
--- a/milena/mln/core/macros.hh
+++ b/milena/mln/core/macros.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -31,12 +32,45 @@
/// Definition of the set of Milena macros.
-# define mln_deduce(T, A1, A2) typename T::A1::A2
+/*!
+ \def mln_deduce(T, A1, A2)
+ \brief Shortcuts to access the type T::A1::A2.
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_deduce_(T, A1, A2)
+ \brief Shortcuts to access the type T::A1::A2.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
+/// Shortcuts to access the type T::A1::A2.
+/// \{
+# define mln_deduce(T, A1, A2) typename T::A1::A2
+# define mln_deduce_(T, A1, A2) T::A1::A2
+/// \}
// a
-/// Shortcuts to access the argument type associated to T.
+/*!
+ \def mln_argument(T)
+ \brief Shortcuts to access the argument type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/*!
+ \def mln_argument_(T)
+ \brief Shortcuts to access the argument type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/// \brief Shortcuts to access the argument type associated to T.
/// \{
# define mln_argument(T) typename T::argument
# define mln_argument_(T) T::argument
@@ -45,37 +79,133 @@
// b
-/// Shortcuts to access the element-backward-iterator type associated
-/// to T.
+/*!
+ \def mln_bkd_eiter(T)
+ \brief Shortcuts to access the element-backward-iterator type associated
+ to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerelt
+*/
+/*!
+ \def mln_bkd_eiter_(T)
+ \brief Shortcuts to access the element-backward-iterator type associated
+ to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerelt
+*/
+/// \brief Shortcuts to access the element-backward-iterator type
+/// associated to T.
/// \{
# define mln_bkd_eiter(T) typename T::bkd_eiter
# define mln_bkd_eiter_(T) T::bkd_eiter
/// \}
+/*!
+ \def mln_bkd_niter(T)
+ \brief Shortcuts to access the bkd_niter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_bkd_niter_(T)
+ \brief Shortcuts to access the bkd_niter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
/// Shortcuts to access the bkd_niter type associated to T.
/// \{
# define mln_bkd_niter(T) typename T::bkd_niter
# define mln_bkd_niter_(T) T::bkd_niter
/// \}
+/*!
+ \def mln_bkd_piter(T)
+ \brief Shortcuts to access the bkd_piter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_bkd_piter_(T)
+ \brief Shortcuts to access the bkd_piter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
/// Shortcuts to access the bkd_piter type associated to T.
/// \{
# define mln_bkd_piter(T) typename T::bkd_piter
# define mln_bkd_piter_(T) T::bkd_piter
/// \}
+/*!
+ \def mln_bkd_qiter(T)
+ \brief Shortcuts to access the bkd_qiter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_bkd_qiter_(T)
+ \brief Shortcuts to access the bkd_qiter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
/// Shortcuts to access the bkd_qiter type associated to T.
/// \{
# define mln_bkd_qiter(T) typename T::bkd_qiter
# define mln_bkd_qiter_(T) T::bkd_qiter
/// \}
+/*!
+ \def mln_bkd_viter(T)
+ \brief Shortcuts to access the bkd_viter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
+/*!
+ \def mln_bkd_viter_(T)
+ \brief Shortcuts to access the bkd_viter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
/// Shortcuts to access the bkd_viter type associated to T.
/// \{
# define mln_bkd_viter(T) typename T::bkd_viter
# define mln_bkd_viter_(T) T::bkd_viter
/// \}
+/*!
+ \def mln_box(T)
+ \brief Shortcuts to access the box type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image mln::Site_Set
+*/
+/*!
+ \def mln_box_(T)
+ \brief Shortcuts to access the box type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image mln::Site_Set
+*/
/// Shortcuts to access the box type associated to T.
/// \{
# define mln_box(T) typename mln::box<mln_psite(T)>
@@ -85,6 +215,22 @@
// c
+/*!
+ \def mln_coord(T)
+ \brief Shortcuts to access the coord type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrossite
+ \relates mln::GPoint
+*/
+/*!
+ \def mln_coord_(T)
+ \brief Shortcuts to access the coord type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrossite
+ \relates mln::GPoint
+*/
/// Shortcuts to access the coord type associated to T.
/// \{
# define mln_coord(T) typename T::coord
@@ -94,18 +240,66 @@
// d
+/*!
+ \def mln_delta(T)
+ \brief Shortcuts to access the delta type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrossite
+ \relates mln::Image
+*/
+/*!
+ \def mln_delta_(T)
+ \brief Shortcuts to access the delta type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrossite
+ \relates mln::Image
+*/
/// Shortcuts to access the delta type associated to T.
/// \{
# define mln_delta(T) typename T::delta
# define mln_delta_(T) T::delta
/// \}
+/*!
+ \def mln_dpoint(T)
+ \brief Shortcuts to access the dpoint type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_dpoint_(T)
+ \brief Shortcuts to access the dpoint type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the dpoint type associated to T.
/// \{
# define mln_dpoint(T) typename T::dpoint
# define mln_dpoint_(T) T::dpoint
/// \}
+/*!
+ \def mln_dpsite(T)
+ \brief Shortcuts to access the dpsite type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_dpsite_(T)
+ \brief Shortcuts to access the dpsite type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the dpsite type associated to T.
/// \{
# define mln_dpsite(T) typename T::dpsite
@@ -115,36 +309,126 @@
// e
+/*!
+ \def mln_eiter(T)
+ \brief Shortcuts to access the element-iterator type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerval
+*/
+/*!
+ \def mln_eiter_(T)
+ \brief Shortcuts to access the element-iterator type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerval
+*/
/// Shortcuts to access the element-iterator type associated to T.
/// \{
# define mln_eiter(T) typename T::eiter
# define mln_eiter_(T) T::eiter
/// \}
+/*!
+ \def mln_graph(T)
+ \brief Shortcuts to access the graph type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_graph_(T)
+ \brief Shortcuts to access the graph type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the graph type associated to T.
/// \{
# define mln_graph(T) typename T::graph_t
# define mln_graph_(T) T::graph_t
/// \}
+/*!
+ \def mln_element(T)
+ \brief Shortcuts to access the element type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
+/*!
+ \def mln_element_(T)
+ \brief Shortcuts to access the element type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
/// Shortcuts to access the element type associated to T.
/// \{
# define mln_element(T) typename T::element
# define mln_element_(T) T::element
/// \}
+/*!
+ \def mln_graph_element(T)
+ \brief Shortcuts to access the graph_element type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_graph_element_(T)
+ \brief Shortcuts to access the graph_element type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the graph element type associated to T.
/// \{
# define mln_graph_element(T) typename T::graph_element
# define mln_graph_element_(T) T::graph_element
/// \}
+/*!
+ \def mln_enc(T)
+ \brief Shortcuts to access the encoding type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
+/*!
+ \def mln_enc_(T)
+ \brief Shortcuts to access the encoding type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
/// Shortcuts to access the encoding type associated to T.
/// \{
# define mln_enc(T) typename T::enc
# define mln_enc_(T) T::enc
/// \}
+/*!
+ \def mln_equiv(T)
+ \brief Shortcuts to access the equivalent type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
+/*!
+ \def mln_equiv_(T)
+ \brief Shortcuts to access the equivalent type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
/// Shortcuts to access the equivalent type associated to T.
/// \{
# define mln_equiv(T) typename T::equiv
@@ -154,6 +438,22 @@
// f
+/*!
+ \def mln_fwd_eiter(T)
+ \brief Shortcuts to access the element-forward-iterator type
+ associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerelt
+*/
+/*!
+ \def mln_fwd_eiter_(T)
+ \brief Shortcuts to access the element-forward-iterator type
+ associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerelt
+*/
/// Shortcuts to access the element-forward-iterator type associated
/// to T.
/// \{
@@ -161,24 +461,88 @@
# define mln_fwd_eiter_(T) T::fwd_eiter
/// \}
+/*!
+ \def mln_fwd_niter(T)
+ \brief Shortcuts to access the fwd_niter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_fwd_niter_(T)
+ \brief Shortcuts to access the fwd_niter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
/// Shortcuts to access the fwd_niter type associated to T.
/// \{
# define mln_fwd_niter(T) typename T::fwd_niter
# define mln_fwd_niter_(T) T::fwd_niter
/// \}
+/*!
+ \def mln_fwd_piter(T)
+ \brief Shortcuts to access the fwd_piter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_fwd_piter_(T)
+ \brief Shortcuts to access the fwd_piter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
/// Shortcuts to access the fwd_piter type associated to T.
/// \{
# define mln_fwd_piter(T) typename T::fwd_piter
# define mln_fwd_piter_(T) T::fwd_piter
/// \}
+/*!
+ \def mln_fwd_qiter(T)
+ \brief Shortcuts to access the fwd_qiter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_fwd_qiter_(T)
+ \brief Shortcuts to access the fwd_qiter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
/// Shortcuts to access the fwd_qiter type associated to T.
/// \{
# define mln_fwd_qiter(T) typename T::fwd_qiter
# define mln_fwd_qiter_(T) T::fwd_qiter
/// \}
+/*!
+ \def mln_fwd_viter(T)
+ \brief Shortcuts to access the fwd_viter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
+/*!
+ \def mln_fwd_viter_(T)
+ \brief Shortcuts to access the fwd_viter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
/// Shortcuts to access the fwd_viter type associated to T.
/// \{
# define mln_fwd_viter(T) typename T::fwd_viter
@@ -188,12 +552,44 @@
// g
+/*!
+ \def mln_fwd_geom(T)
+ \brief Shortcuts to access the geometry type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
+/*!
+ \def mln_fwd_geom_(T)
+ \brief Shortcuts to access the geometry type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
/// Shortcuts to access the geometry type associated to T.
/// \{
# define mln_geom(T) typename T::geom
# define mln_geom_(T) T::geom
/// \}
+/*!
+ \def mln_fwd_grid(T)
+ \brief Shortcuts to access the grid type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
+/*!
+ \def mln_fwd_grid_(T)
+ \brief Shortcuts to access the grid type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
/// Shortcuts to access the grid type associated to T.
/// \{
# define mln_grid(T) typename T::grid
@@ -203,18 +599,68 @@
// i
+/*!
+ \def mln_i_element(T)
+ \brief Shortcuts to access the insertion-element type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_i_element_(T)
+ \brief Shortcuts to access the insertion-element type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the insertion-element type associated to T.
/// \{
# define mln_i_element(T) typename T::i_element
# define mln_i_element_(T) T::i_element
/// \}
+/*!
+ \def mln_image(T)
+ \brief Shortcuts to access the image type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_image_(T)
+ \brief Shortcuts to access the image type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the image type associated to T.
/// \{
# define mln_image(T) typename T::image
# define mln_image_(T) T::image
/// \}
+/*!
+ \def mln_invert(T)
+ \brief Shortcuts to access the invert type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
+/*!
+ \def mln_invert_(T)
+ \brief Shortcuts to access the invert type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
/// Shortcuts to access the invert type associated to T.
/// \{
# define mln_invert(T) typename T::invert
@@ -224,6 +670,24 @@
// l
+/*!
+ \def mln_lvalue(T)
+ \brief Shortcuts to access the lvalue type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/*!
+ \def mln_lvalue_(T)
+ \brief Shortcuts to access the lvalue type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
/// Shortcuts to access the lvalue type associated to T.
/// \{
# define mln_lvalue(T) typename T::lvalue
@@ -233,6 +697,22 @@
// m
+/*!
+ \def mln_mesh(T)
+ \brief Shortcuts to access the mesh type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_mesh_(T)
+ \brief Shortcuts to access the mesh type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the mesh type associated to T.
/// \{
# define mln_mesh(T) typename T::mesh
@@ -242,12 +722,48 @@
// p
+/*!
+ \def mln_piter(T)
+ \brief Shortcuts to access the type of point iterator (piter)
+ associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_piter_(T)
+ \brief Shortcuts to access the type of point iterator (piter)
+ associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
/// Shortcuts to access the type of point iterator (piter) associated to T.
/// \{
# define mln_piter(T) typename T::piter
# define mln_piter_(T) T::piter
/// \}
+/*!
+ \def mln_line_piter(T)
+ \brief Shortcuts to access the type of point by line iterator
+ (line_piter) associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_line_piter_(T)
+ \brief Shortcuts to access the type of point by line iterator
+ (line_piter) associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
/// Shortcuts to access the type of point by line iterator
/// (line_piter) associated to T.
/// \{
@@ -255,24 +771,92 @@
# define mln_line_piter_(T) T::line_piter
/// \}
+/*!
+ \def mln_domain(T)
+ \brief Shortcuts to access the domain type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_domain_(T)
+ \brief Shortcuts to access the domain type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the domain type associated to T.
/// \{
# define mln_domain(T) typename T::domain_t
# define mln_domain_(T) T::domain_t
/// \}
+/*!
+ \def mln_pset(T)
+ \brief Shortcuts to access the type of point set (pset) associated
+ to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_pset_(T)
+ \brief Shortcuts to access the type of point set (pset) associated
+ to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the type of point set (pset) associated to T.
/// \{
# define mln_pset(T) typename T::pset
# define mln_pset_(T) T::pset
/// \}
+/*!
+ \def mln_psite(T)
+ \brief Shortcuts to access the type of point site (psite) associated
+ to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_psite_(T)
+ \brief Shortcuts to access the type of point site (psite) associated
+ to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the type of point site (psite) associated to T.
/// \{
# define mln_psite(T) typename T::psite
# define mln_psite_(T) T::psite
/// \}
+/*!
+ \def mln_point(T)
+ \brief Shortcuts to access the point type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_point_(T)
+ \brief Shortcuts to access the point type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the point type associated to T.
/// \{
# define mln_point(T) typename T::point
@@ -282,6 +866,24 @@
// q
+/*!
+ \def mln_qlt_value(T)
+ \brief Shortcuts to access the qualified (const or mutable) value
+ type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_qlt_value_(T)
+ \brief Shortcuts to access the qualified (const or mutable) value
+ type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the qualified (const or mutable) value type
/// associated to T.
/// \{
@@ -289,18 +891,68 @@
# define mln_qlf_value_(T) mln::trait::qlf_value< T >::ret
/// \}
+/*!
+ \def mln_qiter(T)
+ \brief Shortcuts to access the qiter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_qiter_(T)
+ \brief Shortcuts to access the qiter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
/// Shortcuts to access the qiter type associated to T.
/// \{
# define mln_qiter(T) typename T::fwd_qiter
# define mln_qiter_(T) T::fwd_qiter
/// \}
+/*!
+ \def mln_q_result(T)
+ \brief Shortcuts to access the qualified-result type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/*!
+ \def mln_q_result_(T)
+ \brief Shortcuts to access the qualified-result type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
/// Shortcuts to access the qualified-result type associated to T.
/// \{
# define mln_q_result(T) typename T::q_result
# define mln_q_result_(T) T::q_result
/// \}
+/*!
+ \def mln_q_subject(T)
+ \brief Shortcuts to access the qualified-subject type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_q_subject_(T)
+ \brief Shortcuts to access the qualified-subject type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the qualified-subject type associated to T.
/// \{
# define mln_q_subject(T) typename T::q_subject
@@ -310,6 +962,22 @@
// n
+/*!
+ \def mln_niter(T)
+ \brief Shortcuts to access the niter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_niter_(T)
+ \brief Shortcuts to access the niter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
/// Shortcuts to access the niter type associated to T.
/// \{
# define mln_niter(T) typename T::fwd_niter
@@ -319,24 +987,84 @@
// r
+/*!
+ \def mln_r_element(T)
+ \brief Shortcuts to access the removal-element type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_r_element_(T)
+ \brief Shortcuts to access the removal-element type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the removal-element type associated to T.
/// \{
# define mln_r_element(T) typename T::r_element
# define mln_r_element_(T) T::r_element
/// \}
+/*!
+ \def mln_regular(T)
+ \brief Shortcuts to access the regular type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_regular_(T)
+ \brief Shortcuts to access the regular type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the regular type associated to T.
/// \{
# define mln_regular(T) typename T::regular
# define mln_regular_(T) T::regular
/// \}
+/*!
+ \def mln_result(T)
+ \brief Shortcuts to access the result type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/*!
+ \def mln_result_(T)
+ \brief Shortcuts to access the result type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
/// Shortcuts to access the result type associated to T.
/// \{
# define mln_result(T) typename T::result
# define mln_result_(T) T::result
/// \}
+/*!
+ \def mln_value(T)
+ \brief Shortcuts to access the value type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/*!
+ \def mln_value_(T)
+ \brief Shortcuts to access the value type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
/// Shortcuts to access the rvalue type associated to T.
/// \{
# define mln_rvalue(T) typename T::rvalue
@@ -346,6 +1074,22 @@
// s
+/*!
+ \def mln_site(T)
+ \brief Shortcuts to access the site type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_site_(T)
+ \brief Shortcuts to access the site type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the site type associated to T.
/// \{
# define mln_site(T) typename T::site
@@ -361,6 +1105,20 @@
// t
+/*!
+ \def mln_target(T)
+ \brief Shortcuts to access the target type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_target_(T)
+ \brief Shortcuts to access the target type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the target type associated to T.
/// \{
# define mln_target(T) typename T::target
@@ -371,6 +1129,22 @@
// u
+/*!
+ \def mln_unmorph(T)
+ \brief Shortcuts to access the unmorph type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_unmorph_(T)
+ \brief Shortcuts to access the unmorph type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the unmorph type associated to T.
/// \{
# define mln_unmorph(T) typename T::unmorph
@@ -381,24 +1155,90 @@
// v
+/*!
+ \def mln_value(T)
+ \brief Shortcuts to access the value type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_value_(T)
+ \brief Shortcuts to access the value type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the value type associated to T.
/// \{
# define mln_value(T) typename T::value
# define mln_value_(T) T::value
/// \}
+/*!
+ \def mln_vec(T)
+ \brief Shortcuts to access the algebra::vector (vec) type associated
+ to T.
+
+ To be used in templated functions only.
+ \ingroup macrosval
+*/
+/*!
+ \def mln_vec_(T)
+ \brief Shortcuts to access the algebra::vector (vec) type associated
+ to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosval
+*/
/// Shortcuts to access the algebra::vector (vec) type associated to T.
/// \{
# define mln_vec(T) typename T::vec
# define mln_vec_(T) T::vec
/// \}
+/*!
+ \def mln_vset(T)
+ \brief Shortcuts to access the type of value set (vset) associated
+ to T.
+
+ To be used in templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
+/*!
+ \def mln_vset_(T)
+ \brief Shortcuts to access the type of value set (vset) associated
+ to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
/// Shortcuts to access the type of value set (vset) associated to T.
/// \{
# define mln_vset(T) typename T::t_eligible_values_set
# define mln_vset_(T) T::t_eligible_values_set
/// \}
+/*!
+ \def mln_viter(T)
+ \brief Shortcuts to access the viter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
+/*!
+ \def mln_viter_(T)
+ \brief Shortcuts to access the viter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
/// Shortcuts to access the viter type associated to T.
/// \{
# define mln_viter(T) typename T::fwd_viter
@@ -408,12 +1248,44 @@
// w
+/*!
+ \def mln_weight(T)
+ \brief Shortcuts to access the weight type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macroswin
+ \relates mln::Weighted_Window
+*/
+/*!
+ \def mln_weight_(T)
+ \brief Shortcuts to access the weight type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macroswin
+ \relates mln::Weighted_Window
+*/
/// Shortcuts to access the weight type associated to T.
/// \{
# define mln_weight(T) typename T::weight
# define mln_weight_(T) T::weight
/// \}
+/*!
+ \def mln_window(T)
+ \brief Shortcuts to access the window type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosnbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_window_(T)
+ \brief Shortcuts to access the window type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosnbh
+ \relates mln::Neighborhood
+*/
/// Shortcuts to access the window type associated to T.
/// \{
# define mln_window(T) typename T::window
@@ -425,32 +1297,217 @@
// FIXME: Just include trait/all.hh !!!
+/*!
+ \def mln_fwd_pixter(T)
+ \brief Shortcuts to access the fwd_pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_fwd_pixter_(T)
+ \brief Shortcuts to access the fwd_pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
# define mln_fwd_pixter(I) typename mln::trait::fwd_pixter< I >::ret
# define mln_fwd_pixter_(I) mln::trait::fwd_pixter< I >::ret
+/*!
+ \def mln_bkd_pixter(T)
+ \brief Shortcuts to access the bkd_pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_bkd_pixter_(T)
+ \brief Shortcuts to access the bkd_pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
# define mln_bkd_pixter(I) typename mln::trait::bkd_pixter< I >::ret
# define mln_bkd_pixter_(I) mln::trait::bkd_pixter< I >::ret
+/*!
+ \def mln_pixter(T)
+ \brief Shortcuts to access the pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_pixter_(T)
+ \brief Shortcuts to access the pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
# define mln_pixter(I) mln_fwd_pixter(I)
# define mln_pixter_(I) mln_fwd_pixter_(I)
+/*!
+ \def mln_fwd_qixter(T)
+ \brief Shortcuts to access the fwd_qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_fwd_qixter_(T)
+ \brief Shortcuts to access the fwd_qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
# define mln_fwd_qixter(I, W) typename mln::trait::fwd_qixter< I, W >::ret
# define mln_fwd_qixter_(I, W) mln::trait::fwd_qixter< I, W >::ret
+/*!
+ \def mln_bkd_qixter(T)
+ \brief Shortcuts to access the bkd_qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_bkd_qixter_(T)
+ \brief Shortcuts to access the bkd_qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
# define mln_bkd_qixter(I, W) typename mln::trait::bkd_qixter< I, W >::ret
# define mln_bkd_qixter_(I, W) mln::trait::bkd_qixter< I, W >::ret
+
+/*!
+ \def mln_qixter(T)
+ \brief Shortcuts to access the qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_qixter_(T)
+ \brief Shortcuts to access the qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
# define mln_qixter(I, W) mln_fwd_qixter(I, W)
# define mln_qixter_(I, W) mln_fwd_qixter_(I, W)
+/*!
+ \def mln_fwd_nixter(T)
+ \brief Shortcuts to access the fwd_nixter type associated to T.
+
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_fwd_nixter_(T)
+ \brief Shortcuts to access the fwd_nixter type associated to T.
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
# define mln_fwd_nixter(I, N) typename mln::trait::fwd_nixter< I, N >::ret
# define mln_fwd_nixter_(I, N) mln::trait::fwd_nixter< I, N >::ret
+/*!
+ \def mln_bkd_nixter(T)
+ \brief Shortcuts to access the bkd_nixter type associated to T.
+
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_bkd_nixter_(T)
+ \brief Shortcuts to access the bkd_nixter type associated to T.
+
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
# define mln_bkd_nixter(I, N) typename mln::trait::bkd_nixter< I, N >::ret
# define mln_bkd_nixter_(I, N) mln::trait::bkd_nixter< I, N >::ret
+/*!
+ \def mln_nixter(T)
+ \brief Shortcuts to access the nixter type associated to T.
+
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_nixter_(T)
+ \brief Shortcuts to access the nixter type associated to T.
+
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
# define mln_nixter(I, N) mln_fwd_nixter(I, N)
# define mln_nixter_(I, N) mln_fwd_nixter_(I, N)
--
1.7.2.5
1
0

olena: olena-2.0-585-g2c6bbd3 Introduce a new module for useful macros.
by Guillaume Lazzara 29 Apr '13
by Guillaume Lazzara 29 Apr '13
29 Apr '13
* doc/mln/core/macros.dox: New.
* doc/mln/main.dox: New module.
* mln/core/macros.hh: Add comments.
---
milena/ChangeLog | 10 +
milena/doc/mln/core/macros.dox | 79 +++
milena/doc/mln/main.dox | 7 +
milena/mln/core/macros.hh | 1067 +++++++++++++++++++++++++++++++++++++++-
4 files changed, 1158 insertions(+), 5 deletions(-)
create mode 100644 milena/doc/mln/core/macros.dox
diff --git a/milena/ChangeLog b/milena/ChangeLog
index f55e2e2..063eede 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,15 @@
2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Introduce a new module for useful macros.
+
+ * doc/mln/core/macros.dox: New.
+
+ * doc/mln/main.dox: New module.
+
+ * mln/core/macros.hh: Add comments.
+
+2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Improve documentation in fun::p2b, fun::p2p, fun::p2v and
fun::x2v.
diff --git a/milena/doc/mln/core/macros.dox b/milena/doc/mln/core/macros.dox
new file mode 100644
index 0000000..46504a0
--- /dev/null
+++ b/milena/doc/mln/core/macros.dox
@@ -0,0 +1,79 @@
+/*! \defgroup macrositerima Image Iterators
+ *
+ * \brief All the macros to extract Image iterator types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrositerwin Window Iterators
+ *
+ * \brief All the macros to extract window iterator types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrositernbh Neighborhood Iterators
+ *
+ * \brief All the macros to extract window iterator types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrositerelt Element Iterators
+ *
+ * \brief All the macros to extract element iterator types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrositerval Value Iterators
+ *
+ * \brief All the macros to extract value iterator types.
+ *
+ * \ingroup mlnmacros
+ */
+
+
+
+
+/*! \defgroup macrosima Image Specific types
+ *
+ * \brief All the macros to extract image specific types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrosfun Function Specific types
+ *
+ * \brief All the macros to extract function specific types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrosval Value Specific types
+ *
+ * \brief All the macros to extract value specific types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrossite Site Specific types
+ *
+ * \brief All the macros to extract site specific types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macroswin Window Specific types
+ *
+ * \brief All the macros to extract window specific types.
+ *
+ * \ingroup mlnmacros
+ */
+
+/*! \defgroup macrosnbh Neighborhood Specific types
+ *
+ * \brief All the macros to extract neighborhood specific types.
+ *
+ * \ingroup mlnmacros
+ */
diff --git a/milena/doc/mln/main.dox b/milena/doc/mln/main.dox
index c413cac..52e600a 100644
--- a/milena/doc/mln/main.dox
+++ b/milena/doc/mln/main.dox
@@ -100,3 +100,10 @@
*
* \ingroup modroutines
*/
+
+/*! \defgroup mlnmacros Useful Macro Functions
+ *
+ * \brief All useful macro functions.
+ *
+ * \ingroup modroutines
+ */
diff --git a/milena/mln/core/macros.hh b/milena/mln/core/macros.hh
index 6eecd1d..25bfcc1 100644
--- a/milena/mln/core/macros.hh
+++ b/milena/mln/core/macros.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -31,12 +32,45 @@
/// Definition of the set of Milena macros.
-# define mln_deduce(T, A1, A2) typename T::A1::A2
+/*!
+ \def mln_deduce(T, A1, A2)
+ \brief Shortcuts to access the type T::A1::A2.
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_deduce_(T, A1, A2)
+ \brief Shortcuts to access the type T::A1::A2.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
+/// Shortcuts to access the type T::A1::A2.
+/// \{
+# define mln_deduce(T, A1, A2) typename T::A1::A2
+# define mln_deduce_(T, A1, A2) T::A1::A2
+/// \}
// a
-/// Shortcuts to access the argument type associated to T.
+/*!
+ \def mln_argument(T)
+ \brief Shortcuts to access the argument type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/*!
+ \def mln_argument_(T)
+ \brief Shortcuts to access the argument type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/// \brief Shortcuts to access the argument type associated to T.
/// \{
# define mln_argument(T) typename T::argument
# define mln_argument_(T) T::argument
@@ -45,37 +79,133 @@
// b
-/// Shortcuts to access the element-backward-iterator type associated
-/// to T.
+/*!
+ \def mln_bkd_eiter(T)
+ \brief Shortcuts to access the element-backward-iterator type associated
+ to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerelt
+*/
+/*!
+ \def mln_bkd_eiter_(T)
+ \brief Shortcuts to access the element-backward-iterator type associated
+ to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerelt
+*/
+/// \brief Shortcuts to access the element-backward-iterator type
+/// associated to T.
/// \{
# define mln_bkd_eiter(T) typename T::bkd_eiter
# define mln_bkd_eiter_(T) T::bkd_eiter
/// \}
+/*!
+ \def mln_bkd_niter(T)
+ \brief Shortcuts to access the bkd_niter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_bkd_niter_(T)
+ \brief Shortcuts to access the bkd_niter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
/// Shortcuts to access the bkd_niter type associated to T.
/// \{
# define mln_bkd_niter(T) typename T::bkd_niter
# define mln_bkd_niter_(T) T::bkd_niter
/// \}
+/*!
+ \def mln_bkd_piter(T)
+ \brief Shortcuts to access the bkd_piter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_bkd_piter_(T)
+ \brief Shortcuts to access the bkd_piter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
/// Shortcuts to access the bkd_piter type associated to T.
/// \{
# define mln_bkd_piter(T) typename T::bkd_piter
# define mln_bkd_piter_(T) T::bkd_piter
/// \}
+/*!
+ \def mln_bkd_qiter(T)
+ \brief Shortcuts to access the bkd_qiter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_bkd_qiter_(T)
+ \brief Shortcuts to access the bkd_qiter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
/// Shortcuts to access the bkd_qiter type associated to T.
/// \{
# define mln_bkd_qiter(T) typename T::bkd_qiter
# define mln_bkd_qiter_(T) T::bkd_qiter
/// \}
+/*!
+ \def mln_bkd_viter(T)
+ \brief Shortcuts to access the bkd_viter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
+/*!
+ \def mln_bkd_viter_(T)
+ \brief Shortcuts to access the bkd_viter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
/// Shortcuts to access the bkd_viter type associated to T.
/// \{
# define mln_bkd_viter(T) typename T::bkd_viter
# define mln_bkd_viter_(T) T::bkd_viter
/// \}
+/*!
+ \def mln_box(T)
+ \brief Shortcuts to access the box type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image mln::Site_Set
+*/
+/*!
+ \def mln_box_(T)
+ \brief Shortcuts to access the box type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image mln::Site_Set
+*/
/// Shortcuts to access the box type associated to T.
/// \{
# define mln_box(T) typename mln::box<mln_psite(T)>
@@ -85,6 +215,22 @@
// c
+/*!
+ \def mln_coord(T)
+ \brief Shortcuts to access the coord type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrossite
+ \relates mln::GPoint
+*/
+/*!
+ \def mln_coord_(T)
+ \brief Shortcuts to access the coord type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrossite
+ \relates mln::GPoint
+*/
/// Shortcuts to access the coord type associated to T.
/// \{
# define mln_coord(T) typename T::coord
@@ -94,18 +240,66 @@
// d
+/*!
+ \def mln_delta(T)
+ \brief Shortcuts to access the delta type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrossite
+ \relates mln::Image
+*/
+/*!
+ \def mln_delta_(T)
+ \brief Shortcuts to access the delta type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrossite
+ \relates mln::Image
+*/
/// Shortcuts to access the delta type associated to T.
/// \{
# define mln_delta(T) typename T::delta
# define mln_delta_(T) T::delta
/// \}
+/*!
+ \def mln_dpoint(T)
+ \brief Shortcuts to access the dpoint type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_dpoint_(T)
+ \brief Shortcuts to access the dpoint type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the dpoint type associated to T.
/// \{
# define mln_dpoint(T) typename T::dpoint
# define mln_dpoint_(T) T::dpoint
/// \}
+/*!
+ \def mln_dpsite(T)
+ \brief Shortcuts to access the dpsite type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_dpsite_(T)
+ \brief Shortcuts to access the dpsite type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the dpsite type associated to T.
/// \{
# define mln_dpsite(T) typename T::dpsite
@@ -115,36 +309,126 @@
// e
+/*!
+ \def mln_eiter(T)
+ \brief Shortcuts to access the element-iterator type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerval
+*/
+/*!
+ \def mln_eiter_(T)
+ \brief Shortcuts to access the element-iterator type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerval
+*/
/// Shortcuts to access the element-iterator type associated to T.
/// \{
# define mln_eiter(T) typename T::eiter
# define mln_eiter_(T) T::eiter
/// \}
+/*!
+ \def mln_graph(T)
+ \brief Shortcuts to access the graph type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_graph_(T)
+ \brief Shortcuts to access the graph type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the graph type associated to T.
/// \{
# define mln_graph(T) typename T::graph_t
# define mln_graph_(T) T::graph_t
/// \}
+/*!
+ \def mln_element(T)
+ \brief Shortcuts to access the element type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
+/*!
+ \def mln_element_(T)
+ \brief Shortcuts to access the element type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
/// Shortcuts to access the element type associated to T.
/// \{
# define mln_element(T) typename T::element
# define mln_element_(T) T::element
/// \}
+/*!
+ \def mln_graph_element(T)
+ \brief Shortcuts to access the graph_element type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_graph_element_(T)
+ \brief Shortcuts to access the graph_element type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the graph element type associated to T.
/// \{
# define mln_graph_element(T) typename T::graph_element
# define mln_graph_element_(T) T::graph_element
/// \}
+/*!
+ \def mln_enc(T)
+ \brief Shortcuts to access the encoding type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
+/*!
+ \def mln_enc_(T)
+ \brief Shortcuts to access the encoding type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
/// Shortcuts to access the encoding type associated to T.
/// \{
# define mln_enc(T) typename T::enc
# define mln_enc_(T) T::enc
/// \}
+/*!
+ \def mln_equiv(T)
+ \brief Shortcuts to access the equivalent type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
+/*!
+ \def mln_equiv_(T)
+ \brief Shortcuts to access the equivalent type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
/// Shortcuts to access the equivalent type associated to T.
/// \{
# define mln_equiv(T) typename T::equiv
@@ -154,6 +438,22 @@
// f
+/*!
+ \def mln_fwd_eiter(T)
+ \brief Shortcuts to access the element-forward-iterator type
+ associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerelt
+*/
+/*!
+ \def mln_fwd_eiter_(T)
+ \brief Shortcuts to access the element-forward-iterator type
+ associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerelt
+*/
/// Shortcuts to access the element-forward-iterator type associated
/// to T.
/// \{
@@ -161,24 +461,88 @@
# define mln_fwd_eiter_(T) T::fwd_eiter
/// \}
+/*!
+ \def mln_fwd_niter(T)
+ \brief Shortcuts to access the fwd_niter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_fwd_niter_(T)
+ \brief Shortcuts to access the fwd_niter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
/// Shortcuts to access the fwd_niter type associated to T.
/// \{
# define mln_fwd_niter(T) typename T::fwd_niter
# define mln_fwd_niter_(T) T::fwd_niter
/// \}
+/*!
+ \def mln_fwd_piter(T)
+ \brief Shortcuts to access the fwd_piter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_fwd_piter_(T)
+ \brief Shortcuts to access the fwd_piter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
/// Shortcuts to access the fwd_piter type associated to T.
/// \{
# define mln_fwd_piter(T) typename T::fwd_piter
# define mln_fwd_piter_(T) T::fwd_piter
/// \}
+/*!
+ \def mln_fwd_qiter(T)
+ \brief Shortcuts to access the fwd_qiter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_fwd_qiter_(T)
+ \brief Shortcuts to access the fwd_qiter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
/// Shortcuts to access the fwd_qiter type associated to T.
/// \{
# define mln_fwd_qiter(T) typename T::fwd_qiter
# define mln_fwd_qiter_(T) T::fwd_qiter
/// \}
+/*!
+ \def mln_fwd_viter(T)
+ \brief Shortcuts to access the fwd_viter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
+/*!
+ \def mln_fwd_viter_(T)
+ \brief Shortcuts to access the fwd_viter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
/// Shortcuts to access the fwd_viter type associated to T.
/// \{
# define mln_fwd_viter(T) typename T::fwd_viter
@@ -188,12 +552,44 @@
// g
+/*!
+ \def mln_fwd_geom(T)
+ \brief Shortcuts to access the geometry type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
+/*!
+ \def mln_fwd_geom_(T)
+ \brief Shortcuts to access the geometry type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
/// Shortcuts to access the geometry type associated to T.
/// \{
# define mln_geom(T) typename T::geom
# define mln_geom_(T) T::geom
/// \}
+/*!
+ \def mln_fwd_grid(T)
+ \brief Shortcuts to access the grid type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
+/*!
+ \def mln_fwd_grid_(T)
+ \brief Shortcuts to access the grid type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+ \relates mln::Image
+*/
/// Shortcuts to access the grid type associated to T.
/// \{
# define mln_grid(T) typename T::grid
@@ -203,18 +599,68 @@
// i
+/*!
+ \def mln_i_element(T)
+ \brief Shortcuts to access the insertion-element type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_i_element_(T)
+ \brief Shortcuts to access the insertion-element type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the insertion-element type associated to T.
/// \{
# define mln_i_element(T) typename T::i_element
# define mln_i_element_(T) T::i_element
/// \}
+/*!
+ \def mln_image(T)
+ \brief Shortcuts to access the image type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_image_(T)
+ \brief Shortcuts to access the image type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the image type associated to T.
/// \{
# define mln_image(T) typename T::image
# define mln_image_(T) T::image
/// \}
+/*!
+ \def mln_invert(T)
+ \brief Shortcuts to access the invert type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
+/*!
+ \def mln_invert_(T)
+ \brief Shortcuts to access the invert type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
/// Shortcuts to access the invert type associated to T.
/// \{
# define mln_invert(T) typename T::invert
@@ -224,6 +670,24 @@
// l
+/*!
+ \def mln_lvalue(T)
+ \brief Shortcuts to access the lvalue type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/*!
+ \def mln_lvalue_(T)
+ \brief Shortcuts to access the lvalue type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
/// Shortcuts to access the lvalue type associated to T.
/// \{
# define mln_lvalue(T) typename T::lvalue
@@ -233,6 +697,22 @@
// m
+/*!
+ \def mln_mesh(T)
+ \brief Shortcuts to access the mesh type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_mesh_(T)
+ \brief Shortcuts to access the mesh type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the mesh type associated to T.
/// \{
# define mln_mesh(T) typename T::mesh
@@ -242,12 +722,48 @@
// p
+/*!
+ \def mln_piter(T)
+ \brief Shortcuts to access the type of point iterator (piter)
+ associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_piter_(T)
+ \brief Shortcuts to access the type of point iterator (piter)
+ associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
/// Shortcuts to access the type of point iterator (piter) associated to T.
/// \{
# define mln_piter(T) typename T::piter
# define mln_piter_(T) T::piter
/// \}
+/*!
+ \def mln_line_piter(T)
+ \brief Shortcuts to access the type of point by line iterator
+ (line_piter) associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_line_piter_(T)
+ \brief Shortcuts to access the type of point by line iterator
+ (line_piter) associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
/// Shortcuts to access the type of point by line iterator
/// (line_piter) associated to T.
/// \{
@@ -255,24 +771,92 @@
# define mln_line_piter_(T) T::line_piter
/// \}
+/*!
+ \def mln_domain(T)
+ \brief Shortcuts to access the domain type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_domain_(T)
+ \brief Shortcuts to access the domain type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the domain type associated to T.
/// \{
# define mln_domain(T) typename T::domain_t
# define mln_domain_(T) T::domain_t
/// \}
+/*!
+ \def mln_pset(T)
+ \brief Shortcuts to access the type of point set (pset) associated
+ to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_pset_(T)
+ \brief Shortcuts to access the type of point set (pset) associated
+ to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the type of point set (pset) associated to T.
/// \{
# define mln_pset(T) typename T::pset
# define mln_pset_(T) T::pset
/// \}
+/*!
+ \def mln_psite(T)
+ \brief Shortcuts to access the type of point site (psite) associated
+ to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_psite_(T)
+ \brief Shortcuts to access the type of point site (psite) associated
+ to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the type of point site (psite) associated to T.
/// \{
# define mln_psite(T) typename T::psite
# define mln_psite_(T) T::psite
/// \}
+/*!
+ \def mln_point(T)
+ \brief Shortcuts to access the point type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_point_(T)
+ \brief Shortcuts to access the point type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the point type associated to T.
/// \{
# define mln_point(T) typename T::point
@@ -282,6 +866,24 @@
// q
+/*!
+ \def mln_qlt_value(T)
+ \brief Shortcuts to access the qualified (const or mutable) value
+ type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_qlt_value_(T)
+ \brief Shortcuts to access the qualified (const or mutable) value
+ type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the qualified (const or mutable) value type
/// associated to T.
/// \{
@@ -289,18 +891,68 @@
# define mln_qlf_value_(T) mln::trait::qlf_value< T >::ret
/// \}
+/*!
+ \def mln_qiter(T)
+ \brief Shortcuts to access the qiter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_qiter_(T)
+ \brief Shortcuts to access the qiter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
/// Shortcuts to access the qiter type associated to T.
/// \{
# define mln_qiter(T) typename T::fwd_qiter
# define mln_qiter_(T) T::fwd_qiter
/// \}
+/*!
+ \def mln_q_result(T)
+ \brief Shortcuts to access the qualified-result type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/*!
+ \def mln_q_result_(T)
+ \brief Shortcuts to access the qualified-result type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
/// Shortcuts to access the qualified-result type associated to T.
/// \{
# define mln_q_result(T) typename T::q_result
# define mln_q_result_(T) T::q_result
/// \}
+/*!
+ \def mln_q_subject(T)
+ \brief Shortcuts to access the qualified-subject type associated to
+ T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_q_subject_(T)
+ \brief Shortcuts to access the qualified-subject type associated to
+ T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the qualified-subject type associated to T.
/// \{
# define mln_q_subject(T) typename T::q_subject
@@ -310,6 +962,22 @@
// n
+/*!
+ \def mln_niter(T)
+ \brief Shortcuts to access the niter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_niter_(T)
+ \brief Shortcuts to access the niter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
/// Shortcuts to access the niter type associated to T.
/// \{
# define mln_niter(T) typename T::fwd_niter
@@ -319,24 +987,84 @@
// r
+/*!
+ \def mln_r_element(T)
+ \brief Shortcuts to access the removal-element type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_r_element_(T)
+ \brief Shortcuts to access the removal-element type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the removal-element type associated to T.
/// \{
# define mln_r_element(T) typename T::r_element
# define mln_r_element_(T) T::r_element
/// \}
+/*!
+ \def mln_regular(T)
+ \brief Shortcuts to access the regular type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_regular_(T)
+ \brief Shortcuts to access the regular type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the regular type associated to T.
/// \{
# define mln_regular(T) typename T::regular
# define mln_regular_(T) T::regular
/// \}
+/*!
+ \def mln_result(T)
+ \brief Shortcuts to access the result type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/*!
+ \def mln_result_(T)
+ \brief Shortcuts to access the result type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
/// Shortcuts to access the result type associated to T.
/// \{
# define mln_result(T) typename T::result
# define mln_result_(T) T::result
/// \}
+/*!
+ \def mln_value(T)
+ \brief Shortcuts to access the value type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
+/*!
+ \def mln_value_(T)
+ \brief Shortcuts to access the value type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosfun
+ \relates mln::Function
+*/
/// Shortcuts to access the rvalue type associated to T.
/// \{
# define mln_rvalue(T) typename T::rvalue
@@ -346,6 +1074,22 @@
// s
+/*!
+ \def mln_site(T)
+ \brief Shortcuts to access the site type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_site_(T)
+ \brief Shortcuts to access the site type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the site type associated to T.
/// \{
# define mln_site(T) typename T::site
@@ -361,6 +1105,20 @@
// t
+/*!
+ \def mln_target(T)
+ \brief Shortcuts to access the target type associated to T.
+
+ To be used in templated functions only.
+ \ingroup mlnmacros
+*/
+/*!
+ \def mln_target_(T)
+ \brief Shortcuts to access the target type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup mlnmacros
+*/
/// Shortcuts to access the target type associated to T.
/// \{
# define mln_target(T) typename T::target
@@ -371,6 +1129,22 @@
// u
+/*!
+ \def mln_unmorph(T)
+ \brief Shortcuts to access the unmorph type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_unmorph_(T)
+ \brief Shortcuts to access the unmorph type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the unmorph type associated to T.
/// \{
# define mln_unmorph(T) typename T::unmorph
@@ -381,24 +1155,90 @@
// v
+/*!
+ \def mln_value(T)
+ \brief Shortcuts to access the value type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
+/*!
+ \def mln_value_(T)
+ \brief Shortcuts to access the value type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosima
+ \relates mln::Image
+*/
/// Shortcuts to access the value type associated to T.
/// \{
# define mln_value(T) typename T::value
# define mln_value_(T) T::value
/// \}
+/*!
+ \def mln_vec(T)
+ \brief Shortcuts to access the algebra::vector (vec) type associated
+ to T.
+
+ To be used in templated functions only.
+ \ingroup macrosval
+*/
+/*!
+ \def mln_vec_(T)
+ \brief Shortcuts to access the algebra::vector (vec) type associated
+ to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosval
+*/
/// Shortcuts to access the algebra::vector (vec) type associated to T.
/// \{
# define mln_vec(T) typename T::vec
# define mln_vec_(T) T::vec
/// \}
+/*!
+ \def mln_vset(T)
+ \brief Shortcuts to access the type of value set (vset) associated
+ to T.
+
+ To be used in templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
+/*!
+ \def mln_vset_(T)
+ \brief Shortcuts to access the type of value set (vset) associated
+ to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosval
+ \relates mln::Value
+*/
/// Shortcuts to access the type of value set (vset) associated to T.
/// \{
# define mln_vset(T) typename T::t_eligible_values_set
# define mln_vset_(T) T::t_eligible_values_set
/// \}
+/*!
+ \def mln_viter(T)
+ \brief Shortcuts to access the viter type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
+/*!
+ \def mln_viter_(T)
+ \brief Shortcuts to access the viter type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerval
+ \relates mln::Value
+*/
/// Shortcuts to access the viter type associated to T.
/// \{
# define mln_viter(T) typename T::fwd_viter
@@ -408,12 +1248,44 @@
// w
+/*!
+ \def mln_weight(T)
+ \brief Shortcuts to access the weight type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macroswin
+ \relates mln::Weighted_Window
+*/
+/*!
+ \def mln_weight_(T)
+ \brief Shortcuts to access the weight type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macroswin
+ \relates mln::Weighted_Window
+*/
/// Shortcuts to access the weight type associated to T.
/// \{
# define mln_weight(T) typename T::weight
# define mln_weight_(T) T::weight
/// \}
+/*!
+ \def mln_window(T)
+ \brief Shortcuts to access the window type associated to T.
+
+ To be used in templated functions only.
+ \ingroup macrosnbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_window_(T)
+ \brief Shortcuts to access the window type associated to T.
+
+ To be used in non-templated functions only.
+ \ingroup macrosnbh
+ \relates mln::Neighborhood
+*/
/// Shortcuts to access the window type associated to T.
/// \{
# define mln_window(T) typename T::window
@@ -425,32 +1297,217 @@
// FIXME: Just include trait/all.hh !!!
+/*!
+ \def mln_fwd_pixter(T)
+ \brief Shortcuts to access the fwd_pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_fwd_pixter_(T)
+ \brief Shortcuts to access the fwd_pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
# define mln_fwd_pixter(I) typename mln::trait::fwd_pixter< I >::ret
# define mln_fwd_pixter_(I) mln::trait::fwd_pixter< I >::ret
+/*!
+ \def mln_bkd_pixter(T)
+ \brief Shortcuts to access the bkd_pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_bkd_pixter_(T)
+ \brief Shortcuts to access the bkd_pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
# define mln_bkd_pixter(I) typename mln::trait::bkd_pixter< I >::ret
# define mln_bkd_pixter_(I) mln::trait::bkd_pixter< I >::ret
+/*!
+ \def mln_pixter(T)
+ \brief Shortcuts to access the pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
+/*!
+ \def mln_pixter_(T)
+ \brief Shortcuts to access the pixter type associated to T.
+
+ Iterator on image sites, to be used with concrete images only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerima
+ \relates mln::Image
+*/
# define mln_pixter(I) mln_fwd_pixter(I)
# define mln_pixter_(I) mln_fwd_pixter_(I)
+/*!
+ \def mln_fwd_qixter(T)
+ \brief Shortcuts to access the fwd_qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_fwd_qixter_(T)
+ \brief Shortcuts to access the fwd_qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
# define mln_fwd_qixter(I, W) typename mln::trait::fwd_qixter< I, W >::ret
# define mln_fwd_qixter_(I, W) mln::trait::fwd_qixter< I, W >::ret
+/*!
+ \def mln_bkd_qixter(T)
+ \brief Shortcuts to access the bkd_qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_bkd_qixter_(T)
+ \brief Shortcuts to access the bkd_qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
# define mln_bkd_qixter(I, W) typename mln::trait::bkd_qixter< I, W >::ret
# define mln_bkd_qixter_(I, W) mln::trait::bkd_qixter< I, W >::ret
+
+/*!
+ \def mln_qixter(T)
+ \brief Shortcuts to access the qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+
+ To be used in templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
+/*!
+ \def mln_qixter_(T)
+ \brief Shortcuts to access the qixter type associated to T.
+
+ Iterator on window elements, to be used with concrete images only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositerwin
+ \relates mln::Window mln::Weighted_Window
+*/
# define mln_qixter(I, W) mln_fwd_qixter(I, W)
# define mln_qixter_(I, W) mln_fwd_qixter_(I, W)
+/*!
+ \def mln_fwd_nixter(T)
+ \brief Shortcuts to access the fwd_nixter type associated to T.
+
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_fwd_nixter_(T)
+ \brief Shortcuts to access the fwd_nixter type associated to T.
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
# define mln_fwd_nixter(I, N) typename mln::trait::fwd_nixter< I, N >::ret
# define mln_fwd_nixter_(I, N) mln::trait::fwd_nixter< I, N >::ret
+/*!
+ \def mln_bkd_nixter(T)
+ \brief Shortcuts to access the bkd_nixter type associated to T.
+
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_bkd_nixter_(T)
+ \brief Shortcuts to access the bkd_nixter type associated to T.
+
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
# define mln_bkd_nixter(I, N) typename mln::trait::bkd_nixter< I, N >::ret
# define mln_bkd_nixter_(I, N) mln::trait::bkd_nixter< I, N >::ret
+/*!
+ \def mln_nixter(T)
+ \brief Shortcuts to access the nixter type associated to T.
+
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
+/*!
+ \def mln_nixter_(T)
+ \brief Shortcuts to access the nixter type associated to T.
+
+ Iterator on neighborhood elements, to be used with concrete images
+ only.
+
+ To be used in non-templated functions only.
+ \ingroup macrositernbh
+ \relates mln::Neighborhood
+*/
# define mln_nixter(I, N) mln_fwd_nixter(I, N)
# define mln_nixter_(I, N) mln_fwd_nixter_(I, N)
--
1.7.2.5
1
0

olena: olena-2.0-584-gcbb253d Improve documentation in fun::p2b, fun::p2p, fun::p2v and fun::x2v.
by Guillaume Lazzara 29 Apr '13
by Guillaume Lazzara 29 Apr '13
29 Apr '13
* mln/fun/p2b/antilogy.hh,
* mln/fun/p2b/big_chess.hh,
* mln/fun/p2b/chess.hh,
* mln/fun/p2b/has.hh,
* mln/fun/p2b/tautology.hh,
* mln/fun/p2p/fold.hh,
* mln/fun/p2p/mirror.hh,
* mln/fun/p2p/translation.hh,
* mln/fun/p2v/elifs.hh,
* mln/fun/p2v/iota.hh,
* mln/fun/p2v/ternary.hh,
* mln/fun/x2v/bilinear.hh,
* mln/fun/x2v/l1_norm.hh,
* mln/fun/x2v/nneighbor.hh,
* mln/fun/x2v/trilinear.hh: Here.
---
milena/ChangeLog | 21 +++++++++++
milena/mln/fun/p2b/antilogy.hh | 16 ++++++---
milena/mln/fun/p2b/big_chess.hh | 30 +++++++++++++---
milena/mln/fun/p2b/chess.hh | 22 ++++++++++--
milena/mln/fun/p2b/has.hh | 12 +++++--
milena/mln/fun/p2b/tautology.hh | 15 +++++---
milena/mln/fun/p2p/fold.hh | 16 ++++----
milena/mln/fun/p2p/mirror.hh | 29 +++++++++++++++-
milena/mln/fun/p2p/translation.hh | 13 ++++++-
milena/mln/fun/p2v/elifs.hh | 16 ++++++---
milena/mln/fun/p2v/iota.hh | 23 ++++++++++++-
milena/mln/fun/p2v/ternary.hh | 23 ++++++++----
milena/mln/fun/x2v/bilinear.hh | 12 ++++--
milena/mln/fun/x2v/l1_norm.hh | 8 ++++-
milena/mln/fun/x2v/nneighbor.hh | 67 +++++++++++++++++++++----------------
milena/mln/fun/x2v/trilinear.hh | 11 ++++--
16 files changed, 249 insertions(+), 85 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 375d2e4..f55e2e2 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,26 @@
2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Improve documentation in fun::p2b, fun::p2p, fun::p2v and
+ fun::x2v.
+
+ * mln/fun/p2b/antilogy.hh,
+ * mln/fun/p2b/big_chess.hh,
+ * mln/fun/p2b/chess.hh,
+ * mln/fun/p2b/has.hh,
+ * mln/fun/p2b/tautology.hh,
+ * mln/fun/p2p/fold.hh,
+ * mln/fun/p2p/mirror.hh,
+ * mln/fun/p2p/translation.hh,
+ * mln/fun/p2v/elifs.hh,
+ * mln/fun/p2v/iota.hh,
+ * mln/fun/p2v/ternary.hh,
+ * mln/fun/x2v/bilinear.hh,
+ * mln/fun/x2v/l1_norm.hh,
+ * mln/fun/x2v/nneighbor.hh,
+ * mln/fun/x2v/trilinear.hh: Here.
+
+2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+
* tests/fun/Makefile.am: Remove duplicate subdir entry for v2v.
2013-04-29 Guillaume Lazzara <z(a)lrde.epita.fr>
diff --git a/milena/mln/fun/p2b/antilogy.hh b/milena/mln/fun/p2b/antilogy.hh
index 8eaaf41..ac560aa 100644
--- a/milena/mln/fun/p2b/antilogy.hh
+++ b/milena/mln/fun/p2b/antilogy.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -43,10 +44,15 @@ namespace mln
{
- /// \brief A p2b function always returning \c false.
- ///
- /// A simpler name would be `false', but this is not a valid C++
- /// identifier, as \c false is a keyword of the language.
+ /*!
+ \brief A function always returning \c false.
+
+ A simpler name would be `false', but this is not a valid C++
+ identifier, as \c false is a keyword of the language.
+
+ \sa data::transform
+ \ingroup funv2v
+ */
struct antilogy : public Function_v2b< antilogy >
{
typedef bool result;
diff --git a/milena/mln/fun/p2b/big_chess.hh b/milena/mln/fun/p2b/big_chess.hh
index 54ff484..06c5c62 100644
--- a/milena/mln/fun/p2b/big_chess.hh
+++ b/milena/mln/fun/p2b/big_chess.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -26,10 +27,10 @@
#ifndef MLN_FUN_P2B_BIG_CHESS_HH
# define MLN_FUN_P2B_BIG_CHESS_HH
-/*! \file
- *
- * \brief FIXME.
- */
+/// \file
+///
+/// \brief Generates a boolean image looking like chess-boards
+/// (alternate True/False).
# include <mln/core/concept/function.hh>
# include <mln/core/alias/point2d.hh>
@@ -44,7 +45,24 @@ namespace mln
namespace p2b
{
- // FIXME: Doc!
+ /* \brief Generates a boolean image based on a chess-board
+ canvas (alternate True/False).
+
+ This function allows to specify how large are the square in
+ the chess-board canvas.
+
+ \verbatim
+ | | - - | |
+ | | - - | |
+ - - | | - -
+ - - | | - -
+ | | - - | |
+ | | - - | |
+ \endverbatim
+
+ \sa data::transform
+ \ingroup funv2v
+ */
template <typename B>
struct big_chess : public Function_v2b< big_chess<B> >
{
diff --git a/milena/mln/fun/p2b/chess.hh b/milena/mln/fun/p2b/chess.hh
index 53aae9c..4a10fcc 100644
--- a/milena/mln/fun/p2b/chess.hh
+++ b/milena/mln/fun/p2b/chess.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -28,7 +29,9 @@
/// \file
///
-/// FIXME.
+/// \brief Generates a boolean image based on a chess-board canvas
+/// (alternate True/False).
+
# include <mln/core/concept/function.hh>
# include <mln/core/alias/point2d.hh>
@@ -43,8 +46,21 @@ namespace mln
namespace p2b
{
- // FIXME: Doc!
+ /* \brief Generates a boolean image based on a chess-board
+ canvas (alternate True/False).
+
+ This function allows to specify how large are the square in
+ the chess-board canvas.
+
+ \verbatim
+ | - | - | -
+ - | - | - |
+ | - | - | -
+ \endverbatim
+ \sa data::transform
+ \ingroup funv2v
+ */
struct chess : public Function_v2b< chess >
{
typedef bool result;
diff --git a/milena/mln/fun/p2b/has.hh b/milena/mln/fun/p2b/has.hh
index 0ab4ac8..b52aef4 100644
--- a/milena/mln/fun/p2b/has.hh
+++ b/milena/mln/fun/p2b/has.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -28,7 +29,7 @@
/// \file
///
-/// Function "psite-> bool" that maps the call "ima.has(p)".
+/// \brief Function "psite-> bool" that maps the call "ima.has(p)".
# include <mln/core/concept/image.hh>
@@ -46,8 +47,13 @@ namespace mln
namespace p2b
{
- // FIXME: Doc!
+ /* \brief Function "psite-> bool" that maps the call
+ "ima.has(p)".
+
+ \sa data::transform
+ \ingroup funv2v
+ */
template <typename I>
struct has
diff --git a/milena/mln/fun/p2b/tautology.hh b/milena/mln/fun/p2b/tautology.hh
index 7a1f8b9..2f1e089 100644
--- a/milena/mln/fun/p2b/tautology.hh
+++ b/milena/mln/fun/p2b/tautology.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -43,10 +44,14 @@ namespace mln
{
- /// \brief A p2b function always returning \c true.
- ///
- /// A simpler name would be `true', but this is not a valid C++
- /// identifier, as \c true is a keyword of the language.
+ /*! \brief A function always returning \c true.
+
+ A simpler name would be `true', but this is not a valid C++
+ identifier, as \c true is a keyword of the language.
+
+ \sa data::transform
+ \ingroup funv2v
+ */
struct tautology : public Function_v2b< tautology >
{
typedef bool result;
diff --git a/milena/mln/fun/p2p/fold.hh b/milena/mln/fun/p2p/fold.hh
index 1cd445a..5f0e4f4 100644
--- a/milena/mln/fun/p2p/fold.hh
+++ b/milena/mln/fun/p2p/fold.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -28,7 +29,7 @@
/// \file
///
-/// FIXME: Doc!
+/// \brief Fold a domain into one direction.
# include <mln/core/concept/function.hh>
# include <mln/core/site_set/box.hh>
@@ -43,13 +44,12 @@ namespace mln
namespace p2p
{
- // Forward declaration.
- namespace internal {
- template <typename F, typename P>
- P do_fold(const P& p, const box<P>& b);
- }
-
+ /*!
+ \brief Fold a domain into one direction.
+ \sa data::transform
+ \ingroup funv2v
+ */
template < typename P,
int dir_0 = -1,
int dir_1 = -1,
diff --git a/milena/mln/fun/p2p/mirror.hh b/milena/mln/fun/p2p/mirror.hh
index 8b231ff..7f307dc 100644
--- a/milena/mln/fun/p2p/mirror.hh
+++ b/milena/mln/fun/p2p/mirror.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -28,7 +29,8 @@
/// \file
///
-/// FIXME: doc
+/// \brief For sites outside a given domain it returns the
+/// corresponding mirror site in the domain,
# include <mln/core/concept/function.hh>
@@ -41,6 +43,29 @@ namespace mln
namespace p2p
{
+ /*! \brief For sites outside a given domain it returns the
+ * corresponding mirror site in the domain,
+
+ Example:
+
+ \verbatim
+ (0,0)
+ x -------- x
+ | |
+ | |
+ x -------- x
+ (3,3)
+ \endverbatim
+
+ \code
+ fun::p2p::mirror<box2d> f_mirror(box2d(4,4));
+ point2d p = f_mirror(point2d(0, 6));
+ // p == (0, 1);
+ \endcode
+
+ \sa data::transform
+ \ingroup funv2v
+ */
template <typename B>
struct mirror : public Function_v2v< mirror<B> >
{
diff --git a/milena/mln/fun/p2p/translation.hh b/milena/mln/fun/p2p/translation.hh
index e4609eb..c122cfd 100644
--- a/milena/mln/fun/p2p/translation.hh
+++ b/milena/mln/fun/p2p/translation.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -28,7 +29,8 @@
/// \file
///
-/// FIXME: doc
+/// \brief Computes the translation of a given point w.r.t a
+/// translation vector.
# include <mln/core/concept/function.hh>
# include <mln/core/concept/gdpoint.hh>
@@ -43,6 +45,13 @@ namespace mln
namespace p2p
{
+ /*!
+ \brief Computes the translation of a given point w.r.t a
+ translation vector.
+
+ \sa data::transform
+ \ingroup funv2v
+ */
template <typename P>
struct translation_t : public Function_v2v< translation_t<P> >
{
diff --git a/milena/mln/fun/p2v/elifs.hh b/milena/mln/fun/p2v/elifs.hh
index aca8817..2f6b553 100644
--- a/milena/mln/fun/p2v/elifs.hh
+++ b/milena/mln/fun/p2v/elifs.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -26,10 +27,9 @@
#ifndef MLN_FUN_P2V_ELIFS_HH
# define MLN_FUN_P2V_ELIFS_HH
-/*! \file
- *
- * \brief FIXME.
- */
+/// \file
+///
+/// \brief Construct a if-then-else canvas from functions.
# include <mln/fun/p2v/ternary.hh>
@@ -43,6 +43,12 @@ namespace mln
namespace p2v
{
+ /*!
+ \brief Construct a if-then-else canvas from functions.
+
+ \sa data::transform
+ \ingroup funv2v
+ */
template <typename T1, typename N1,
typename T2, typename N2,
typename O>
diff --git a/milena/mln/fun/p2v/iota.hh b/milena/mln/fun/p2v/iota.hh
index 2e0ab30..dbfe311 100644
--- a/milena/mln/fun/p2v/iota.hh
+++ b/milena/mln/fun/p2v/iota.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,6 +43,26 @@ namespace mln
namespace p2v
{
+ /*!
+ \brief Iota function.
+
+ Example:
+
+ \code
+ image2d<int> ima(3,3);
+ data::transform(ima, fun::p2v::iota());
+ \endcode
+
+ \c ima values:
+ \verbatim
+ 1 2 3
+ 4 5 6
+ 7 8 9
+ \endverbatim
+
+ \sa data::transform
+ \ingroup funv2v
+ */
struct iota : public Function_v2v< iota >
{
typedef unsigned result;
diff --git a/milena/mln/fun/p2v/ternary.hh b/milena/mln/fun/p2v/ternary.hh
index f5f4aed..9cd610b 100644
--- a/milena/mln/fun/p2v/ternary.hh
+++ b/milena/mln/fun/p2v/ternary.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -26,10 +27,10 @@
#ifndef MLN_FUN_P2V_TERNARY_HH
# define MLN_FUN_P2V_TERNARY_HH
-/*! \file
- *
- * \brief FIXME.
- */
+/// \file
+///
+/// \brief Function representing a if-then-else canvas from
+/// functions.
# include <mln/fun/internal/selector.hh>
@@ -43,6 +44,12 @@ namespace mln
namespace p2v
{
+ /*! \brief Function representing a if-then-else canvas from
+ functions.
+
+ \sa data::transform
+ \ingroup funv2v
+ */
template <typename P, typename T, typename F>
struct ternary_
: fun::internal::selector_from_result_<mln_result(T), ternary_<P,T,F> >::ret
@@ -61,14 +68,14 @@ namespace mln
const T f_true_;
const F f_false_;
};
-
-
+
+
template <typename P, typename T, typename F>
ternary_<P, T, F>
ternary(const Function_v2b<P>& f_pred,
const Function_v2v<T>& f_true,
const Function_v2v<F>& f_false);
-
+
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/fun/x2v/bilinear.hh b/milena/mln/fun/x2v/bilinear.hh
index 313a369..d072d45 100644
--- a/milena/mln/fun/x2v/bilinear.hh
+++ b/milena/mln/fun/x2v/bilinear.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -46,8 +46,12 @@ namespace mln
namespace x2v
{
- /// Represent a bilinear interolation of values from an underlying image
- ///
+ /*! \brief Represent a bilinear interolation of values from an
+ underlying image
+
+ \sa data::transform
+ \ingroup funv2v
+ */
template < typename I >
struct bilinear
: public fun::internal::selector_<const algebra::vec<3,float>,
diff --git a/milena/mln/fun/x2v/l1_norm.hh b/milena/mln/fun/x2v/l1_norm.hh
index 3054c56..72f4475 100644
--- a/milena/mln/fun/x2v/l1_norm.hh
+++ b/milena/mln/fun/x2v/l1_norm.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,6 +45,11 @@ namespace mln
namespace x2v
{
+ /*! \brief Define the L1-norm of an algebraic vector.
+
+ \sa data::transform
+ \ingroup funv2v
+ */
template <typename V>
struct l1_norm : public Function_v2v< l1_norm<V> >
{
diff --git a/milena/mln/fun/x2v/nneighbor.hh b/milena/mln/fun/x2v/nneighbor.hh
index 158b84f..95da0fc 100644
--- a/milena/mln/fun/x2v/nneighbor.hh
+++ b/milena/mln/fun/x2v/nneighbor.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -33,7 +34,8 @@
/*! \file
*
- * \brief Define a nneighbor interpolation of values from an underlying image
+ * \brief Define a nneighbor interpolation of values from an
+ * underlying image
*/
namespace mln
@@ -42,47 +44,54 @@ namespace mln
namespace fun
{
- namespace x2x
+ namespace x2v
{
- template < typename I >
- struct nneighbor
- : public fun::internal::selector_<const algebra::vec<3,float>,
- // 3,float is a dummy parameter (real is n,T)
- mln_value(I), nneighbor<I> >::ret
- {
- typedef mln_value(I) result;
+ /*!
+ \brief Define a nneighbor interpolation of values from an
+ underlying image
- nneighbor(const I& ima);
+ \sa data::transform
+ \ingroup funv2v
+ */
+ template < typename I >
+ struct nneighbor
+ : public fun::internal::selector_<const algebra::vec<3,float>,
+ // 3,float is a dummy parameter (real is n,T)
+ mln_value(I), nneighbor<I> >::ret
+ {
+ typedef mln_value(I) result;
- template < unsigned n, typename T >
- mln_value(I)
- operator()(const algebra::vec<n,T>& x) const;
+ nneighbor(const I& ima);
- const I& ima;
- };
+ template < unsigned n, typename T >
+ mln_value(I)
+ operator()(const algebra::vec<n,T>& x) const;
+
+ const I& ima;
+ };
# ifndef MLN_INCLUDE_ONLY
- template < typename I >
- nneighbor<I>::nneighbor(const I& ima) : ima(ima)
- {
- }
+ template < typename I >
+ nneighbor<I>::nneighbor(const I& ima) : ima(ima)
+ {
+ }
- template < typename I >
- template < unsigned n, typename T >
- mln_value(I)
- nneighbor<I>::operator()(const algebra::vec<n,T>& x) const
- {
- mln_psite(I) p = convert::to<mln_psite(I)>(x);
- return ima(p);
- }
+ template < typename I >
+ template < unsigned n, typename T >
+ mln_value(I)
+ nneighbor<I>::operator()(const algebra::vec<n,T>& x) const
+ {
+ mln_psite(I) p = convert::to<mln_psite(I)>(x);
+ return ima(p);
+ }
# endif // ! MLN_INCLUDE_ONLY
- } // end of namespace mln::fun::x2x
+ } // end of namespace mln::fun::x2v
} // end of namespace mln::fun
diff --git a/milena/mln/fun/x2v/trilinear.hh b/milena/mln/fun/x2v/trilinear.hh
index bb08274..6ffb98a 100644
--- a/milena/mln/fun/x2v/trilinear.hh
+++ b/milena/mln/fun/x2v/trilinear.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2012, 2013 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -48,8 +48,13 @@ namespace mln
namespace x2v
{
- /// Represent a trilinear interolation of values from an underlying image
- ///
+ /*!
+ \brief Represent a trilinear interolation of values from an
+ underlying image
+
+ \sa data::transform
+ \ingroup funv2v
+ */
template < typename I >
struct trilinear
: public fun::internal::selector_<const algebra::vec<3,float>,
--
1.7.2.5
1
0