1
0
Fork 0

Merge branch 'master' of gitorious.org:fg/fgdata

This commit is contained in:
Curtis L. Olson 2014-02-05 10:03:20 -06:00
commit 60e631458a
4 changed files with 726 additions and 354 deletions

View file

@ -29,13 +29,13 @@
inkscape:window-height="716"
id="namedview102"
showgrid="false"
inkscape:zoom="1"
inkscape:cx="303.412"
inkscape:cy="-37.9065"
inkscape:zoom="2.82843"
inkscape:cx="572.938"
inkscape:cy="208.439"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer2"
inkscape:current-layer="layer1"
inkscape:object-nodes="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-object-midpoints="true"
@ -58,7 +58,10 @@
position="512,200" /><sodipodi:guide
id="guide3179"
orientation="-0.866025,-0.5"
position="512,200" /></sodipodi:namedview><metadata
position="512,200" /><sodipodi:guide
position="512,465"
orientation="0,1"
id="guide4003" /></sodipodi:namedview><metadata
id="metadata5186"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /><dc:creator><cc:Agent><dc:title>Gijs de Rooy</dc:title></cc:Agent></dc:creator><cc:license
@ -130,13 +133,6 @@
id="selHdgLine"
d="m 512,824.75 0,-682.634"
style="fill:none;stroke:#ff00ff;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:32, 16;stroke-dashoffset:0" /><path
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="HdgBugCRT"
d="m 512,141.262 0,-18.8 m 20,0 0,18.8 -20,0 -20,0 0,-18.8 z"
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#path4994"
inkscape:transform-center-y="-692.145" /><path
inkscape:transform-center-y="-715.775"
inkscape:label="#path3882"
sodipodi:nodetypes="cccc"
@ -160,7 +156,6 @@
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -172,8 +167,7 @@
sodipodi:role="line"
id="tspan7251"
x="844.04407"
y="126.12489">99.9</tspan></text>
y="126.12489">999.9</tspan></text>
@ -208,7 +202,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -226,7 +219,6 @@
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -244,7 +236,6 @@
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -263,7 +254,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -282,7 +272,6 @@
<g
id="hdgGroup"
inkscape:label="#g3141"><path
@ -308,7 +297,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -327,7 +315,6 @@
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#32f519;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -346,7 +333,6 @@
</g><text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#32f519;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -365,7 +351,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -384,7 +369,6 @@
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#32f519;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -403,7 +387,6 @@
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#32f519;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -422,7 +405,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -441,7 +423,6 @@
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#32f519;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -460,7 +441,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -479,7 +459,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -498,7 +477,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -517,7 +495,6 @@
<g
inkscape:label="#g3124"
id="compass"><path
@ -529,7 +506,7 @@
sodipodi:rx="426"
sodipodi:ry="426"
d="m 850,622 a 426,426 0 1 1 -852,0 426,426 0 1 1 852,0 z"
transform="matrix(1.6472,0,0,1.6472,-186.253,-200.559)" /><text
transform="matrix(1.6472,0,0,1.6472,-186.413,-200.559)" /><text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ededed;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
x="500.44846"
@ -547,7 +524,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -567,7 +543,6 @@
<text
transform="matrix(0.5,-0.866026,0.866026,0.5,0,0)"
xml:space="preserve"
@ -587,7 +562,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -607,7 +581,6 @@
<text
transform="matrix(-0.5,-0.866025,0.866025,-0.5,0,0)"
xml:space="preserve"
@ -627,7 +600,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -647,7 +619,6 @@
<text
transform="scale(-1,-1)"
xml:space="preserve"
@ -667,7 +638,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -687,7 +657,6 @@
<text
transform="matrix(-0.5,0.866026,-0.866026,-0.5,0,0)"
xml:space="preserve"
@ -707,7 +676,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -727,7 +695,6 @@
<text
transform="matrix(0.5,0.866025,-0.866025,0.5,0,0)"
xml:space="preserve"
@ -747,7 +714,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -767,7 +733,6 @@
<path
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccscccscccscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccscccccc"
id="path3181"
@ -838,7 +803,6 @@
<path
sodipodi:nodetypes="cscc"
inkscape:connector-curvature="0"
@ -863,7 +827,6 @@
<path
inkscape:transform-center-y="-662.357"
inkscape:label="#path3100"
@ -929,7 +892,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -948,7 +910,6 @@
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#0099d9;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -967,7 +928,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -986,31 +946,40 @@
<path
inkscape:label="#path7253"
style="fill:none;stroke:#ededed;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 541.5,627.342 -59,0 29.5,-68 z"
id="aplSymMapCtr"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" /><path
sodipodi:nodetypes="cccccccc"
sodipodi:nodetypes="cccc" /><g
id="hdgBug"
inkscape:label="#g3190"
inkscape:transform-center-y="-698.613"><path
inkscape:transform-center-y="-692.145"
inkscape:label="#path4994"
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 512,141.262 0,-18.8 m 20,0 0,18.8 -20,0 -20,0 0,-18.8 z"
id="HdgBugCRT"
inkscape:connector-curvature="0"
id="TrkBugLCD"
sodipodi:nodetypes="cccccccc" /><path
inkscape:transform-center-y="-686.245"
inkscape:label="#path4994"
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="M 512.25,148.787 512,126.737 m 20,0 -0.25,13.55 -19.5,8.5 -19.75,-8.75 -0.5,-13.3 z"
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#path4994"
inkscape:transform-center-y="-686.245" /><path
sodipodi:nodetypes="ccccccccc"
id="TrkBugLCD"
inkscape:connector-curvature="0"
id="HdgBugLCD"
d="m 532,123 0,-21 -6,0 -12,21 -4,0 -12,-21 -6,0 0,21 z"
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
sodipodi:nodetypes="cccccccc" /><path
inkscape:transform-center-y="-711.514"
inkscape:label="#path4994"
inkscape:transform-center-y="-711.514" /><text
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 532,123 0,-21 -6,0 -12,21 -4,0 -12,-21 -6,0 0,21 z"
id="HdgBugLCD"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccc" /></g><text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
x="918.30713"
x="937.04547"
y="125.43141"
id="wpActiveDistLbl"
sodipodi:linespacing="125%"
@ -1018,24 +987,132 @@
style="font-size:24px"
sodipodi:role="line"
id="tspan3179"
x="918.30713"
x="937.04547"
y="125.43141">NM</tspan></text>
<g
style="display:inline"
inkscape:transform-center-y="-227.116"
inkscape:label="#g3961"
transform="matrix(0.814258,0.580503,-0.580503,0.814258,420.827,107.292)"
id="vorCrsPtr"
inkscape:transform-center-x="0.0231355"><path
sodipodi:nodetypes="ccccccccccc"
id="path4075"
style="fill:none;stroke:#ededed;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 555.335,604.662 -16.285,11.61 22.93,32.162 16.286,-11.61 z m -130.064,-147.985 -16.254,-22.799 1.454,-15.774 14.831,4.164 16.254,22.799 z"
inkscape:connector-curvature="0" /><path
inkscape:connector-curvature="0"
id="locPtr"
d="M 447.125,452.906 430.844,464.5 534.325,609.633 550.606,598.039 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:#ff00ff;stroke-width:5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
sodipodi:nodetypes="ccccc"
inkscape:label="#path4077"
inkscape:transform-center-y="0.742775" /><path
sodipodi:type="arc"
style="fill:none;stroke:#ededed;stroke-width:4.202175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path4079"
sodipodi:cx="380.07"
sodipodi:cy="643.93"
sodipodi:rx="6.71751"
sodipodi:ry="6.71751"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
transform="matrix(1.18986,0,0,1.18986,-84.8735,-147.54)" /><path
transform="matrix(1.18986,0,0,1.18986,-23.3459,-191.404)"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
sodipodi:ry="6.71751"
sodipodi:rx="6.71751"
sodipodi:cy="643.93"
sodipodi:cx="380.07"
id="path4081"
style="fill:none;stroke:#ededed;stroke-width:4.202175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" /><path
sodipodi:type="arc"
style="fill:none;stroke:#ededed;stroke-width:4.202175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path4083"
sodipodi:cx="380.07"
sodipodi:cy="643.93"
sodipodi:rx="6.71751"
sodipodi:ry="6.71751"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
transform="matrix(1.18986,0,0,1.18986,99.5179,-278.997)" /><path
transform="matrix(1.18986,0,0,1.18986,161.282,-323.029)"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
sodipodi:ry="6.71751"
sodipodi:rx="6.71751"
sodipodi:cy="643.93"
sodipodi:cx="380.07"
id="path4085"
style="fill:none;stroke:#ededed;stroke-width:4.202175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" /><path
style="fill:none;stroke:#ff00ff;stroke-width:5.000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 1438.97,392 0,-562.249"
id="path4087"
inkscape:connector-curvature="0"
transform="matrix(0.814258,-0.580503,0.580503,0.814258,-988.778,934.24)"
sodipodi:nodetypes="cc" /><path
style="fill:none;stroke:#ff00ff;stroke-width:5.000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 1438.63,667.5 0,108.5"
id="path4089"
inkscape:connector-curvature="0"
transform="matrix(0.814258,-0.580503,0.580503,0.814258,-988.778,934.24)"
sodipodi:nodetypes="cc" /></g><text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#32f519;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
x="803.289"
y="53.929054"
id="ilsLbl"
sodipodi:linespacing="125%"
inkscape:label="#text7243"><tspan
style="font-size:32px;fill:#32f519"
sodipodi:role="line"
id="tspan4172"
x="803.289"
y="53.929054">ILS L</tspan></text>
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
id="ilsFreq"
y="53.929054"
x="888.28894"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
xml:space="preserve"><tspan
y="53.929054"
x="888.28894"
id="tspan4176"
sodipodi:role="line"
style="font-size:32px;fill:#ededed;fill-opacity:1">999.99</tspan></text>
</g><g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="CTR"
style="display:inline"><path
id="trkInd2"
style="fill:#ff0000;fill-opacity:1;stroke:#ededed;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 484.069,824.388 55.862,0 m -27.755,84.942 -0.353,-144.493 m -27.754,-469.644 55.862,0 m -27.755,-84.942 -0.353,144.493"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
inkscape:label="#path3998" /><path
id="aplSymVor"
style="fill:none;stroke:#ededed;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 524.443,501.789 0,58 51.042,0 m -51.042,0 0,57 18.782,0 m -43.653,-115 0,58 -50.158,0 m 50.158,0 0,57 -19.136,0"
d="m 523.994,501.789 0,58 51.042,0 m -51.042,0 0,57 18.782,0 m -43.653,-115 0,58 -50.158,0 m 50.158,0 0,57 -19.136,0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccc"
inkscape:label="#path3895" /><g
inkscape:label="#path3895"
inkscape:transform-center-y="0.309359" /><g
id="vorCrsPtr2"
transform="matrix(0.814258,0.580503,-0.580503,0.814258,420.822,-186.724)"
inkscape:label="#g3961"
inkscape:transform-center-y="39.6918"><path
inkscape:transform-center-y="4.49826"
inkscape:transform-center-x="0.0276213"><path
inkscape:connector-curvature="0"
d="m 595.97,661.66 -16.285,11.61 104.49,146.566 15.109,3.966 1.177,-15.576 z m -170.699,-204.983 -7.546,-10.585 -8.143,5.805 -9.869,-13.843 8.143,-5.805 -88.817,-124.581 1.454,-15.774 14.831,4.164 88.817,124.581 8.143,-5.805 9.868,13.843 -8.142,5.805 7.546,10.585 z"
style="fill:none;stroke:#ededed;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
@ -1043,10 +1120,11 @@
sodipodi:nodetypes="cccccccccccccccccccc" /><path
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:#ff00ff;stroke-width:5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
d="M 447.125,452.906 430.844,464.5 573.219,664.188 589.5,652.594 447.125,452.906 z"
id="locPtr"
inkscape:connector-curvature="0" /><path
id="locPtr2"
inkscape:connector-curvature="0"
inkscape:label="#locPtr" /><path
transform="matrix(1.18986,0,0,1.18986,-68.6194,-124.741)"
d="m 386.788,643.93 a 6.71751,6.71751 0 1 1 -13.436,0 6.71751,6.71751 0 1 1 13.436,0 z"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
sodipodi:ry="6.71751"
sodipodi:rx="6.71751"
sodipodi:cy="643.93"
@ -1061,10 +1139,10 @@
sodipodi:cy="643.93"
sodipodi:rx="6.71751"
sodipodi:ry="6.71751"
d="m 386.788,643.93 a 6.71751,6.71751 0 1 1 -13.436,0 6.71751,6.71751 0 1 1 13.436,0 z"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
transform="matrix(1.18986,0,0,1.18986,-7.09184,-168.605)" /><path
transform="matrix(1.18986,0,0,1.18986,115.772,-256.198)"
d="m 386.788,643.93 a 6.71751,6.71751 0 1 1 -13.436,0 6.71751,6.71751 0 1 1 13.436,0 z"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
sodipodi:ry="6.71751"
sodipodi:rx="6.71751"
sodipodi:cy="643.93"
@ -1079,12 +1157,14 @@
sodipodi:cy="643.93"
sodipodi:rx="6.71751"
sodipodi:ry="6.71751"
d="m 386.788,643.93 a 6.71751,6.71751 0 1 1 -13.436,0 6.71751,6.71751 0 1 1 13.436,0 z"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
transform="matrix(1.18986,0,0,1.18986,177.536,-300.23)" /></g><g
style="display:inline"
id="compassApp"
inkscape:label="#g3124"
transform="matrix(0.497307,0,0,0.497307,257.283,150.704)"><text
transform="matrix(0.497307,0,0,0.497307,257.283,150.704)"
inkscape:transform-center-x="0.028335"
inkscape:transform-center-y="1.48975"><text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
id="text3920"
@ -1102,7 +1182,6 @@
<text
transform="matrix(0.866025,-0.5,0.5,0.866025,0,0)"
xml:space="preserve"
@ -1122,7 +1201,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -1142,7 +1220,6 @@
<text
transform="matrix(0,-1,1,0,0,0)"
xml:space="preserve"
@ -1162,7 +1239,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -1182,7 +1258,6 @@
<text
transform="matrix(-0.866026,-0.5,0.5,-0.866026,0,0)"
xml:space="preserve"
@ -1202,7 +1277,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -1222,7 +1296,6 @@
<text
transform="matrix(-0.866025,0.5,-0.5,-0.866025,0,0)"
xml:space="preserve"
@ -1242,7 +1315,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -1262,7 +1334,6 @@
<text
transform="matrix(0,1,-1,0,0,0)"
xml:space="preserve"
@ -1282,7 +1353,6 @@
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -1302,7 +1372,6 @@
<text
transform="matrix(0.866026,0.5,-0.5,0.866026,0,0)"
xml:space="preserve"
@ -1322,7 +1391,6 @@
<path
inkscape:connector-curvature="0"
style="fill:#ededed;fill-opacity:1;fill-rule:nonzero;stroke:#ededed;stroke-width:10.054152;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
@ -1384,35 +1452,146 @@
id="staFromL2"
transform="translate(-2.12902,94.067)"
width="1024"
height="1024" /><path
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="TrkBugLCD2"
height="1024" /><g
id="hdgBug2"
inkscape:label="#g3185"
inkscape:transform-center-y="-346.705"><path
inkscape:transform-center-y="-333.924"
inkscape:label="#path4994"
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 512.375,236.952 -0.25,-22.05 m 20,0 -0.25,13.55 -19.5,8.5 -19.75,-8.75 -0.5,-13.3 z"
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#path4994"
inkscape:transform-center-y="-333.924" /><path
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 512.187,233.64 0,-18.8 m 20,0 0,18.8 -20,0 -20,0 0,-18.8 z"
id="HdgBugCRT2"
id="TrkBugLCD2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
sodipodi:nodetypes="cccccccc" /><path
inkscape:transform-center-y="-335.549"
inkscape:label="#path3186"
inkscape:transform-center-y="-335.549" /><path
sodipodi:nodetypes="ccccccccc"
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="HdgBugLCD2"
d="m 532.25,211.066 -0.25,-20.8 -6.375,0.125 -11.062,20.312 -4.563,0.06 -12.125,-20.625 -5.875,0.125 0.25,20.8 z"
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="HdgBugCRT2"
d="m 512.187,233.64 0,-18.8 m 20,0 0,18.8 -20,0 -20,0 0,-18.8 z"
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /><path
inkscape:transform-center-y="-358.687"
inkscape:label="#path4994"
inkscape:transform-center-y="-358.687" /><path
style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 532.25,211.066 -0.25,-20.8 -6.375,0.125 -11.062,20.312 -4.563,0.06 -12.125,-20.625 -5.875,0.125 0.25,20.8 z"
id="HdgBugLCD2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccc" /></g><path
style="fill:none;stroke:#ededed;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 494.249,181.998 18.063,28.464 18.062,-28.464 z"
id="curHdgPtr2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc"
inkscape:label="#path3882"
inkscape:transform-center-y="-363.559" /></g><g
inkscape:transform-center-y="-363.559" /><text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
id="crsLbl"
y="90.379868"
x="854.72168"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
xml:space="preserve"><tspan
y="90.379868"
x="854.72168"
id="tspan4007"
sodipodi:role="line"
style="font-size:24px">CRS</tspan></text>
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
x="854.72168"
y="124.87983"
id="dmeLbl"
sodipodi:linespacing="125%"
inkscape:label="#text7243"><tspan
style="font-size:24px"
sodipodi:role="line"
id="tspan4011"
x="854.72168"
y="124.87983">DME</tspan></text>
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
id="crs"
y="90.062439"
x="913.95801"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
xml:space="preserve"><tspan
y="90.062439"
x="913.95801"
id="tspan4046"
sodipodi:role="line">999</tspan></text>
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
x="913.95801"
y="126.12444"
id="dme"
sodipodi:linespacing="125%"
inkscape:label="#text7243"><tspan
sodipodi:role="line"
id="tspan4071"
x="913.95801"
y="126.12444">99.9</tspan></text>
<g
id="gsGroup"
transform="matrix(0,-1,1,0,746.592,1646.26)"
inkscape:label="#g4160"><path
sodipodi:type="arc"
style="fill:none;stroke:#ededed;stroke-width:4.202175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="path3951-5"
sodipodi:cx="380.07"
sodipodi:cy="643.93"
sodipodi:rx="6.71751"
sodipodi:ry="6.71751"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
transform="matrix(0.968853,0.690717,-0.690717,0.968853,1048.27,-640.211)" /><path
transform="matrix(0.968853,0.690717,-0.690717,0.968853,1123.83,-640.211)"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
sodipodi:ry="6.71751"
sodipodi:rx="6.71751"
sodipodi:cy="643.93"
sodipodi:cx="380.07"
id="path3953-2"
style="fill:none;stroke:#ededed;stroke-width:4.202175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
sodipodi:type="arc" /><path
sodipodi:type="arc"
style="fill:none;stroke:#ededed;stroke-width:4.202175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="path3955-3"
sodipodi:cx="380.07"
sodipodi:cy="643.93"
sodipodi:rx="6.71751"
sodipodi:ry="6.71751"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
transform="matrix(0.968853,0.690717,-0.690717,0.968853,1274.73,-640.211)" /><path
transform="matrix(0.968853,0.690717,-0.690717,0.968853,1350.58,-640.21)"
d="m 386.788,643.93 c 0,3.71 -3.008,6.718 -6.718,6.718 -3.71,0 -6.718,-3.008 -6.718,-6.718 0,-3.71 3.008,-6.718 6.718,-6.718 3.71,0 6.718,3.008 6.718,6.718 z"
sodipodi:ry="6.71751"
sodipodi:rx="6.71751"
sodipodi:cy="643.93"
sodipodi:cx="380.07"
id="path3959-1"
style="fill:none;stroke:#ededed;stroke-width:4.202175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
sodipodi:type="arc" /><path
style="fill:none;stroke:#ededed;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 1002.5,521.001 -19.001,0"
id="path4166"
inkscape:connector-curvature="0"
transform="matrix(0,1,-1,0,1646.26,-746.592)" /><path
style="fill:#ff00ff;stroke:none;display:inline"
d="m 1125.26,226.404 10,20 -10,20.007 -10,-20.007 z"
id="gsDiamond"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc"
inkscape:label="#path4168" /></g></g><g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="PLAN"
@ -1446,7 +1625,6 @@
<path
inkscape:label="#path3017"
sodipodi:nodetypes="cccccc"
@ -1470,7 +1648,6 @@
<text
sodipodi:linespacing="125%"
id="text3209"
@ -1488,7 +1665,6 @@
<text
xml:space="preserve"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#00ff00;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -1506,7 +1682,6 @@
</g><text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -1520,6 +1695,11 @@
id="tspan5002-7"
x="511.74799"
y="320.56113">99</tspan></text>
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -1533,6 +1713,11 @@
id="tspan3201"
sodipodi:role="line"
style="text-align:center;text-anchor:middle">99</tspan></text>
<text
xml:space="preserve"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ededed;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
@ -1546,6 +1731,11 @@
id="tspan3205"
x="512.21063"
y="752.73596">99</tspan></text>
<text
inkscape:label="#text7243"
sodipodi:linespacing="125%"
@ -1559,4 +1749,9 @@
id="tspan3209"
sodipodi:role="line"
style="text-align:center;text-anchor:middle">99</tspan></text>
</g></svg>

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 96 KiB

