Survex To-Do List

Bugs

  * This gives "*** Singular!!!" warning with DEBUG_INVALID on:

    1 2 50000 0 -
    1 2 5 0 -30

  * aven: loading a .3d file with no survey data (or which has a valid header
    but is broken later) with a survey already loaded doesn't work well.
  * img.c: eliminate duplicate img_LABELs when reading .PLT files.
  * multiple readings:

    average bearings specially - they don't average like normal numbers

    %age gradients should probably average the same as angle gradients

    Document - works like so:

    *set open {
    *set close }
    *calibrate compass {000.5 001.0 001.25}
    1 2 10.23 {000 001} -02
    2 3 {10.16 10.17} 127 {+06 +05}
    3 4 11.98 007 {+03 +03}

    Implement as extension to number format so any suitable numeric value to be
    repeated?

Aven

  * check on monochrome, 16, and 256 colour displays - especially that depth
    colouring looks OK
  * Feed back redraw time to key based movement as in caverot? Or perhaps best
    not to? It depends on whether we expect people to hold down keys or not...
    Perhaps something smart where the first press is a fixed size, then after
    that it depends on the redraw?
  * aven for MSDOS?
  * max (or fullscreen) on startup option. Or just remember last window size?
  * dot (or some mark) for a fixed point not otherwise used
  * distances to nearest cm, not m (inch or 0.1ft, not ft)
  * give coords of nearest point _instead_ of mouse (x,y)/alt, not as well?
  * Z/X a bit "exponential"
  * tilt speed and direction on keys?
  * print subsurvey scales to whole plot???
  * grid: If you zoom in a long way, the grid display goes completely bonkers.
    I refer you to http://www.srcf.ucam.org/~dl267/snapshot1.png for an
    example.

Printing

  * aven: Finish adding calls to msg() so messages can be translated.
  * aven: tilt and rot should be floating point values, not integers...
  * aven: Implement "print clipped to what's in the window".
  * aven: the preview window should display all the pages in one window,
    arranged in an n x m grid. We should be able to do this by subclassing
    wxPreviewFrame and overriding CreateCanvas. And CreateControlBar too
    perhaps, though we could just make the page nav buttons scroll the window
    to show that page.
  * aven: Once the above is done, the user should be able to enable/disable
    pages by clicking on them like in Toporobot (or on checkboxes next to them
    which I think is what Compass does?) It would also be nice to be able to
    drag the survey around relative to the pages so that page breaks can be
    moved to the least awkward positions...
  * Check skip blank pages works (checked printps)...
  * printdm: put standard scaling in print.ini for canon bj (work out what's up
    with vertical size...)
  * On Windows, if the default printer is on another machine which isn't
    switched on, there's a 5 second delay when bringing up the page setup
    dialog, during which aven is unresponsive. Some other applications exhibit
    similar 5 second delays, so we're not alone.

Documentation

  * Platform specific versions of docs?
  * Put more terms in terminology in docs ? trip, instrument, ...
  * Finish off manual loose ends.
  * Look at using docbook2man instead of docbook-to-man (command is nsgmls
    man_aven.sgml | sgmlspl /usr/lib/perl5/sgmlspl-specs/docbook2man-spec.pl).
    Issues are: double space between sentences is lost; double blank lines
    appear in output; &bsol; isn't understood.
  * Make sure there's documentation for all the various settings in print.ini
    (colours aren't documented at present)

Survex file format

  * flag legs as "skeletal" or something? (i.e. not in the cave passage) - e.g.
    a radiolocation leg from one passage to another isn't surface, but it isn't
    in the cave itself either (it's through rock). You could just call it
    surface but maybe later we want to use the surface flag to produce points
    for a surface triangulation...
  * ?outlaw prefixes on stations in data legs (as Todd has lobbied for) and
    then the prefix of a leg == prefix of each end...?
  * comma separated dates in *date?
  * Find a solution to Thilo's "." problem.
  * Units in *fix (currently metres)

Internationalisation and Localisation

  * extract help screen from caverot.c for translation
  * quotes in messages - translate too? e.g. `XXX' to   XXX  . Eric suggests
    not in French.
  * extract --help messages for translation.
  * control of output units in .err file and in stats at end of cavern run? In
    fact anywhere we report a value in degrees or metres, the units should be
    selectable

Test Suite

  * test diving data with compass omitted (plumbed)
  * more tests for direction
  * improve 3d torture test and try to automate its use if possible.
  * Compass .mak and .plt and CMAP .xyz in test suite?
  * img.c: test routines in test suite?

Miscellaneous

  * resolve entries in TODO; resolve FIXMEs in code
  * Default variance for topofil counter? (currently same as that of tape)
  * Rather than forming a linked list of components, solve each as it is
    identified? Beware of issues like those that revcomplist test checks.
  * Don't split other traverses at articulating traverses when reporting error
    stats.
  * caverot: on RISC OS now fall back to using 2 or even just one screen bank
    if we can't find a mode where we can create 3 banks [FIXME: need to test
    this works]
  * flag nosurvey legs in .3d file
  * sort out title which goes in .3d file for this (if no *includes in ... it
    gets the title of the leafname of this .svx file, otherwise it's the
    leafnames of the *include-d files, comma-separated):

    *begin mycave
    *title "My Cave"
    ...
    *end mycave

  * make img more modular (convert to C++?)
  * add support for .KST? Gary says documentation is out of date, and recent
    releases of winkarst have broken .KST export/import...
  * resolve documentation/examples mismatch for station based .XYZ files and
    implement reading of legs from them.
  * diffpos: compare connectivity (i.e legs as well as stations) - e.g.

    foo.1 moved by (0.02, 0.10, -0.06)
    leg between foo.1 and bar.2 removed
    ...
    bar.2 moved by (-0.02, -0.05, 0.03)

  * improve .plt export to include less crude survey structure.
  * MacOS X packaging - make Aven.app a bundle - structure like so:

            Aven.app/
                    Contents/
                            MacOS/
                                    Aven
                    Info.plist
                    Resources/

    And we need to set Aven.app's bundle bit.
  * look at solution by QR factorisation in matrix.c more
  * consider disabling the more expensive asserts - turning them all off speeds
    up cavern by about 10%.
  * InnoSetup: UninstallDisplayIcon = {app}\foo.ico (or .exe) | in [Files] ...
    ; Flags: isreadme | {userdesktop} to add icons | -mail | do we remove file
    associations on uninstall?

