Advertisement
Guest User

Untitled

a guest
Aug 26th, 2012
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. diff --git a/simgear/scene/tgdb/ReaderWriterSTG.cxx b/simgear/scene/tgdb/ReaderWriterSTG.cxx
  2. index 0f80079..db77e95 100644
  3. --- a/simgear/scene/tgdb/ReaderWriterSTG.cxx
  4. +++ b/simgear/scene/tgdb/ReaderWriterSTG.cxx
  5. @@ -92,6 +92,17 @@ static bool hasOptionalValue(sg_gzifstream &in)
  6. }
  7. }
  8.  
  9. +static double getGroundElevation(const double &lon, const double &lat, double &elev)
  10. +{
  11. +
  12. + SG_LOG( SG_TERRAIN, SG_ALERT,
  13. + "Compute Ground Elevation with lon=" << lon << " lat=" << lat << " offset=" << elev );
  14. +
  15. + elev = 0.0; // Just for test, we need to implement the calcul
  16. +
  17. + return elev;
  18. +}
  19. +
  20. ReaderWriterSTG::ReaderWriterSTG()
  21. {
  22. supportsExtension("stg", "SimGear stg database format");
  23. @@ -273,7 +284,7 @@ ReaderWriterSTG::readStgFile(const std::string& absoluteFileName,
  24. in >> lon >> lat >> elev >> hdg;
  25.  
  26. // Always OK to load
  27. - if ( token == "OBJECT_STATIC" ) {
  28. + if ( token == "OBJECT_STATIC" || token == "OBJECT_STATIC_AGL" ) {
  29. if (!onlyTerrain) {
  30. osg::ref_ptr<SGReaderWriterOptions> opt;
  31. opt = new SGReaderWriterOptions(*staticOptions);
  32. @@ -299,7 +310,7 @@ ReaderWriterSTG::readStgFile(const std::string& absoluteFileName,
  33. }
  34. }
  35.  
  36. - } else if ( token == "OBJECT_SHARED" ) {
  37. + } else if ( token == "OBJECT_SHARED" || token == "OBJECT_SHARED_AGL" ) {
  38. if (!onlyTerrain) {
  39. osg::ref_ptr<SGReaderWriterOptions> opt;
  40. opt = new SGReaderWriterOptions(*sharedOptions);
  41. @@ -320,18 +331,25 @@ ReaderWriterSTG::readStgFile(const std::string& absoluteFileName,
  42. }
  43. }
  44.  
  45. - } else if ( token == "OBJECT_SIGN" ) {
  46. + } else if ( token == "OBJECT_SIGN" || token == "OBJECT_SIGN_AGL" ) {
  47. int size(-1);
  48.  
  49. if ( hasOptionalValue(in) ){
  50. in >> size;
  51. }
  52. - if (!onlyTerrain)
  53. + if (!onlyTerrain) {
  54. + if ( token == "OBJECT_SIGN_AGL" )
  55. + elev = getGroundElevation(lon, lat, elev);
  56. +
  57. signBuilder.addSign(SGGeod::fromDegM(lon, lat, elev), hdg, name, size);
  58. + }
  59. } else {
  60. SG_LOG( SG_TERRAIN, SG_ALERT, absoluteFileName
  61. << ": Unknown token '" << token << "'" );
  62. }
  63. +
  64. + if ( token == "OBJECT_STATIC_AGL" || token == "OBJECT_SHARED_AGL" )
  65. + elev = getGroundElevation(lon, lat, elev);
  66.  
  67. if (node.valid()) {
  68. osg::Matrix matrix;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement