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/ and QGis 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 <survey-name>
- tests: redo tests directory structure
- therion –protractor <options>
- 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
andmark
whereverequate
is allowed
There are similar lists for xtherion
, and there are annotaions for the internals of the program (not in english). The file TODO.M refers to The Therion Book, and is not in english. Finally the file 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