const SGGeod& geod() const
{ return mPosition; }
+ /**
+ * Compute the cartesian position associated with this object
+ */
+ SGVec3d cart() const;
+
SGBucket bucket() const;
double latitude() const
virtual bool pass(FGPositioned* aPos) const
{ return true; }
+ virtual Type minType() const
+ { return INVALID; }
+
+ virtual Type maxType() const
+ { return INVALID; }
+
+ /**
+ * Test if this filter has a non-empty type range
+ */
+ bool hasTypeRange() const;
+
+ /**
+ * Assuming hasTypeRange is true, test if a given type passes the range
+ */
+ bool passType(Type aTy) const;
+
bool operator()(FGPositioned* aPos) const
{ return pass(aPos); }
};
*/
static const char* nameForType(Type aTy);
protected:
- FGPositioned(Type ty, const std::string& aIdent, double aLat, double aLon, double aElev);
- FGPositioned(Type ty, const std::string& aIdent, const SGGeod& aPos);
+ FGPositioned(Type ty, const std::string& aIdent, const SGGeod& aPos, bool aIndex = true);
- SGGeod mPosition; // can't be const right now
+ // can't be const right now, navrecord at least needs to fix up the position
+ // after navaids are parsed
+ SGGeod mPosition;
- Type mType;
- std::string mIdent;
+ const Type mType;
+ const std::string mIdent;
};
#endif // of FG_POSITIONED_HXX