  | 
  
    Isis 3 Programmer Reference
    
   | 
 
 
 
 
    1 #ifndef ImageOverlapSet_h 
    2 #define ImageOverlapSet_h 
   17 #include "geos/geom/MultiPolygon.h" 
   18 #include "geos/geom/LinearRing.h" 
   19 #include "geos/util/GEOSException.h" 
   21 #include "ImageOverlap.h" 
   22 #include "IException.h" 
   28   class SerialNumberList;
 
   93                              std::vector<geos::geom::MultiPolygon *> polygons);
 
  119       std::vector<ImageOverlap *> 
operator[](QString serialNumber);
 
  143                                      geos::geom::MultiPolygon *lonLatPolygon);
 
  145       bool SetPolygon(geos::geom::Geometry *poly, 
int position, 
ImageOverlap *sncopy = NULL, 
bool insert = 
false);
 
  147       void HandleError(geos::util::GEOSException *exc, 
SerialNumberList *snlist, QString msg = 
"", 
int overlap1 = -1, 
int overlap2 = -1);
 
  166       QMutex p_lonLatOverlapsMutex;
 
 
 
QList< ImageOverlap * > p_lonLatOverlaps
The list of lat/lon overlaps.
 
bool p_continueAfterError
If false iExceptions will be thrown from FindImageOverlaps(...)
 
ImageOverlap * CreateNewOverlap(QString serialNumber, geos::geom::MultiPolygon *lonLatPolygon)
Create an overlap item to hold the overlap poly and its SN.
 
virtual ~ImageOverlapSet()
Delete this object.
 
SerialNumberList * p_snlist
This is used for multi-threaded calls to FindAllOverlaps only; this class never gets ownership of thi...
 
Individual overlap container.
 
This is free and unencumbered software released into the public domain.
 
const ImageOverlap * operator[](int index)
Returns the images which overlap at a given loverlap.
 
std::vector< PvlGroup > p_errorLog
This is a list of detailed* errors including all known information.
 
void HandleError(IException &e, SerialNumberList *snlist, QString msg="", int overlap1=-1, int overlap2=-1)
If a problem occurred when searching for image overlaps, this method will handle it.
 
void AddSerialNumbers(ImageOverlap *to, ImageOverlap *from)
Add the serial numbers from the second overlap to the first.
 
Serial Number list generator.
 
void FindAllOverlaps(SerialNumberList *snlist=NULL)
Find the overlaps between all the existing ImageOverlap Objects.
 
void FindImageOverlaps(SerialNumberList &boundaries)
Create polygons of overlap from the images specified in the serial number list.
 
bool p_threadedCalculate
True if we want to do calculations in a threaded way.
 
int p_calculatedSoFar
The index of the last overlap that is done calculating (number calculated-1)
 
void WriteImageOverlaps(const QString &filename)
Write polygons of overlap to the file specified.
 
This class is used to find the overlaps between all the images in a list of serial numbers.
 
int Size()
Returns the total number of latitude and longitude overlaps.
 
QMutex p_calculatePolygonMutex
This mutex will be used to have blocking on the write method when multi-threading (instead of busy wa...
 
bool SetPolygon(geos::geom::Geometry *poly, int position, ImageOverlap *sncopy=NULL, bool insert=false)
This method inserts or overwrites a polygon in the overlap list based on parameters.
 
ImageOverlapSet(bool continueOnError=false, bool useThread=true)
Create FindImageOverlaps object.
 
int p_writtenSoFar
The index of the last overlap that is done writing (number written-1)
 
void DespikeLonLatOverlaps()
Despikes all of the overlaps in p_lonLatOverlaps.
 
void run()
Find overlaps is all the threaded calculate does.
 
void ReadImageOverlaps(const QString &filename)
Create polygons of overlap from the file specified.
 
const std::vector< PvlGroup > & Errors()
Return the a list of errors encountered.
 
This is free and unencumbered software released into the public domain.