60 lines
1.7 KiB
Text
60 lines
1.7 KiB
Text
|
var draw_vor = func (group, vor, controller=nil, lod = 0) {
|
||
|
|
||
|
if (0) {
|
||
|
if (controller == nil)
|
||
|
print("Ooops, VOR controller undefined!");
|
||
|
else
|
||
|
debug.dump( controller );
|
||
|
}
|
||
|
|
||
|
var lat = vor.lat;
|
||
|
var lon = vor.lon;
|
||
|
var name = vor.id;
|
||
|
var freq = vor.frequency;
|
||
|
var range = vor.range_nm;
|
||
|
|
||
|
# FIXME: Hack - implement a real controller for this!
|
||
|
var rangeNm = (controller!=nil) ? controller['query_range']() : 50;
|
||
|
|
||
|
var vor_grp = group.createChild("group",name);
|
||
|
var icon_vor = vor_grp.createChild("path", "vor-icon-" ~ name)
|
||
|
.moveTo(-15,0)
|
||
|
.lineTo(-7.5,12.5)
|
||
|
.lineTo(7.5,12.5)
|
||
|
.lineTo(15,0)
|
||
|
.lineTo(7.5,-12.5)
|
||
|
.lineTo(-7.5,-12.5)
|
||
|
.close()
|
||
|
.setStrokeLineWidth(3)
|
||
|
.setColor(0,0.6,0.85);
|
||
|
|
||
|
# next check if the current VOR is tuned, if so show it
|
||
|
# for this to work, we need a controller hash with an "is_tuned" member that points to a callback
|
||
|
# (set up by the layer managing this view)
|
||
|
# for an example, see the NavDisplay.newMFD() in navdisplay.mfd
|
||
|
|
||
|
if (controller != nil and controller['is_tuned'](freq/100)) {
|
||
|
# print("VOR is tuned:", name);
|
||
|
var radius = (range/rangeNm)*345;
|
||
|
var range_vor = vor_grp.createChild("path", "range-vor-" ~ name)
|
||
|
.moveTo(-radius,0)
|
||
|
.arcSmallCW(radius,radius,0,2*radius,0)
|
||
|
.arcSmallCW(radius,radius,0,-2*radius,0)
|
||
|
.setStrokeLineWidth(3)
|
||
|
.setStrokeDashArray([5, 15, 5, 15, 5])
|
||
|
.setColor(0,1,0);
|
||
|
|
||
|
var course = controller['get_tuned_course'](freq/100);
|
||
|
vor_grp.createChild("path", "radial-vor-" ~ name)
|
||
|
.moveTo(0,-radius)
|
||
|
.vert(2*radius)
|
||
|
.setStrokeLineWidth(3)
|
||
|
.setStrokeDashArray([15, 5, 15, 5, 15])
|
||
|
.setColor(0,1,0)
|
||
|
.setRotation(course*D2R);
|
||
|
icon_vor.setColor(0,1,0);
|
||
|
}
|
||
|
vor_grp.setGeoPosition(lat, lon)
|
||
|
.set("z-index",3);
|
||
|
}
|