# See: http://wiki.flightgear.org/MapStructure # Class things: var name = 'TAXI'; var parents = [DotSym]; var __self__ = caller(0)[0]; DotSym.makeinstance( name, __self__ ); var element_type = "group"; # we want a group, becomes "me.element" var rwys = nil; var SURFACECOLORS = { 1 : { type: "asphalt", r:0.2, g:0.2, b:0.2 }, 2 : { type: "concrete", r:0.3, g:0.3, b:0.3 }, 3 : { type: "turf", r:0.2, g:0.5, b:0.2 }, 4 : { type: "dirt", r:0.4, g:0.3, b:0.3 }, 5 : { type: "gravel", r:0.35, g:0.3, b:0.3 }, # Helipads 6 : { type: "asphalt", r:0.2, g:0.2, b:0.2 }, 7 : { type: "concrete", r:0.3, g:0.3, b:0.3 }, 8 : { type: "turf", r:0.2, g:0.5, b:0.2 }, 9 : { type: "dirt", r:0.4, g:0.3, b:0.3 }, 0 : { type: "gravel", r:0.35, g:0.3, b:0.3 }, }; var init = func { var apt=airportinfo(me.model.id); foreach (var taxi; apt.taxiways) { var clr = me.style.surface_color[taxi.surface]; if (clr == nil) { clr = SURFACECOLORS[taxi.surface]}; if (clr == nil) { clr = SURFACECOLORS[0]}; var taxi_paths = me.element.createChild("path", "runway-" ~ taxi.id) .setStrokeLineWidth(0.5) .setColor(clr.r, clr.g, clr.b) .setColorFill(clr.r, clr.g, clr.b); var txi = Runway.new(taxi); var beg1 = txi.pointOffCenterline(0, 0.5 * taxi.width); var beg2 = txi.pointOffCenterline(0, -0.5 * taxi.width); var end1 = txi.pointOffCenterline(taxi.length, 0.5 * taxi.width); var end2 = txi.pointOffCenterline(taxi.length, -0.5 * taxi.width); taxi_paths.setColorFill(clr.r, clr.g, clr.b) .setDataGeo ( [ canvas.Path.VG_MOVE_TO, canvas.Path.VG_LINE_TO, canvas.Path.VG_LINE_TO, canvas.Path.VG_LINE_TO, canvas.Path.VG_CLOSE_PATH ], [ beg1[0], beg1[1], beg2[0], beg2[1], end2[0], end2[1], end1[0], end1[1] ] ); } }; var draw = func;