1
0
Fork 0

A380 update from Scott

This commit is contained in:
Gijs de Rooy 2010-12-15 22:32:46 +01:00
parent 724afa3ffb
commit d3b091b88e
15 changed files with 30685 additions and 0 deletions

View file

@ -0,0 +1,326 @@
AC3Db
MATERIAL "2 - Default" rgb 0 0 0 amb 1 1 1 emis 1.00305 1.00305 1.00305 spec 1 1 1 shi 32 trans 0.051
OBJECT world
kids 10
OBJECT poly
name "ASIribbon"
loc -0.000344567 0 0.00757819
data 21
glass_2 - Default.001
texture "Aircraft/A380/Textures/Panels/pfd/spd-tape.png"
crease 30.000000
numvert 4
-0.081523 0.003013 -0.011317
-0.081523 0.003013 -0.032694
-0.172583 0.003013 -0.011317
-0.172583 0.003013 -0.032694
numsurf 2
SURF 0x0
mat 0
refs 3
0 0.104186 0.0163751
1 0.860545 0.0163751
3 0.860545 0.191284
SURF 0x0
mat 0
refs 3
2 0.104186 0.191284
0 0.104186 0.0163751
3 0.860545 0.191284
kids 0
OBJECT poly
name "ALTribbon"
loc 2.23517e-06 0.003013 -0.108395
data 21
glass_2 - Default.001
texture "Aircraft/A380/Textures/Panels/pfd/alt-tape.png"
crease 30.000000
numvert 4
-0.173657 0 -0.025269
-0.173657 0 -0.00874686
-0.0820301 0 -0.025269
-0.0820301 0 -0.00874685
numsurf 2
SURF 0x0
mat 0
refs 3
1 0.0327498 0.101037
3 0.0327498 -0.000345744
0 0.155658 0.101037
SURF 0x0
mat 0
refs 3
3 0.0327498 -0.000345744
2 0.155658 -0.000345744
0 0.155658 0.101037
kids 0
OBJECT poly
name "horizon"
loc -0.000344567 0.003013 0.00917348
data 21
glass_2 - Default.002
texture "Aircraft/A380/Textures/Panels/pfd/ati.png"
crease 30.000000
numvert 4
-0.172583 0 -0.120554
-0.172583 0 -0.0453412
-0.081523 0 -0.120554
-0.081523 0 -0.0453412
numsurf 2
SURF 0x0
mat 0
refs 3
1 0.107085 0.642585
3 0.107085 0.351712
0 0.395711 0.642585
SURF 0x0
mat 0
refs 3
3 0.107085 0.351712
2 0.395711 0.351712
0 0.395711 0.642585
kids 0
OBJECT group
name "alt_grp"
loc -0.154681 0.00626756 -0.056844
kids 5
OBJECT poly
name "alt_digit1"
loc 0.0264196 0 -0.0635095
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
crease 45.000000
numvert 4
-0.00499354 0 0.00264534
-0.00499354 0 -0.00264532
0.00499354 0 -0.00264532
0.00499354 0 0.00264534
numsurf 1
SURF 0x30
mat 0
refs 4
3 0.880859 0
2 0.935547 0
1 0.935547 0.0996094
0 0.880859 0.0996094
kids 0
OBJECT poly
name "alt_digit2"
loc 0.0264196 0 -0.0687808
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
crease 45.000000
numvert 4
0.00499354 0 0.00264534
0.00499354 0 -0.00264531
-0.00499354 0 -0.00264531
-0.00499354 0 0.00264534
numsurf 1
SURF 0x30
mat 0
refs 4
0 0.880859 0
1 0.935547 0
2 0.935547 0.0996094
3 0.880859 0.0996094
kids 0
OBJECT poly
name "alt_digit3"
loc 0.0264196 0 -0.073841
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
crease 45.000000
numvert 4
0.00499354 0 0.00264534
0.00499354 0 -0.00264528
-0.00499354 0 -0.00264531
-0.00499354 0 0.00264534
numsurf 1
SURF 0x30
mat 0
refs 4
0 0.880859 0
1 0.935547 0
2 0.935547 0.0996094
3 0.880859 0.0996094
kids 0
OBJECT poly
name "alt_digit4"
loc 0.026525 0 -0.078586
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
crease 45.000000
numvert 4
-0.00784004 0 0.00169648
-0.00784004 0 -0.0016965
0.00784008 0 -0.0016965
0.00784005 0 0.0016965
numsurf 1
SURF 0x30
mat 0
refs 4
3 0.880859 -0.105469
2 0.935547 -0.105469
1 0.935547 0.197266
0 0.880859 0.197266
kids 0
OBJECT poly
name "alt_digit5"
loc 0.026525 0 -0.08217
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
crease 45.000000
numvert 4
0.00784007 0 0.00169653
0.00784008 0 -0.00169647
-0.00784004 0 -0.00169648
-0.00784004 0 0.0016965
numsurf 1
SURF 0x30
mat 0
refs 4
0 0.880859 -0.105469
1 0.935547 -0.105469
2 0.935547 0.197266
3 0.880859 0.197266
kids 0
OBJECT poly
name "VS_scale"
loc -0.127563 0.0036868 -0.148204
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
crease 45.000000
numvert 4
0.0566647 0 0.00585595
0.0566647 0 -0.00585592
-0.0566647 0 -0.00585592
-0.0566647 0 0.00585595
numsurf 1
SURF 0x30
mat 0
refs 4
0 0.626953 0
1 0.689453 0
2 0.689453 0.480469
3 0.626953 0.480469
kids 0
OBJECT poly
name "GSscale"
loc -0.211645 0.00626495 -0.069631
data 21
glass_2 - Default.004
texture "Aircraft/A380/Textures/Panels/pfd/ati.png"
crease 30.000000
numvert 4
0.0456492 0 -0.0420058
0.121373 0 -0.0420057
0.0456492 0 -0.0485116
0.121373 0 -0.0485116
numsurf 2
SURF 0x0
mat 0
refs 3
0 0.549809 0.00489019
1 0.549809 0.25617
3 0.513916 0.25617
SURF 0x0
mat 0
refs 3
2 0.513916 0.00489019
0 0.552171 0.00489019
3 0.513916 0.257104
kids 0
OBJECT poly
name "LOCscale"
loc 0.0146204 0.00590829 -0.00340151
data 21
glass_2 - Default.004
texture "Aircraft/A380/Textures/Panels/pfd/ati.png"
crease 30.000000
numvert 4
-0.0934019 0 -0.103913
-0.0934019 0 -0.0390822
-0.0808759 0 -0.103913
-0.0808759 0 -0.0390822
numsurf 2
SURF 0x0
mat 0
refs 3
1 0.500285 0.049187
3 0.500285 -0.00121022
0 0.752498 0.049187
SURF 0x0
mat 0
refs 3
3 0.500285 0.00190065
2 0.751565 0.00190065
0 0.751565 0.049187
kids 0
OBJECT poly
name "PFD_Mask"
loc -4.59775e-05 -0.000184637 -2.23517e-08
data 17
glass_2 - Default
texture "Aircraft/A380/Textures/Panels/pfd/pfd1.png"
crease 30.000000
numvert 4
-0.21 0.004231 -0.16
-0.21 0.004231 -7.45058e-09
-7.45058e-09 0.004231 -0.16
0 0.004231 0
numsurf 2
SURF 0x0
mat 0
refs 3
1 0.0551543 1.00026
3 0.0549269 0.000442773
0 1.00031 1.00026
SURF 0x0
mat 0
refs 3
3 0.0549269 0.000442773
2 1.00017 0.000308543
0 1.00031 1.00026
kids 0
OBJECT poly
name "LOCneedle"
loc -0.0739199 0.00646657 -0.0757288
texture "Aircraft/A380/Textures/Panels/pfd/ati.png"
crease 180.000000
numvert 4
0.00561513 0 -0.00494666
0.00561513 0 0.00494668
-0.00561513 0 -0.00494666
-0.00561513 0 0.00494668
numsurf 2
SURF 0x30
mat 0
refs 3
0 0.667969 0.349609
3 0.636719 0.400391
1 0.636719 0.349609
SURF 0x30
mat 0
refs 3
0 0.667969 0.349609
2 0.667969 0.400391
3 0.636719 0.400391
kids 0
OBJECT poly
name "GSneedle"
loc -0.126658 0.00788147 -0.11512
texture "Aircraft/A380/Textures/Panels/pfd/ati.png"
crease 180.000000
numvert 4
0.00401081 0 -0.00387712
0.00401081 0 0.00387713
-0.00401081 0 -0.00387712
-0.00401081 0 0.00387713
numsurf 2
SURF 0x30
mat 0
refs 3
0 0.71875 0.359375
3 0.672852 0.386719
1 0.672852 0.359375
SURF 0x30
mat 0
refs 3
0 0.71875 0.359375
2 0.71875 0.386719
3 0.672852 0.386719
kids 0

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,262 @@
#############################################################################
#
# Airbus Flight Management.
#
# Abstract:
# This is a utility helper class for the moment, later to be expanded to do more.
#
#
# Author: S.Hamilton Jan 2010
#
#
# Copyright (C) 2010 Scott Hamilton
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
fms_trace = 0;
## mode constants
LNAV_OFF=0;
LNAV_HDG=1;
LNAV_TRACK=2;
LNAV_LOC=3;
LNAV_FMS=4;
LNAV_RWY=5;
VNAV_OFF=0;
VNAV_ALTs=1;
VNAV_VS=2;
VNAV_OPCLB=3;
VNAV_FPA=4;
VNAV_OPDES=5;
VNAV_CLB=6;
VNAV_ALTCRZ=7;
VNAV_DES=8;
VNAV_GS=9;
VNAV_SRS=10;
VNAV_LEVEL=11;
SPD_OFF=0;
SPD_TOGA=1;
SPD_FLEX=2;
SPD_THRCLB=3;
SPD_SPEED=4;
SPD_MACH=5;
SPD_CRZ=6;
SPD_THRDES=7;
SPD_THRIDL=8;
lnavStr = ["off","HDG","TRK","LOC","NAV","RWY"];
vnavStr = ["off","ALT(s)","V/S","OP CLB","FPA","OP DES","CLB","ALT CRZ","DES","G/S","SRS","LEVEL"];
spdStr = ["off","TOGA","FLEX","THR CLB","SPEED","MACH","CRZ","THR DES","THR IDL"];
MANAGED_MODE = -1;
SELECTED_MODE = 0;
var AirbusFMS = {
new : func() {
var m = {parents : [AirbusFMS]};
m.FMSnode = props.globals.getNode("/instrumentation/fms",1);
m.activeFpln = m.FMSnode.getNode("active-fpln",1);
m.secFpln = m.FMSnode.getNode("secondary-fpln",1);
m.depDB = nil;
m.arvDB = nil;
m.version = "V1.0.4";
##setlistener("/sim/signals/fdm-initialized", func m.init());
return m;
},
#############################################################################
# output a debug message to stdout or file.
#############################################################################
tracer : func(msg) {
var timeStr = getprop("/sim/time/gmt-string");
var curAltStr = getprop("/position/altitude-ft");
var curVnav = getprop("/instrumentation/flightdirector/vnav");
var curLnav = getprop("/instrumentation/flightdirector/lnav");
var curSpd = getprop("/instrumentation/flightdirector/spd");
var athrStr = getprop("/instrumentation/flightdirector/at-on");
var ap1Str = getprop("/instrumentation/flightdirector/ap");
var altHold = getprop("/autopilot/settings/target-altitude-ft");
var vsHold = getprop("/autopilot/settings/vertical-speed-fpm");
var spdHold = getprop("/autopilot/settings/target-speed-kt");
if (curVnav == nil) curVnav = "0";
if (curLnav == nil) curLnav = "0";
if (curSpd == nil) curSpd = "0";
if (fms_trace > 0) {
print("[AFMS] time: "~timeStr~" alt: "~curAltStr~", - "~msg);
if (fms_trace > 1) {
print("[AFMS] vnav: "~me.afs.vertical_text[curVnav]~", lnav: "~me.afs.lateral_text[curLnav]~", spd: "~me.afs.spd_text[curSpd]);
}
}
},
####
# init
####
init : func() {
##me.tracer("FDM "~me.version~" ready");
##settimer(func me.update(), 0);
##settimer(func me.slow_update(), 0);
},
### for high prio tasks ###
update : func() {
settimer(func me.update(), 1);
},
### for low prio tasks ###
slow_update : func() {
me.tracer("FMS update");
settimer(func me.slow_update(), 3);
},
####
# evaluate managed VNAV
####
evaluateManagedVNAV : func() {
var retVNAV = VNAV_OFF;
me.tracer("evaluateManagedVNAV");
##var curAlt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
var curAlt = getprop("/position/altitude-ft");
var curFlightMode = getprop("/instrumentation/ecam/flight-mode");
var redAlt = getprop("/instrumentation/afs/thrust-reduce-alt");
var accAlt = getprop("/instrumentation/afs/thrust-accel-alt");
var crzAlt = getprop("/instrumentation/afs/thrust-cruise-alt");
var crzAcquire = getprop("/instrumentation/afs/acquire_crz");
var accelArm = getprop("/instrumentation/flightdirector/accel-arm");
var clbArm = getprop("/instrumentation/flightdirector/climb-arm");
var flapPos = me.getFlapConfig();
var vnavMode = getprop("/instrumentation/flightdirector/vnav");
var lnavMode = getprop("/instrumentation/flightdirector/lnav");
var spdMode = getprop("/instrumentation/flightdirector/spd");
var vsi = getprop("/instrumentation/vertical-speed-indicator/indicated-speed-fpm");
var altSelect = getprop("/instrumentation/afs/vertical-alt-mode");
var vsSelect = getprop("/instrumentation/afs/vertical-vs-mode");
var spdSelect = getprop("/instrumentation/afs/speed-mode");
var apMode = getprop("/instrumentation/flightdirector/autopilot-on");
var bothSelect = MANAGED_MODE;
if (altSelect == SELECTED_MODE or vsSelect == SELECTED_MODE) {
bothSelect = SELECTED_MODE;
}
me.tracer("bothSelect: "~bothSelect);
me.tracer("clbArm: "~clbArm);
me.tracer("spdMode: "~spdMode);
me.tracer("flapPos: "~flapPos);
## managed Speed Reference System mode
if (curAlt < accAlt and clbArm == 0 and bothSelect == MANAGED_MODE and (spdMode == SPD_FLEX or spdMode == SPD_TOGA or spdMode == SPD_THRCLB) and flapPos > 0 ) {
retVNAV = VNAV_SRS;
me.tracer("retVNAV = VNAV_SRS");
}
## managed climb
if (curAlt >= accAlt and curAlt < (crzAlt-100) and crzAcquire == 0) {
if (lnavMode == LNAV_FMS) {
retVNAV = VNAV_CLB;
me.tracer("retVNAV = VNAV_CLB");
} else {
retVNAV = VNAV_OPCLB;
me.tracer("retVNAV = VNAV_OPCLB");
}
}
## managed cruise alt
if (curAlt > (crzAlt-1000) and bothSelect == MANAGED_MODE) {
retVNAV = VNAV_ALTCRZ;
me.tracer("retVNAV = VNAV_ALTCRZ");
}
## managed descend
var wpLen = getprop("/autopilot/route-manager/route/num");
var curWp = getprop("/autopilot/route-manager/current-wp");
var foundTD = 0;
if (curWp > 0) {
for(w=0; w < curWp; w=w+1) {
var wpName = getprop("/autopilot/route-manager/route/wp["~w~"]/id");
if (wpName == "T/D") {
foundTD = 1;
}
}
if(foundTD == 1 and curAlt > 400 and bothSelect == MANAGED_MODE) {
if (lnavMode == LNAV_FMS) {
retVNAV = VNAV_DES;
me.tracer("retVNAV = VNAV_DES");
} else {
retVNAV = VNAV_OPDES;
me.tracer("retVNAV = VNAV_OPDES");
}
}
}
if (getprop("/position/altitude-agl-ft") < 400 and vnavMode == VNAV_GS and lnavMode == LNAV_LOC) {
## combined LAND mode....
}
return retVNAV;
},
##########
# evaluate VNAV
##########
evaluateVNAV : func() {
var retVNAV = VNAV_OFF;
var apMode = getprop("/instrumentation/flightdirector/autopilot-on");
if (apMode == 1) {
retVNAV = me.evaluateManagedVNAV();
var altSelect = getprop("/instrumentation/afs/vertical-alt-mode");
var vsSelect = getprop("/instrumentation/afs/vertical-vs-mode");
if (altSelect == SELECTED_MODE) {
retVNAV = VNAV_ALTs;
}
if (vsSelect == SELECTED_MODE) {
retVNAV = VNAV_VS;
}
}
return retVNAV;
},
#############
# evaluate managed LNAV
#############
evaluateManagedLNAV : func() {
var retLNAV = LNAV_OFF;
var agl = getprop("/position/altitude-agl-ft");
return retLNAV;
},
####
# calculate the current flap position
####
getFlapConfig : func() {
var flapConfig = 0;
var currFlapPos = getprop("/fdm/jsbsim/fcs/flap-cmd-norm");
if (currFlapPos == 0.2424) {
flapConfig = 1;
}
if (currFlapPos == 0.5151) {
flapConfig = 2;
}
if (currFlapPos == 0.7878) {
flapConfig = 3;
}
if (currFlapPos == 1.0) {
flapConfig = 4;
}
return flapConfig;
}
};

