diff --git a/src/ITAGeo/Base.cpp b/src/ITAGeo/Base.cpp index 1770038e9ab45230964c7d9f7334810cc09aa642..84f12b8a6ceae88398e2513a4f2c9e993e5ec7ed 100644 --- a/src/ITAGeo/Base.cpp +++ b/src/ITAGeo/Base.cpp @@ -195,9 +195,12 @@ void ITAGeo::CEmitter::LoadFromJSONString( const std::string& sContent, std::sha //Set the orientation qOrient.SetValues( dOrientation ); - std::string sDirectivityID = jnRoot.at( "directivity_id" ).as_string(); - if( pResourceManager && pResourceManager->HasDirectivity( sDirectivityID ) ) - pDirectivity = pResourceManager->GetDirectivity( sDirectivityID ); + if( jnRoot.find( "directivity_id" ) != jnRoot.end() ) + { + std::string sDirectivityID = jnRoot.at( "directivity_id" ).as_string(); + if( pResourceManager && pResourceManager->HasDirectivity( sDirectivityID ) ) + pDirectivity = pResourceManager->GetDirectivity( sDirectivityID ); + } #endif } @@ -304,9 +307,13 @@ void ITAGeo::CSensor::LoadFromJSONString( const std::string& sContent, std::shar //Set the orientation qOrient.SetValues( dOrientation ); - std::string sDirectivityID = ( std::string ) jnRoot.at( "directivity_id" ).as_string(); - if( pResourceManager->HasDirectivity( sDirectivityID ) ) - pDirectivity = pResourceManager->GetDirectivity( sDirectivityID ); + + if( jnRoot.find( "directivity_id" ) != jnRoot.end() ) + { + std::string sDirectivityID = ( std::string ) jnRoot.at( "directivity_id" ).as_string(); + if( pResourceManager->HasDirectivity( sDirectivityID ) ) + pDirectivity = pResourceManager->GetDirectivity( sDirectivityID ); + } #endif }