TODO List - worlds simplest bugtracking system 

--Packaging--
	* Fix linker order (?) for mingw-cross compile

--Main app--
	To Implement:
		== Next version ==
		* Range editor
		* Plot overlays
		* Ruler annotation could use "enable" and control sphere size setting
		== Eventually == 
		* Support for XY scatter plots
		* Status bar message queue
		* Voxel export dialog 
		* VTK voxel data export
		* Binomial? (MM edition)
		* OPS and other 3DAP formats reader?
		* Stream information filter (Easy fix, but needs time/thought)
		* Polynomial error estimator in graph
		* Shear-warp volume render mode for voxels
			- This can be broken into two useful stages
				(1) transfer function editor, could be tested with point cloud mode
				(2) Volume render code (check out SMVIS, Author gave perm. under GPLv3+)
		* Ion exchange/explode filter
		* DTD (Document type descriptor) for state files, to
		  specify a consistent statefile structure
			- How to ensure version compatibility in future
			state files?
		* VTK/xyzm output
		* BB cache for ion data?
		* Option to warn on file overwrite with save after merge (default off)
		* Theora video?
		* Multiple selection in filter tree for many to one stash/unstash operations
		* We are using too many timers. There are limits to max. timers (win32?).
		* Front-to back alpha blending ordering support for
		 scene drawing of non-pointcloud objects
		* Voxelisation filter needs progress
		* Better progress during cluster ranging
		* Billboard text
		* Camera animation control (slerp?)
		* Undo by timestream
		* MD5sums could be used on filter input to determine cache-refreshingness! (clever!)
		* Per ion type ion display sizes?
		* CSR fit to NN Hist in spatial analysis 
		* NN "shift" algorithm (delta sqrmag -> value)
		* Bounding box tick values could be improved - scientific
		  notation, better font size control, absol. coords, etc
		* Voxelisation filter should not show ions disabled in upstream range
		* Range file drag/drop ignores drop coordinates; this could be useful
		  in trying to interpret where the user wants to drop the object
		* Should allow loading of just XYZ files, but create dummy mass & warn
		* Plots cannot currently be updated on name change. Need to add "needUpdate" to setUserString

	Outstanding bugs:
		== Next release==
		* File -> export image -> Height*=2, results in aspect ratio of output image being distorted
		* Cluster filter wont save state correctly if parent
		  rangefile has disabled ions. It will output incorrect
		  number of enabled ions, and get wiped during next ::initFilter
		* Don't appear to be able to move ranges in plot
		  below/above upper and lower bound of data, regardless
		  of plot zoom status
		
		Windows:
		* Drawing updates for resolution dialog are wonk
		
			
		== Eventually==
		* Lighting calculations on isosurfaces can be problematic. See example package
		* Voxelisation "filter" option appears to be reducing voxel intensity
		* Loading a full pos file directly onto the video card cannot be aborted.
		* Scroll wheel on text area for camera drop down does
		  not scroll cameras; only on button (wxGTK only??)
		* Switching between fixed width and num bins in voxel
		  repeatedly causes "drift" of values -- aliasing errors?
		* Colour bar drawing broken when tiling an output image
		* Error bar masking for graph (mathgl draws error bars outside plot boundary)
		* Pos load add could always add to bottom of filter list,
		 rather than default value
		* Under mac osx, changing languages does not cause stock
		  wx translation strings to change, even after app restart.
		* Select an X-Y crop, camera coords, on a dataset,
		  then view   target  (-9.14237,-0.995174,83.2904) origin
		  (188.23,-0.995174,83.2904). Now press ctrl+space. Note
		  dataset disappears until mouse motion. This is due to
		  camera up vector not being updated, I suspect.
		* 3D Text bounding boxes are wrong.
		
		OSX:
			* drag drop not working?
			* icon on dock bounces very fast during some refreshes

	Auditing:
		== Next release ==
		* Set keynames for property groupings
		* Unit testing of text data loading routines

	Performance:
		* Scene is sometimes continuously refreshed during post effects, causing CPU usage
		  to max out.
		* Clipping sphere/cylinder does BB test? (only useful if we have bb cache)
		* Pos limit loader could alter its behaviour when
		 sampling rates some percentage to be determined (load
		 file, skip buffer).
		* Clustering could be paralellised, but is complex. Split & weld along KD tree lines using 
		  cluster BB interactions.
		* Examine performance characteristics of HULL_GRAB in ioninfo
		* Conversion of double axis-angle rotations to single axis angle rotations - any value here?
	
	Misc:


-- Refactor/cleanup --
	* Interaction code needs to be cleaned up. Currently it is a substatiative hack.
		- Viscontrol should store a copy of the original tree,
		  then periodicially compare it to the current tree. if it
		  is different, then it should invalidate the caches for
		  the different bits, and then force a refresh. This would allow for removal 
		  of the callback mechanism that is currently in use
	* Plotting code is a nightmare. Data model for plot.h is not
	   very well thought out, leading to large duplication, and elaborate special-case-ing
		- Plots need log/non-log axes
		- Plots need to be connected/disconnected
		- Plots need to be able to specify bounding boxes separate from their data
		- Plots need to be able to set strings/legends
		- There is little diference between plot1D and plot2D, really.
	* work out which inline FIXMEs and TODOs are still valid, and need attention
	* I have multiple colour classes floating about. might be an idea to unify them.
	* K3DTree currently requires public access to members of boundcube

