TODO List - worlds simplest bugtracking system 

--Packaging--

--Main app--
	To Implement:
		== Next version ==
		* Voxelisation filter should not show ions disabled in upstream range
		* VTK voxel data export UI
		* Bounding box tick values could be improved - scientific
		  notation, better font size control, absol. coords, etc
		* Mesh generation/operation?
			- This is tricky. I don't have a good mesh library
		* Proxigram?
		* Theoretical distributions are missing from the binomial algorithm
	
		== Eventually == 
		* Update to qhull 2015's qhull_r (reentrant qhull). 
			- This requires some refactoring of the doHull wrapper for convex hull computation
		* Voxel export dialog 
		* 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?)
		* 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
		* Isotope overlay in normal spectra
			- Include full atomic species eg 57^Fe18^O in label
	
	Outstanding bugs:
		== Next release==
		* Composition profile progress bad 
	
		== 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
		* 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?

		== 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).
		* Clustering can now be paralellised. 
			- consider implementing/using sphere grab algorithm, which is much faster
		* Examine performance characteristics of HULL_GRAB in ioninfo
		* Conversion of double axis-angle rotations to single axis angle rotations - any value here?
			- Use TRIAD/ Wahba's problem to solve. Should be a lot faster?
	
	Misc:


-- Refactor/cleanup --
	* read/write xml could have default reader/writer routines
	Variables could be registered, then an order independant parser
	could be used to "vacuum" most of the data. Bounds/corretness
	checking could be used thereafter, and fallback to traditional
	xml tree traversal could be done after that
	* 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
			- This would aid things like bar plots, pie charts
		- Plots need to be able to set strings/legends
		- There is little diference between plot1D and plot2D, really.
		- Error bar handling is a bit of a hack.  Error generation should be moved to filters
	* work out which inline FIXMEs and TODOs are still valid, and need attention
	* 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"
