16 #include <osgEarthAerodrome/AerodromeCatalog>
17 #include <osgEarthAerodrome/AerodromeFactory>
19 #include <boost/unordered_map.hpp>
20 #include <OpenThreads/Mutex>
24 class DtRunwayDesignatorNode;
25 class DtRunwayMarkingNode;
26 class DtTextureAtlasIndexParser;
27 class DtTaxiwaySignSignaler;
38 , centerlineStartOffset_ft(0.0f)
39 , hasCenterline(false)
40 , myFowardVector(osg::Vec3(1, 0, 0))
41 , myThreshold(osg::Vec3(0, 0, 0))
42 , useableThreshold(osg::Vec3(0, 0, 0))
60 std::vector<std::string>
rwy1;
61 std::vector<std::string>
rwy2;
74 virtual void apply(osgEarth::Aerodrome::AerodromeNode& node);
76 virtual void apply(osgEarth::Aerodrome::RunwayNode& node);
78 virtual void apply(osgEarth::Aerodrome::RunwayThresholdNode& node);
80 virtual void apply(osgEarth::Aerodrome::TaxiwaySignNode& node);
82 virtual void apply(osgEarth::Aerodrome::LightIndicatorNode& node);
84 virtual void apply(osgEarth::Aerodrome::RunwayThresholdGroup& group);
86 virtual void parseTaxiwaySignNode(osgEarth::Aerodrome::TaxiwaySignNode &node);
88 virtual void parseRunwayNode(osgEarth::Aerodrome::AerodromeFeatureNode& node);
90 virtual void parseRunwayThresholdNode(osgEarth::Aerodrome::AerodromeFeatureNode& node);
92 virtual void parseLightIndicatorNode(osgEarth::Aerodrome::AerodromeFeatureNode& node);
94 virtual void printFeatureAttributes(osgEarth::Aerodrome::AerodromeFeatureNode& node);
96 virtual void addRunwayDesignator(
const std::string& icao,
const std::string& designator,
const std::string& tag,
97 const osg::Vec3& threshold,
float offset,
float centerOffset = 0.0f);
99 virtual void addRunwayMarking(
const std::string& icao,
const std::string& designator,
const std::string& tag,
100 const osg::Vec3& threshold,
float offset,
float length,
float width,
float lateralSpacing);
102 virtual void addRunwayThresholdBar(
const std::string& icao,
const std::string& designator,
const osg::Vec3& threshold);
104 virtual void addRunwayEdgeMarking(
const std::string& icao,
const std::string& designator,
const osg::Vec3& threshold);
106 virtual void addCenterlineMarking(
const std::string& icao,
const std::string& designator1,
const std::string& designator);
108 virtual void addDesignator(
const std::string& icao,
const osg::Vec3Array& verts,
const osg::Vec2Array& texCoords);
110 virtual void addMarking(
const std::string& icao,
const osg::Vec3Array& verts,
const osg::Vec2Array& texCoords);
129 virtual void removeAerodromeFromMap(
const std::string& icao);
142 RunwayPolygonData* getRunwayPolygonData(
const std::string& icao,
const std::string& designator);
157 virtual osg::ref_ptr<osg::Geode> buildMarkingDrawable();
158 virtual osg::ref_ptr<osg::Geode> buildDesignatorDrawable();
160 virtual void addMarking(
const osg::Vec3Array& verts,
const osg::Vec2Array& texCoords);
161 virtual void addDesignator(
const osg::Vec3Array& verts,
const osg::Vec2Array& texCoords);
163 virtual void setTerrainCleared(
bool flag);
165 virtual bool terrainCleared();