Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/simgear/scene/tgdb/ReaderWriterSTG.cxx b/simgear/scene/tgdb/ReaderWriterSTG.cxx
- index 0f80079..db77e95 100644
- --- a/simgear/scene/tgdb/ReaderWriterSTG.cxx
- +++ b/simgear/scene/tgdb/ReaderWriterSTG.cxx
- @@ -92,6 +92,17 @@ static bool hasOptionalValue(sg_gzifstream &in)
- }
- }
- +static double getGroundElevation(const double &lon, const double &lat, double &elev)
- +{
- +
- + SG_LOG( SG_TERRAIN, SG_ALERT,
- + "Compute Ground Elevation with lon=" << lon << " lat=" << lat << " offset=" << elev );
- +
- + elev = 0.0; // Just for test, we need to implement the calcul
- +
- + return elev;
- +}
- +
- ReaderWriterSTG::ReaderWriterSTG()
- {
- supportsExtension("stg", "SimGear stg database format");
- @@ -273,7 +284,7 @@ ReaderWriterSTG::readStgFile(const std::string& absoluteFileName,
- in >> lon >> lat >> elev >> hdg;
- // Always OK to load
- - if ( token == "OBJECT_STATIC" ) {
- + if ( token == "OBJECT_STATIC" || token == "OBJECT_STATIC_AGL" ) {
- if (!onlyTerrain) {
- osg::ref_ptr<SGReaderWriterOptions> opt;
- opt = new SGReaderWriterOptions(*staticOptions);
- @@ -299,7 +310,7 @@ ReaderWriterSTG::readStgFile(const std::string& absoluteFileName,
- }
- }
- - } else if ( token == "OBJECT_SHARED" ) {
- + } else if ( token == "OBJECT_SHARED" || token == "OBJECT_SHARED_AGL" ) {
- if (!onlyTerrain) {
- osg::ref_ptr<SGReaderWriterOptions> opt;
- opt = new SGReaderWriterOptions(*sharedOptions);
- @@ -320,18 +331,25 @@ ReaderWriterSTG::readStgFile(const std::string& absoluteFileName,
- }
- }
- - } else if ( token == "OBJECT_SIGN" ) {
- + } else if ( token == "OBJECT_SIGN" || token == "OBJECT_SIGN_AGL" ) {
- int size(-1);
- if ( hasOptionalValue(in) ){
- in >> size;
- }
- - if (!onlyTerrain)
- + if (!onlyTerrain) {
- + if ( token == "OBJECT_SIGN_AGL" )
- + elev = getGroundElevation(lon, lat, elev);
- +
- signBuilder.addSign(SGGeod::fromDegM(lon, lat, elev), hdg, name, size);
- + }
- } else {
- SG_LOG( SG_TERRAIN, SG_ALERT, absoluteFileName
- << ": Unknown token '" << token << "'" );
- }
- +
- + if ( token == "OBJECT_STATIC_AGL" || token == "OBJECT_SHARED_AGL" )
- + elev = getGroundElevation(lon, lat, elev);
- if (node.valid()) {
- osg::Matrix matrix;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement