1
0
Fork 0
Commit graph

968 commits

Author SHA1 Message Date
Peter Sadrozinski
adfb4482e2 experimental - use cgal for triangulation
try breaking up construct_bucket into stages for better tile matching
2012-10-06 22:10:06 +02:00
Christian Schmitt
e719fa66d2 Rename fgfs-tools-server and fgfs-tools-client to tg-construct-server and tg-construct-client 2012-10-06 22:10:06 +02:00
Christian Schmitt
f32d340921 Remove VC90 project files as CMake has taken over and they are outdated 2012-10-06 22:10:06 +02:00
Christian Schmitt
8f2c0f6cb9 rename fgfs-construct to tg-construct 2012-10-06 22:10:06 +02:00
Peter Sadrozinski
c1de74f4fa Some fixes
- genapt850 : some airports (LSMM) have multiple airport boundaries.
  This caused a lot of the airport to not get a smoothed base (so some landclass polys were not clipped against the airport).  Changed boundary from a single ClosedPolygon to a list.  Seems to work.
  Some misc warnings cleanup in scheduler, and parser

- Clipper using accumulator results in a significant speed boots - enable clipper and the accumulator by default.

- ogr-decode - most of the crashes I'm getting are due to non-continuous roads.  Within a line string, I create adjacent polys that snap correctly.  On the ends, I generate 90 degree angles.  Some linestrings should be consecutive.  As a workaround, I am now extending every start and end poly of linestrings by 0.1 meters.  It makes it better, but I need to do a better job of creating continuous roads.  This will require some preprocessing of the entire shapefile.  (Perhaps all line data shapefiles, to handle correct overpass / underpass logic)
2012-10-06 22:10:05 +02:00
Peter Sadrozinski
346ae44e14 - Fixed issues where an entire landclass poly wold no triangulate.
- Increase epsilon when looking for intermediate nodes
  (setup method for calling function to specify the bounding box and error
   epsilon in case this had adverse effects on genapts)
  This fixes many of the small vertical gaps (T-Junctions)
- Fix an issue with merge slivers.  The clip mask optimization broke
  merge slivers.  WHen merging the slivers with a poly segment, it also
  needs to be merged with the clip mask, so when the segments are
  seperated from the mask, they include the sliver.
- Added to the shapefile debug.
  --debug_shape=tileid:all generates shapefiles for every polygon in the tile
  This is usefull to setup individual debug polys on subsequent passes.
  Also added load, clip, and with_slivers and clean layers for debugging
2012-10-06 22:10:05 +02:00
Peter Sadrozinski
79bdae93fc forgot to include the shape id during tesselation 2012-10-06 22:10:05 +02:00
Peter Sadrozinski
5f83fe82c6 Implemented shape file debug capability via command line options:
--debug-dir=pathname points to the debug root directory.  each tile will create a sub directory in this existing directory. (default is '.')
--debug-shapes=tileid:shape1,shape2,etc..  lists the shapes to debug within a tile
example: if the tesselator crashes in shape id '123', you can rerun with --debug-shapes=2678440:337

implemented the same bounding box optimization from tesselate in FixTJunctions.  Also fixed a bounding box issue that could cause some
elevation points to be missed.

brought in the latest version of clipper - and moved the #define to the construct header

some debug cleanup (especially in polygon loading)
2012-10-06 22:10:05 +02:00
Peter Sadrozinski
cf6d6f42b9 add bounding box calculations to optimize tesselation 2012-10-06 22:10:05 +02:00
Peter Sadrozinski
feeaf602b7 added seperate-segments option to ogr-decode.
- generates an intermediate file for the whole linestring, but as seperate poly/texcoord pairs
- construct generates the union ofthe polys for the main clip routine
- intersection ot the original segment with the clipped mask gives the clipped segment
  This cuts ~75% of clipping time for really complex tiles.  8 tiles for Madeira went from
  4:45:00 to 1:04:00
