TODO List - worlds simplest bugtracking system 

--Packaging--

--Main app--
	To Implement:
		== Next version ==
		* Fix animation under windows, seems to crash
		* External program could have a no-reload input mode
		* range-> ion mapping changes in rangefile filter do not persist across save/load cycle
		* Ensure volume rendering working on all platforms
		* Selection of objects under windows not reliable. 
			- A possible fix is in (9d9ab + 1), but not tested
		* Possible bugs with randomisation. 
			-In some cases,strong randomisation may return
			 same result each time for ion shuffle?
	
		== Eventually == 
		* Update drawing code to opengl2.0
		* Filters: Spatial Analysis: Local chemistry based filtering to handle unranged ions (possibly change Local
				Chemistry's behaviour too)
		* XML file loading is a bit iffy if paths are moved
		 around. A nice convenience feature would be to have an
		 option to scan for the files in a relative manner if
		 they are not found using the absolute path
		* There is no way to get a mass spectrum from clusters with background.
			- Import clustering w background from posgen?
		* Voxelisation filter should not show ions disabled in upstream range
		* Improve voxel data export UI
		* Mesh generation/operation?
			- This is tricky. I don't have a good mesh library
		* Proxigram?
		* Update to qhull 2015's qhull_r (reentrant qhull). 
			- This requires some refactoring of the doHull wrapper for convex hull computation
		* OPS and other 3DAP formats reader?
		* Polynomial error estimator in graph
		* 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, and charge state
		* Poisson error estimation
	
	Outstanding bugs:
		== Next release==
		* Under windows there is a problem with parsing the rss feed. This results in a user-visible error
	
		== 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
		  	- Spatial analysis is a bit more sane - it records the name of the
			  ions in use
		* Spatial analysis filter uses a subset of ions from the parent rangefile
			- It might be better to use a full set of ions,
			 as this would eliminate the logic required to sync
			 the two. The properties could be masked as needed
		* 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.
		  	- This doesn't happen on all systems.
		* 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. 
		* 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
	* There is a confusion of responsibility between filter.{cpp,h} and filterCommon.{cpp,h}
		- what is the division here? this is unclear
	* Experiment with "-gc-sections" flag on gcc to shrink compiled libraries

-- 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"
