===== 7 The next Therion ===== This chapter is a collection of notes about the current evolution of Therion, and open problems. In the distribution there is a file with the "todo" list of the features to add to therion: * warning: if reading/backreading difference is big * debug: add survey name under scrap name when debug scrap-names * new surface line symbols: dripline, cliff, landform, surface-contour (-altitude??) * new centerline point symbols: spring, sink, lake, doline, entrance, comment * new points: camera/picture/hyperlink * points: add centerline flags for sink, spring and doline and map these flags to metapost symbols in export * new lines: "rope". With options: "anchor" on/off/auto (point option) and "line-adjust" on/off/auto * new areas: "flowstone", "bedrock" * new area option: -gradient [fx fy tx ty] (f; from, t: to) * map coloring: * saturation as color parameter * use grid settings in altitudes * export maps: provide LRUD envelope on 2D exported maps * export: add projection to metapost; use different symbols in elevation and plan (eg, stalactites) * export pdf: add bookmarks to PDF files (maps?) * export: export scrap walls into XVI images * export: new 3D export structure (layout-3d, OpenGL wxWidgets 3D viewer) * export: 3d shape file (shp) export All GIS can import shape files and display the info; for example GRASS [[http://grass.itc.it/|http://grass.itc.it/]] and QGis [[http://qgis.org/|http://qgis.org/]]. * export: export all symbol sets is some reasonable format (PDF, ? HTML) * import: add option shift x y z units * import: plt and 3d import; read LRUD data and survey structure a special way * config: add user define map headers into layout (probably using a meta language similar to HTML) * layout: depth-bar [position| off ] * support for multiple depth-bars * layout: grid-bar [position|off] [position|off] * support for multiple grid bars. * //s_depthbar//() - divide into pieces (to fit into figure size), * //s_gridbar//() - divide into pieces (to fit into figure size). * layout: add statistics survey * tests: redo tests directory structure * therion --protractor * automatic selection of top-level maps up to basic maps if exists * no joins where starting/ending points are identical * add rotation of 3D surface into surface calibration * 3d: fix bug with internal hole, where no part of it is wall Other items are on a wish-list ("would be nice to have"): * find different distortion measure * export database: * format text|txt * export loop closure data * surface selection according to coverage * 2D: all surfaces that covers current map sorted by size and coverage * 3D: make a surface selection and clipping * output of under/overlying maps in a different place + draw joining arrows to previews * add support for output units (date format, feets etc...) * preview beside * add support for multiple metapost files (more than 4096 scraps) * add -map-level scrap to select: each scrap will be a separate map * multiple selections in thconfig file * error when two similar points in a scrap * allow ''station'' and ''mark'' wherever ''equate'' is allowed There are similar lists for ''xtherion'', and there are annotaions for the internals of the program (not in english). The file [[https://github.com/therion/therion/blob/master/TODO.M|TODO.M]] refers to //The Therion Book//, and is not in english. Finally the file [[https://github.com/therion/therion/blob/master/TODO.SM|TODO.M]] (also not in english) ... \\ ==== 7.1 Output ==== ----- == 7.1.1 Plan and extended elevation on the same output == When the cave is small, it would be nice to have both plan and extended elevation on the same pdf page. Here is the author's reply: > I am just not sure, how this should be done. I see only one way: - > Replace all sections in the map with automatically generated numbers. - > List all sections with these numbers in map legend or separate page in > atlas. > This I can imagine, but I am not sure, whether this is what you asked for. > > In any case - we will open cross-sections sooner or later. I am currently > working on new 3D generation algorithm and for this, we will definitely need > exact positions of cross sections in 3D. So discussion and suggestions are > welcome. \\ ==== 7.2 Areas ==== ----- __//area//__\\ Wookey (2005-08-17) pointed out some problems with areas. Infact (M. Budaj) the use of areas should be reduced to a minimum, and replaced, whenever possible, with point symbols. __//(subtype value)//__\\ If is advisable to avoid areas splitted on two scraps. In that case one should put one area on each scrap, with a straight invisible border line (option "-subtype invisible") [thwiki 17] where the scrap ends, but there would still be coloring problems (for instance coloring the map with "altitude"). This notwithstanding, in caves with several pools and mud banks, areas splitted on two scrap are almost inevitable. Another problem happens when you split a line which is part of the border of an area. The two new lines get new ids, while the area still contains the id of the old line (which does not exists any more). Therefore when the project is compiled with ''therion'', there is an error like (here "l14-480--196" is the old id) object does not exist -- l14-480--196 A little help comes from ''xtherion'': clicking on the error, it brings up the map editor with the problem causing area selected. You must go to the "Area control" to check the lines on the border of the area, and find that id. Unfortunately ''xtherion'' does not highlight the area in the canvas and it is not so easy to find the other lines of the border, and to fix the problem. Another possibility is to search the id with the text editor open on the file listed on the error line. The problem is that a graphical item, the id of which is referred by another item, is dropped leaving a dangling reference. This is a problem with ''xtherion'', which should use reference counting techniques to keep into account the number of references to the objects. At a minimum ''xtherion'' should give a warning about deleting a referenced object ... __//join (.th command)//__\\ Probably a similar problem occurs with the "join" command. In this case the work of ''xtherion'' would be more difficult because a "join" connects item from different files, and the "join" appears in a file at a higher (logical) level. ''xtherion'' needs to have this higher-level file open to find whether the deleting item occurs in a "join". Another problem is the "Show area" command of the "Area control". It is useful, but it seems that it shows only the lines of type "border", and not those of type "wall" or "contour". \\ ==== 7.3 PDF viewer ==== ----- It would be nice if ''xtherion'' interact with a PDF viewer to provide a view of the exported pdf (map or atlas). This is not very disturbing, because right now one can have two windows, one for ''xtherion'' and the other for the PDF viewer, and switch between them to visualize the output after the ''therion'' processing. Using ''xpdf'' one could have a tighter integration of the viewer with ''xtherion''. The viewer could be spawned by ''xtherion'' with the command "xpdf -remote nome_server file.pdf". In this case, if there is no ''xpdf'' server running, a new instance of the program is executed. On the other hand, if there is one, this is passed a command to open and load (or reload) the requested PDF file. ==== Things which seem to be implemented by now ==== * some comment to continuation * error: report line number when error * "fixed-ladder", "rope-ladder", "via-ferrata" * add user defined color tables into configuration files * chapter|explo-date|topo-date colormodes