1
0
Fork 0

Extend support for more linear features

This commit is contained in:
Delta Echo 2019-07-29 15:39:57 +02:00
parent 3e9e87cb8b
commit 8e40cf26b3
3 changed files with 202 additions and 4 deletions

View file

@ -392,11 +392,51 @@ int LinearFeature::Finish( bool closed, unsigned int idx )
case LF_NONE: case LF_NONE:
break; break;
case LF_SOLID_RED:
material = "lf_sng_solid_red";
width = 0.25f;
break;
case LF_BROKEN_RED:
material = "lf_sng_broken_red";
width = 0.25f;
break;
case LF_SOLID_RED_WIDE:
material = "lf_sng_solid_red";
width = 0.5f;
break;
case LF_SOLID_ORANGE:
material = "lf_sng_solid_orange";
width = 0.25f;
break;
case LF_SOLID_BLUE:
material = "lf_sng_solid_blue";
width = 0.25f;
break;
case LF_SOLID_GREEN:
material = "lf_sng_solid_green";
width = 0.25f;
break;
case LF_SOLID_YELLOW: case LF_SOLID_YELLOW:
material = "lf_sng_solid_yellow"; material = "lf_sng_solid_yellow";
width = 0.25f; width = 0.25f;
break; break;
case LF_SOLID_YELLOW_WIDE:
material = "lf_sng_solid_yellow";
width = 0.5f;
break;
case LF_SOLID_YELLOW_HATCH:
material = "lf_sng_solid_yellow";
width = 1.0f;
break;
case LF_BROKEN_YELLOW: case LF_BROKEN_YELLOW:
material = "lf_sng_broken_yellow"; material = "lf_sng_broken_yellow";
width = 0.25f; width = 0.25f;
@ -412,21 +452,41 @@ int LinearFeature::Finish( bool closed, unsigned int idx )
width = 1.0f; width = 1.0f;
break; break;
case LF_DOUBLE_HOLD_WIDE:
material = "lf_runway_hold";
width = 2.0f;
break;
case LF_OTHER_HOLD: case LF_OTHER_HOLD:
material = "lf_other_hold"; material = "lf_other_hold";
width = 0.5f; width = 0.5f;
break; break;
case LF_OTHER_HOLD_WIDE:
material = "lf_other_hold";
width = 1.0f;
break;
case LF_ILS_HOLD: case LF_ILS_HOLD:
material = "lf_ils_hold"; material = "lf_ils_hold";
width = 1.0f; width = 1.0f;
break; break;
case LF_ILS_HOLD_WIDE:
material = "lf_ils_hold";
width = 2.0f;
break;
case LF_SAFETYZONE_CENTERLINE: case LF_SAFETYZONE_CENTERLINE:
material = "lf_safetyzone_centerline"; material = "lf_safetyzone_centerline";
width = 0.75f; width = 0.75f;
break; break;
case LF_TAXI_HOLD_WIDE:
material = "lf_safetyzone_centerline";
width = 1.5f;
break;
case LF_SINGLE_LANE_QUEUE: case LF_SINGLE_LANE_QUEUE:
material = "lf_sng_lane_queue"; material = "lf_sng_lane_queue";
width = 0.25f; width = 0.25f;
@ -442,6 +502,11 @@ int LinearFeature::Finish( bool closed, unsigned int idx )
width = 0.25f; width = 0.25f;
break; break;
case LF_B_SOLID_YELLOW_WIDE:
material = "lf_sng_solid_yellow_border";
width = 0.5f;
break;
case LF_B_BROKEN_YELLOW: case LF_B_BROKEN_YELLOW:
material = "lf_sng_broken_yellow_border"; material = "lf_sng_broken_yellow_border";
width = 0.25f; width = 0.25f;
@ -457,21 +522,41 @@ int LinearFeature::Finish( bool closed, unsigned int idx )
width = 1.0f; width = 1.0f;
break; break;
case LF_B_RUNWAY_HOLD_WIDE:
material = "lf_runway_hold_border";
width = 2.0f;
break;
case LF_B_OTHER_HOLD: case LF_B_OTHER_HOLD:
material = "lf_other_hold_border"; material = "lf_other_hold_border";
width = 0.5f; width = 0.5f;
break; break;
case LF_B_OTHER_HOLD_WIDE:
material = "lf_other_hold_border";
width = 1.0f;
break;
case LF_B_ILS_HOLD: case LF_B_ILS_HOLD:
material = "lf_ils_hold_border"; material = "lf_ils_hold_border";
width = 1.0f; width = 1.0f;
break; break;
case LF_B_ILS_HOLD_WIDE:
material = "lf_ils_hold_border";
width = 2.0f;
break;
case LF_B_SAFETYZONE_CENTERLINE: case LF_B_SAFETYZONE_CENTERLINE:
material = "lf_safetyzone_centerline_border"; material = "lf_safetyzone_centerline_border";
width = 0.75f; width = 0.75f;
break; break;
case LF_B_TAXI_HOLD_WIDE:
material = "lf_safetyzone_centerline_border";
width = 1.5f;
break;
case LF_B_SINGLE_LANE_QUEUE: case LF_B_SINGLE_LANE_QUEUE:
material = "lf_sng_lane_queue_border"; material = "lf_sng_lane_queue_border";
width = 0.25f; width = 0.25f;
@ -487,6 +572,11 @@ int LinearFeature::Finish( bool closed, unsigned int idx )
width = 0.25f; width = 0.25f;
break; break;
case LF_SOLID_ROAD_WIDE:
material = "lf_sng_solid_white";
width = 0.5f;
break;
case LF_CHECKERBOARD_WHITE: case LF_CHECKERBOARD_WHITE:
material = "lf_checkerboard_white"; material = "lf_checkerboard_white";
width = 0.5f; width = 0.5f;
@ -497,6 +587,76 @@ int LinearFeature::Finish( bool closed, unsigned int idx )
width = 0.25f; width = 0.25f;
break; break;
case LF_BROKEN_ROAD:
material = "lf_broken_white";
width = 0.25f;
break;
case LF_BROKEN_ROAD_WIDE:
material = "lf_broken_white";
width = 0.5f;
break;
case LF_B_ROAD_EDGE_SOLID:
material = "lf_solid_white_border";
width = 0.25f;
break;
case LF_B_ROAD_EDGE_ZIPPER:
material = "lf_broken_white_border"; //TODO
width = 0.5f;
break;
case LF_B_ROAD_EDGE_DASH:
material = "lf_broken_white_border";
width = 0.25f;
break;
case LF_B_ROAD_DASH:
material = "lf_broken_white_border";
width = 0.25f;
break;
case LF_B_ROAD_DASH_WIDE:
material = "lf_broken_white_border";
width = 0.5f;
break;
case LF_B_ROAD_EDGE_WIDE:
material = "lf_solid_white_border";
width = 0.5f;
break;
case LF_B_SOLID_RED:
material = "lf_solid_red_border";
width = 0.25f;
break;
case LF_B_BROKEN_RED:
material = "lf_broken_red_border";
width = 0.25f;
break;
case LF_B_SOLID_RED_WIDE:
material = "lf_solid_red_border";
width = 0.5f;
break;
case LF_B_SOLID_ORANGE:
material = "lf_solid_orange_border";
width = 0.25f;
break;
case LF_B_SOLID_BLUE:
material = "lf_solid_blue_border";
width = 0.25f;
break;
case LF_B_SOLID_GREEN:
material = "lf_solid_green_border";
width = 0.25f;
break;
default: default:
TG_LOG(SG_GENERAL, SG_ALERT, "LinearFeature::Finish: unknown marking " << marks[i]->type ); TG_LOG(SG_GENERAL, SG_ALERT, "LinearFeature::Finish: unknown marking " << marks[i]->type );
exit(1); exit(1);

