TODO file of LabPlot:
*********************

####################################################
BUGS:	(O-open, V-verified, A-analysed, C-closed, U-unsolved)
	---------------------------------------------------------------------------------------------------------------
	C SuSE 9.0 : text rotation crashes LabPlot (y-Axis) (see QT example "xform")
		=> use updated qt packages (single letters are still not rotated here)
	C LabPlot on x86_64	: pstoedit links to libEMF, which uses wine-libs
		=> dont use pstoedit
	---------------------------------------------------------------------------------------------------------------
	U kpart in konqueror won't resize 
		=> use reload function
	U opening from commandline : maximize doesn't work correct
		=> resize after opening
	U print preview : "qDrawShadePanel() Invalid parameters."
		=> just ignore it
	U "make -j N with N>1 -> link error	"ld: cannot find -lLabPlot"
		=> call "make" again
	U LabPlot sometimes crashes when selecting any drawing method on fresh installation
	U LabPlot crashes when libraries are compiled with icc
	U draw brush in legend of surface plot ( legend uses drawLine for every color : no brush possible ! )
	U Crash : ImageMagick : export to unavailable formats (8bim, svg)
	U "Warning: Linking the executable LabPlot against the loadable module"
	U KImageIO:: export to eps 	-> no settings (color,format, size) ?? (Worksheet::Export())
	------------------------------------------------------------------------------------------
	V 3D mouse shifting of axis label is totally broken
	V 3D plot range for box style not enough for boxes
	V 3D tic label of axes are overlapping
	V label position not shown when enabling axis (AxesDialog : enable axis; apply)
	V tic label are changing when resizing plot
	V Crash : opening GRASS Data Dialog
	O update graph list when changing grass graph : problems
	V "repaint" redraws always the whole Worksheet	-> flicker
		(Qt::WResizeNoErase, Qt::WRepaintNoErase doesn't work here) [see chap05/plotter]
	V sqrt scale incorrect (distants 0-1 and 2-3 are equal !)
	V "/" for data/function separation in GraphListDialog isn't smart
	---------------------------------------------------------------------------------------------------------------

###################################################
	
LabPlot 1.4.0 :
**************
1.	* import data into SPREADSHEET
		* Spreadsheet class (see Worksheet, check data, edit data)
		* "new spreadsheet" button
		* "import" button -> simplified data dialog -> spreadsheet
		* MainWin Workspace : differ by caption : Worksheet vs. Spreadsheet
		* create data in spreadsheet
2.	* plot from template : empty project file ?
		* save data file externally ? (separate from project file)
3.	* data set operations (add,substract,multiply,divide sets)
4.	* improve bar charts (stacked, horizontal, ... )
5.	* import images
		* use KImageIO::pattern	(filter for all image files when opening)
		* GRAPHIMAGE for directly saving images (QPixmap,QImage)
			* import into pixmap (rgb, grayscale, palette)
		* 2d DataDialog : from x-y-z data to surface plot (what about nx and ny ?)
		* use symbol and style if selected in surface 2d data dialog
		* 3d plot (x-y-z & matrix)
		* image processing
			* use ImageMagick
		* configure / fileinfo / import / export Filter for :
			* ImageMagick formats (fits ? ,hdf ?)
			* fits, hdf5 (when not possible with ImageMagick)
			* more image formats ? (see xv, tnimage, gimp)	
6.	* improve 3D Plots
		* fill with colors (z-value), contour
		* transparent filling (no hidden3d)
		* 3D error plots :
			* DataDialog : "x-y-z-dz" (GRAPH4D : 3D error)
			* plot in Plot3D.cc
		* 3D rotation, view point (see gnuplot)
		* brush 3d
		* baseline 3d
		* xy-region for 3d integration, fit, etc.
		* convert 3d type to matrix (NX=64 & NY=1 -> NX=NY=8)
		* connect type 3d data points in 3d plot
		* 3d data -> set nx, ny
		* 3d matrix display : use nx and ny
		* correct boxes style
			* change x,y actranges (not ranges !)
		* colorscale + contour lines (new style type ?)
		* 3d perspective (rotation angles)
		* see known bugs

n.	* fill between range (y-fill under curve ?)
	* mouse zoom : x,y separate
	* corrdinates for ternary plot, polar plot
	* DataDialog :
		* dont read comment lines (#,!,//, ...)
		* read LeCroy, HP ASCII data
	* speed mode : draw only 100/10x10 points of every data set
		* customize nr of points for speed mode(Configure LabPlot)
		* speed measurements (speed mode)	-> points / sec reading, etc.
	* multiple data files (read all *.dat, etc.)
	* improve Explorer
		* use <GType>Plot::Info()
		* exchange graphs between plots
		* exchange plots between worksheets
		* delete items
	* support waterfall plot (see matlab)
	* "data mode" : bound cursor to curve (see kst)
	* analysis :
		* filter (bandpass, bandstop, highpass, lowpass, noise, ...)
		* crosscorrelation
		* autocorrelation
		* periodigram
	* +,- zoom (5%)	-> see grace
	* GRASS Plot :
		* plot type
			* plot raster layer
			* plot site layer
		* range ?
	* markers (distance, values)
misc :
	* Info about available libraries (gsl,ImageMagick,...) in help (about ?) dialogs
	* improve flicker problems (use consequent double buffering)
	* "/" data/function	: int Graph::source (0:function,1:data,...)
	* check discontinuities (x*exp(x/(x*x-1)))
	* standard font in "configure LabPlot"
	SAVE/OPEN :
		* GraphVTK:
			* int object
			* QColor color
			* bool boxed
		* PlotGRASS
			* gisbase, gisrc, location
	* update Main Screenshot (Worksheet+Spreadsheet)
	* get the index of the double clicked object (for object dialog list index)
	* test LabPlot API
		* improve doxygen documentation
		* example program
	* use KDECompletion ? (filename, ...)
		
####################

GUI/Application:
***************
	* open dialog with new plot ?
		-> data or function ? "insert from function or data ?"
	* Symbols
		* character as symbols
		* opaque symbols
		* (x/y/x,y) values as symbol
		* more symbols : 26 types (...)
		* more fills : 16 types (center, corner,...)
	* new method for Point2D *data = new Point2D[MAX_POINTS], etc.
		-> use number of lines of a data file ?
	* richtext strings
		* graph label (+ save/open)
	* plot list as submenu in worksheet list
	* nicer dialogs
		* exclusive buttongroups (enable/disable) when needed
	* bounded value line edits -> slider	(QSlider)
	* include kghostview menus and toolbars, etc. in print preview (see kgv_part.rc)
		-> how to delete gv part gui elements ?
	* configure LabPlot
		* <Action name="worksheet"/>
			before Action "plot" in LabPlotui.rc	(2 times)
		* ConfigureDialog
			* number of recent files
			* units ?, colors ?
			(* save data in project as link (yes/no))
			(* open new Plot in active Worksheet or in new Worksheet)
			(* Identity ?)
		* Template for Plot ?
			* axes, fonts, colors
I/O:
****
	* GRAPH2DL, GRAPH3DL
		-> x-y-label, x-y-z-label
		* use for pie plot segment label, annotate label 
	* set cbi-->currentItem with re-read data dialog
	* image object : save in project file?
	* seperate data file from project file
		* saving a data file name in a project file instead of the data itself
		* hotlink data
	* contour & density plots from x-y-z ?
	* IMPORT/EXPORT
		* multiple column files (NXY)
		* read matrix data from netcdf/cdf
		* progress when exporting data
		* export to audio
			* option : 8/16 bit
			* option : sample format
		* import spreadsheet formats
			-> see export filter of staroffice, kspread
			* kspread, staroffice
		* only export selected region
		* more audio formats (using libsndfile or sox)
			* mp3		-> libmp3 ?, libmad ?
			* ogg		-> libogg ?, sox -> wav
			* flac, shn	-> ?
		* binary/other data file support -> examples/fileformats/
			* piolib, boomerang and blast (see kst)
			* zip, rar,... compressed
			* matlab, maple , mathematica
			* (origin), (sigmaplot)
		* real time data import
	* use QSA :
		* make LabPlot scriptable (see grace)
		* defined analysis plugins
		* define fit functions
		* undo/redo function
		* templates? (for inserting data)
		* needs QT > 3.1.2 (RH 9 QT 3.1.1 seems to work too !)
		* SUSE 9.0 : qsa-1.0.1, 9.1 : qsa-1.1.0
	* import project files
		* grace, kst, kpl
		* (origin), (sigmaplot)

drawing/ data manipulation :
****************************
	* audio file data editing like normal audio programs
	plots :
		* set drawing object relative to graph (fixed to axes)
		* axis position (left,center,right)
		* mask data points : exclude from plotting
		* period or comma as decimal point (configure LabPlot)
		* broken axes
		* fills
			* gradient fill
			* fill region only
		* gradient plot background / graph background, etc.
			-> use QBrush of qt 4.0 version ?
		* zoom plot (extra plot as zoom of another plot)
		* legend background/gradient
		* annotated values :
			* use own format and rounding (see axes settings)
			* rotation
			* size, color, font
		* handle log axis errorbar problems (y=1,dy=2, etc. )
		* place legend automatical in a corner
		* border, tics, grid thickness
		* surface plots :
			* third type : vector field plot, windbarbs
				* data format ?
			* more than 1 graph
			* reading x-y-z data	(gyrodata.dat)
			* filled contour
			* scaled values (z-Axis)
				* logarithmic z-axis ? (legend)
				(contour lines 1e0,1e1,1e2,1e3 )
			* read date/time matrix
			* contour level label
			* improve  legend (0..1)
				* KGradientSelector
				* rbg vs hsv
		* pie plot
			* explode segments
			* segment label
			* segment legend
			* brush
			* scale pie % with plot
			* legend (1 - 12 %, 2 - 27 %,...)
			* round % (using precision ?)
		* polar plot
			* plot minor tics, minor grid
			(* axes scale )
		* Ternary Plot :
			* 3 custom axes label
			(* draw minor tics, grid)
		* GRASS Plot :
			* vector : info, statistics
			* Range ?
			* zoom (x,y,z, +,-), shift
			* GRASSDialog	: all values (like FunctionDialog)
			* layer selection list
				/pub/sw/grass-5.0.3/src/general/manage/inter/list.c
		* VTK plot:
			* data ?
			* 2d, 3d plot
		* more plot types
			* Pie3D plot
			* Polar3D plot	(r,theta,phi)
			* GIS Plot :
				* GDAL/OGR library	->
					* GeoTiff, Erdas Imagine, Arc/info binary/ascii, SDTS raster, USGS ascii, grass raster, ...
				* see QGIS: ESRI shape files (*.shp)
			* xy chart (xmgrace)
			* smith plot
			* implicit plot (x+2*y=1)
			* space curve (sin(t),t=0..10) (cylinder coordinates r,phi,z)
			* rose plot (polar histogram)	[-> wind directions]
			* polar contour
		* fill only region of a graph
		* support x=f(y) plots (f(x)=sin(y))
		* select datapoints with cursor
		* plotting surface : use pixmap and put it on the screen
		* scale plots with worksheet (fullscreen, lower, resize)
	axes :
		* axis tic label format :
			* PI (0,PI,2PI)
			* hexadecimal, binary (000 001 010 011 100 101 110 111)
			* degree (210'33'')
		* axis tic label rotation : PlotPie, PlotPolar 
		* flip x-y graph
		* shifting 3d axes with mouse
		* db axis scale (exp+log)
		* reciprocal (1/x) scale
		* shifting of 3d Axes with mouse ?
		* grid, ticks and numbers : in or out of plotarea
		* 3D axes scale	log10,log2,ln,sqrt
			* axes x,y,z	(Plot3D.cc::drawAxes())
			* data	(Plot3D.cc::drawCurves())
			* special axes tic label
		* minor tic label (?)	(for log10)
		* use major tic number (?)
	* extract feature (see grace)
	analysis :
		* all :
			* smooth		: 2derr, 3d, matrix		2DSurface, 3D
			* prune		: 2derr, 3d, matrix		2DSurface, 3D
			* hist		: 2derr, 3d, matrix		2DSurface, 3D
			* diff		: 2derr, 3d, matrix		2DSurface, 3D
			* int			: 2derr, 3d, matrix		2DSurface, 3D
			* reg	ression	: 2derr, 3d, matrix		2DSurface, 3D
			* fft			: 2derr, 3d, matrix		2DSurface, 3D
			* fit			: 2derr, 3d, matrix		2DSurface, 3D
			* interpolation
			* convolution
		* seasonal differences y[i]-y[i-n], n - period
		* FFT
			* inverse ( gsl_fft_complex_inverse/ fftw REDFT00,RODFT00, etc.)
			* data window
			// halflen (all values)
			// amp_correction
		* nonlinear fitting
			* custom fit function
			* guess initial parameters
		* regression :
			* non linear	:
				* a*x^b,a*exp(b*x),a+b*ln(x),1/(a+b*x)
			* weighted	:
				* 1/dy^2 (2derr), custom (function)
			* 2derr data -> weight = 1/dy^2
		* differences		(dy(x))
			* use gsl numeric differences
		* integrate
			* gsl numerical integration
			* weighted
			* use the correct function if available	(checkbox) -> undefinite integral (?)
		* histogram :
			* weighted	: gsl_histogram_accumulate (h,x,weight)
				-> weight what ?
		* (de)convolution of two data sets
			* use fftw too
			* use mixed radix fft 
		* extrapolate ?
		* peak find
		* filter (band pass, high pass, low pass, ...)
		* smooth Savitzky-Golay (point-wise polynomial fit)
	misc :
		* arrange plots axes to axes |1|2|3|4|
		* world/viewport coordinates
			* range from 2..4 in graph
		* fill of steps and boxes
		* supporting errorbars in 3D
		* 3D view changes (angles)
		* select range by mouse
		* lens (zoom by mousearea)
		* Style in Dialog : show symbols (draw it)

misc :
*****
	* tex style support for strings
	* use STL contructs for some critical objects (see C++-Unleashed & SGI docu)
	* C functions -> C++ (sprintf, etc.)
	* animations

	Docs :
	* more languages (using dictionaries ?)
	* Tutorial :
		* worksheet,plot,graph label,tics,etc.
	* add more "WhatsThis" infos
	
	FAQ :
	* Debian libGl.la, libGl.so problems
