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
* 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
* 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
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
* 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
* 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