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