2012-10-06 22:10:05 +02:00
Peter Sadrozinski
465fccc6a0 checkpoint - madeira builds fine with individual line segments 2012-10-06 22:10:05 +02:00
Christian Schmitt
df4e685c84 Remove fans/strips routines. We don't create fans anymore 2012-10-06 22:10:04 +02:00
Christian Schmitt
05e1670b56 Construct log output: some changes 2012-10-06 22:10:04 +02:00
Peter Sadrozinski
7e55efbb03 Optimize and cleanup
- fix really bad facelist generation.
- add a face area list in superpoly - each triangle area was calculated twice
- cleanup contruct_bucket - calls a function for each step.
  TODO : move groups of operations into their own files
         i.e. load, clip, elevation, shared edges, and output
2012-10-06 22:10:04 +02:00
Peter Sadrozinski
30573aa811 - Point nodes are now generated. Testing Madeira with tranisition shader enbled shows rocky cliffs, so I think thy are correct.
- some small optimizations made by storing triangle nodes in addition to triangle coordinates in TGSuperpoly.  More can be done, here.
- Brute force methos of generating alist of faces for each nodes that the face has is completely brute force.  Looking at original method, I think I can make it work, which should be a significant speedup.
2012-10-06 22:10:04 +02:00
Peter Sadrozinski
80ac1b38f5 - fixed malloc crash caused by - array index.
- fixed exception in find_point_inside.

NOTE: second fix can cause some gaps, as the polygon cleaning can result in a smaller poly than the original.  Need to clean polys after diff, before adding the result to the union.

I'm now able to build all of
adeira - and tile matchine looks good.  Some gaps visible when roads are cleaned incorrectly.
2012-10-06 22:10:04 +02:00
Peter Sadrozinski
22a8d28857 handle multiple tile construction in a single fgfs-construct run 2012-10-06 22:10:04 +02:00
Christian Schmitt
aa3abbe418 Some cosmetics for construct output 2012-10-06 22:10:04 +02:00
Peter Sadrozinski
7e1257ed8a - fixed t-junctions in roads - I was adding intermediate nodes after adding verticies from
neighboring tiles, but before adding the nodes from the result of clipping.
2012-10-06 22:10:04 +02:00
Peter Sadrozinski
ffc9db1b82 Checkpoint 2
- fixed tile matching using add_intermediate_nodes
- source code rearrangement phase 1 - remove a lot of libraries that are not used by other apps
- move some of the Buildtiles libraries that are used by other apps (and libs) into terragear lib directory
- debug message overhal - to show some progress.
TODO - not implemented yet
- caculate face nodes and save in superpoly (where the faces are stored)
- calculate node normals, and store in tg_nodes (where the nodes are stored)
TODO - bugs
- find_intermediate_nodes isn't working for a lot of roads - still many t-juntions making visible gaps
- flatten ocean nosed is also creating gaps
- there's a grey poly on madeira - need to investigate
2012-10-06 22:10:03 +02:00
Peter Sadrozinski
e6ac493395 checkpoint1
- all polys triangulated individually
- shared edge loading should be working, but there are still issues.
2012-10-06 22:04:44 +02:00
Christian Schmitt
3f996495c6 Issue 888: Fix for master branch: Correctly calculate the bucket center and radius.
The previous routine lead to offsets in the verts and thus to problems in the transition shaders.
2012-09-30 22:37:54 +02:00
Peter Morgan
4c975a0537 Doxygen and code documentation
Small patch to add some documentation
2012-09-26 18:11:36 +02:00
Christian Schmitt
fb6cee3bb0 Tweak PAPI/VASI object creation, add missing object types 2012-09-21 20:19:47 +02:00
Peter Sadrozinski
4cacaeb7f8 fix path construction when copying multiple objects in DoCustomObjects() 2012-09-21 10:23:56 -04:00
Christian Schmitt
133c0ef91b Improve buoys calculation for water runways 2012-09-19 10:53:28 +02:00
Christian Schmitt
42e4cefab3 Linear features: alternating green/amber lights were still missing.
Support for line light types is complete now.
2012-09-17 11:49:47 +02:00
James Turner
11bce4fce9 Fix typo in FindSimGear module 2012-09-17 08:59:56 +01:00
Christian Schmitt
473992e684 Helipad shoulder support 2012-09-16 22:15:45 +02:00
Christian Schmitt
d81f2c36e1 Add an area around the helipad if the size is not square 2012-09-16 22:15:44 +02:00
James Turner
fe7899c018 Update FindSimGear.cmake module
Bring in-line with the current version from FG.
2012-09-16 16:15:16 +01:00
Christian Schmitt
ccfde6914a Linear features: Yellow hold lights are unidirectional to the right of the line direction.
Implement this by creating a directional normal for these types.
2012-09-14 12:41:16 +02:00
Christian Schmitt
e8e1123db1 Helipads: correct light colour to yellow as in the spec, reduce amount
of circle lights and add edge lights with 5m spacing
2012-09-13 13:53:22 +02:00
Christian Schmitt
d83f1c265c Add textured lines to ogr-decode help output 2012-09-12 12:56:52 +02:00
Christian Schmitt
0957f0ccc8 Fix runway edge lights calculation. 2012-09-11 10:45:29 +02:00
Christian Schmitt
8f0d5130f5 Initialize variables 2012-09-07 15:03:31 +02:00
Christian Schmitt
356cdd17d4 Fix helipad generation and simplify the routine.
Add edge lights to the corners
2012-09-07 14:52:51 +02:00
Christian Schmitt
4808d2a2e5 Set default threads number to 1 and add switches to enable multithreading:
"--threads" enables autodetection of available cores
"--threads=x" sets a custom threads value

