* 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