Reimplement aven's cavern log window
[survex.git] / doc / TODO.htm
blobaed480c685a4177339bf7d01883630e836eee6cb
1 <HTML><HEAD>
2 <TITLE>Survex To-Do List</TITLE>
3 <STYLE type="text/css"><!--
4 BODY, TD, CENTER, UL, OL {font-family: sans-serif;}
5 -->
6 </STYLE>
7 </HEAD><BODY BGCOLOR=white TEXT=black>
8 <H1>Survex To-Do List</H1>
10 <H2>3d format</H2>
12 <ul>
14 <li>sort out XSECT - I'm sure I meant there to be 1 and 2 byte forms, not 2
15 and 4 - 4 byte is only useful if a passage dimension is &gt; 327.67m!
17 <li>store equated stations in some way
19 <li>store legs by end stations rather than repeating coordinates over and
20 over?
22 </ul>
24 <H2>Aven</H2>
26 <ul>
28 <li>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.
30 <li>After keyboard controlled movement, the measuring line/circle doesn't
31 reappear until the mouse is moved (e.g. plan/elevation transition with P/L).
33 <li>Fix depth clipping on grid
35 <li>Does anyone use Controls-&gt;"Reverse Sense"? It made some sense with
36 caverot but now seeing the mouse pointer makes people expect the default
37 motions (for right button drag particularly).
39 <li>Clean up export.cc and allow line width, etc to be specified
41 <li>Better handling of missing LRUD values
43 <li>Smooth wrinkles in presentation code (stop pres on Open or
44 New, changing focus on listctrl as presentation plays doesn't really work
45 properly)
47 <li>Draw the measuring line directly onto the front buffer, so we can remove it
48 with a copy from the back buffer and redraw it in the new position without a
49 re-render.
51 <li>Process all pending input before rerendering to improve responsiveness.
53 <li>Check timing code - we need to glFinish to ensure it's all drawn, and that
54 may be needed to get meaningful timing info.
56 <li>Allow control of colours in "colour by survey"; allow controlling what level
57 colours are applied at e.g. colour by cave (and more generally by sub-prefix)
59 <li>Implement "Skip blank pages" in aven printing
61 <li>different keyboard layouts mean that some key choices don't make much sense...
63 <li>File-&gt;Extended Elevation - provide a way to specify a spec file? Or
64 better a UI to control the extending.
66 <li>Optional lazy label redraw during drags? Or turn on at some redraw time
67 threshold...
69 <li>Some way to view older/newer version of survey
71 <li>Label lengths aren't considered when working out image size when
72 printing so a long label can spill off the edge of the printout
74 <li>print to an image file?
76 <li>grid on printouts
77 <ul>
78 <li>grid crosses option (only draw cross at intersections, not a full grid).
79 <li>[(x,y) of a point to go through (easting, northing)
80 <li>x spacing, y spacing (default to x spacing)
81 <li>orientation (bearing of y-axis?) (defaults to 0)]
82 </ul>
84 <li>Profile aven further (for both speed and memory usage)
86 <li>by default put crosses on those points with no legs attached (unused
87 fixed points)?
89 <li>label junctions/dead ends?
91 <li>section colouring/selective labelling
93 <li>clipping - want to select a clip sphere (or maybe cube) centred on
94 centre on rotation I think.
96 <li>Some way to display all the names of an equated station (e.g. in pop-up
97 window or the info panel).
99 <li>check on monochrome, 16, and 256 colour displays - especially that depth
100 colouring looks OK
102 <li>Feed back redraw time to key based movement as in caverot? Or perhaps best
103 not to? It depends on whether we expect people to hold down keys or not...
104 Perhaps something smart where the first press is a fixed size, then after that
105 it depends on the redraw?
107 <li>improve .plt export to include less crude survey structure.
109 <li>If multiple methods for drawing crosses and/or blobs pass the
110 visual fidelity check, check which is fastest.
112 <li>Lots of aven things need documenting.
114 </ul>
116 <H2>Documentation</H2>
118 <ul>
120 <li>Platform specific versions of docs?
122 <li>Put more terms in terminology in docs ? trip, instrument, ...
124 <li>Finish off manual loose ends.
126 <li>Look at rewording extend.sgml (AndyA comments)
128 </ul>
130 <H2>Internationalisation and Localisation</H2>
132 <ul>
134 <li>Update translations.
136 <li>length units in .err file?
138 </ul>
140 <H2>Test Suite</H2>
142 <ul>
144 <li>test diving data with compass omitted (plumbed)
146 <li>more tests for direction
148 <li>improve 3d torture test and try to automate its use if possible.
150 <li>CMAP .xyz in test suite?
152 </ul>
154 <H2>Miscellaneous</H2>
156 <ul>
158 <li>resolve FIXMEs in code
160 <li>diffpos: compare connectivity (i.e legs as well as stations) - e.g.
162 <pre>
163 foo.1 moved by (0.02, 0.10, -0.06)
164 leg between foo.1 and bar.2 removed
166 bar.2 moved by (-0.02, -0.05, 0.03)
167 </pre>
169 </ul>
171 <H2>Cavern</H2>
173 <ul>
175 <li>This gives "*** Singular!!!" warning with DEBUG_INVALID on:
176 <pre>
177 1 2 50000 0 -
178 1 2 5 0 -30
179 </pre>
181 <li>Default variance for topofil counter? (currently same as that of tape)
183 <li>Rather than forming a linked list of components, solve each as it is
184 identified? Beware of issues like those that revcomplist test checks.
186 <li>Don't split other traverses at articulating traverses when reporting error
187 stats.
189 <li>sort out title which goes in .3d file for this (if no *includes in ...
190 it gets the title of the leafname of this .svx file, otherwise it's the
191 leafnames of the *include-d files, comma-separated):
193 <pre>
194 *begin mycave
195 *title "My Cave"
197 *end mycave
198 </pre>
200 <li>look at solution by QR factorisation in matrix.c more
202 <li>consider disabling the more expensive asserts - turning them all off
203 speeds up cavern by about 10%.
205 <li>
206 Warn bearings not 3 digits, gradient not &lt;sign&gt;&lt;digit&gt;&lt;digit&gt;
208 <li>Sort out gross error detection code
210 <li>For warnings such as "Negative adjusted tape reading" report the
211 value of the adjusted tape reading (currently we just highlight the
212 reading as it appears in the Survex file).
214 <li>legs: implied flags: inloop/plumb
216 <li>legs: "dubious" for "tapeless" legs - bearing along continuation...
218 <li>station flags: "important" - e.g. top camp "fixed" point /
219 junction,deadend (implied by order) /
220 articulation pt (know for nodes I think a station is if at least one
221 of its nodes is)
223 <li>Maybe station lists should know how long they are?
225 <li>Articulation point code: ideally the articulation point code should allow
226 further network reductions to happen after splitting at articulation
227 points?
229 </ul>
231 <H2>Survex file format</H2>
233 <ul>
235 <li>*data chamber ...
237 <li>*data nsew ... for pitches (bearings rather than having to be NSEW)
239 <li>Allow angles as deg/min/sec (for theodolite data) (060&deg;10'15" as 060 10
240 15, or 060.1005 (crap notation))
242 <li>should % after a clino reading work?
244 <li>Fixing a point by triangulation?
246 <li>multiple readings:
248 average bearings specially - they don't average like normal numbers
250 %age gradients should probably average the same as angle gradients
252 Document - works like so:
253 <pre>
254 *set open {
255 *set close }
256 *calibrate compass {000.5 001.0 001.25}
257 1 2 10.23 {000 001} -02
258 2 3 {10.16 10.17} 127 {+06 +05}
259 3 4 11.98 007 {+03 +03}
260 </pre>
261 Implement as extension to number format so any suitable numeric value to be
262 repeated?
263 <li>Theodolite + level:
264 <ul>
265 <li>delta(bearing (relative to 0 at start)
266 <li>delta(horizontal)
267 <li>delta(vertical) / maybe "clino" instead
268 </ul>
270 <li>Theodolite only:
271 <ul>
272 <li>delta(bearing (relative to 0 at start)
273 <li>delta(horizontal)
274 <li>infinite sd for z
275 </ul>
277 <li>Infinite sds so we can fix in x and y only (or z only)?
279 <li>legs: "commented out" flag? syntax check data but otherwise ignore
281 <li>legs: hydrology - fossil/active/not recorded/static water/underwater
282 (sump) [diving underwater by default? except style can mean altimeter
283 too...]
285 <li>legs: floor type - mud/sand/breakdown/flowstone/etc and can then used
286 LRUD to draw crude survey...
288 <li>Allow valid range for an instrument to be specified. Tie in with
289 *instrument. *units date - ranges for dates - e.g. "1990-" or
290 "jun-aug"...
292 <li>cope with any combination of readings which gives enough info ???
294 <li>leg and station "comments":
296 <pre>*data passage station left right up down comment
298 1 1.0 - 50+ 0.5 "large cairn"
300 2 ...
302 *data normal station l r u d comment newline tape compass clino
304 1 1.0 - 50+ 0.5 "large cairn"
306 10.78 123 -03
308 2 ...
309 </pre>
311 comment can be omitted "-" or not present if at end of line...?
312 commentall?
314 <li>Allow covariances to be specified in cartesian style?
316 <li>flag legs as "skeletal" or something? (i.e. not in the cave passage) -
317 e.g. a radiolocation leg from one passage to another isn't surface,
318 but it isn't in the cave itself either (it's through rock). You could
319 just call it surface but maybe later we want to use the surface
320 flag to produce points for a surface triangulation...
322 <li>?outlaw prefixes on stations in data legs (as Todd has lobbied for)
323 and then the prefix of a leg == prefix of each end...?
325 <li>comma separated dates in *date?
327 <li>Find a solution to Thilo's "." problem.
329 <li>Units in *fix (currently metres)
331 </ul>
333 <H2>img library</H2>
335 <ul>
337 <li>make img more modular (convert to C++?)
339 <li>add support for .KST? Gary says documentation is out of date, and recent
340 releases of winkarst have broken .KST export/import...
342 <li>resolve documentation/examples mismatch for station based XYZ files and
343 implement reading of legs from them.
345 </ul>
347 </BODY></HTML>