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