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