Survex To-Do List

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!
  • store equated stations in some way
  • store legs by end stations rather than repeating coordinates over and over?

Aven

  • Compare HPGL export with what printhpgl used to give.
  • 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.
  • After keyboard controlled movement, the measuring line/circle doesn't
    reappear until the mouse is moved (e.g. plan/elevation transition with P/
    L).
  • Fix depth clipping on grid
  • 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 line width, etc to be specified
  • Better handling of missing LRUD values
  • 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.
  • 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.
  • Allow control of colours in "colour by survey"; allow controlling what
    level colours are applied at e.g. colour by cave (and more generally by
    sub-prefix)
  • Implement "Skip blank pages" in aven printing
  • different keyboard layouts mean that some key choices don't make much
    sense...
  • File->Extended Elevation - provide a way to specify a spec file? Or better
    a UI to control the extending.
  • Optional lazy label redraw during drags? Or turn on at some redraw time
    threshold...
  • 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
  • print to an image file?
  • 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)]
  • 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.
  • Some way to display all the names of an equated station (e.g. in pop-up
    window or the info panel).
  • 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?
  • improve .plt export to include less crude survey structure.
  • If multiple methods for drawing crosses and/or blobs pass the visual
    fidelity check, check which is fastest.
  • Lots of aven things need documenting.

Documentation

  • Platform specific versions of docs?
  • Put more terms in terminology in docs ? trip, instrument, ...
  • Finish off manual loose ends.
  • Look at rewording extend.sgml (AndyA comments)

Internationalisation and Localisation

  • Update translations.
  • length units in .err file?

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: explicitly test routines in test suite?

Miscellaneous

  • resolve FIXMEs in code
  • 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)

Cavern

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

    1 2 50000 0 -
    1 2 5 0 -30

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

  • 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%.
  • Warn bearings not 3 digits, gradient not <sign><digit><digit>
  • Sort out gross error detection code
  • For warnings such as "Negative adjusted tape reading" report the value of
    the adjusted tape reading (currently we just highlight the reading as it
    appears in the Survex file).
  • legs: implied flags: inloop/plumb
  • legs: "dubious" for "tapeless" legs - bearing along continuation...
  • 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)
  • Maybe station lists should know how long they are?
  • Articulation point code: ideally the articulation point code should allow
    further network reductions to happen after splitting at articulation
    points?

Survex file format

  • *data chamber ...
  • *data nsew ... for pitches (bearings rather than having to be NSEW)
  • Allow angles as deg/min/sec (for theodolite data) (060°10'15" as 060 10 15,
    or 060.1005 (crap notation))
  • should % after a clino reading work?
  • Fixing a point by triangulation?
  • 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?
  • 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)?
  • legs: "commented out" flag? syntax check data but otherwise ignore
  • 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...
  • Allow valid range for an instrument to be specified. Tie in with
    *instrument. *units date - ranges for dates - e.g. "1990-" or "jun-aug"...
  • cope with any combination of readings which gives enough info ???
  • 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?
  • Allow covariances to be specified in cartesian style?
  • 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)

img library

  • eliminate duplicate img_LABELs when reading .PLT files.
  • img should return img_XSECT from Compass PLT files.
  • 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.

