From 8a092947dac8db0f863b3fccc8fbed627cd1c02e Mon Sep 17 00:00:00 2001 From: Christian Schmitt Date: Wed, 17 Oct 2012 09:41:23 +0200 Subject: [PATCH] Time to remove old PAPI/VASI code from the runway lights routine --- src/Airports/GenAirports850/lights.cxx | 270 ------------------------- 1 file changed, 270 deletions(-) diff --git a/src/Airports/GenAirports850/lights.cxx b/src/Airports/GenAirports850/lights.cxx index 906f5882..530f16f5 100644 --- a/src/Airports/GenAirports850/lights.cxx +++ b/src/Airports/GenAirports850/lights.cxx @@ -691,276 +691,6 @@ TGSuperPoly Runway::gen_touchdown_zone_lights( bool recip ) return result; } -/* -// generate a simple 2 bar VASI -static TGSuperPoly gen_vasi( const TGLightobj& rwy_light, - bool recip, TGPolygon *apt_base ) -{ - point_list lights; lights.clear(); - point_list normals; normals.clear(); - int i; - string flag; - double gs_angle = 3.0; - - SG_LOG(SG_GENERAL, SG_DEBUG, "gen vasi " << rwy.rwnum[0] ); - - Point3D normal; - - // using TGPolygon is a bit innefficient, but that's what the - // routine returns. - TGPolygon poly_corners = gen_runway_area_w_extend( 0.0, - rwy.threshold[0], - rwy.threshold[1], - 0.0 ); - - point_list corner; - for ( i = 0; i < poly_corners.contour_size( 0 ); ++i ) { - corner.push_back( poly_corners.get_pt( 0, i ) ); - } - - // determine the start point. - Point3D ref; - double length_hdg, left_hdg; - double lon, lat, r; - if ( recip ) { - ref = corner[0]; - length_hdg = rwy_info.heading + 180.0; - if ( length_hdg > 360.0 ) { length_hdg -= 360.0; } - flag = rwy.rwnum[1]; - gs_angle = rwy_info.gs_angle1; - } else { - ref = corner[2]; - length_hdg = rwy_info.heading; - flag = rwy.rwnum[0]; - gs_angle = rwy_info.gs_angle2; - } - - left_hdg = length_hdg - 90.0; - if ( left_hdg < 0 ) { left_hdg += 360.0; } - - if ( gs_angle < 0.5 ) { - gs_angle = 3.0; - } - - // offset 600' upwind - geo_direct_wgs_84 ( ref.lat(), ref.lon(), length_hdg, - 600 * SG_FEET_TO_METER, &lat, &lon, &r ); - ref = Point3D( lon, lat, 0.0 ); - // offset 50' left - geo_direct_wgs_84 ( ref.lat(), ref.lon(), left_hdg, - 50 * SG_FEET_TO_METER, &lat, &lon, &r ); - ref = Point3D( lon, lat, 0.0 ); - - // downwind bar - normal = gen_runway_light_vector( rwy_info, gs_angle - 0.5, recip ); - - // unit1 - Point3D pt1 = ref; - lights.push_back( pt1 ); - normals.push_back( normal ); - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 1 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lights.push_back( pt1 ); - normals.push_back( normal ); - - // unit2 - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 16 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lights.push_back( pt1 ); - normals.push_back( normal ); - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 1 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lights.push_back( pt1 ); - normals.push_back( normal ); - - // unit3 - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 16 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lights.push_back( pt1 ); - normals.push_back( normal ); - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 1 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lights.push_back( pt1 ); - normals.push_back( normal ); - - // grass base - Point3D base_pt = (ref + pt1) / 2.0; - TGPolygon obj_base = gen_wgs84_area( base_pt, 15.0, 0.0, 0.0, 15.0, - length_hdg, false ); - *apt_base = tgPolygonUnion( obj_base, *apt_base ); - - // upwind bar - geo_direct_wgs_84 ( ref.lat(), ref.lon(), length_hdg, - 700 * SG_FEET_TO_METER, &lat, &lon, &r ); - ref = Point3D( lon, lat, 0.0 ); - - normal = gen_runway_light_vector( rwy_info, gs_angle, recip ); - - // unit1 - pt1 = ref; - lights.push_back( pt1 ); - normals.push_back( normal ); - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 1 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lights.push_back( pt1 ); - normals.push_back( normal ); - - // unit2 - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 16 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lights.push_back( pt1 ); - normals.push_back( normal ); - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 1 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lights.push_back( pt1 ); - normals.push_back( normal ); - - // unit3 - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 16 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lights.push_back( pt1 ); - normals.push_back( normal ); - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 1 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lights.push_back( pt1 ); - normals.push_back( normal ); - - // grass base - base_pt = (ref + pt1) / 2.0; - obj_base = gen_wgs84_area( base_pt, 15.0, 0.0, 0.0, 15.0, - length_hdg, false ); - *apt_base = tgPolygonUnion( obj_base, *apt_base ); - - TGPolygon lights_poly; lights_poly.erase(); - TGPolygon normals_poly; normals_poly.erase(); - lights_poly.add_contour( lights, false ); - normals_poly.add_contour( normals, false ); - - TGSuperPoly result; - result.set_poly( lights_poly ); - result.set_normals( normals_poly ); - result.set_material( "RWY_VASI_LIGHTS" ); - - result.set_flag( flag ); - - return result; - -} -*/ - -// Generate the airports light objects (PAPI/VASI) -/*void gen_airport_lightobj( const TGLightobj& rwy_light, superpoly_list &lights ) -{ - point_list lightobj; lightobj.clear(); - point_list normals; normals.clear(); - - SG_LOG(SG_GENERAL, SG_DEBUG, "gen papi " << rwy_light.rwy_name - - Point3D ref; - double lon, lat, r; - double gs_angle = rwy_light.glideslope; - double left_hdg = rwy_light.heading - 90.0; - - ref.setlat( rwy_light.lat ); - ref.setlon( rwy_light.lon ); - - if ( left_hdg < 0 ) { left_hdg += 360.0; } - - if ( gs_angle < 0.5 ) { - gs_angle = 3.0; - } - - // Calculate the normal once for all object parts. - // SG takes care of the angle. - - // calculate a second point in the object heading direction - geo_direct_wgs_84 ( rwy_light.lat, rwy_light.lon, rwy_light.heading, - 100, &lat, &lon, &r); - - Point3D end1, end2; - - end1.setlat( lat ); - end1.setlon( lon ); - - end2.setlat( rwy_light.lat); - end2.setlon( rwy_light.lon); - - Point3D cart1 = sgGeodToCart( end1 * SG_DEGREES_TO_RADIANS ); - Point3D cart2 = sgGeodToCart( end2 * SG_DEGREES_TO_RADIANS ); - - Point3D up = cart1; - double length = up.distance3D( Point3D(0.0) ); - up = up / length; - - Point3D obj_vec = cart2 - cart1; - - // angle up specified amount - length = obj_vec.distance3D( Point3D(0.0) ); - double up_length = length * tan( rwy_light.glideslope * SG_DEGREES_TO_RADIANS); - Point3D light_vec = obj_vec + (up * up_length); - - length = light_vec.distance3D( Point3D(0.0) ); - Point3D normal = light_vec / length; - - SG_LOG(SG_GENERAL, SG_DEBUG, "obj_normal = " << normal); - - // We know our normal, now create the lights - - // unit1 - Point3D pt1 = ref; - lightobj.push_back( pt1 ); - normals.push_back( normal ); - - // unit2 - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 30 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lightobj.push_back( pt1 ); - normals.push_back( normal ); - - // unit3 - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 30 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lightobj.push_back( pt1 ); - normals.push_back( normal ); - - // unit4 - geo_direct_wgs_84 ( pt1.lat(), pt1.lon(), left_hdg, - 30 * SG_FEET_TO_METER, &lat, &lon, &r ); - pt1 = Point3D( lon, lat, 0.0 ); - lightobj.push_back( pt1 ); - normals.push_back( normal ); - - // grass base - Point3D base_pt = (ref + pt1) / 2.0; - TGPolygon obj_base = gen_wgs84_area( base_pt, 15.0, 0.0, 0.0, 30.0, - length_hdg, false ); - *apt_base = tgPolygonUnion( obj_base, *apt_base ); - - TGPolygon lights_poly; lights_poly.erase(); - TGPolygon normals_poly; normals_poly.erase(); - lights_poly.add_contour( lightobj, false ); - normals_poly.add_contour( normals, false ); - - TGSuperPoly result; - result.set_poly( lights_poly ); - result.set_normals( normals_poly ); - result.set_material( "RWY_VASI_LIGHTS" ); - - lights.push_back( result); -} -*/ // generate REIL lights TGSuperPoly Runway::gen_reil( bool recip )