1 // This is the class that manages all the flights
5 public class FlightList {
8 public /*static*/ int noFlights;
9 public /*static*/ Vector f;
11 public FlightList( D2 d2 ) {
18 public void addFlight(int index, Flight flight) {
19 f.addElement(index,flight);
23 public /*static*/ void addFlightPlan(int time, StringTokenizer st) {
24 Flight newFlight=new Flight(d2, st.nextToken());
26 f.addElement(newFlight);
27 FlightPlan fAux=new FlightPlan();
28 Aircraft aAux=d2.getAircraftList().getAircraft(st.nextToken());
29 newFlight.setAircraftType(aAux);
30 newFlight.setFlightType(st.nextToken());
31 Route rAux=new Route(d2, Integer.parseInt(st.nextToken()));
32 for (int i=0;i<rAux.noFixes;i++)
33 rAux.addFix(i,st.nextToken());
35 fAux.setCruiseParam(Double.parseDouble(st.nextToken()), Double.parseDouble(st.nextToken()));
36 newFlight.setFlightPlan(fAux);
39 public /*static*/ String getFlightName(int index) {
40 Flight fAux=(Flight) f.elementAt(index);
44 public /*static*/ void amendFlightPlan(int time, StringTokenizer st) {
45 Flight fAux=getFlight(st.nextToken());
46 Route rAux=new Route(d2, Integer.parseInt(st.nextToken()));
47 for (int i=0;i<rAux.noFixes;i++)
48 rAux.addFix(i,st.nextToken());
49 fAux.fPlan.setRoute(rAux);
50 fAux.fPlan.setCruiseParam(Double.parseDouble(st.nextToken()), Double.parseDouble(st.nextToken()));
53 public /*static*/ void amendFlightInfo(int time, StringTokenizer st) {
54 Flight fAux=getFlight(st.nextToken());
55 Aircraft aAux=d2.getAircraftList().getAircraft(st.nextToken());
56 fAux.setAircraftType(aAux);
57 fAux.setFlightType(st.nextToken());
60 public /*static*/ void sendingAircraft(int time, StringTokenizer st) {
61 int noF=Integer.parseInt(st.nextToken());
68 for (int counter=0; counter<noF; counter++) {
71 Double.valueOf(st.nextToken()).doubleValue(),
72 Double.valueOf(st.nextToken()).doubleValue(),
73 Double.valueOf(st.nextToken()).doubleValue());
74 vel=new Velocity(Double.valueOf(st.nextToken()).doubleValue(),
75 Double.valueOf(st.nextToken()).doubleValue(),
76 Double.valueOf(st.nextToken()).doubleValue());
77 t=new Track(pos, vel);
78 nameFix=st.nextToken();
80 System.out.println(id+" Flight id: "+fAux.flightID);
82 System.out.println("Setting current fix ...");
83 fAux.fPlan.setCurrentFix(nameFix);
84 System.out.println("Sent flight "+
88 d2.getTrajectorySynthesizer().updateTrajectory(time, fAux);
89 fAux.traject.printInfo();
93 public /*static*/ void removeFlightPlan(int time, StringTokenizer st) {
94 String id=st.nextToken();
96 while ((i<noFlights) && (((Flight) f.elementAt(i)).hasID(id))) i++;
97 if (i<noFlights) f.removeElementAt(i);
100 public /*static*/ Flight getFlight(String id) {
101 for( int i = 0; i < f.size(); ++i ) {
102 Flight fAux=(Flight) f.elementAt(i);
106 System.out.println("Flight not found - "+id);
110 public /*static*/ boolean anyPlanesAlive() {
111 for( int i = 0; i < f.size(); ++i ) {
112 Flight aAux=(Flight) f.elementAt(i);
113 Vector p1=aAux.traject.p;
114 Point4d pAux= (Point4d) p1.elementAt(0);
115 if (!pAux.outOfRange())
121 public /*static*/ void printInfo() {
122 System.out.println("\n\nThe number of flights:"+noFlights);
123 System.out.println("The flights are:");
124 for( int i = 0; i < f.size(); ++i ) {
125 Flight fAux=(Flight) f.elementAt(i);
126 System.out.println(fAux);