In GFtbox_config.txt, replace "dir" by "projectsdir".    DONE 
If a project directory begins with a *, it's the default.    DONE

Set the default directory:
    On reading the config file: the one beginning with '*', or the first if none,
        or empty if no projects directories.    DONE
    On adding a new projects directory, the new one becomes the default.
    On loading a new project, the directory it was from becomes the default.
    On deleting a projects directory, if it was the default the default becomes
        the first of those remaining, if any.
    On saving a new project?  If it goes to an existing projects directory then
        that can become the default, but what of the new project directory is not
        contained in any of the existing project directories?  Should we add the parent?

The projects menus need a userdata value holding the full path name of the directory.
The callback routine should use that value instead of handles.userProjectsDir.
It should set handles.userProjectsDir to that value if the project is successfully loaded.

We should also have a menu of recently accessed projects.  This should be refreshed by
the Refresh command.





2010 Feb 19 Fri
New developments for GFtbox as raised at meeting last week.
* = less than an hour's work
** = 
*** = 
**** = 
***** = hire someone to do this
****** = grant proposal
******* = grand challenge
1	(*) Warn of excessively large amounts to plot.
1	(**) Set local threshold of polariser, instead of a single global threshold.
1	(*) Function to measure distance along a sequence of vertexes (using Euclidean
distance between consecutive vertexes).
1	(****) Function to find the shortest path from one vertex to another
along the surface.
1	Is the FE calculation still valid if the specified-strain tensor also includes vorticity? 
2	(*****) Get someone with serious professional knowedge of interface design to work 
out how to improve both the GUI and the command-line interface" ""A good GUI should be as approachable as a good textbook."" [AB]" 
1	Can the computations be speeded up by doing some of the computations on the "graphics card?  Look for CULA, other libraries, graphics cards with enormous" "memories, etc" The big matrix has about 6N rows and columns for N finite elements. 
1	Other mechanisms of transport than diffusion E.g transport of one morphogen up the gradient of another Anisotropic diffusion?  Directed diffusion? (non-symmetric diffusion matrix) 
2	Import of external data (e.g "OBJ (already possible), others?)" "Non-round cells: ellipses, imported shapes from microscopy data." 
3	Warn if the mesh goes entirely out of the visible region. 
4	Look at event-handling for concurrent events. 
5	More numbers on the colourbar
DONE 6	Include the colourbar in snapshots and movies (optionally). (The latter could be done by resizing the pictureBackground element Make sure that the colourbar and its labels are in front.)     
7 Store settings in a readable text file (E.g store the static file as text instead of .mat.)    
8	Stages sometimes get saved with the wrong timestamp.     
9	Function to compute tensor data.     
10	Compute and display an estimate of accuracy.     
1	Multiple Projects menus.    
DONE 2	" Multiple ""runs"" within a project" " Each ""run"" creates a separate saved stages directory. Any such directory can be selected and made the current ""run""."    
3 	New quantities to plot: * anisotropy of current tensor ....    
4	More ways of setting up initial distributions of morphogens in terms of the geometrical structure" Currently, after creating e.g" "a rectangular mesh, GFtbox does not know that it is a rectangular mesh" It only knows a set of vertex positions and the vertex triples that define the elements It should retain more information " For a rectangle, it should be possible to easily get hold of e.g" "the vertexes along one edge, or the vertexes along a centre line, etc" " For a hemisphere, the vertex at its apex" And so on.
5	" Improve the running of GFTbox from the command line, without the GUI."    
6	 Allow snapshots and movies to be made even when running in an environment with no display (e.g a cluster machine) " (But if Matlab absolutely depends on hardware graphics to do any sort of image rendering, then this will not be possible.) Option to not take snapshots of stage files, in order to be able to let stage files be recomputed in the background."
7	" Sort out the suspected problem with diffusion, well enough that interesting reaction-diffusion systems work" Possibly enhance the accuracy by a finer subdivision. Find out why Zienkiewicz's computation scheme works" It isn't Euler or midpoint, but works more accurately than either of those." 
8	 Allow growth to be modified by residual stress.    
9	 Allow non-uniform elasticity: bulk modulus and Poisson's ratio that can vary from place to place.    
10	Allow non-isotropic elasticity.    
11	Enhanced clickiness " What operations would people like to be able to do by clicking on the mesh?  Currently you can delete elements, modify morphogen values, cause vertexes to be fixed in space, and cause morphogen values to be fixed in time."    
12	Export to other tools" Currently GFtbox can export VRML for a 3D printer or VRML viewer, and some sort of OBJ for various uses" OBJ is a flexible format that can represent more information than GFtbox currently exports What uses do people have for OBJ output and what information do they need to be exported? Are there any other data formats that it would be useful to export?
13	Growth at an angle to the polariser gradient" In theory this is implemented, but has never been tested." 
14	The Stages menu can get unworkably long if many stage files are saved Find a solution to this " (Automatically pack it into hierarchical submenus as necessary, or present them in a list box dialog.)" 
15	Automatic adjustment of thickness when exporting models for 3D printing.  
16	The Projects>Motifs menu should contain the models used for the GFtbox technical paper.  
17	Some interface for inspecting and setting at least some part of the userdata component of the mesh.  
18	Automatic meshing tools Improved remeshing. 
19	"Cleanup command: deletes all snapshot, movies, and stage files."  
20	(******) Bulk tissues?  
21	"(***** to ******) Other finite elements: hexahedra (cubes), shells, etc. Higher order elements."  
22	Other methods of transport than diffusion.  
23	Better documentation for leaf_setproperty and leaf_plotoptions.  
24	Stereo.  
25	Allow the picture area to be undocked from the GUI.  
26	Menu commands for setting all of the plot properties?  Would like something like guide's property inspector


2009 Apr 30
4	" The manual needs to be brought up to date, and perhaps rewritten."
6	" Messages to the command window are not a good way of communicating with the user. Should a dialog pop up?  Yes for error conditions, not for mere warnings."
7	 Should the program maintain a log file of everything it writes to the command window? The log could also contain a record of all commands given.  This would be useful for me when trying to support users It should be possible for GFtbox to replay the log (assuming the external files accessed are present).
8	" Export to VRML in multiplot mode sometimes fails to find the colour information. Turning multiplot off and on fixes this.  This has to do with the use of vertexcolor. rawstuff in leaf_plot.  See also item 17, which results from the same problem."
9	 Click-drag needs to be reorganised" Have a single button-down function, which will" detect what was clicked on and examine the context to see what operation is required.
10	" With axes hidden, clicks on the background aren't caught."
11	 Non-GFtbox figures are not properly supported.
12	" When importing a MAT file, setMyLegend complains about the legend handle being missing."
13	" When importing a MAT file, need to consider what should happen if there is no current" "project, but the MAT file belonged to a project."
14	 Multiple project menus.
15	 Integration with SVN? Detect when a project is under SVN control Add a command to download or upload it But how?
16	 Pan and zoom settings are not saved.
17	 Monoplotting does not use canvas colour.
18	" When sparsity is positive, all decorations should be plotted at the selected points." "Currently, cell normals and tensor axes are always plotted at cell centres, and displacements" at mesh vertexes.
19	 Check loading of OBJ files This is a feature that every remote user will want. OBJ loading only works for non-thick meshes (which is understandable). It fails to load OBJ files with inconsistent orientation.
20	 Interface for setting thickness params is imperfect.
21	 Check diffusion in a heterogenous mesh.
22	 Option for auto-saving stages.
23	 Ability to remove selected stages from the menu Bring up a multi-selection dialog.
24	" Multi-selection dialogs should all have ""All"" and ""None"" buttons" General multi-selection dialog?
25	 Menu of recently opened projects. 
26	 Snapshot numbering is by a combination of sim step and disambiguation  Not good. 
27	 Stage numbering is not reliable. 
29	 Don't store plot data in plotdefaults " Store it in a new component, mesh.plotdata," and classify it as dynamic Strip it when saving stripped meshes. 
30	 Put all the GUI element handles currently stored in plotdefaults into a single structure stored in plotdefaults. 
31	 Cannot open project folder on Linux. 
32	 Plot multiple tensor axes. 
33	 Export polariser gradient arrows to VRML. 
34	 Problem with plotting tensor quantities after subdivision? Numbering appears to be corrupted. 
35	 Warn if one is about to discard the current mesh after changes have been made to the dynamic part Which changes are significant?  Deleting FEs Adding or modifying the biolayer Any of the mesh editing operations Which operations discard it?  Loading a new project Loading a stage file Closing the project Closing GFtbox  Making a new mesh. Closing Matlab. 
36	 The calculation of growth tensors for plotting is inaccurate when internal rotation is enabled " The growth tensors are only used in the rotated frame of reference, so" perhaps I never derotate them They appear to be accurately plotted when internal rotation is off.
37	 Public access to GFtbox.
38	 Flattening dialog does not respond to buttons.
2	 Models exported to VRML with clones lose their colouring when imported into "Zcorp's software, although they appear correctly in Contact."
5	 The tooltips file needs to be automatically reformatted into a standard Microsoft help file Such a file would contain longer explanations than will fit into a tooltip; these explanations must be stored in the tooltips file and filtered out when generating the tooltips "(However, there do not appear to exist tools for generating .chm files" from text.)