View file

@ -81,7 +81,14 @@ var NDStyles = {
layer._view.setVisible(visible);
}, # end of layer update predicate
}, # end of storms layer
{ name:'airplaneSymbol', update_on:['toggle_display_mode'],
predicate: func(nd, layer) {
var visible = nd.get_switch('toggle_display_mode') == "PLAN";
if (visible) {
trigger_update( layer );
} layer._view.setVisible(visible);
},
},
{ name:'airports-nd', update_on:['toggle_range','toggle_airports','toggle_display_mode'],
predicate: func(nd, layer) {
# print("Running airports-nd predicate");
@ -225,6 +232,32 @@ var NDStyles = {
is_false: func(nd) nd.symbols.tasLbl.hide(),
},
},
{
id: 'ilsFreq',
impl: {
init: func(nd,symbol),
predicate: func(nd) nd.in_mode('toggle_display_mode', ['APP']),
is_true: func(nd) {
nd.symbols.ilsFreq.show();
if(getprop("instrumentation/nav/in-range"))
nd.symbols.ilsFreq.setText(getprop("instrumentation/nav/nav-id"));
else
nd.symbols.ilsFreq.setText(getprop("instrumentation/nav/frequencies/selected-mhz-fmt"));
},
is_false: func(nd) nd.symbols.ilsFreq.hide(),
},
},
{
id: 'ilsLbl',
impl: {
init: func(nd,symbol),
predicate: func(nd) nd.in_mode('toggle_display_mode', ['APP']),
is_true: func(nd) {
nd.symbols.ilsLbl.show();
},
is_false: func(nd) nd.symbols.ilsLbl.hide(),
},
},
{
id: 'wpActiveId',
impl: {
@ -277,15 +310,59 @@ var NDStyles = {
is_false: func(nd) nd.symbols.eta.hide(),
}, # of eta.impl
}, # of eta
{
id: 'gsGroup',
impl: {
init: func(nd,symbol),
predicate: func(nd) nd.in_mode('toggle_display_mode', ['APP']),
is_true: func(nd) {
if(nd.get_switch('toggle_centered'))
nd.symbols.gsGroup.setTranslation(0,0);
else
nd.symbols.gsGroup.setTranslation(0,150);
nd.symbols.gsGroup.show();
},
is_false: func(nd) nd.symbols.gsGroup.hide(),
},
},
{
id:'hdg',
impl: {
init: func(nd,symbol),
predicate: ALWAYS, # always true
is_true: func(nd) nd.symbols.hdg.setText(sprintf("%03.0f", nd.aircraft_source.get_hdg_mag() )),
predicate: func(nd) nd.in_mode('toggle_display_mode', ['APP','MAP','VOR']),
is_true: func(nd) {
var hdgText = "";
if(nd.in_mode('toggle_display_mode', ['MAP'])) {
if(nd.get_switch('toggle_true_north'))
hdgText = nd.aircraft_source.get_trk_tru();
else
hdgText = nd.aircraft_source.get_trk_mag();
} else {
if(nd.get_switch('toggle_true_north'))
hdgText = nd.aircraft_source.get_hdg_tru();
else
hdgText = nd.aircraft_source.get_hdg_mag();
}
nd.symbols.hdg.setText(sprintf("%03.0f", hdgText+0.5));
},
is_false: NOTHING,
}, # of hdg.impl
}, # of hdg
},
},
{
id:'hdgGroup',
impl: {
init: func(nd,symbol),
predicate: func(nd) nd.in_mode('toggle_display_mode', ['APP','MAP','VOR']),
is_true: func(nd) {
nd.symbols.hdgGroup.show();
if(nd.get_switch('toggle_centered'))
nd.symbols.hdgGroup.setTranslation(0,100);
else
nd.symbols.hdgGroup.setTranslation(0,0);
},
is_false: func(nd) nd.symbols.hdgGroup.hide(),
},
},
{
id:'gs',
impl: {
@ -302,7 +379,7 @@ var NDStyles = {
id:'rangeArcs',
impl: {
init: func(nd,symbol),
predicate: func(nd) ((((nd.get_switch('toggle_display_mode') == "APP" or nd.get_switch('toggle_display_mode') == "VOR") and nd.get_switch('toggle_weather')) or nd.get_switch('toggle_display_mode') == "MAP") and (!nd.get_switch('toggle_centered'))),
predicate: func(nd) (((nd.in_mode('toggle_display_mode', ['APP','VOR']) and nd.get_switch('toggle_weather')) or nd.get_switch('toggle_display_mode') == "MAP") and (!nd.get_switch('toggle_centered'))),
is_true: func(nd) nd.symbols.rangeArcs.show(),
is_false: func(nd) nd.symbols.rangeArcs.hide(),
}, # of rangeArcs.impl
@ -355,6 +432,136 @@ var NDStyles = {
is_false: func(nd) nd.symbols.rangePln4.hide(),
},
},
{
id:'crsLbl',
impl: {
init: func(nd,symbol),
predicate: func(nd) nd.in_mode('toggle_display_mode', ['APP','VOR']),
is_true: func(nd) nd.symbols.crsLbl.show(),
is_false: func(nd) nd.symbols.crsLbl.hide(),
},
},
{
id:'crs',
impl: {
init: func(nd,symbol),
predicate: func(nd) nd.in_mode('toggle_display_mode', ['APP','VOR']),
is_true: func(nd) {
nd.symbols.crs.show();
if(getprop("instrumentation/nav/radials/selected-deg") != nil)
nd.symbols.crs.setText(sprintf("%03.0f",getprop("instrumentation/nav/radials/selected-deg")));
},
is_false: func(nd) nd.symbols.crs.hide(),
},
},
{
id:'dmeLbl',
impl: {
init: func(nd,symbol),
predicate: func(nd) nd.in_mode('toggle_display_mode', ['APP','VOR']),
is_true: func(nd) nd.symbols.dmeLbl.show(),
is_false: func(nd) nd.symbols.dmeLbl.hide(),
},
},
{
id:'dme',
impl: {
init: func(nd,symbol),
predicate: func(nd) nd.in_mode('toggle_display_mode', ['APP','VOR']),
is_true: func(nd) {
nd.symbols.dme.show();
if(getprop("instrumentation/nav/dme-in-range"))
nd.symbols.dme.setText(sprintf("%3.1f",getprop("instrumentation/nav/nav-distance")*0.000539));
},
is_false: func(nd) nd.symbols.dme.hide(),
},
},
{
id:'trkInd2',
impl: {
init: func(nd,symbol),
predicate: func(nd) (nd.in_mode('toggle_display_mode', ['APP','VOR']) and nd.get_switch('toggle_centered')),
is_true: func(nd) {
nd.symbols.trkInd2.show();
nd.symbols.trkInd2.setRotation((nd.aircraft_source.get_trk_tru()-nd.aircraft_source.get_hdg_tru())*D2R);
},
is_false: func(nd) nd.symbols.trkInd2.hide(),
},
},
{
id:'vorCrsPtr',
impl: {
init: func(nd,symbol),
predicate: func(nd) (nd.in_mode('toggle_display_mode', ['APP','VOR']) and !nd.get_switch('toggle_centered')),
is_true: func(nd) {
nd.symbols.vorCrsPtr.show();
nd.symbols.vorCrsPtr.setRotation((getprop("instrumentation/nav/radials/selected-deg")-nd.aircraft_source.get_hdg_tru())*D2R);
},
is_false: func(nd) nd.symbols.vorCrsPtr.hide(),
},
},
{
id: 'gsDiamond',
impl: {
init: func(nd,symbol),
predicate: func(nd) nd.in_mode('toggle_display_mode', ['APP']),
is_true: func(nd) {
if(getprop("instrumentation/nav/gs-needle-deflection-norm") != nil)
nd.symbols.gsDiamond.setTranslation(-getprop("instrumentation/nav/gs-needle-deflection-norm")*150,0);
},
is_false: func(nd) nd.symbols.gsGroup.hide(),
},
},
{
id:'locPtr',
impl: {
init: func(nd,symbol),
predicate: func(nd) (nd.in_mode('toggle_display_mode', ['APP','VOR']) and !nd.get_switch('toggle_centered')),
is_true: func(nd) {
nd.symbols.locPtr.show();
var deflection = getprop("instrumentation/nav/heading-needle-deflection-norm");
nd.symbols.locPtr.setTranslation(deflection*150,0);
if(abs(deflection < 0.99))
nd.symbols.locPtr.setColorFill(1,0,1,1);
else
nd.symbols.locPtr.setColorFill(1,0,1,0);
nd.symbols.locPtr.setTranslation(0,-getprop("instrumentation/nav/heading-needle-deflection-norm")*150);
},
is_false: func(nd) nd.symbols.locPtr.hide(),
},
},
{
id:'locPtr2',
impl: {
init: func(nd,symbol),
predicate: func(nd) (nd.in_mode('toggle_display_mode', ['APP','VOR']) and !nd.get_switch('toggle_centered') and getprop("instrumentation/nav/in-range")),
is_true: func(nd) {
nd.symbols.locPtr2.show();
var deflection = getprop("instrumentation/nav/heading-needle-deflection-norm");
nd.symbols.locPtr2.setTranslation(deflection*150,0);
if(abs(deflection < 0.99))
nd.symbols.locPtr2.setColorFill(1,0,1,1);
else
nd.symbols.locPtr2.setColorFill(1,0,1,0);
nd.symbols.locPtr2.setTranslation(0,-getprop("instrumentation/nav/heading-needle-deflection-norm")*150);
},
is_false: func(nd) nd.symbols.locPtr2.hide(),
},
},
{
id:'wind',
impl: {
init: func(nd,symbol),
predicate: ALWAYS,
is_true: func(nd) {
var windDir = getprop("environment/wind-from-heading-deg");
if(!nd.get_switch('toggle_true_north'))
windDir = windDir + getprop("environment/magnetic-variation-deg");
nd.symbols.wind.setText(sprintf("%03.0f / %02.0f",windDir,getprop("environment/wind-speed-kt")));
},
is_false: NOTHING,
},
},
{
id:'windArrow',
impl: {
@ -362,10 +569,19 @@ var NDStyles = {
predicate: func(nd) (!(nd.in_mode('toggle_display_mode', ['PLAN']) and (nd.get_switch('toggle_display_type') == "LCD")) and nd.aircraft_source.get_spd() > 100),
is_true: func(nd) {
nd.symbols.windArrow.show();
var windArrowRot = (nd.aircraft_source.get_hdg_tru()-nd.aircraft_source.get_trk_tru())*D2R;
if(nd.in_mode('toggle_display_mode', ['MAP','PLAN']))
windArrowRot = 2*windArrowRot;
nd.symbols.windArrow.setRotation(windArrowRot);
var windArrowRot = getprop("environment/wind-from-heading-deg");
if(nd.in_mode('toggle_display_mode', ['MAP','PLAN'])) {
if(nd.get_switch('toggle_true_north'))
windArrowRot = windArrowRot - nd.aircraft_source.get_trk_tru();
else
windArrowRot = windArrowRot - nd.aircraft_source.get_trk_mag();
} else {
if(nd.get_switch('toggle_true_north'))
windArrowRot = windArrowRot - nd.aircraft_source.get_hdg_tru();
else
windArrowRot = windArrowRot - nd.aircraft_source.get_hdg_mag();
}
nd.symbols.windArrow.setRotation(windArrowRot*D2R);
},
is_false: func(nd) nd.symbols.windArrow.hide(),
},
@ -459,7 +675,7 @@ var update_weather = func {
}
update_weather();
# Hack to update airplane symbol location on PLAN mode every 5 seconds
# Hack to update airplane symbol location on PLAN mode every second
var update_apl_sym = func {
if (getprop("/instrumentation/efis/mfd/display-mode") == "PLAN")
setprop("/instrumentation/efis/mfd/display-mode","PLAN");
@ -609,8 +825,8 @@ var NavDisplay = {
### this is the "old" method that's less flexible, we want to use the style hash instead (see above)
# because things are much better configurable that way
# now look up all required SVG elements and initialize member fields using the same name to have a convenient handle
foreach(var element; ["wind","dmeLDist","dmeRDist","dmeL","dmeR","vorL","vorR","vorLId","vorRId",
"range","status.wxr","status.wpt","hdgGroup","status.sta","status.arpt"])
foreach(var element; ["dmeLDist","dmeRDist","dmeL","dmeR","vorL","vorR","vorLId","vorRId",
"range","status.wxr","status.wpt","status.sta","status.arpt"])
me.symbols[element] = me.nd.getElementById(element);
# load elements from vector image, and create instance variables using identical names, and call updateCenter() on each
@ -618,14 +834,12 @@ var NavDisplay = {
#
foreach(var element; ["compassApp","northUp","aplSymMap","aplSymMapCtr","aplSymVor",
"staFromL2","staToL2","staFromR2","staToR2",
"locPtr","hdgTrk","truMag","altArc","planArcs",
"trkInd","compass","HdgBugCRT","TrkBugLCD","HdgBugLCD","selHdgLine","curHdgPtr",
"hdgTrk","truMag","altArc","planArcs",
"trkInd","compass","hdgBug","HdgBugCRT","TrkBugLCD","HdgBugLCD","selHdgLine","curHdgPtr",
"HdgBugCRT2","TrkBugLCD2","HdgBugLCD2","hdgBug2","selHdgLine2","curHdgPtr2","vorCrsPtr2",
"staFromL","staToL","staFromR","staToR"] )
me.symbols[element] = me.nd.getElementById(element).updateCenter();
foreach(var element; ["HdgBugCRT2","TrkBugLCD2","HdgBugLCD2","selHdgLine2","curHdgPtr2","vorCrsPtr2"] )
me.symbols[element] = me.nd.getElementById(element).setCenter(512,565);
# this should probably be using Philosopher's new SymbolLayer ?
me.map = me.nd.createChild("map","map")
.set("clip", "rect(124, 1024, 1024, 0)")
@ -744,24 +958,12 @@ var NavDisplay = {
# and update each model accordingly
update: func() # FIXME: This stuff is still too aircraft specific, cannot easily be reused by other aircraft
{
##
# important constants
var m1 = 111132.92;
var m2 = -559.82;
var m3 = 1.175;
var m4 = -0.0023;
var p1 = 111412.84;
var p2 = -93.5;
var p3 = 0.118;
var latNm = 60;
var lonNm = 60;
# fgcommand('profiler-start');
# Heading update
var userHdgMag = me.aircraft_source.get_hdg_mag();
var userHdgTru = me.aircraft_source.get_hdg_tru();
var userTrkMag = me.aircraft_source.get_trk_mag();
var userTrkTru = me.aircraft_source.get_trk_tru();
if(me.get_switch('toggle_true_north')) {
me.symbols.truMag.setText("TRU");
var userHdg=userHdgTru;
@ -773,6 +975,15 @@ var NavDisplay = {
}
if (me.aircraft_source.get_gnd_spd() < 80)
userTrk = userHdg;
if (me.in_mode('toggle_display_mode', ['MAP'])) {
userHdgTrk = userTrk;
me.symbols.hdgTrk.setText("TRK");
} else {
userHdgTrk = userHdg;
me.symbols.hdgTrk.setText("HDG");
}
var userLat = me.aircraft_source.get_lat();
var userLon = me.aircraft_source.get_lon();
var userGndSpd = me.aircraft_source.get_gnd_spd();
@ -791,15 +1002,6 @@ var NavDisplay = {
me.map.setTranslation(512,565);
else
me.map.setTranslation(512,824);
# Calculate length in NM of one degree at current location TODO: expose as methods, for external callbacks
var userLatR = userLat*D2R;
var userLonR = userLon*D2R;
var latlen = m1 + (m2 * math.cos(2 * userLatR)) + (m3 * math.cos(4 * userLatR)) + (m4 * math.cos(6 * userLatR));
var lonlen = (p1 * math.cos(userLatR)) + (p2 * math.cos(3 * userLatR)) + (p3 * math.cos(5 * userLatR));
latNm = latlen*M2NM; #60 at equator
lonNm = lonlen*M2NM; #60 at equator
me.symbols.wind.setText(sprintf("%3.0f / %2.0f",getprop("/environment/wind-from-heading-deg"),getprop("/environment/wind-speed-kt")));
if(me.get_switch('toggle_lh_vor_adf') == 1)
{
@ -888,61 +1090,41 @@ var NavDisplay = {
hdg_bug_active = 1;
if(me.in_mode('toggle_display_mode', ['MAP'])) {
me.symbols.HdgBugCRT.setRotation((vhdg_bug-userTrk)*D2R);
me.symbols.HdgBugLCD.setRotation((vhdg_bug-userTrk)*D2R);
me.symbols.TrkBugLCD.setRotation((vhdg_bug-userTrk)*D2R);
me.symbols.selHdgLine.setRotation((vhdg_bug-userTrk)*D2R);
me.symbols.HdgBugCRT2.setRotation((vhdg_bug-userTrk)*D2R);
me.symbols.TrkBugLCD2.setRotation((vhdg_bug-userTrk)*D2R);
me.symbols.selHdgLine2.setRotation((vhdg_bug-userTrk)*D2R);
var hdgBugRot = (vhdg_bug-userHdgTrk)*D2R;
me.symbols.selHdgLine.setRotation(hdgBugRot);
me.symbols.hdgBug.setRotation(hdgBugRot);
me.symbols.hdgBug2.setRotation(hdgBugRot);
me.symbols.selHdgLine2.setRotation(hdgBugRot);
me.symbols.trkInd.setRotation(0);
me.symbols.curHdgPtr.setRotation((userHdg-userTrk)*D2R);
me.symbols.curHdgPtr2.setRotation((userHdg-userTrk)*D2R);
me.map._node.getNode("hdg",1).setDoubleValue(userTrkTru);
me.symbols.compass.setRotation(-userTrk*D2R);
me.symbols.compassApp.setRotation(-userTrk*D2R);
me.symbols.hdgTrk.setText("TRK");
me.symbols.compass.setRotation(-userHdgTrk*D2R);
me.symbols.compassApp.setRotation(-userHdgTrk*D2R);
}
if(me.in_mode('toggle_display_mode', ['APP','VOR'])) {
me.symbols.HdgBugCRT.setRotation((vhdg_bug-userHdg)*D2R);
me.symbols.HdgBugLCD.setRotation((vhdg_bug-userHdg)*D2R);
me.symbols.selHdgLine.setRotation((vhdg_bug-userHdg)*D2R);
me.symbols.HdgBugCRT2.setRotation((vhdg_bug-userHdg)*D2R);
me.symbols.HdgBugLCD2.setRotation((vhdg_bug-userHdg)*D2R);
me.symbols.selHdgLine2.setRotation((vhdg_bug-userHdg)*D2R);
var hdgBugRot = (vhdg_bug-userHdgTrk)*D2R;
me.symbols.selHdgLine.setRotation(hdgBugRot);
me.symbols.hdgBug.setRotation(hdgBugRot);
me.symbols.hdgBug2.setRotation(hdgBugRot);
me.symbols.selHdgLine2.setRotation(hdgBugRot);
me.symbols.trkInd.setRotation((userTrk-userHdg)*D2R);
me.symbols.curHdgPtr.setRotation(0);
me.symbols.curHdgPtr2.setRotation(0);
me.map._node.getNode("hdg",1).setDoubleValue(userHdgTru);
me.symbols.compass.setRotation(-userHdg*D2R);
me.symbols.compassApp.setRotation(-userHdg*D2R);
me.symbols.hdgTrk.setText("HDG");
me.symbols.compass.setRotation(-userHdgTrk*D2R);
me.symbols.compassApp.setRotation(-userHdgTrk*D2R);
}
me.map._node.getNode("hdg",1).setDoubleValue(userHdgTrk);
if(me.get_switch('toggle_centered')) {
if (me.in_mode('toggle_display_mode', ['APP','VOR'])) {
me.symbols.vorCrsPtr2.show();
me.symbols.compassApp.show();
if(getprop("instrumentation/nav/in-range")) {
var deflection = getprop("instrumentation/nav/heading-needle-deflection-norm");
me.symbols.locPtr.show();
me.symbols.locPtr.setTranslation(deflection*150,0);
if(abs(deflection < 0.99))
me.symbols.locPtr.setColorFill(1,0,1,1);
else
me.symbols.locPtr.setColorFill(1,0,1,0);
} else {
me.symbols.locPtr.hide();
}
me.symbols.vorCrsPtr2.setRotation((getprop("instrumentation/nav/radials/selected-deg")-userHdg)*D2R);
me.symbols.hdgGroup.setTranslation(0,100);
me.symbols.vorCrsPtr2.setRotation((getprop("instrumentation/nav/radials/selected-deg")-userHdgTrk)*D2R);
} else {
me.symbols.vorCrsPtr2.hide();
me.symbols.hdgGroup.setTranslation(0,100*me.in_mode('toggle_display_mode', ['MAP']));
me.symbols.compassApp.setVisible(me.in_mode('toggle_display_mode', ['MAP']));
}
} else {
me.symbols.vorCrsPtr2.hide();
me.symbols.hdgGroup.setTranslation(0,0);
me.symbols.compassApp.hide();
}
@ -1074,7 +1256,6 @@ var NavDisplay = {
}
}
me.symbols.hdgGroup.setVisible(!me.in_mode('toggle_display_mode', ['PLAN']));
me.symbols.northUp.setVisible(me.in_mode('toggle_display_mode', ['PLAN']));
me.symbols.aplSymMap.setVisible(me.in_mode('toggle_display_mode', ['APP','MAP','VOR']) and !me.get_switch('toggle_centered'));
me.symbols.aplSymMapCtr.setVisible(me.in_mode('toggle_display_mode', ['MAP']) and me.get_switch('toggle_centered'));

View file

@ -1,8 +1,7 @@
##
# Draw a route with tracks and waypoints (from Gijs' 744 ND.nas code)
# Draw a route with tracks and waypoints
#
## FIXME: encapsulate properly
var wp = [];
var text_wp = [];
@ -21,7 +20,6 @@ var text_wp = [];
}
};
var draw_route = func (group, theroute, controller=nil, lod=0)
{
#print("draw_route");
@ -60,11 +58,11 @@ var draw_route = func (group, theroute, controller=nil, lod=0)
canvas.drawwp(group, leg.path()[1].lat, leg.path()[1].lon, leg.alt_cstr, leg.wp_name, i, wp);
}
# Set Top Of Crimb coordinate
# Set Top Of Climb coordinate
canvas.drawprofile(route_group, "tc", "T/C");
# Set Top Of Descent coordinate
canvas.drawprofile(route_group, "td", "T/D");
# Set Step Crimb coordinate
# Set Step Climb coordinate
canvas.drawprofile(route_group, "sc", "S/C");
# Set Top Of Descent coordinate
canvas.drawprofile(route_group, "ed", "E/D");
@ -76,5 +74,3 @@ var draw_route = func (group, theroute, controller=nil, lod=0)
updatewp(0);
}

View file

@ -832,7 +832,7 @@ Started September 2000 by David Megginson, david@megginson.com
<server type="string" userarchive="y">fgcom.flightgear.org</server>
<show-messages type="bool" userarchive="y">false</show-messages>
<speaker-level type="double" userarchive="y">1.0</speaker-level>
<silence-threshold type="double" userarchive="y">-20.0</silence-threshold>
<silence-threshold type="double" userarchive="y">-35.0</silence-threshold>
<register>
<enabled type="bool" userarchive="y">false</enabled>
<username type="string" userarchive="y">guest</username>