- don't clip against landmass (no longer suitable with new poly types)
- reduce the minimum area for a non-sliver by two orders of magnitude, to allow small road, river, and railroad segments
This commit is contained in:
parent
73bd6d2087
commit
d8dc110d99
1 changed files with 15 additions and 3 deletions
|
@ -300,7 +300,7 @@ void FGClipper::move_slivers( FGPolygon& in, FGPolygon& out ) {
|
||||||
out.erase();
|
out.erase();
|
||||||
|
|
||||||
double angle_cutoff = 10.0 * SGD_DEGREES_TO_RADIANS;
|
double angle_cutoff = 10.0 * SGD_DEGREES_TO_RADIANS;
|
||||||
double area_cutoff = 0.000008;
|
double area_cutoff = 0.00000008;
|
||||||
double min_angle;
|
double min_angle;
|
||||||
double area;
|
double area;
|
||||||
|
|
||||||
|
@ -480,13 +480,25 @@ bool FGClipper::clip_all(const point2d& min, const point2d& max) {
|
||||||
SG_LOG( SG_CLIPPER, SG_DEBUG, get_area_name( (AreaType)i )
|
SG_LOG( SG_CLIPPER, SG_DEBUG, get_area_name( (AreaType)i )
|
||||||
<< " = " << current.contours() );
|
<< " = " << current.contours() );
|
||||||
|
|
||||||
|
tmp = current;
|
||||||
|
#if 0
|
||||||
|
// Update: 9/18/2001 from David Megginson: In clip_all(),
|
||||||
|
// no longer clip polygons against landmass. This is bad
|
||||||
|
// for many reasons, not limited to the fact that roads,
|
||||||
|
// etc. may cross small bays and inlets. It was also
|
||||||
|
// (once again) overstraining gpc and creating artifacts.
|
||||||
|
// Besides, since vmap0 treats the Great Lakes as ocean
|
||||||
|
// (i.e. not part of landmass), it was essential not to
|
||||||
|
// clip lakes against landmass anyway (or else all of the
|
||||||
|
// Great Lakes would have appeared as ocean areas at sea
|
||||||
|
// level).
|
||||||
|
|
||||||
// if not a hole, clip the area to the land_mask
|
// if not a hole, clip the area to the land_mask
|
||||||
if ( i != HoleArea ) {
|
if ( i != HoleArea ) {
|
||||||
// clip to land mask
|
// clip to land mask
|
||||||
tmp = polygon_int( current, land_mask );
|
tmp = polygon_int( current, land_mask );
|
||||||
} else {
|
|
||||||
tmp = current;
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// if a water area, cut out potential islands
|
// if a water area, cut out potential islands
|
||||||
if ( i == LakeArea || i == IntLakeArea || i == ReservoirArea ||
|
if ( i == LakeArea || i == IntLakeArea || i == ReservoirArea ||
|
||||||
|
|
Loading…
Add table
Reference in a new issue