################################################################################
################################################################################
#####                             TO DO                                    #####
################################################################################
################################################################################
[AA] Alex Agudo
[PB] Peter Buschkamp
[RG] Reinhard Genzel
[SG] Stefan Gillesen
[TO] Thomas Ott

Priorities:     .   Done
                H   High
                M   Medium
                L   Low

################################################################################
#####                             DPUSER                                   #####
################################################################################
Pr. Where                   What
################################################################################

--------------------------------------------------------------------------------				
-----                             ? OUTDATED ?                             -----
--------------------------------------------------------------------------------
?							- Fits-Klasse: alle Funktionen sollen mit Index 0 beginnen [??]

--------------------------------------------------------------------------------				
-----                             HIGH                                     -----
--------------------------------------------------------------------------------
.   procedures: norm():     - BUG: option 2+3 macht gleiche Aktion! (1=default) [??]
.   print                   - BUG: h=fits(2,2), h+=2, h[1,1]=-1, hh=sqrt(h)
                                - print hh,/values zeigt die richtigen Wert an
                                - print hh nicht!!
.   header-function         - BUG: header-Aufruf in console liefert nicht mehr den ganzen header zurück [AA]
                                - in QF File->Display Header funktioniert
.   Konstanten              - PROBLEM?: Konstanten wie c oder pi können überschrieben werden
                              z.B. c=fits(5), kein Absturz...

--------------------------------------------------------------------------------				
-----                             MEDIUM                                   -----
--------------------------------------------------------------------------------
M   Doku                    - Dokumentation für newBuffer fehlt [AA]
M   imexa                   - radialplot doesn't work! [TO]
M   dpuser.pgplot.cpp       - missing procedures : pgconx, pgfunt, pgfunx, pgfuny, pgrnd [TO]

--------------------------------------------------------------------------------				
-----                             LOW                                      -----
--------------------------------------------------------------------------------
L   compile-procedure       - compile "", /reset into free integrieren [TO]
                            - dynamisches Nachschlagen via dpuser2c/C++-Compiler implementieren [TO]
L   compiling dpuser        - GNU binutils dlltool: can it merge dpsuer.dll + mingw.dll? (Probably not, when compiled with different compilers...) [TO]
                            - dpuser-Makefile: target for lex.dpuser2c.o (or y.dpuser2c.o) depends on parser/y.tab.h! [AA]
                            - check g++ -M option for creating dependencylist for making dpuser: [TO]
                              (siehe /afs/mpe.mpg.de/home/agudo/programming/make.pdf, pp.9)
                              %.o:%.cpp
                                  $(CXX) $(CXXFLAGS) $(INCLUDE) -o $@ -c $<
                              depend:
                                  makedepend $(INCLUDE) $(SOURCES)
                              # DO NOT DELETE THIS LINE -- make depend depends on it.
L   dpuserType              - alle conValue durch dpuserType ersetzen [TO]
                            - Variablen in map <dpString, dpuserType> speichern [TO]
                            - indexBase in dpuserType::extractRange etc. berücksichtigen [TO]
                            - dpuser2c: add "const dpuserType &"-references in procedures.cpp and functions.cpp where needed [TO]
                            - dpuser_funcs.cpp: every function should call its corresponding function in function.cpp [TO]
                            - dpuser.pgplot.cpp: every procedure should call its corresponding procedure in procedure.cpp [TO]
L   where(...)              - um && und ||erweitern (in IDL-Syntax) [TO]
                            - um (..., n) erweitern [TO]
L   CREATE                  - CREATE(1, 2, findgen(10), 3) erlauben [TO]
L   optimization            - Variablen bei access kreieren, auch bei Funktionsargumenten [TO]
L							- Fits-Klasse: =operator: nur pointer setzen und nicht gleich neuen Speicher allozieren [TO]
L                           - underscore in Variablennamen und procedure-, function-namen erlauben [AA]
                              (-> Vorsicht: QFitsView FillBufferMenu(...))
L   IDL                     - IDL-Routinen (z.B. findgen, ..., fltarr, ...) implementieren [TO]
                            - IDL-curvefit implementieren [TO]
                            - astrolib mittels idl2dpuser übersetzen [TO]

################################################################################
#####                             QFITSVIEW                                #####
################################################################################
Pr. Where                   What
################################################################################

--------------------------------------------------------------------------------				
-----                             ? OUTDATED ?                             -----
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------				
-----                             HIGH                                     -----
--------------------------------------------------------------------------------
H   file open               - BUG: QF über Kommandozeile mit mehreren FITS starten, danach buffer wechseln crasht manchmal [SG]
                              (QFitsView *.fits auf MacOSX)
.   negative CDELT3         - BUG: manual spectrum inverted [RG]
                            - BUG: circular wird gar nicht angezeigt [RG]
.   velmap                  - BUG: WCS geht verloren [RG]
H   trans...-funcs          - BUG: transmatrix, transcoord, transform [SG]
                                - linear darf nichts machen, wenn <3 Quellen gegeben
                                - rotation: macht bei >2 Quellen Müll

H   empty extension         - BUG: header has NAXIS=0, QF shows NAXIS=2
H                           - BUG: s=[1,2,3] danach t=where(s==5) (returns fits of size 0, QF crashes)

H   MacOS                   - QF lässt sich nicht mehr als default-App auswählen [TO]
H   MultiBuffer				- MB-vectors: can't mark extensions [AA]
                            - can't right click in extensions to copy to new buffer [AA]
                            - alle ->fvalue/.value suchen und mit setRecentBufferUnderMouse() ersetzen

--------------------------------------------------------------------------------				
-----                             MEDIUM                                   -----
--------------------------------------------------------------------------------
M   File->Open/File->Save   - ursprüngliches Verzeichnis merken [RG]
M   optimization            - unnötige Aufrufe von cubeavg eliminieren (z.B. bei Wechsel von linear->log) [TO]
                            - Rechenzeit bei velmap [RG]
M   contour                 - contour aus cube [RG]
M   GridView                - center in GridView (contour + wiregrid) [RG]

--------------------------------------------------------------------------------				
-----                             LOW                                      -----
--------------------------------------------------------------------------------
L   new features            - 2 Spektren gleichzeitig anzeigen + lock grid to each other [RG]
                            - coordinate grid (relative Koordinaten) -> Farbe + Nullpunkt angeben + Tickmarks + Labels + ... [RG]
                            - contour Linien farbig [RG]
                            - wedge mit labels im Bild [RG]
                            - Toolbox? [RG]
                            - bei spektrum extrahieren oder 2Dcuts: immer Summe der jeweiligen Pixels [SG]
                                - Besser avergae für z.B. Fluss-kalibrierte Daten
                                - Switch für diese Funktionen (sum, average, median)
                            - array von stringarrays möglich? (Also eine Matrix von strings) [SG]
                            - Buffer in Tabs anzeigen für schnelles Wechseln [SG]
                            - Blink-Buffer-Dialog: Toggle einbauen (Select/Deselect all), bei 30 Buffern klickt man sich zu Tode [SG]
                            - Shift/Rotate per Maus implementieren? z.B. 2 Buffer halbtransparent übereinander schieben [SG]
                            - support für FITS tables [AA und andere]
L   SW-design               - QFitsWidgrt2D splitten in QFitsWidgetImage und QFitsWidgetCube [AA]
                            - böse: eleminieren wo möglich: *curBuf = dynamic_cast<QFitsSingleBuffer*>(...) [AA]
L   MultiBuffer				- movie: 24 timer -> 24 steps vorwärts pro Schritt anstatt 1 [AA]

################################################################################
################################################################################
