* olena/oln/core/abstract/image.hh: Add macros.
Tu n'as pas changer le type de retour de at?
* olena/oln/morpher/generic_morpher.hh:
generic_morpher implementation.
Youpi!
# define oln_concrete_type(ImgType) \
typename mute<ImgType>::ret
+# define oln_exact_type(ImgType) \
+mlc_exact_type(ImgType)::exact_type
Pas beau.
+// Copyright (C) 2001, 2003, 2004 EPITA Research and
Development Laboratory
OK pour 2003 si tu as repris les fichiers de david, mais 2001 ???
+# include <ntg/all.hh>
???? Pas glop
ici.
+ /*! \namespace morpher
+ **
+ ** Contain all the morpher relative declarations and functions.
+ */
Pas top comme définition.
De plus il est préférable d'écrire:
/// [...]
que
/* \namespace toto
**
** [...]
*/
+ /*! \namespace abstract
+ **
+ ** generic_morpher implementation.
+ */
On ne peux pas cliquer dans la doc.
A changer par:
///Implementation of oln::abstract::generic_morpher.
+
+ namespace abstract {
+
+ /*! \class gm_inherit
+ **
+ ** Perform a conditionnal inheritance for the
+ ** class regarding its template parameters.
+ */
Il faut éviter \class ....
Regarde le resultat dans la doc mais je doute que le
"Perform..." soit dans le brief.
Remplace donc ce genre de remarque par:
/*! Traits for conditionnal inheritance used by the \a generic_morpher
**
** It changes the exact type of the image in the input (the exact
** type becomes the concrete morpher).
** \see oln::morpher::generic_morpher
*/
+ /*! \class gm_inherit<oln::image1d<T>,
Exact >
Idem.
+ ** Return \a image1d with an \a exact_type of
\a Exact.
Bien.
+ */
+ template <class T, class Exact>
+ struct gm_inherit<oln::image1d<T>, Exact >
+ {
+ typedef oln::image1d<T, Exact> ret;
+ };
+ /*! \class gm_inherit<oln::image1d<T>,
Exact >
> + **
> + ** Return \a image3d with an \a exact_type of \a Exact.
> + */
> + template <class T, class Exact>
> + struct gm_inherit<oln::image3d<T>, Exact >
> + {
> + typedef oln::image3d<T, Exact> ret;
> + };
Heu... Petites questions idiotes... Le morpher a-t-il pour
vocation de transformer uniquement vers du image1d<T, final>,
image2d<T, final>, image3d<t, final>, ou bien doit-il
fonctionner sur du image1d<T, pas_final> ? Vers du
image1d_derived<T, mlc::final> par exemple?
Je suppose que la réponse est non. Si la réponse est
du type non, mais c'est possible de le faire, j'attends
les tests.
+ /*! \class generic_morpher
Idem.
+ ** An abstract class from whom derive all
other
+ ** concrete morphers.
Ce genre de remarque est un peu inutile, non?
+ Define a default implementation
+ ** for all the dispatched methods of the image hierarchy.
+ */
"image" -> "oln::abstract::image", ou bien
"abstract image".
Ajouter:
** \param Inherit Output type of the morpher.
** \param Deco Input type decorated.
** \param Exact Exact type
Tu peux ajouter un \note qui souligne que Inherit n'est pas
exactement (c'est le cas de le dire!) le type dont on
hérite.
Il me semble que Inherit est un verbe en anglais (hériter).
"Inherit" -> "DestType"?
"Deco" -> "SrcType" ?
+ /*! \brief Construct an instance of generic_morpher
by assigning
+ ** \a Ima to Ima_.
+ */
Pas top.
+ generic_morpher(const Deco &Ima) :
super_type(), Ima_(Ima) {}
+
+ /// Default Constructor.
+ generic_morpher(): Ima(Deco()) {}
Heu, ça marche, ça?
+
+ /// The decorated image.
+ const Deco &Ima_;
Je n'aime pas la majuscule de Ima_.
+ typedef oln_point_type(Deco) point_type;
????
+ typedef oln_dpoint_type(Deco) dpoint_type;
????
+ typedef oln_iter_type(Deco) iter_type;
????
+ typedef oln_fwd_iter_type(Deco) fwd_iter_type;
????
+ typedef oln_bkd_iter_type(Deco) bkd_iter_type;
????
+ typedef oln_value_type(Deco) value_type;
????
+ typedef oln_size_type(Deco) size_type;
????
Pour moi le type de point du morpher est le type de point
en sortie, et non pas le type de point décoré.
+ typedef oln_impl_type(Deco) impl_type;
Est-ce
bien nécessaire?
+ /// Exact type of the decorated image.
+ typedef oln_exact_type(Deco) image_type;
CF question bête plus haut.
oln_exact_type(Deco) peut-il
être différent de Deco?
+ /// Return the value stored at \a p in the decorated
image.
Perso, j'aurais insisté sur le coté "comportement par défaut".
Idem pour tt les fonctions.
+ /// Return a pointer to the value container of the
decorated image.
"the value container" -> pas anglais.
+= post de Giovanni( qui m'a devancé :).
--
Niels