# See: http://wiki.flightgear.org/MapStructure # Class things: var name = 'DEBUG'; var parents = [canvas.SymbolLayer.Controller]; var __self__ = caller(0)[0]; canvas.SymbolLayer.Controller.add(name, __self__); canvas.SymbolLayer.add(name, { parents: [canvas.MultiSymbolLayer], type: name, # Symbol type df_controller: __self__, # controller to use by default -- this one df_options: { update_t : 'autopilot/route-manager/debug/update_t', listen: ['update_t'] }, df_style: { default_color: [1,0,0], } }); var new = func(layer) { var m = { parents: [__self__], layer: layer, map: layer.map, listeners: [], }; layer.searcher._equals = func(a,b) a.equals(b); return m; }; var del = func() { foreach (var l; me.listeners) removelistener(l); }; var searchCmd = func { var result = []; #return result; var node = me['node']; if (node == nil) { node = props.globals.getNode('autopilot/route-manager/debug/', 1); me.node = node; } var points = me.node.getNode('points', 1).getChildren(); #var count = getprop('autopilot/route-manager/debug/num') or 0; var count = size(points); #print('Map DEBUG: querying '~ count ~' results.'); for(var idx = 0; idx < count; idx += 1){ var point = points[idx]; #var id = getprop('autopilot/route-manager/debug/point['~idx~']/id'); #var lat = getprop('autopilot/route-manager/debug/point['~idx~']/lat'); #var lon = getprop('autopilot/route-manager/debug/point['~idx~']/lon'); var id = point.getValue('id'); var lat = point.getValue('lat'); var lon = point.getValue('lon'); if (id == nil or id == '') continue; #print('Map DEBUG: found '~ id ~' debug point.'); var model = { id: id, lat: lat, lon: lon, equals: func(o){ me.id == o.id and me.lat == o.lat and me.lon == o.lon } }; append(result, model); } return result; }