1
0
Fork 0

[rwy_simple] Maintenance

This commit is contained in:
scttgs0 2023-05-14 17:37:31 -05:00
parent cbcbb8c8f6
commit f98b5cd482

View file

@ -23,21 +23,20 @@
#include <simgear/compiler.h> #include <simgear/compiler.h>
#include <simgear/debug/logstream.hxx> #include <simgear/debug/logstream.hxx>
#include "runway.hxx"
#include "debug.hxx" #include "debug.hxx"
#include "runway.hxx"
using std::string;
// generate a simple runway // generate a simple runway
void Runway::gen_simple_rwy( tgpolygon_list& rwy_polys, void Runway::gen_simple_rwy(tgpolygon_list& rwy_polys,
tgcontour_list& slivers, tgcontour_list& slivers,
tgAccumulator& accum ) tgAccumulator& accum)
{ {
tgContour runway = gen_runway_w_mid( 0.0, 0.0 ); tgContour runway = gen_runway_w_mid(0.0, 0.0);
tgPolygon runway_half; tgPolygon runway_half;
std::string empty = ""; std::string empty{};
for ( int rwhalf=0; rwhalf<2; ++rwhalf ) { for (int rwhalf = 0; rwhalf < 2; ++rwhalf) {
double length = rwy.length / 2.0; double length = rwy.length / 2.0;
double end_pct = 0.0; double end_pct = 0.0;
double heading = 0.0; double heading = 0.0;
@ -47,52 +46,51 @@ void Runway::gen_simple_rwy( tgpolygon_list& rwy_polys,
//Create the first half of the runway (first entry in apt.dat) //Create the first half of the runway (first entry in apt.dat)
runway_half.Erase(); runway_half.Erase();
runway_half.AddNode( 0, runway.GetNode(3) ); runway_half.AddNode(0, runway.GetNode(3));
runway_half.AddNode( 0, runway.GetNode(4) ); runway_half.AddNode(0, runway.GetNode(4));
runway_half.AddNode( 0, runway.GetNode(5) ); runway_half.AddNode(0, runway.GetNode(5));
runway_half.AddNode( 0, runway.GetNode(2) ); runway_half.AddNode(0, runway.GetNode(2));
} } else {
else {
heading = rwy.heading; heading = rwy.heading;
//Create the second runway half from apt.dat //Create the second runway half from apt.dat
runway_half.Erase(); runway_half.Erase();
runway_half.AddNode( 0, runway.GetNode(0) ); runway_half.AddNode(0, runway.GetNode(0));
runway_half.AddNode( 0, runway.GetNode(1) ); runway_half.AddNode(0, runway.GetNode(1));
runway_half.AddNode( 0, runway.GetNode(2) ); runway_half.AddNode(0, runway.GetNode(2));
runway_half.AddNode( 0, runway.GetNode(5) ); runway_half.AddNode(0, runway.GetNode(5));
} }
TG_LOG( SG_GENERAL, SG_DEBUG, "runway marking = " << rwy.marking[rwhalf] ); TG_LOG(SG_GENERAL, SG_DEBUG, "runway marking = " << rwy.marking[rwhalf]);
// Displaced threshold if it exists // Displaced threshold if it exists
if ( rwy.threshold[rwhalf] > 0.0 ) { if (rwy.threshold[rwhalf] > 0.0) {
TG_LOG( SG_GENERAL, SG_DEBUG, "Displaced threshold for RW side " << rwhalf << " is " << rwy.threshold[rwhalf] ); TG_LOG(SG_GENERAL, SG_DEBUG, "Displaced threshold for RW side " << rwhalf << " is " << rwy.threshold[rwhalf]);
double start_pct = end_pct; double start_pct = end_pct;
end_pct = start_pct + ( rwy.threshold[rwhalf] / length ); end_pct = start_pct + (rwy.threshold[rwhalf] / length);
Runway::gen_runway_section( runway_half, Runway::gen_runway_section(runway_half,
start_pct, end_pct, start_pct, end_pct,
0.0, 1.0, 0.0, 1.0,
0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0,
heading, heading,
"", "",
rwy_polys, rwy_polys,
slivers, slivers,
accum, accum,
empty ); empty);
} }
// Generate runway // Generate runway
Runway::gen_runway_section( runway_half, Runway::gen_runway_section(runway_half,
end_pct, 1.0, end_pct, 1.0,
0.0, 1.0, 0.0, 1.0,
0.0, 0.28, 0.0, 1.0, 0.0, 0.28, 0.0, 1.0,
heading, heading,
"", "",
rwy_polys, rwy_polys,
slivers, slivers,
accum, accum,
empty ); empty);
} }
} }