// forward decls
class FGRunway;
+class SGPropertyNode;
class FGNavRecord : public FGPositioned
{
// (degrees) or dme bias (nm)
std::string _name; // verbose name in nav database
- FGRunway* runway;
+ FGRunway* mRunway; // associated runway, if there is one
bool serviceable; // for failure modeling
std::string trans_ident; // for failure modeling
*/
void initAirportRelation();
- void alignLocaliserWithRunway(FGRunway* aRunway, double aThreshold);
+ void alignLocaliserWithRunway(double aThreshold);
+
+ void readAirportSceneryData();
+ void processSceneryILS(SGPropertyNode* aILSNode);
public:
inline ~FGNavRecord(void) {}
- static FGNavRecord* createFromStream(std::istream& aStream);
-
FGNavRecord(Type type, const std::string& ident, const std::string& name,
const SGGeod& aPos,
int freq, int range, double multiuse);
virtual const std::string& name() const
{ return _name; }
+
+ /**
+ * Retrieve the runway this navaid is associated with (for ILS/LOC/GS)
+ */
+ FGRunway* runway() const { return mRunway; }
+
+ /**
+ * return the localizer width, in degrees
+ * computation is based up ICAO stdandard width at the runway threshold
+ * see implementation for further details.
+ */
+ double localizerWidth() const;
};
class FGTACANRecord : public SGReferenced {