TODO List - worlds simplest bugtracking system 

--Packaging--

--Main app--
	To Implement:
		== Next version ==
	
		== Eventually == 
		* Support for XY scatter plots
		* Status bar message queue
		* Voxel export dialog 
		* VTK voxel data export
		* OPS and other 3DAP formats reader?
		* 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?
		* Voxelisation filter needs progress
		* Better progress during cluster ranging
		* Billboard text
		* Camera animation control (slerp?)
		* CSR fit to NN Hist in spatial analysis 
		* 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
		* Plots cannot currently be updated on name change. Need to add "needUpdate" to setUserString

	Outstanding bugs:
		== Next release==
		* Colour bar drawing broken when tiling an output image
		* Fix voxelisation "filter" option 
			
		== Eventually==
		* 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
		* Lighting calculations on isosurfaces can be problematic. See example package
		* Loading a full pos file directly onto the video card cannot be aborted.
		* 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

		== Needs reproducing ==

	Auditing:
		== Next release ==

	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).
		* KD tree could implement proper range queries, eg bounds overlaps box
		* 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?
		* Ranging does two full passes, one to estimate output size, and one to actually range
			- why not simply sample the input to estimate output size??
	
	Misc:


-- Refactor/cleanup --
	* updateFilterPropertyGrid is in a bad location, need new
	  file that knows about filters and wx at the same time,
	  but is not viscontrol ;)
	* 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
	* Enums should be, where possible, moved into their relevant class' namespace
	* Better error code behaviour for filters. There is a lot of needless duplication

-- Deprecate --
	* On Minor version change:
		- DataLoadFilter::readState(...) -> doSample test for statefiles without doSample.
			- 3Depict versions prior to 1207:2a01b7e83d75
		- VoxeliseFilter::readState(...) -> axial slice read will be silently skipped if it is missing
			- 3Depict versions <= 1628:ffa0b851e966 don't know about this element 
		- Annotation XML element "sphereanglesize" name doesn't match its purpose, and needs to be renamed "spheremarkersize"
