| [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 | 
 | 
|---|