1
0
Fork 0
Commit graph

236 commits

Author SHA1 Message Date
Christian Schmitt
c1d0a92ea8 Add cliptst to gitignore 2012-10-07 21:35:21 +02:00
Christian Schmitt
edf8e8310f Convert get_bounding_box to SGVec3d 2012-10-06 22:10:10 +02:00
Christian Schmitt
eaec9905f7 Issue 888: Apply to newconstruct: 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-10-06 22:10:10 +02:00
Christian Schmitt
29e77c4c40 Fix cliptst install routine 2012-10-06 22:10:10 +02:00
Peter Sadrozinski
cc0d913712 - refactor construct.cxx into smaller files
- remove Match - tile matching now handled in tgconstruct_shared.cxx
2012-10-06 22:10:09 +02:00
Peter Sadrozinski
c39e3e0542 elevation averaging and neighbor tile faces included in point normal calculation 2012-10-06 22:10:09 +02:00
Peter Sadrozinski
6a3a57f198 tile matching phase 1
- 3 stage construct
- insert neighbor vertexes from all sides
2012-10-06 22:10:09 +02:00
Peter Sadrozinski
779db9566b multistage coming along - need TGNodes derialization 2012-10-06 22:10:09 +02:00
Peter Sadrozinski
b44c6c00d0 - some clipperfixes for tgconstruct. bring in clipper 4.8.9
Hopefully, we can start another clc06 test with this fix
- add lots of debug, in case more clipper issues uncovered
  added --debug-areas= allows turning on debug for an area
  can dump the accumulator when using it.
- fixed the swirlies round 2 workaround on tile output, rather than
  stopping the load of polygons at arbitrary threshold.
  (hopefully, we'll have a fix for this in simgear soon)
- modified ogr-decode (when using --texture-lines) to insert triangles
  instead of self-intersecting trapezoids when the turn angle between
  segments is too steep (hit this issue when experimenting with cgal-clipping)
  we were adding a lot of self intersecting polys on line data
- needed to add gdal library to all executables that link against Polygon
  TODO - combne Geometry and Polygon libs - they are completely joined, now.
2012-10-06 22:10:09 +02:00
Christian Schmitt
c016041337 Remove TriangleJRS. All tesselation is now done by CGAL. 2012-10-06 22:10:08 +02:00
Peter Sadrozinski
87df5b805e add help text for --share-dir 2012-10-06 22:10:08 +02:00
Peter Sadrozinski
3b2dfba225 - add --shared-dir option to get ready for new tile matching
and make it easier to share work and data dirs on a server
2012-10-06 22:10:08 +02:00
Christian Schmitt
771d65881e Only write out txt.gz files if debug is enabled 2012-10-06 22:10:07 +02:00
Christian Schmitt
3e068ed6dd Partially revert "fix some uninitialized data found with valgrind"
Some unwanted changes sneaked in
2012-10-06 22:10:07 +02:00
Peter Sadrozinski
e6d8d69c87 fix some uninitialized data found with valgrind
remove the cpu limit - tgconstruct should be able to run for weeks, now.
2012-10-06 22:10:07 +02:00
Peter Sadrozinski
f24699ca05 Fix a segfault caused by Ocean not being flagged correctly 2012-10-06 22:10:07 +02:00
Christian Schmitt
ca9a6dda13 Finally get rid of GPC 2012-10-06 22:10:07 +02:00
Christian Schmitt
1e64cfc974 Improve construct output. Lower some loglevels and make output more informative 2012-10-06 22:10:07 +02:00
Christian Schmitt
37d07e6526 add GPC includes only where needed. also add newmat includes 2012-10-06 22:10:06 +02:00
Peter Sadrozinski
85ad4573ec - add the extra height nodes to the cgal triangulation
- enable cgal triangulation
2012-10-06 22:10:06 +02:00
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
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
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 Sadrozinski
4cacaeb7f8 fix path construction when copying multiple objects in DoCustomObjects() 2012-09-21 10:23:56 -04:00
Christian Schmitt
7d919e2329 bug #792: second try to fix the windows copy issue 2012-07-09 11:05:17 +02:00
Christian Schmitt
2a7c1bc7fe Bugfix: issue #792 should be fixed by this (hopefully) 2012-07-08 18:32:32 +02:00
Christian Schmitt
873fff2afc Fix FSF address in headers and add a proper header to GenAirports850/main.cxx 2012-05-05 12:20:21 +02:00
Peter Sadrozinski
b159a39d59 take the fgfs-construct default log level down a notch 2012-04-01 11:03:05 -04:00
Peter Sadrozinski
071d98b3bc Lot's pf success on the quest to a full file parse.
Just three airports crashed, and no hangs.  One of the crashes is still NZSP
I don't know if I'll fix this soon.  It's the south pole problem with stuff
crossing the IDL.
- Added dome debug support for generating shapefiles from TGPolygon.
  This allows directly creating shapefiles instead of chopping a poly, then
  having to run poly2ogr on it.  The API is flexible, allowing multiple
  datafiles, and layers open simutaneously, and the features in the shapefiles
  have a description field that can be set.
- Added a restart-id= which allows a bash script to check the exit value of genapts,
  and automatically restart on the airport after the one that crashed.
  I've included an example script I have used.
- Stability fixes:
  1) actually, this is both stability, and graphical fix.  Some airport linear
     features and polygon contours were using bezier nodes for straight lines.
     When the control point lies just outside the line, the parser would attempt to
     draw a 'hook'  unfortunately, some of my calcs return NAN, and sometimes you just
     get crazy looking polys to attempt to clip - not good.
     Fix is to check cubic and quadratic nodes to see if they should really be linear.
     Substitute linear segments where apropriate.
  2) Along the same line as 1, There are some really short bezier segments, that were
     getting subdivided into the hard coded 8 segments.  Now, if the approximately linear
     distance of the curve is less than 4 meters, the curve is broken into 1/2 meter segments.
     Likewise, if the curve is greater than 800 meters, the curve is broken into 100 meter
     segments.
  3) Sometimes, during clipping, degenerate ontours are created.  Although these are cleaned
     before triangulation, there were still issues with generating the accumulation poly with
     the union operator, causing a crash.  I now simplify, and reduce degeneracy on all polys
     before clipping against the accumulator.
- Extra special bonus - successful completeion of an airport is printed in green :)
2012-03-25 23:54:16 +02:00
PSadrozinski
1eae25d17a removing automake files - just updating cmake build files from now 2012-03-25 23:37:26 +02:00
Maxime Guillaud
e4c19fefee Increase buffer size for the client-server messages and consistently use MAXBUF. 2012-02-27 13:37:08 +01:00
Martin Spott
74ae44ed47 Adjust to process/materials 2011-11-22 15:37:43 +01:00
James Turner
4914cb0645 Fix skipping of files when scanning polygons, to match previous behaviour. 2011-10-27 17:53:18 +01:00