Survex To-Do List

Candidates for sorting out before Survex 1.2

  • Closing a running cavernlog window causes a crash.
  • Update translations.
  • After keyboard controlled movement, the measuring line/circle doesn't
    reappear until the mouse is moved (e.g. plan/elevation transition with P/
    L).
  • Save cavern log from aven.
  • Sort out display of full unicode in OpenGL window (currently we only handle
    latin1 there, which is sufficient for all the current i18ns).
  • img should return img_XSECT from Compass PLT files.
  • Fix depth clipping on grid
  • Consider using "legend" instead of "info box"...
  • Reword "Shift Survey Left", etc?
  • Look at rewording extend.sgml (AndyA comments)
  • message.c should perhaps use GetUserDefaultUILanguage() on WinMe/
    Windows2000 or later to find language id. It's what MS say you should use,
    although some of the comments here suggest that perhaps it's not ideal (and
    wx still uses GetUserDefaultLCID() too): http://blogs.msdn.com/michkap/
    archive/2006/05/22/604509.aspx
  • If some surveys have no date info and all others have the same date we
    currently turn off date colouring, which isn't ideal...
  • Lots of aven things need documenting.
  • Does anyone use Controls->"Reverse Sense"? It made some sense with caverot
    but now seeing the mouse pointer makes people expect the default motions
    (for right button drag particularly).
  • Clean up export.cc and allow scale, line width, etc to be specified
  • Output from cavern doesn't appear in aven's window until run has finished
    if we start aven with a .svx file, but works fine if we load a .svx file
    into an already running aven...
  • Would cavern output be better inside the main aven frame rather than as a
    separate window?
  • LRUD in Aven Export
  • Better handling of missing LRUD values
  • Move gl* calls out of gfxcore.cc into gla-gl.cc!
  • Smooth wrinkles in presentation code (stop pres on Open or New, changing
    focus on listctrl as presentation plays doesn't really work properly)
  • Draw the measuring line directly onto the front buffer, so we can remove it
    with a copy from the back buffer and redraw it in the new position without
    a re-render.
  • Round the measuring line coords so the ring is a nice shape? Or just
    antialias the ring, "there" blob and line?
  • Process all pending input before rerendering to improve responsiveness.
  • Check timing code - we need to glFinish to ensure it's all drawn, and that
    may be needed to get meaningful timing info.
  • 3d format:
      □ sort out XSECT - I'm sure I meant there to be 1 and 2 byte forms, not 2
        and 4 - 4 byte is only useful if a passage dimension is > 327.67m!
      □ add "this is an extended elevation" flag
      □ store "file processed on" date as a time_t rather than a string?
      □ store survey error values for each leg
      □ store equated stations in some way
      □ store legs by end stations rather than repeating coordinates over and
        over?
  • Add "colour by survey".
  • Implement "Skip blank pages" in aven printing

Probably post-1.2

  • Terrain data
  • *fix with datums etc
  • different keyboard layouts mean that some key choices don't make much
    sense...
  • *data chamber ...
  • *data nsew ... for pitches
  • Easy way to "print extended elevation"
  • Unix full screen mode needs to allow dialogs to appear over the window
    (e.g. try Ctrl+O while in full screen mode). I've added a tweak to drop out
    of it before showing dialog and return after, but this isn't ideal. It
    would be best of all if wx got this right...
  • Right-click menus for indicators?
  • Optional lazy label redraw during drags? Or turn on at some redraw time
    threshold...
  • Warn bearings not 3 digits, gradient not <sign><digit><digit>
  • Allow angles as deg/min/sec (for theodolite data) (060°10'15" as 060 10 15,
    or 060.1005 (crap notation))
  • Add support for bearings of form N20E (ie [NS][0-9]+[EW])?
  • should % after a clino reading work?
  • cavern: auto declination?
  • Sort out gross error detection code
  • Fixing a point by triangulation?
  • Theodolite + level:
      □ delta(bearing (relative to 0 at start)
      □ delta(horizontal)
      □ delta(vertical) / maybe "clino" instead
  • Theodolite only:
      □ delta(bearing (relative to 0 at start)
      □ delta(horizontal)
      □ infinite sd for z
  • Infinite sds so we can fix in x and y only (or z only)?
  • use more accuracy than nearest point (1/72") in printps?
  • Some way to view older/newer version of survey
  • Label lengths aren't considered when working out image size when printing
    so a long label can spill off the edge of the printout
  • For warnings such as "Suspicious compass reading", report the reading in
    question in the error message (in the text form given in the file). Also
    report values when warning about problems with processed readings.
  • legs: implied: inloop/plumb/nosurvey, diving, other styles
  • legs: "dubious" for "tapeless" legs - bearing along continuation...
  • legs: hydrology - fossil/active/not recorded/static water/underwater (sump)
    [diving underwater by default? except style can mean altimeter too...]
  • legs: floor type - mud/sand/breakdown/flowstone/etc and can then used LRUD
    to draw crude survey...
  • legs: "commented out" flag? syntax check data but otherwise ignore
  • station flags: "important" - e.g. top camp "fixed" point / junction,deadend
    (implied by order) / articulation pt (know for nodes I think a station is
    if at least one of its nodes is)
  • Allow valid range for an instrument to be specified. Tie in with
    *instrument. *units date - ranges for dates - e.g. "1990-" or "jun-aug"...
  • Maybe station lists should know how long they are?
  • cope with any combination of readings which gives enough info ???
  • Articulation point code: ideally the articulation point code should allow
    further network reductions to happen after splitting at articulation
    points?
  • leg and station "comments":

    *data passage station left right up down comment

    1 1.0 - 50+ 0.5 "large cairn"

    2 ...

    *data normal station l r u d comment newline tape compass clino

    1 1.0 - 50+ 0.5 "large cairn"

      10.78 123 -03

    2 ...

    comment can be omitted "-" or not present if at end of line...? commentall?
  • GPS support (e.g. export survey as GPS coords)
  • print to an image file (use gd? or wxwidgets...)
  • Allow covariances to be specified in cartesian style?
  • grid on printouts
      □ grid crosses option (only draw cross at intersections, not a full
        grid).
      □ [(x,y) of a point to go through (easting, northing)
      □ x spacing, y spacing (default to x spacing)
      □ orientation (bearing of y-axis?) (defaults to 0)]
  • Mark: "surface.png is for a textured landscape -- there needs to be a menu
    option to select the texturing on/off, and this should be the texture used.
    map.png is just a different surface overlay for Loser."
  • Profile aven further (for both speed and memory usage)
  • by default put crosses on those points with no legs attached (unused fixed
    points)?
  • label junctions/dead ends?
  • section colouring/selective labelling
  • clipping - want to select a clip sphere (or maybe cube) centred on centre
    on rotation I think.
  • colour by cave (and more generally by sub-prefix): maybe "aven --survey 161
    --colour-by-sub-prefix all.3d" would result in lhroute, rhroute, adrian,
    etc all getting different colours...
  • Some way to display all the names of an equated station (e.g. in pop-up
    window or the info panel).

Miscellaneous 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?

Printing

  • 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...)

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.
  • 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

  • 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 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.
  • 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%.

