Damien Thivolle wrote:
Je sais que y'a plein de trucs crades dans ce
checkin, alors si vous avez des
suggestions, n'hesitez pas a m'en faire part, j'en tiendrai compte lorsque
je retoucherai tout ca (apres mon seminaire).
Merci de répondre OK à cette news après l'avoir fait.
Je trouve ça cool ce genre de message, ça fait penser à:
"Attention ce patch risque de blesser votre sensibilité."
[Il y a pas mal de choses qui ne vont pas, mais c'est normale
car tu as fait beaucoup de choses !]
template <class T>
struct fact : public std::unary_function<T, T>
Souvent on ajoute un typedef pour le type de retour (T).
T operator()(int n, T x)
{
assert(n >= 0);
- const double c = sqrt(pow(2.0, n) * sqrt(M_PI) * T(fact<int>()(n)));
+ const double c = sqrt(pow(2.0, n) * sqrt(M_PI) * fact<T>()(n));
J'ai du mal a comprendre pourquoi il y a 'double'.
func(k, l, double(it.row() - row),
double(it.col() - col), b);
De même.
+ // std::cout << k << " -
" << l << " = " << s << std::endl;
A supprimer.
+ if (vec[k * n + l] * vec[k * n + l] > 40000)
Non. Ca ne va pas. Si c'est un seuil il doit être passé en arg et
expliqué.
+ //std::cout << k << " - "
<< l << std::endl;
A supprimer.
+ template <class SrcType, class Ftor, class
Exact>
Il manque la doc et un exemple.
+ struct func_morpher:
+ public abstract::generic_morpher<SrcType,
+ typename oln::image_id<func_morpher<SrcType, Ftor, Exact>
>::exact_type>
+ {
+
+ Ftor f;
+
+ /// The exact type of \a this. This class can be derived.
+ typedef typename oln::image_id<func_morpher<SrcType, Ftor, Exact>
>::exact_type exact_type;
+
+ /// The upper class.
+ typedef abstract::generic_morpher<SrcType,
+ exact_type> super_type;
+
+ /// The value point of the resulting image.
+ typedef typename image_id<exact_type>::value_type value_type;
+ typedef typename image_id<exact_type>::point_type point_type;
+ typedef typename image_id<exact_type>::impl_type impl_type;
+
+ /// Construct the morpher with an image.
+ func_morpher(const SrcType &ima, const Ftor f_)
const Ftor & f_
Je ne comprends pas pourquoi tu as une image. Une fonction
n'a pas besoin d'image. Si la fonction s'appuie sur une image,
alors l'image doit être dans le Ftor et non dans le morpher.
En gros c'est un cas particulier.
+ return f(ima_, p);
Cf ci-dessus. Le Ftor doit prendre un point, et c'est tout.
+ return "subq_morpher<" +
SrcType::name() + ">";
Changer subq_morpher.
Index: olena/oln/core/fpoint2d.hh
--- olena/oln/core/fpoint2d.hh Tue, 15 Jun 2004 19:49:30 +0200 thivol_d ()
+++ olena/oln/core/fpoint2d.hh Tue, 15 Jun 2004 14:23:37 +0200 thivol_d
(oln/r/15_fpoint2d.h 644)
@@ -0,0 +1,321 @@
+// Copyright (C) 2001, 2002, 2003, 2004 EPITA Research and Development Laboratory
Non. Pas de dev sur ces fichier en 2001-2003.
+#ifndef OLENA_CORE_FPOINT2D_HH
A changer entièrement après avoir réfléchis à la nouvelle
hiérarchie.
Il manque de la doc.
+ struct fpoint2d_access
+ return (static_cast<const Exact *>(this))->access_impl(ima, p);
Ouille. Il y a des trucs pour faire ça.
+ template <class T, class F>
+ struct nearest : public fpoint2d_access<T, nearest<T, F> >
+ return ntg::rgb_8(255, 255, 255);
Ouille.
+ double x = floorf(p.nth(0));
Ouille (double, floorf).
+ return ntg::rgb_8(res[0], res[1], res[2]);
Ouille.
+ return ntg::rgb_8(255, 255, 255);
Ouille.
+// Copyright (C) 2001, 2002, 2003, 2004 EPITA
Research and Development Laboratory
Idem.
+# define OLENA_CORE_FDPOINT2D_HH
Idem que pour OLENA_CORE_FPOINT2D_HH
+ namespace geom {
Le mettre dans utils. namespace utils.
Index: olena/oln/geom/rotate.hh
Idem. Le mettre dans utils.
+ namespace geom {
> + operator()(const
image2d<T>& ima,
> + const point2d p) const
Pourquoi rotate dépend d'une image ? Une rotation
à un centre et est appliquée à des points, suivant des
angles. Une rotation n'est pas une rotation 2D.
Il manque de la doc.
+#endif // !OLENA_CORE_FPOINT2D_HH
??
PS: verifier tous les headers des nouveaux fichiers, j'en ai sauté.
--
Niels