21 #include <matrix/vlVector.h>
26 #include <boost/bind.hpp>
27 #include <boost/unordered_map.hpp>
33 class DtModelDefinition;
34 class DtOsgArticulatedModel;
138 typedef boost::unordered_map<DtUniqueID, std::vector<DtOsgArticulatedModel*> >
DtRunwayLightsMap;
148 virtual void updateRunwayManager();
150 virtual void slot_AerodromeCreated(
const std::string& icao);
151 virtual void slot_AerodromeStartInitializing(
const std::string& icao);
153 virtual void slot_RunwayCreated(
DtRunwayData& runwayData);
154 virtual void slot_RunwayDestroyed(
DtRunwayData& runwayData);
159 virtual double runwayWidth(
const std::vector<DtVector>& runwayPolygon)
const;
160 virtual DtVector forwardVector(
const std::vector<DtVector>& runwayPolygon)
const;
161 virtual DtVector forwardVector(
const DtVector& position,
double heading)
const;
162 virtual DtVector rightVector(
const DtVector& position,
double heading)
const;
204 std::string runwayKey(
const std::string& apt_icao,
const std::string& runwayNum)
const;
206 std::size_t hashRunwayData(
const DtRunwayData& runwayData);
208 void createAndPlaceCenterlineLighting(
const DtRunwayData& runwayData);
215 void createAndPlaceTouchdownZone(
const DtRunwayData& runwayData);
216 void createAndPlaceTouchdownZoneLightBar(
const DtUniqueID runwayId,
const std::string& groupName,
const DtVector& position,
double heading);
217 void createAndPlaceEdgeLighting(
const DtRunwayData& runwayData);
218 void createAndPlaceThresholdAndEndLighting(
const DtRunwayData& runwayData);
221 void createAndPlaceGroundLight(
const std::string& modelDef,
DtUniqueID runwayId,
const std::string& groupName,
const DtVector& pos,
222 double zOffset = 0.0,
double heading = 0.0);
224 bool readModelDefsByNameFile(
const std::string& path,
const std::string& modelDefsFilename);
228 DtVector geodeticToGeocentric(
double lat,
double lon,
double alt)
const;