(1) Whitespace use matched better to surrounding code
(2) While(1) in TGArray::rectify_heights replaced with do/while loop
(3) Incorrect interpolation for 2 points fixed in altitude_from_grid
(4) exit(1) replaced with return EXIT_FAILURE in cliff-decode.cxx
Added cliffs to default_priorities
Ignore cliff files when constructing terrain
Use cliff files when calculating elevations
Set up chopper to allow file extension to be specified
Specify cliff file name when chopping
Allow chopper to chop lines as well as polygons.
- reworked priorities.hxx/.cxx to make valgrind happy. It also allows us to add more features per area (like smoothing).
- remove TG_MAX_AREA_TYPES - we had a merge request for this, but this does essentially the same thing with the refactoring.
- fixed some edge matching introduced in multithreaded construct.
- tgconstruct objects now live for an entire stage. 1 for each thread - this introduced the memory leaks, and some issues.
interesting side effect is that we do less alloc / free, since we use std::vectors which when cleared, don't actually free
memory, so by the end, we've allocated enough entries for the largest tile.
- fixed linear feature issue in genapts850 - the refactor caused some of the old clean functions to remove too many polys!
with cgal, we need far less cleaning - just do what construct does, and we can still parse all airports, and lines are back.
- used to expand pavement polygons so they overlap slightly (5cm)
This prevents slivers being formed between pavements when designers
add their own taxiway shoulders, and try to line them up instead of
placing the boundary 'under' the taxiway.
- also useed to create the default airport base. This allows the base
to follow the taxiways better - allowing concave boundaries, instead
of the previous convex hull.
Memory leaks squashed. Fixed several memory leaks reported by valgrind.
- GenApt850 can now run forever (or at least until it segfaults)
Very long linear segments in linear features are now broken up to
avoid triangulation errors
Added back some clipper boolean operations (diff and union). These can
be used instead of the GPC functions by using tgPolyGonDiffClipper and
tgPolygonUnionClipper. GPC had crashed in a few airports when clipping
linear features. Using the clipper routines don't crash. More investigation
is needed. It may be something about the polygons being clipped more that
the clipping action itself. In these problem airports, there are some
linear features extending far from the airport.
( I had thought those issues were fixed :( )
More warning cleanups.
- break up and expand shoulder polys, so they overlap runways.
This keeps cracks from forming between the shoulder and runway
do to roundoff error
- Add verbose option to polygon_tesselate functions to aid in debugging
can set at runtime to produce triangulation output for just 1 poly.
- add remove_small_cycles to poly cleanup routines before triangulation
- more warnings cleanup in ClosePoly.cxx
- add more output in normal execution path, as some airports can go for
hours without printing any status. Hard to tell if it's locked up