21 #include <matrix/vlVector.h>
26 #include <boost/bind.hpp>
27 #include <boost/unordered_map.hpp>
33 class DtModelDefinition;
34 class DtOsgArticulatedModel;
137 typedef boost::unordered_map<DtUniqueID, std::vector<DtOsgArticulatedModel*> >
DtRunwayLightsMap;
147 virtual void updateRunwayManager();
149 virtual void slot_AerodromeCreated(
const std::string& icao);
151 virtual void slot_RunwayCreated(
DtRunwayData& runwayData);
152 virtual void slot_RunwayDestroyed(
DtRunwayData& runwayData);
157 virtual double runwayWidth(
const std::vector<DtVector>& runwayPolygon)
const;
158 virtual DtVector forwardVector(
const std::vector<DtVector>& runwayPolygon)
const;
159 virtual DtVector forwardVector(
const DtVector& position,
double heading)
const;
160 virtual DtVector rightVector(
const DtVector& position,
double heading)
const;
195 std::string runwayKey(
const std::string& apt_icao,
const std::string& runwayNum)
const;
197 std::size_t hashRunwayData(
const DtRunwayData& runwayData);
199 void createAndPlaceCenterlineLighting(
const DtRunwayData& runwayData);
206 void createAndPlaceTouchdownZone(
const DtRunwayData& runwayData);
207 void createAndPlaceTouchdownZoneLightBar(
const DtUniqueID runwayId,
const DtVector& position,
double heading);
208 void createAndPlaceEdgeLighting(
const DtRunwayData& runwayData);
209 void createAndPlaceThresholdLighting(
const DtRunwayData& runwayData);
212 void createAndPlaceGroundLight(std::string modelDef,
DtUniqueID runwayId,
const DtVector& pos,
213 double zOffset = 0.0,
double heading = 0.0);
217 DtVector geodeticToGeocentric(
double lat,
double lon,
double alt)
const;