| [2452] | 1 | :::::::::::: Plan de modifs pour SOPHYA V 2.0 PI/piapp V 4.0 :::::::::::: | 
|---|
|  | 2 |  | 
|---|
|  | 3 | ---------------------------- | 
|---|
|  | 4 | |  Gestion du code (Mgr/ ) | | 
|---|
|  | 5 | ---------------------------- | 
|---|
|  | 6 |  | 
|---|
|  | 7 | o Chemins/variables d'environnement | 
|---|
|  | 8 | - Remplacer DPCDEVREP DPCBASEREP par SOPHYADEVREP et SOPHYABASEREP | 
|---|
|  | 9 | - Remplacer EROSCXX par SOPHYACXX (?) | 
|---|
|  | 10 | o Simplifier/rationaliser les makefiles | 
|---|
|  | 11 | - Mettre les flags de compils pour chaque compilo-systeme dans un fichier au lieu | 
|---|
|  | 12 | d'avoir tout Makefile.h | 
|---|
|  | 13 | Exemple fichier Mgr/linux_g++.flags | 
|---|
|  | 14 | CPPFLAGS = ... | 
|---|
|  | 15 | CXXFLAGS = ... | 
|---|
|  | 16 | LIBS = ... | 
|---|
|  | 17 |  | 
|---|
|  | 18 | o Mettre un script pour chercher les lib externes (c-fitsio, FFTW, ...) et creer | 
|---|
|  | 19 | eventuellement l'arborescence ExtLibs | 
|---|
|  | 20 |  | 
|---|
|  | 21 | o Inclure la definition des flags influant sur le code (comme -DOSF1/Linux/Darwin/IRIX64 | 
|---|
|  | 22 | SO_BOUNDCHECKING a la fin du fichier machdefs.h que l'on fabriquera a partir de du machdef_mkmf.h ) | 
|---|
|  | 23 | PB-> ce fichier deviendra alors dependant du systeme et de l'installation ! | 
|---|
|  | 24 | Faut-il deplacer alors Include/ sous uname-$EROSCXX (Linux-g++) | 
|---|
|  | 25 | ou carrement considerer que la separation pour differents systemes doit se faire au | 
|---|
|  | 26 | niveau de SOPHYADEV/BASE/REP ? | 
|---|
|  | 27 |  | 
|---|
|  | 28 | o Abandonner (?) les regles de compilation par defaut | 
|---|
|  | 29 | Inclure dans les Makefile la ligne de commande : | 
|---|
|  | 30 | $(OBJ)toto.o : toto.cc toto.h titi.h ... | 
|---|
|  | 31 | $(COMPILECXX) -$(CPPFLAGS) $(CXXFLAGS) -c -o $(OBJ)toto.o toto.cc | 
|---|
|  | 32 |  | 
|---|
|  | 33 | o Garder les Makefile simple (eviter trop de tests et syntaxe complique) | 
|---|
|  | 34 |  | 
|---|
|  | 35 |  | 
|---|
|  | 36 | ----------------------------------- | 
|---|
|  | 37 | |   Code/Librairie SOPHYA (V2.0)  | | 
|---|
|  | 38 | ----------------------------------- | 
|---|
|  | 39 |  | 
|---|
|  | 40 | o Fichiers PPersist (BaseTools) : | 
|---|
|  | 41 | - Ajouter la possibilite d'ecrire des complex(r_4> complex<r_8> | 
|---|
|  | 42 | (actuellement c'est ecrit sous forme de 2*r_4 ou 2*r_8) | 
|---|
|  | 43 | - Ajouter des tag de positionnement qui pourrait servir au cas | 
|---|
|  | 44 | ou on utiliserait le fichier PPF comme fichier de swap | 
|---|
|  | 45 | Ces tags ne peuvent pas etre les memes que les name-tag | 
|---|
|  | 46 | existant actuellement. | 
|---|
|  | 47 | Une utilisation annexe de ces tags peut etre alors un moyen | 
|---|
|  | 48 | de verifier que le fichier n'est pas corrompu | 
|---|
|  | 49 | Ce tag se presente alors sous forme de | 
|---|
|  | 50 | <tag (1 byte)><FilePosition (8 byte, long int)> | 
|---|
|  | 51 | On peut alors parcourir le fichier et verifier la coherence de | 
|---|
|  | 52 | ces tags. | 
|---|
|  | 53 | - Il faut aussi ajouter au niveau de POutPersist et PInPersist | 
|---|
|  | 54 | les services pour ecrire et lire une collection de tag de | 
|---|
|  | 55 | positionnement, afin qu'un objet puisse utiliser une liste de | 
|---|
|  | 56 | tag pour se positionner | 
|---|
|  | 57 |  | 
|---|
|  | 58 | o BaseTools/ Voir autres remarques ds fichier Manual/sophya_afaire.txt | 
|---|
|  | 59 | concernant en particulier les NDataBlock<T> DataBlock<T> ... | 
|---|
|  | 60 |  | 
|---|
|  | 61 | o Les tableaux : TArray/ | 
|---|
|  | 62 | - Ajouter une classe de base abstraite GenericMatrix<T> | 
|---|
|  | 63 | avec methode d'acces aux elements, nb de lignes, nb de colonnes, | 
|---|
|  | 64 | ... | 
|---|
|  | 65 | - Introduire les TinyMatrix  (TinyMatrix<T, int L, int C>) | 
|---|
|  | 66 | avec passage de/vers TMatrix<T> (et TinyVector<T, int N>) ? | 
|---|
|  | 67 |  | 
|---|
|  | 68 | - Introduire des matrices creuses simples SpareMatrix<T> | 
|---|
|  | 69 |  | 
|---|
|  | 70 | - Introduire les DiagonalMatrix<T> | 
|---|
|  | 71 |  | 
|---|
|  | 72 | Remarque: Les TMatrix TinyMatrix et  SparseMatrix heritent de GenericMatrix | 
|---|
|  | 73 |  | 
|---|
|  | 74 | o HiStats | 
|---|
|  | 75 | - Faire une classe SuperNTuple (!), facile a utiliser, sachant swaper sur les | 
|---|
|  | 76 | PPF, avec des champs de differents type | 
|---|
|  | 77 |  | 
|---|
|  | 78 | o IFFTW/ | 
|---|
|  | 79 | - Passage a FFTW 3.x  ? | 
|---|
|  | 80 |  | 
|---|
|  | 81 | o Voir autres remarques pour l'ensemble des modules ds Manual/sophya_afaire.txt | 
|---|
|  | 82 |  | 
|---|
|  | 83 |  | 
|---|
|  | 84 | --------------------------------- | 
|---|
|  | 85 | | Code/Librairie PI  (->V 4.0)  | | 
|---|
|  | 86 | --------------------------------- | 
|---|
|  | 87 |  | 
|---|
|  | 88 | o Menu contextuel pour les Drawers | 
|---|
|  | 89 | - Ajouter a PIImage, PIScrDrawWdg(2D), PIDraw3DWdg(3D) un menu obtenu | 
|---|
|  | 90 | sur <Shift><Bouton-1> par exemple, avec la liste de tous les Drawers | 
|---|
|  | 91 | permettant d'afficher la fenetre des options graphiques, ou le fenetre | 
|---|
|  | 92 | des options ou la fenetre des options texte, activer deplacement/resize | 
|---|
|  | 93 | des drawers, suppression (delete) ou detach des drawers, et en fonction | 
|---|
|  | 94 | du widgets, la fenetre des axes ou de controle d'image | 
|---|
|  | 95 |  | 
|---|
|  | 96 | o Mettre l'option auto-scale (rapport entre axes X,Y,Z) pour les Drawers3D | 
|---|
|  | 97 | verifer/debugger la definition de la boite 3D au niveau des Drawers3D | 
|---|
|  | 98 |  | 
|---|
|  | 99 | o Traceur d'histos, NTuples, ... | 
|---|
|  | 100 | Remplacer le trace des lignes par morceau fait par appel multiples | 
|---|
|  | 101 | a DrawLine a un seul appel a DrawPolygon (si les lignes sont connectes | 
|---|
|  | 102 | bien sur) --> Ca ameliore sensiblement l'aspect pour le trace en pointille | 
|---|
|  | 103 |  | 
|---|
|  | 104 | o Ajouter un traceur de Bar-chart 2D OU ApplePie (facile !) | 
|---|
|  | 105 | On donne une serie de nombres, serie de couleur, + serie de strings | 
|---|
|  | 106 | et on trace alors une sorte d'histo, avec des barres (rectangles) espaces | 
|---|
|  | 107 | Ou bien on trace un cercle divise en zones | 
|---|
|  | 108 |  | 
|---|
|  | 109 | o Ajouter un traceur de Lego-Plot | 
|---|
|  | 110 |  | 
|---|
|  | 111 | o PIImageWindow (Une fenetre avec une PIImage, un Zoom et une vue globale) | 
|---|
|  | 112 | Assemblage | 
|---|
|  | 113 |  | 
|---|
|  | 114 | o (?) Une fonction pour faire facilement une fenetre d'alerte ou d'info (?) | 
|---|
|  | 115 |  | 
|---|
|  | 116 | --------------------------------- | 
|---|
|  | 117 | |            piapp              | | 
|---|
|  | 118 | --------------------------------- | 
|---|
|  | 119 |  | 
|---|
|  | 120 | o Verifier l'interpreteur et introduire le type de variable vecteur | 
|---|
|  | 121 | qui peut etre detecte par exemple lors de l'initialisation par set | 
|---|
|  | 122 | set a 'Bonjour CMV' # -> variable scalaire | 
|---|
|  | 123 | set va [ 12 14 hello ... ] # variable de type vecteur $va[] | 
|---|
|  | 124 |  | 
|---|
|  | 125 | o Voir comment on pourrait "joindre" deux objets ayant l'interface NTupleInterface | 
|---|
|  | 126 | pour pouvoir plotter des objets, l'un vs l'autre | 
|---|
|  | 127 |  | 
|---|
|  | 128 | o Separer la classe PIACmd en une classe de base (CShellLikeInterpreter) | 
|---|
|  | 129 | (a mettre ds SysTools) et la classe PIACmd  a laisser ds PIext | 
|---|
|  | 130 |  | 
|---|
|  | 131 | o (???) Introduire quelque chose du style | 
|---|
|  | 132 | AddDialogue("Cmd", "dialogue-description) | 
|---|
|  | 133 | qui pourrait fabriquer automatiquement une fenetre avec des champs a remplir | 
|---|
|  | 134 | pour les commandes usuelles (???) | 
|---|
|  | 135 |  | 
|---|
|  | 136 | o Voir les autres commentaires ds Manual/spiapp_afaire.txt | 
|---|
|  | 137 |  | 
|---|
|  | 138 |  | 
|---|
|  | 139 |  | 
|---|