0d4a86e3d4
Implement traffic in MapStructure and use it. Various other hacks and/or cleanup. Feedback required on whether this is a lot better than before. Also partially revert 9c018d94c4d88dad7476ec250fa3b52024526f4b to add feature to geo.PositionedSearch: it me._equals is overridden then the old mechanism is used instead of the new C++ function, so that the custom equality can be used. (In particular for the Fixes with the TrafficModel class).
38 lines
965 B
Text
38 lines
965 B
Text
# Class things:
|
|
var name = 'WPT'; # for waypoints
|
|
var parents = [SymbolLayer.Controller];
|
|
var __self__ = caller(0)[0];
|
|
SymbolLayer.Controller.add(name, __self__);
|
|
SymbolLayer.add(name, {
|
|
parents: [SymbolLayer],
|
|
type: name, # Symbol type
|
|
df_controller: __self__, # controller to use by default -- this one
|
|
});
|
|
var new = func(layer) {
|
|
var m = {
|
|
parents: [__self__],
|
|
layer: layer,
|
|
listeners: [],
|
|
query_range_nm: 25,
|
|
};
|
|
return m;
|
|
};
|
|
var del = func() {
|
|
#print(name~"VOR.lcontroller.del()");
|
|
foreach (var l; me.listeners)
|
|
removelistener(l);
|
|
};
|
|
|
|
var searchCmd = func {
|
|
#print("Running query: "~name);
|
|
|
|
var fp = flightplan();
|
|
var fpSize = fp.getPlanSize();
|
|
var result = [];
|
|
for (var i = 1; i <fpSize; i+=1)
|
|
append(result, fp.getWP(i).path()[0] );
|
|
|
|
return result;
|
|
# return positioned.findWithinRange(me.query_range_nm, me.query_type); # the range should also be exposed, it will typically be controlled via a GUI widget or NavDisplay switch
|
|
};
|
|
|