View file

@ -19,6 +19,27 @@
#define LF_SAFETYZONE_CENTERLINE (7) #define LF_SAFETYZONE_CENTERLINE (7)
#define LF_SINGLE_LANE_QUEUE (8) #define LF_SINGLE_LANE_QUEUE (8)
#define LF_DOUBLE_LANE_QUEUE (9) #define LF_DOUBLE_LANE_QUEUE (9)
#define LF_SOLID_YELLOW_WIDE (10)
#define LF_TAXI_HOLD_WIDE (11)
#define LF_DOUBLE_HOLD_WIDE (12)
#define LF_OTHER_HOLD_WIDE (13)
#define LF_ILS_HOLD_WIDE (14)
#define LF_SOLID_YELLOW_HATCH (19)
#define LF_SOLID_WHITE (20)
#define LF_CHECKERBOARD_WHITE (21)
#define LF_BROKEN_WHITE (22)
#define LF_BROKEN_ROAD (23)
#define LF_SOLID_ROAD_WIDE (24)
#define LF_BROKEN_ROAD_WIDE (25)
#define LF_SOLID_RED (30)
#define LF_BROKEN_RED (31)
#define LF_SOLID_RED_WIDE (32)
#define LF_SOLID_ORANGE (40)
#define LF_SOLID_BLUE (41)
#define LF_SOLID_GREEN (42)
#define LF_B_SOLID_YELLOW (51) #define LF_B_SOLID_YELLOW (51)
#define LF_B_BROKEN_YELLOW (52) #define LF_B_BROKEN_YELLOW (52)
@ -30,9 +51,26 @@
#define LF_B_SINGLE_LANE_QUEUE (58) #define LF_B_SINGLE_LANE_QUEUE (58)
#define LF_B_DOUBLE_LANE_QUEUE (59) #define LF_B_DOUBLE_LANE_QUEUE (59)
#define LF_SOLID_WHITE (20) #define LF_B_SOLID_YELLOW_WIDE (60)
#define LF_CHECKERBOARD_WHITE (21) #define LF_B_TAXI_HOLD_WIDE (61)
#define LF_BROKEN_WHITE (22) #define LF_B_RUNWAY_HOLD_WIDE (62)
#define LF_B_OTHER_HOLD_WIDE (63)
#define LF_B_ILS_HOLD_WIDE (64)
#define LF_B_ROAD_EDGE_SOLID (70)
#define LF_B_ROAD_EDGE_ZIPPER (71)
#define LF_B_ROAD_EDGE_DASH (72)
#define LF_B_ROAD_DASH (73)
#define LF_B_ROAD_EDGE_WIDE (74)
#define LF_B_ROAD_DASH_WIDE (75)
#define LF_B_SOLID_RED (80)
#define LF_B_BROKEN_RED (81)
#define LF_B_SOLID_RED_WIDE (82)
#define LF_B_SOLID_ORANGE (90)
#define LF_B_SOLID_BLUE (91)
#define LF_B_SOLID_GREEN (92)
#define LF_BIDIR_GREEN (101) #define LF_BIDIR_GREEN (101)
#define LF_OMNIDIR_BLUE (102) #define LF_OMNIDIR_BLUE (102)

View file

@ -314,7 +314,7 @@ int main(int argc, char **argv)
in.getline(line, 20); in.getline(line, 20);
in.close(); in.close();
int code = atoi(line); int code = atoi(line);
if (code == 810 || code > 1100) { if (code == 810 || code > 1200) {
TG_LOG(SG_GENERAL, SG_ALERT, "ERROR: This genapts version does not support apt.data version " << code << " files."); TG_LOG(SG_GENERAL, SG_ALERT, "ERROR: This genapts version does not support apt.data version " << code << " files.");
return EXIT_FAILURE; return EXIT_FAILURE;
} }