]> git.mxchange.org Git - flightgear.git/blobdiff - src/Navaids/route.hxx
Prepare and implement reinit methods for instruments
[flightgear.git] / src / Navaids / route.hxx
index 3ea83596ffde9642e41e6d83994e88a014e61217..33d45ce2a5cbd46cafab29fa4c486359bd2b7b49 100644 (file)
 // forward decls
 class FGPositioned;
 class SGPath;
-class FGRunway;
-
-#include <Airports/simple.hxx>
-typedef SGSharedPtr<FGAirport> FGAirportRef;
+class FGAirport;
 
 namespace flightgear
 {
@@ -51,9 +48,6 @@ namespace flightgear
 class RouteBase;
 class Waypt;
 class NavdataVisitor;
-class SID;
-class STAR;
-class Transition;
   
 typedef SGSharedPtr<Waypt> WayptRef;
 
@@ -242,212 +236,7 @@ public:
 private:
 
 };
-  
-class FlightPlan : public RouteBase
-{
-public:
-  FlightPlan();
-  virtual ~FlightPlan();
-  
-  virtual std::string ident() const;
-  void setIdent(const std::string& s);
-  
-  FlightPlan* clone(const std::string& newIdent = std::string()) const;
-  
-  /**
-   * flight-plan leg encapsulation
-   */
-  class Leg
-  {
-  public:
-    FlightPlan* owner() const
-    { return _parent; }
-    
-    Waypt* waypoint() const
-    { return _waypt; }
-    
-    // reutrn the next leg after this one
-    Leg* nextLeg() const;
-    
-    unsigned int index() const;
-    
-    int altitudeFt() const;            
-    int speed() const;
-    
-    int speedKts() const;
-    double speedMach() const;
-    
-    RouteRestriction altitudeRestriction() const;    
-    RouteRestriction speedRestriction() const;
-    
-    void setSpeed(RouteRestriction ty, double speed);
-    void setAltitude(RouteRestriction ty, int altFt);
-    
-    double courseDeg() const;
-    double distanceNm() const;
-    double distanceAlongRoute() const;
-  private:
-    friend class FlightPlan;
-    
-    Leg(FlightPlan* owner, WayptRef wpt);
-    
-    Leg* cloneFor(FlightPlan* owner) const;
-    
-    FlightPlan* _parent;
-    RouteRestriction _speedRestrict, _altRestrict;
-    int _speed;
-    int _altitudeFt;
-    WayptRef _waypt;
-    /// length of this leg following the flown path
-    mutable double _pathDistance;
-    mutable double _courseDeg;
-    /// total distance of this leg from departure point
-    mutable double _distanceAlongPath; 
-  };
-  
-  class Delegate
-  {
-  public:
-    virtual ~Delegate();
-    
-    virtual void departureChanged() { }
-    virtual void arrivalChanged() { }
-    virtual void waypointsChanged() { }
-    
-    virtual void currentWaypointChanged() { }
-  
-  protected:
-    Delegate();
-    
-  private:
-    void removeInner(Delegate* d);
-    
-    void runDepartureChanged();
-    void runArrivalChanged();
-    void runWaypointsChanged();
-    void runCurrentWaypointChanged();
-    
-    friend class FlightPlan;
-    
-    Delegate* _inner;
-  };
-  
-  Leg* insertWayptAtIndex(Waypt* aWpt, int aIndex);
-  void insertWayptsAtIndex(const WayptVec& wps, int aIndex);
-  
-  void deleteIndex(int index);
-  void clear();
-  int clearWayptsWithFlag(WayptFlag flag);
-  
-  int currentIndex() const
-  { return _currentIndex; }
-  
-  void setCurrentIndex(int index);
-  
-  Leg* currentLeg() const;
-  Leg* nextLeg() const;
-  Leg* previousLeg() const;
-  
-  int numLegs() const
-  { return _legs.size(); }
-  
-  Leg* legAtIndex(int index) const;
-  int findLegIndex(const Leg* l) const;
-  
-  int findWayptIndex(const SGGeod& aPos) const;
-  
-  bool load(const SGPath& p);
-  bool save(const SGPath& p);
-  
-  FGAirportRef departureAirport() const
-  { return _departure; }
-  
-  FGAirportRef destinationAirport() const
-  { return _destination; }
-  
-  FGRunway* departureRunway() const
-  { return _departureRunway; }
-  
-  FGRunway* destinationRunway() const
-  { return _destinationRunway; }
-  
-  Approach* approach() const
-  { return _approach; }
-  
-  void setDeparture(FGAirport* apt);
-  void setDeparture(FGRunway* rwy);
-  
-  SID* sid() const
-  { return _sid; }
-  
-  Transition* sidTransition() const;
-  
-  void setSID(SID* sid, const std::string& transition = std::string());
-  
-  void setSID(Transition* sidWithTrans);
-  
-  void setDestination(FGAirport* apt);
-  void setDestination(FGRunway* rwy);
-  
-  /**
-    * note setting an approach will implicitly update the destination
-    * airport and runway to match
-    */
-  void setApproach(Approach* app);
-  
-  STAR* star() const
-  { return _star; }
-  
-  Transition* starTransition() const;
-  
-  void setSTAR(STAR* star, const std::string& transition = std::string());
-  
-  void setSTAR(Transition* starWithTrans);
-  
-  double totalDistanceNm() const
-  { return _totalDistance; }
-  
-  /**
-   * Create a WayPoint from a string in the following format:
-   *  - simple identifier
-   *  - decimal-lon,decimal-lat
-   *  - airport-id/runway-id
-   *  - navaid/radial-deg/offset-nm
-   */
-  WayptRef waypointFromString(const std::string& target);
-  
-  void setDelegate(Delegate* d);
-  void removeDelegate(Delegate* d);
-private:
-  
-  bool loadPlainTextRoute(const SGPath& path);
-  
-  void loadVersion1XMLRoute(SGPropertyNode_ptr routeData);
-  void loadVersion2XMLRoute(SGPropertyNode_ptr routeData);
-  void loadXMLRouteHeader(SGPropertyNode_ptr routeData);
-  WayptRef parseVersion1XMLWaypt(SGPropertyNode* aWP);
-  
-  double magvarDegAt(const SGGeod& pos) const;
-  
-  std::string _ident;
-  int _currentIndex;
-  
-  FGAirportRef _departure, _destination;
-  FGRunway* _departureRunway, *_destinationRunway;
-  SID* _sid;
-  STAR* _star;
-  Approach* _approach;
-  std::string _sidTransition, _starTransition;
-  
-  double _totalDistance;
-  void rebuildLegData();
-  
-  typedef std::vector<Leg*> LegVec;
-  LegVec _legs;
-  
-  Delegate* _delegate;
-};
-  
+
 } // of namespace flightgear
 
 #endif // of FG_ROUTE_HXX