1
0
Fork 0
fgdata/Nasal/canvas/map/DTO.lcontroller

60 lines
1.3 KiB
Text
Raw Normal View History

# See: http://wiki.flightgear.org/MapStructure
# Direct TO line. Displays line from current position to a given Lat/Lon
# Class things:
var name = 'DTO';
var parents = [SymbolLayer.Controller];
var __self__ = caller(0)[0];
SymbolLayer.Controller.add(name, __self__);
SymbolLayer.add(name, {
parents: [MultiSymbolLayer],
type: name, # Symbol type
df_controller: __self__, # controller to use by default -- this one
df_options: { # default configuration options
}
});
var new = func(layer) {
var m = {
parents: [__self__],
layer: layer,
map: layer.map,
listeners: [],
target_lat: -999,
target_lon: -999,
target_alt: -999,
last_result: [],
};
layer.searcher._equals = func(l,r) 0; # TODO: create model objects instead?
m.addVisibilityListener();
return m;
};
var del = func() {
foreach (var l; me.listeners)
removelistener(l);
};
var setTarget = func(lat, lon, alt=0) {
me.target_lat = lat;
me.target_lon = lon;
me.target_alt = alt;
me.layer.update();
};
var searchCmd = func() {
var coords = [];
append(coords, {lon: me.target_lon, lat: me.target_lat, alt: me.target_alt});
var lines = [];
append(lines, {
id: me.target_lat ~ " " ~ me.target_lon,
type: "lon",
path: coords,
equals: func(o){
return (me.path == o.path and me.type == o.type);
}
});
return lines;
};