Update help test and remove duplicate dem option
2012-09-05 11:26:11 +02:00
Christian Schmitt
d80a4c2df5 activate external threshold light bar function and clean up 2012-09-02 12:52:35 +02:00
Christian Schmitt
7df8533e8e Remove individual threshold bar lights routines from the ALS functions 2012-09-02 12:52:35 +02:00
Christian Schmitt
e118d8ec3b Adapt threshold lights routine to displaced threshold generation
move threshold bar creation here and make the routine generic for
all ALS that use threshold bars
2012-09-02 12:52:30 +02:00
Christian Schmitt
25d93d37eb Create centerlines lights over the reciprocal displaced thresholds, too 2012-09-01 12:00:01 +02:00
Christian Schmitt
b0bb0ab9a0 Change edge lights routine to work with displaced thresholds as well 2012-09-01 11:57:28 +02:00
Christian Schmitt
7774de4939 Adapt to SG changes 2012-08-26 22:22:40 +02:00
Christian Schmitt
a35008f061 Use gen_corners function for the vector calculation as well 2012-08-16 13:03:51 +02:00
Christian Schmitt
90795f9d05 Fix the runway centerline, threshold and edge lights. They still used calculations in ft,
which were no longer compatible and led to wrong results.
Also, apply some more of the FAA specs on the edge lights now.
2012-08-15 21:22:13 +02:00
Christian Schmitt
84e88858b1 Further tweak the displaced threshold routine for short variants.
Explicitly fixes EDCJ but many more, too
2012-08-12 12:44:15 +02:00
Christian Schmitt
9918956c45 Fix displaced threshold calculation and convert measurements to meters 2012-08-12 09:52:54 +02:00
Christian Schmitt
9604ec8fad genapts850: fix a bug that can lead to the parser reading beyond one airport definition
and thus create another airport instead.
2012-08-09 18:31:47 +02:00
Christian Schmitt
4293c00b73 genapts850: make sure we do not hang forever in a parse loop
when there are actually no airports to parse within the bounding box
2012-08-06 19:41:36 +02:00