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