:::::::::::: 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 (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 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 DataBlock ... o Les tableaux : TArray/ - Ajouter une classe de base abstraite GenericMatrix avec methode d'acces aux elements, nb de lignes, nb de colonnes, ... - Introduire les TinyMatrix (TinyMatrix) avec passage de/vers TMatrix (et TinyVector) ? - Introduire des matrices creuses simples SpareMatrix - Introduire les DiagonalMatrix 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 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