//************************************************************************************************ //! Returns the image geometry object associated with this tile source or NULL if non defined. //! The geometry contains full-to-local image transform as well as projection (image-to-world) //************************************************************************************************ rspfRefPtr<rspfImageGeometry> rspfEnviTileSource::getImageGeometry() { if ( !theGeometry ) { // Check for external geom: theGeometry = getExternalImageGeometry(); if ( !theGeometry ) { // Check the internal geometry first to avoid a factory call. theGeometry = getInternalImageGeometry(); // At this point it is assured theGeometry is set. //--- // WARNING: // Must create/set theGeometry at this point or the next call to // rspfImageGeometryRegistry::extendGeometry will put us in an infinite loop // as it does a recursive call back to rspfImageHandler::getImageGeometry(). //--- // Check for set projection. if ( theGeometry.valid()&&!theGeometry->getProjection() ) { // Try factories for projection. rspfImageGeometryRegistry::instance()->extendGeometry(this); } } // Set image things the geometry object should know about. initImageParameters( theGeometry.get() ); } return theGeometry; }
ossimRefPtr<ossimImageGeometry> ossimMrSidReader::getImageGeometry() { if ( !theGeometry ) { //--- // Check for external geom: //--- theGeometry = getExternalImageGeometry(); if ( !theGeometry ) { //--- // Check the internal geometry first to avoid a factory call. //--- theGeometry = getInternalImageGeometry(); // At this point it is assured theGeometry is set. // Check for set projection. if ( !theGeometry->getProjection() ) { // Try factories for projection. ossimImageGeometryRegistry::instance()->extendGeometry(this); } } // Set image things the geometry object should know about. initImageParameters( theGeometry.get() ); } return theGeometry; }
ossimRefPtr<ossimImageGeometry> ossimH5Reader::getImageGeometry() { if ( !theGeometry ) { //--- // Check for external geom: //--- theGeometry = getExternalImageGeometry(); if ( !theGeometry ) { //--- // WARNING: // Must create/set the geometry at this point or the next call to // ossimImageGeometryRegistry::extendGeometry will put us in an infinite loop // as it does a recursive call back to ossimImageHandler::getImageGeometry(). //--- // Check the internal geometry first to avoid a factory call. m_mutex.lock(); theGeometry = getInternalImageGeometry(); m_mutex.unlock(); // At this point it is assured theGeometry is set. // Check for set projection. if ( !theGeometry->getProjection() ) { // Try factories for projection. ossimImageGeometryRegistry::instance()->extendGeometry(this); } } // Set image things the geometry object should know about. initImageParameters( theGeometry.get() ); } return theGeometry; }