Index: /trunk/SophyaLib/Manual/afaire2003.txt
===================================================================
--- /trunk/SophyaLib/Manual/afaire2003.txt	(revision 2452)
+++ /trunk/SophyaLib/Manual/afaire2003.txt	(revision 2452)
@@ -0,0 +1,139 @@
+:::::::::::: Plan de modifs pour SOPHYA V 2.0 PI/piapp V 4.0 ::::::::::::
+
+                    ----------------------------
+                    |  Gestion du code (Mgr/ ) |
+                    ----------------------------
+
+ o Chemins/variables d'environnement 
+   - Remplacer DPCDEVREP DPCBASEREP par SOPHYADEVREP et SOPHYABASEREP
+   - Remplacer EROSCXX par SOPHYACXX (?)
+ o Simplifier/rationaliser les makefiles 
+   - Mettre les flags de compils pour chaque compilo-systeme dans un fichier au lieu 
+     d'avoir tout Makefile.h 
+     Exemple fichier Mgr/linux_g++.flags 
+      CPPFLAGS = ...
+      CXXFLAGS = ... 
+      LIBS = ...
+
+o Mettre un script pour chercher les lib externes (c-fitsio, FFTW, ...) et creer 
+  eventuellement l'arborescence ExtLibs
+
+o Inclure la definition des flags influant sur le code (comme -DOSF1/Linux/Darwin/IRIX64
+ SO_BOUNDCHECKING a la fin du fichier machdefs.h que l'on fabriquera a partir de du machdef_mkmf.h )
+  PB-> ce fichier deviendra alors dependant du systeme et de l'installation !
+  Faut-il deplacer alors Include/ sous uname-$EROSCXX (Linux-g++) 
+  ou carrement considerer que la separation pour differents systemes doit se faire au 
+  niveau de SOPHYADEV/BASE/REP ?
+
+o Abandonner (?) les regles de compilation par defaut 
+  Inclure dans les Makefile la ligne de commande :
+  $(OBJ)toto.o : toto.cc toto.h titi.h ...
+        $(COMPILECXX) -$(CPPFLAGS) $(CXXFLAGS) -c -o $(OBJ)toto.o toto.cc
+
+o Garder les Makefile simple (eviter trop de tests et syntaxe complique)
+
+
+                    -----------------------------------
+                    |   Code/Librairie SOPHYA (V2.0)  |
+                    -----------------------------------
+
+o Fichiers PPersist (BaseTools) :
+  - Ajouter la possibilite d'ecrire des complex(r_4> complex<r_8>
+    (actuellement c'est ecrit sous forme de 2*r_4 ou 2*r_8)
+  - Ajouter des tag de positionnement qui pourrait servir au cas 
+    ou on utiliserait le fichier PPF comme fichier de swap
+    Ces tags ne peuvent pas etre les memes que les name-tag 
+    existant actuellement. 
+    Une utilisation annexe de ces tags peut etre alors un moyen 
+    de verifier que le fichier n'est pas corrompu
+    Ce tag se presente alors sous forme de 
+    <tag (1 byte)><FilePosition (8 byte, long int)>
+    On peut alors parcourir le fichier et verifier la coherence de
+    ces tags.
+  - Il faut aussi ajouter au niveau de POutPersist et PInPersist
+    les services pour ecrire et lire une collection de tag de 
+    positionnement, afin qu'un objet puisse utiliser une liste de
+    tag pour se positionner
+
+o BaseTools/ Voir autres remarques ds fichier Manual/sophya_afaire.txt
+  concernant en particulier les NDataBlock<T> DataBlock<T> ...
+
+o Les tableaux : TArray/ 
+  - Ajouter une classe de base abstraite GenericMatrix<T>
+    avec methode d'acces aux elements, nb de lignes, nb de colonnes,
+    ...
+  - Introduire les TinyMatrix  (TinyMatrix<T, int L, int C>)
+    avec passage de/vers TMatrix<T> (et TinyVector<T, int N>) ?
+
+  - Introduire des matrices creuses simples SpareMatrix<T>
+
+  - Introduire les DiagonalMatrix<T> 
+
+  Remarque: Les TMatrix TinyMatrix et  SparseMatrix heritent de GenericMatrix
+
+o HiStats
+  - Faire une classe SuperNTuple (!), facile a utiliser, sachant swaper sur les 
+    PPF, avec des champs de differents type
+ 
+o IFFTW/ 
+  - Passage a FFTW 3.x  ?
+
+o Voir autres remarques pour l'ensemble des modules ds Manual/sophya_afaire.txt
+
+
+                    ---------------------------------
+                    | Code/Librairie PI  (->V 4.0)  |
+                    ---------------------------------
+
+o Menu contextuel pour les Drawers
+  - Ajouter a PIImage, PIScrDrawWdg(2D), PIDraw3DWdg(3D) un menu obtenu 
+    sur <Shift><Bouton-1> par exemple, avec la liste de tous les Drawers
+    permettant d'afficher la fenetre des options graphiques, ou le fenetre 
+    des options ou la fenetre des options texte, activer deplacement/resize
+    des drawers, suppression (delete) ou detach des drawers, et en fonction
+    du widgets, la fenetre des axes ou de controle d'image
+
+o Mettre l'option auto-scale (rapport entre axes X,Y,Z) pour les Drawers3D 
+    verifer/debugger la definition de la boite 3D au niveau des Drawers3D
+
+o Traceur d'histos, NTuples, ...
+  Remplacer le trace des lignes par morceau fait par appel multiples
+  a DrawLine a un seul appel a DrawPolygon (si les lignes sont connectes
+  bien sur) --> Ca ameliore sensiblement l'aspect pour le trace en pointille
+
+o Ajouter un traceur de Bar-chart 2D OU ApplePie (facile !)
+  On donne une serie de nombres, serie de couleur, + serie de strings
+  et on trace alors une sorte d'histo, avec des barres (rectangles) espaces
+   Ou bien on trace un cercle divise en zones 
+
+o Ajouter un traceur de Lego-Plot
+
+o PIImageWindow (Une fenetre avec une PIImage, un Zoom et une vue globale)
+  Assemblage
+
+o (?) Une fonction pour faire facilement une fenetre d'alerte ou d'info (?)
+
+                    ---------------------------------
+                    |            piapp              |
+                    ---------------------------------
+
+o Verifier l'interpreteur et introduire le type de variable vecteur 
+  qui peut etre detecte par exemple lors de l'initialisation par set 
+  set a 'Bonjour CMV' # -> variable scalaire
+  set va [ 12 14 hello ... ] # variable de type vecteur $va[]
+
+o Voir comment on pourrait "joindre" deux objets ayant l'interface NTupleInterface
+  pour pouvoir plotter des objets, l'un vs l'autre
+
+o Separer la classe PIACmd en une classe de base (CShellLikeInterpreter) 
+  (a mettre ds SysTools) et la classe PIACmd  a laisser ds PIext 
+
+o (???) Introduire quelque chose du style 
+  AddDialogue("Cmd", "dialogue-description) 
+  qui pourrait fabriquer automatiquement une fenetre avec des champs a remplir 
+  pour les commandes usuelles (???)
+
+o Voir les autres commentaires ds Manual/spiapp_afaire.txt
+
+
+
