TODO List for integrating MGED features into Archer

---- ALPHA ISSUES ---
capability & features
=====================

Intended as a "list of work to be done" for porting MGED features to Archer.  The absence of a feature
does not necessarily mean it is intended that this feature be added, particularly for "minor" features
or features that are currently not working well in MGED to start with - these are primarily discussion
points.

* "Walkthrough" of the MGED menu features:

     MGED Feature                   |         Archer Status of Feature or Alternative to Feature
------------------------------------------------------------------------------------------------------
Render View options                 |                    UNKNOWN - NEED TO TEST - saveview, not sure about plot and postscript output
Preferences->Fonts                  |                    INCOMPLETE, lower priority
Create/Update .mgedrc               |                    INCOMPLETE - .archerrc exists, needs to be expanded as more preferences are implemented in Archer - ONGOING
Matrix Selection                    |                    UNKNOWN - NEED TO TEST
				    |    Ensure working command line level functionality for direct matrix
				    |    manipulation if needed.  For items without a matrix show the tab with
				    |    either no values specified or the identity matrix as the starting
				    |    template.  Full functionality here will require "limited xpush"
				    |    abilities - xpushing only to a specified depth, and possibly some
				    |    awareness of full path targets vs. toplevel targets.
Attribute Editor                    |                     DONE (can be done with attr command)
                                    |    This is a more general case of what is currently the General tab in
				    |    Archer for objects - make this into a CAD widget with the layout of
				    |    the General tab and the functionality of the Attribute editor -
				    |    General tab will become Attribute tab.  Will need to be able to
				    |    customize the standard attribute/value display to support things like
				    |    the color picker for rgb attribute
Sweep Zoom Rectangle                |                     INCOMPLETE - Need to see if this can be integrated as an option to the scale mode
Settings -> Constraint Coords.      |                     INCOMPLETE - This is worth preserving, but needs some though on how to integrate it.
Settings -> Rotate About            |                     INCOMPLETE - Save ability to rotate around view and maybe a specified keypoint to allow for flexibility
Settings -> Query Ray Effects       |                     INCOMPLETE - Will be handled elsewhere - nirt/query ray settings panel
Modes -> Display Manager            |                     INCOMPLETE - Archer is ogl only at the moment need to support other display managers and conditionalize the features that rely on OpenGL to only be active when ogl is.
Modes -> Rate Knobs                 |                     INCOMPLETE - Low priority
Tools -> ADC Control Panel          |                     INCOMPLETE - see if ADC gives us anything not provided by the measurement tool
Tools -> AnimMate                   |                     INCOMPLETE? - talk with Keith to see how he animated in Archer
Tools -> Query Ray                  |                     INCOMPLETE - convert to preferences tab or tool
Tools -> Build Pattern Tool         |                     INCOMPLETE - convert to Archer wizard
Tools -> Overlap Tool               |                     INCOMPLETE - expose in Archer as a tool
Tools -> Upgrade Database...        |                     INCOMPLETE - need dbupgrade on the command line?
Help -> Apropos                     |                     INCOMPLETE, not working well in MGED either?

* add an export menu to Archer that connects to auto-detected
  available exporters (g-* tools).

* numerous core commands missing that have not gone through
  deprecation (e, d, ...) -- suggest we first release with at least
  all current commands included (at least those documented in
  tutorials, quick ref card, html docs), but marked as deprecated
  then.

* user should fully own ~/.archerrc and be able to specify settings
  and overrides there (current says do not edit)

* user-manageable scripts and settings (similar to ~/.subversion)

* About Archer is out-of-date, references brlcad.com, survice logo,
  wrong BRL-CAD logo image, says archer is trademarked,
  acknowledgements is out of date (should remove or just put AUTHORS
  file).


---- BETA ISSUES ----
stability & usability
=====================

* need a manual page

* raytrace button won't abort correctly due to using rtwizard rather
  than rt directly - will probably need fixes to rtwizard and archer

* need proper "raytrace control" panel for easy access to raytracing
  options

* fix archer/libdm labels/axes to not use pointer printing

* "archer -h" causes archer to halt with a Tk_Init error.  should
  display usage/help.

* reports "ArcherCore::getTreeMembers: faulty tree - " on some .g
  files, valid ones

* numerous warnings on exit on Mac OS X (10.6):
   <Error>: kCGErrorIllegalArgument: CGSGetSurfaceBounds
   <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to \
     catch errors as they are logged.
   <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0x492c
   ...

* diversion from mged philosophy, prompts whether to save file on exit
  (file not always in a saved state).  to prevent data loss on crash,
  data should at least always be written out to the main file, a
  secondary file, recorded as saved transactions, or some other
  mechanism.

* some usability-related icon issues (only a few of the more egregious)
  - torus tree-view icon has major aliasing/truncation
  - framebuffer image buttons need replacement (nuclear, mode?)
  - halfspace icon needs darkening
  - no part icon (needs one otherwise misleading label)

* Create menu should list primitive name, not our shorthand

* major GUI components (tree-view, command window, and graphics
  window) should be dockable and have their layout/docking preference
  be saved across sessions (so they can restore and retain similar mged
  appearance if they so choose)

* mouse behavior changed, rotates around view origin instead of model
  origin.  should provide for mouse behavior settings so classic mged
  defaults are available.

* double-clicking the tree view show-list to display/undisplay

* make sure archer behaves properly with relative paths to dbopen.
  Windows in particular is doing something different in
  src/librt/db_open.c that should be a problem as it only records the
  file name (so gui will work, but dbopen + cd + rt will not).
