3 - mettre tau comme étant un paramètre des diffractomètres. 2 valeurs possibles.
4 - Gerer les unités des paramètres
5 - ajouter les méthodes permettant l'aide à la décision pour l'indexation.
6 - modifier le comportement de computeHKL lorsque le crystal en question est soit une poudre soit un mono-cristal.
8 - ajouter une class abstraite Persistant et deriver Object de cette classe.
9 - comment modifier MyVector pour qu'il n'accepte que des classes derivées de object.
10 - voir comment gérer l'internationalisation de la librairie sous VC++6 et gcc
11 utiliser sans doute gettext qui existe aussi pour windows.
12 - Utiliser les unordered_map avec gcc-4.0 à la place de MyVector.
13 Créer une class MyUnorderedMap à la place de MyVector.
14 - comment gerer le changement de longueur d'onde ?
15 - penser aux reflection ainsi qu'aux geometry servant à initialiser les pseudoAxes.
18 - utiliser la librairie gsl pour faire les affinements.
19 - Rajouter le fit sur les offsets des angles.
20 - Ajouter d'autres méthode de résolution plus robustes pour notre problème que le simplex.
23 - dans les fonctions de conversion il faut pouvoir faire intervenir la précision des angles.
24 - Ajouter dans la géometrie les Samples.
27 - Transformer Axe en une classe Abstraite et créer Rotation, Translation.
28 - ajouter les coupures en utilisant le min et max.
29 - Ajouter un offset sur les Axes de façon à gérer les changement d'origine.
32 - optimiser le renomage d'un crystal sans faire la copy de celui-ci.
35 - ajouter le calcule du volume de la maille.
36 - Ajouter le calcule de l'angle mesuré ainsi que de l'angle calculé entre
38 - voir comment indiquer que les valeurs des angles alpha beta gamma ne sont
39 pas compatibles dans le constructeur.
40 - Penser à ajouter un paramètre U matrice d'orientation plutot que euler_x, y et z.
45 - Gerer correctement les limites dans les modes suivant la valeurs des
50 - Mode "Horizontal Eulerian 4C zone"
51 - Mode "Vertical Eulerian 4C zone"
54 - Retourner l'ensemble des solutions et non pas une seule.
55 - Sélection de la solution intéressante parmis les précédentes suivant diverses statégies.
58 - ajouter un flag or0 et or1 pour le calcule de UB avec la methode busing et Levy.
59 - voir que faire de la relevance.
63 - rajouter les toStream et fromStream pour les versions MSVC6
64 - ajouter un champ m_value a pseudoAxe et le mettre à jour lors du set_value().
65 De cette façon lors d'un get_value() on peut savoir s'il faut + ou - pi par exemple.
66 - Au lieu de get_min et get_max mettre un get_range et créer une classe Range sur laquelle
67 on peut fair des calculs du genre cos(range) qui retourne un range.
68 Il faudrait donc séparer le Range de la Value pour que le range soit composé de deux Values
69 min et max. De plus il suffirait alors de s'occuper de cette classe Value pour gérer les unitées.
70 Ces calcules sur les ranges existe dans boost.
71 - Vérifier lors d'un set_value que l'on est bien dans le range du pseudoAxe.
72 - Relier le pseudoAxe aux moteurs de la géométrie qu'il modifie.
75 ~ Sérialiser l'ensemble de la librairie.
76 Lors du passage à un compilateur > MSVC6 penser à utiliser boost pour cela.
77 - comment gérer le cas du Nan et +/-Inf.
80 - revoir LatticeTest::randomize()
81 - revoir setFromGeometry
82 - revoir Axe, Reflection, Mode, Object, Diffractometer, FitParameter
83 - faire les tests de convenience
84 - faire les tests de diffractometer::kappa4C
85 - faire les tests de diffractometer::kappa6C
86 - faire un test plus exhaustif des fonctions de conversion E4C <-> K4C.
90 - Toujours plus de documentation.
91 - Expliquer comment rajouter des diffractomètres et des modes à la librairie.
98 ~ Developper une interface graphique à la librairie pour la tester.