diff --git a/Testing/Utilities/ossimRadarSatSupport.cxx b/Testing/Utilities/ossimRadarSatSupport.cxx index f9812b7a27f01628e126d1e69e6438630c5e3dfd..c4152cc2b1bdf6edc7177f1dbd2ffca05e4a3dc3 100644 --- a/Testing/Utilities/ossimRadarSatSupport.cxx +++ b/Testing/Utilities/ossimRadarSatSupport.cxx @@ -35,12 +35,15 @@ #include "ossim/base/ossimKeywordlist.h" #include "ossim/init/ossimInit.h" -#include "ossim/imaging/ossimImageHandler.h" -#include "ossim/projection/ossimProjection.h" -#include "ossim/projection/ossimProjectionFactoryRegistry.h" -#include "ossim/imaging/ossimImageHandlerRegistry.h" -#include "ossim/imaging/ossimImageHandlerSarFactory.h" +//#include "ossim/imaging/ossimImageHandler.h" +//#include "ossim/projection/ossimProjection.h" +//#include "ossim/projection/ossimProjectionFactoryRegistry.h" +//#include "ossim/imaging/ossimImageHandlerRegistry.h" +//#include "ossim/imaging/ossimImageHandlerSarFactory.h" // #include "ossim/projection/ossimTerraSarModel.h" +#include "projection/ossimProjection.h" +#include "projection/ossimProjectionFactoryRegistry.h" +#include "ossim/ossimPluginProjectionFactory.h" #include "ossimRadarSatModel.h" int ossimRadarSatSupport(int argc, char* argv[]) @@ -59,33 +62,32 @@ int ossimRadarSatSupport(int argc, char* argv[]) return EXIT_FAILURE; } - - ossimImageHandlerRegistry::instance()->addFactory(ossimImageHandlerSarFactory::instance()); - /* - * Lecture du fichier passé en parametre - */ - ossimImageHandler *handler = ossimImageHandlerRegistry::instance()->open(ossimFilename(argv[1])); - /* - * Verification que la lecture est effectuée - */ - if (!handler) + + char * filename = argv[1]; + + /** Don't use FactoryRegistry because of its default factory that can conflict + * with plugins factor (cf. TSX .tif image read as QB)*/ + // test ossim plugin factory + ossimProjection * projection = ossimplugins::ossimPluginProjectionFactory::instance()->createProjection( + ossimFilename(filename), 0); + + // if ossim plugins factory failed, then test ossim factory + if (!projection) { - std::cout << "Unable to open input image " << argv[1] << std::endl; + projection = ossimProjectionFactoryRegistry::instance()->createProjection(ossimFilename(filename), 0); + if (!projection) + { + std::cout<<"OSSIM Instanciate projection FAILED ! "; + return EXIT_FAILURE; + } } - - /* - * Recuperation des métadonnées - */ + ossimKeywordlist geom; std::cout << "Read ossim Keywordlist..."; bool hasMetaData = false; - ossimProjection* projection = handler->getImageGeometry()->getProjection(); - if (projection) - { - hasMetaData = projection->saveState(geom); - } + hasMetaData = projection->saveState(geom); if (!hasMetaData) { @@ -100,14 +102,16 @@ int ossimRadarSatSupport(int argc, char* argv[]) /* * Creation d'un modèle de projection à partir des métadonnées */ - model = ossimProjectionFactoryRegistry::instance()->createProjection(geom); - - /* - * Verification de l'existence du modèle de projection - */ + model = ossimplugins::ossimPluginProjectionFactory::instance()->createProjection(geom); + // if ossim plugins factory failed, then test ossim factory if (model == NULL) { - std::cout << "Invalid Model * == NULL !"; + projection = ossimProjectionFactoryRegistry::instance()->createProjection(geom); + if (model == NULL) + { + std::cout << "Invalid Model * == NULL !"; + return EXIT_FAILURE; + } } /* std::cout<<"Creating RefPtr of projection...";