View file

@ -0,0 +1,57 @@
#
# Simple utility to manage an array of text lines in a region.
#
#
# Copyright (C) 2009 Scott Hamilton
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
var TextRegion = {
new : func(lines, width, prefix){
var me = {parents:[TextRegion]};
me.posLine = 0;
me.baseNode = props.globals.getNode(prefix,1);
me.maxWidth = width;
me.maxLines = lines;
for(var p = 0; p != lines; p=p+1) {
var lineNode = me.baseNode.getNode("line["~p~"]",1);
lineNode.setValue("");
}
return me;
},
append : func(text) {
var lineNode = me.baseNode.getNode("line["~me.posLine~"]",1);
lineNode.setValue(text);
if (me.posLine < me.maxLines) {
me.posLine = me.posLine+1;
}
},
textAt : func(index, text) {
var lineNode = me.baseNode.getNode("line["~index~"]",1);
lineNode.setValue(text);
me.posLine = index;
},
clear : func() {
for(var p = 0; p != me.maxLines; p=p+1) {
var lineNode = me.baseNode.getNode("line["~p~"]",1);
lineNode.setValue("");
}
me.posLine = 0;
},
reset : func() {
for(var p = me.posLine; p != me.maxLines; p=p+1) {
var lineNode = me.baseNode.getNode("line["~p~"]",1);
lineNode.setValue("");
}
me.posLine = 0;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
A light "cone" effect, written by Lauri Peltonen (Zan)
With this effect, any object (most likely a cone) will
light up everything inside of it. Might be usefull for
landing lights etc.
Uses stencil buffer.
-->
<PropertyList>
<name>Effects/light-cone</name>
<inherits-from>Effects/model-default</inherits-from>
<parameters>
<texture n ="0">
<type>white</type>
</texture>
<!-- Dunno if this does anything, it could be removed
what does this do with rendering-hint=transparent? -->
<render-bin>
<active>true</active>
<bin-number>9</bin-number>
<bin-name>RenderBin</bin-name>
</render-bin>
</parameters>
<technique n="8">
<!-- First pass, increase stencil when ground is in front of
the lighting object -->
<pass>
<render-bin>
<active>true</active>
<bin-number>9</bin-number>
<bin-name>RenderBin</bin-name>
</render-bin>
<lighting>false</lighting>
<color-mask type="vec4d">0 0 0 0</color-mask> <!-- do not draw anything -->
<shade-model><use>shade-model</use></shade-model>
<cull-face>front</cull-face>
<!-- <rendering-hint>transparent</rendering-hint> -->
<depth>
<write-mask>false</write-mask>
</depth>
<!-- Set stencil buffer to 1 if ground is in front of the back side
of the light volume, otherwise zero -->
<stencil>
<function>always</function> <!-- S-test passes always -->
<value>1</value>
<z-fail>replace</z-fail> <!-- Replace current s-buffer with value 1 -->
<pass>zero</pass> <!-- Zero everything "behind" the volume -->
</stencil>
</pass>
<!-- Second pass, decrease stencil when ground is in front of the front
side of the volume, in stencil buffer, 1 exists where ground
(or other objects) is inside the lighting object! -->
<pass>
<render-bin>
<active>true</active>
<bin-number>9</bin-number>
<bin-name>RenderBin</bin-name>
</render-bin>
<lighting>false</lighting>
<color-mask type="vec4d">0 0 0 0</color-mask> <!-- Do not draw anything -->
<shade-model><use>shade-model</use></shade-model>
<cull-face>back</cull-face>
<!-- <rendering-hint>transparent</rendering-hint> -->
<depth>
<write-mask>false</write-mask>
</depth>
<!-- Set s-buffer to 0 when ground is in front of the front side of the volume -->
<stencil>
<function>always</function> <!-- S-test passes always -->
<z-fail>zero</z-fail> <!-- Zero s-buffer when z-buffer test fails -->
</stencil>
</pass>
<!-- Third pass, render light where there is 1 on stencil buffer -->
<pass>
<render-bin>
<active>true</active>
<bin-number>9</bin-number>
<bin-name>RenderBin</bin-name>
</render-bin>
<lighting>false</lighting>
<shade-model><use>shade-model</use></shade-model>
<cull-face>back</cull-face>
<!-- <rendering-hint>transparent</rendering-hint> -->
<depth>
<write-mask>false</write-mask>
</depth>
<!-- Draw when S-buffer EQUALS value 1 -->
<stencil>
<function>equal</function>
<value>1</value>
</stencil>
<!-- Do additive blending, so increase the color value of
the existing pixel by the light's color. The light object should
have ambient & diffuse AND alpha should be around 0.2 or something -->
<blend>
<active>true</active>
<source>dst-alpha</source>
<destination>one</destination>
</blend>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
A light "cone" effect, written by Lauri Peltonen (Zan)
With this effect, any object (most likely a cone) will
light up everything inside of it. Might be usefull for
landing lights etc.
Uses stencil buffer.
-->
<PropertyList>
<name>Effects/light-cone</name>
<inherits-from>Effects/model-default</inherits-from>
<parameters>
<texture n ="0">
<type>white</type>
</texture>
<!-- Dunno if this does anything, it could be removed
what does this do with rendering-hint=transparent? -->
<render-bin>
<active>true</active>
<bin-number>9</bin-number>
<bin-name>RenderBin</bin-name>
</render-bin>
</parameters>
<technique n="8">
<!-- First pass, increase stencil when ground is in front of
the lighting object -->
<pass>
<render-bin>
<active>true</active>
<bin-number>9</bin-number>
<bin-name>RenderBin</bin-name>
</render-bin>
<lighting>false</lighting>
<color-mask type="vec4d">0 0 0 0</color-mask> <!-- do not draw anything -->
<shade-model><use>shade-model</use></shade-model>
<cull-face>front</cull-face>
<!-- <rendering-hint>transparent</rendering-hint> -->
<depth>
<write-mask>false</write-mask>
</depth>
<!-- Set stencil buffer to 1 if ground is in front of the back side
of the light volume, otherwise zero -->
<stencil>
<function>always</function> <!-- S-test passes always -->
<value>1</value>
<z-fail>replace</z-fail> <!-- Replace current s-buffer with value 1 -->
<pass>zero</pass> <!-- Zero everything "behind" the volume -->
</stencil>
</pass>
<!-- Second pass, decrease stencil when ground is in front of the front
side of the volume, in stencil buffer, 1 exists where ground
(or other objects) is inside the lighting object! -->
<pass>
<render-bin>
<active>true</active>
<bin-number>9</bin-number>
<bin-name>RenderBin</bin-name>
</render-bin>
<lighting>false</lighting>
<color-mask type="vec4d">0 0 0 0</color-mask> <!-- Do not draw anything -->
<shade-model><use>shade-model</use></shade-model>
<cull-face>back</cull-face>
<!-- <rendering-hint>transparent</rendering-hint> -->
<depth>
<write-mask>false</write-mask>
</depth>
<!-- Set s-buffer to 0 when ground is in front of the front side of the volume -->
<stencil>
<function>always</function> <!-- S-test passes always -->
<z-fail>zero</z-fail> <!-- Zero s-buffer when z-buffer test fails -->
</stencil>
</pass>
<!-- Third pass, render light where there is 1 on stencil buffer -->
<pass>
<render-bin>
<active>true</active>
<bin-number>9</bin-number>
<bin-name>RenderBin</bin-name>
</render-bin>
<lighting>false</lighting>
<shade-model><use>shade-model</use></shade-model>
<cull-face>back</cull-face>
<!-- <rendering-hint>transparent</rendering-hint> -->
<depth>
<write-mask>false</write-mask>
</depth>
<!-- Draw when S-buffer EQUALS value 1 -->
<stencil>
<function>equal</function>
<value>1</value>
</stencil>
<!-- Do additive blending, so increase the color value of
the existing pixel by the light's color. The light object should
have ambient & diffuse AND alpha should be around 0.2 or something -->
<blend>
<active>true</active>
<source>dst-alpha</source>
<destination>one</destination>
</blend>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,150 @@
<?xml version="1.0"?>
<!--
RMP Display for A380.
This is for the Radio Management Panel on the pedestal
The naming of <text> objects is;
RMP.xxx.label - for static text labelling
RMP.xxx.field - fields that user can input value into
RMP.xxx.value - dynamic text values for display
Author: S.Hamilton - May 2010
-->
<PropertyList>
<!-- RMP display -->
<text>
<name>RMP.vhf1.value</name>
<axis-alignment>yz-plane</axis-alignment>
<alignment>right-bottom</alignment>
<offsets>
<pitch-deg>-90.0</pitch-deg>
<x-m>0.231</x-m>
<y-m>0.061</y-m>
<z-m>-0.0055</z-m>
</offsets>
<type>number-value</type>
<property type="string">/instrumentation/nav[0]/frequencies/selected-mhz</property>
<format type="string">%3.2f</format>
<font>helvetica_bold.txf</font>
<character-size type="double">0.01</character-size>
</text>
<text>
<name>RMP.vhf1.label</name>
<axis-alignment>yz-plane</axis-alignment>
<alignment>right-bottom</alignment>
<offsets>
<pitch-deg>-90.0</pitch-deg>
<x-m>0.231</x-m>
<y-m>0.078</y-m>
<z-m>-0.0055</z-m>
</offsets>
<type>literal</type>
<text type="string">VHF1</text>
<font>helvetica_bold.txf</font>
<character-size type="double">0.0045</character-size>
</text>
<text>
<name>RMP.vhf2.value</name>
<axis-alignment>yz-plane</axis-alignment>
<alignment>right-bottom</alignment>
<offsets>
<pitch-deg>-90.0</pitch-deg>
<x-m>0.249</x-m>
<y-m>0.061</y-m>
<z-m>-0.0055</z-m>
</offsets>
<type>number-value</type>
<property type="string">/instrumentation/nav[1]/frequencies/selected-mhz</property>
<format type="string">%3.2f</format>
<font>helvetica_bold.txf</font>
<character-size type="double">0.01</character-size>
</text>
<text>
<name>RMP.vhf2.label</name>
<axis-alignment>yz-plane</axis-alignment>
<alignment>right-bottom</alignment>
<offsets>
<pitch-deg>-90.0</pitch-deg>
<x-m>0.249</x-m>
<y-m>0.078</y-m>
<z-m>-0.0055</z-m>
</offsets>
<type>literal</type>
<text type="string">VHF2</text>
<font>helvetica_bold.txf</font>
<character-size type="double">0.0045</character-size>
</text>
<text>
<name>RMP.vhf3.value</name>
<axis-alignment>yz-plane</axis-alignment>
<alignment>right-bottom</alignment>
<offsets>
<pitch-deg>-90.0</pitch-deg>
<x-m>0.267</x-m>
<y-m>0.061</y-m>
<z-m>-0.0055</z-m>
</offsets>
<type>number-value</type>
<property type="string">/instrumentation/nav[2]/frequencies/selected-mhz</property>
<format type="string">%3.2f</format>
<font>helvetica_bold.txf</font>
<character-size type="double">0.01</character-size>
</text>
<text>
<name>RMP.vhf3.label</name>
<axis-alignment>yz-plane</axis-alignment>
<alignment>right-bottom</alignment>
<offsets>
<pitch-deg>-90.0</pitch-deg>
<x-m>0.267</x-m>
<y-m>0.078</y-m>
<z-m>-0.0055</z-m>
</offsets>
<type>literal</type>
<text type="string">VHF3</text>
<font>helvetica_bold.txf</font>
<character-size type="double">0.0045</character-size>
</text>
<!-- material for all display text -->
<animation>
<type>material</type>
<object-name>RMP.vhf1.value</object-name>
<object-name>RMP.vhf1.label</object-name>
<object-name>RMP.vhf2.value</object-name>
<object-name>RMP.vhf2.label</object-name>
<object-name>RMP.vhf3.value</object-name>
<object-name>RMP.vhf3.label</object-name>
<diffuse>
<red>0.898</red>
<green>0.898</green>
<blue>1.0</blue>
</diffuse>
<ambient>
<red>0.898</red>
<green>0.898</green>
<blue>1.0</blue>
</ambient>
<emission>
<red>0.1</red>
<green>0.1</green>
<blue>0.563</blue>
</emission>
<specular>
<red>0.0</red>
<green>0.0</green>
<blue>0.0</blue>
</specular>
<shininess>0.0</shininess>
</animation>
</PropertyList>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<path>../../Models/Lights/light-cone.ac</path>
<texture-path>../../Textures/Common/</texture-path>
<effect>
<inherits-from>Aircraft/A380/XML/Effects/light-cone-left</inherits-from>
<object-name>Cone</object-name>
</effect>
</PropertyList>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<path>../../Models/Lights/light-cone.ac</path>
<texture-path>../../Textures/Common/</texture-path>
<effect>
<inherits-from>Aircraft/A380/XML/Effects/light-cone-right</inherits-from>
<object-name>Cone</object-name>
</effect>
</PropertyList>

View file

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">Qantas Airways</name>
<texture>../QFA/A380.rgb</texture>
</livery>
<cowling>
<texture>../QFA/cowling.png</texture>
</cowling>
</model>
</sim>
</PropertyList>

View file

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">Singapore Airlines</name>
<texture>../SIA/A380.png</texture>
</livery>
<cowling>
<texture>../SIA/cowling.png</texture>
</cowling>
</model>
</sim>
</PropertyList>