Unverified Commit 58dc4251 authored by Stuart Sides's avatar Stuart Sides Committed by GitHub
Browse files

GEOS 3.9 ImageOverlapSet (#4452)

* GEOS 3.9 ImageOverlapSet

* Fixed fat finger paste
parent 133f2d89
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -16,7 +16,9 @@ find files of those names at the top level of this repository. **/
#include "geos/operation/distance/DistanceOp.h"
#include "geos/util/IllegalArgumentException.h"
#include "geos/geom/Point.h"
#include "geos/opOverlay.h"
//#include "geos/opOverlay.h"
#include "geos/operation/overlay/OverlayOp.h"

#include "IException.h"
#include "ImageOverlapSet.h"
#include "ImagePolygon.h"
@@ -387,7 +389,7 @@ namespace Isis {
    if (!multiPolygon->isValid() ||
        (multiPolygon->getArea() < 1.0e-10 && !multiPolygon->isEmpty())) {
      delete multiPolygon;
      multiPolygon = Isis::globalFactory->createMultiPolygon();
      multiPolygon = Isis::globalFactory->createMultiPolygon().release();
    }

    if (position > p_lonLatOverlaps.size()) {
@@ -545,7 +547,7 @@ namespace Isis {
    p.SetMaximumSteps(p_lonLatOverlaps.size() - 1);
    p.CheckStatus();

    geos::geom::MultiPolygon *emptyPolygon = Isis::globalFactory->createMultiPolygon();
    geos::geom::MultiPolygon *emptyPolygon = Isis::globalFactory->createMultiPolygon().release();

    // Compare each polygon with all of the others
    for (int outside = 0; outside < p_lonLatOverlaps.size() - 1; ++outside) {
@@ -761,7 +763,7 @@ namespace Isis {
            }

            if (!SetPolygon(tmpGeom, outside)) {
              if (SetPolygon(Isis::globalFactory->createMultiPolygon(), outside))
              if (SetPolygon(Isis::globalFactory->createMultiPolygon().release(), outside))
                foundOverlap = true;
            }

+7 −7
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ int main() {
  vector<QString> sns;

  // Reusable variables
  geos::geom::CoordinateSequence *pts;
  geos::geom::CoordinateArraySequence *pts;
  vector<geos::geom::Geometry *> polys;

  // Create the A polygon
@@ -87,7 +87,7 @@ int main() {
  polys.push_back(globalFactory->createPolygon(
                    globalFactory->createLinearRing(pts), NULL));

  boundaries.push_back(globalFactory->createMultiPolygon(polys));
  boundaries.push_back(globalFactory->createMultiPolygon(&polys));

  for(unsigned int i = 0; i < polys.size(); ++i) delete polys[i];
  polys.clear();
@@ -103,7 +103,7 @@ int main() {

  polys.push_back(globalFactory->createPolygon(
                    globalFactory->createLinearRing(pts), NULL));
  boundaries.push_back(globalFactory->createMultiPolygon(polys));
  boundaries.push_back(globalFactory->createMultiPolygon(&polys));

  for(unsigned int i = 0; i < polys.size(); ++i) delete polys[i];
  polys.clear();
@@ -119,7 +119,7 @@ int main() {

  polys.push_back(globalFactory->createPolygon(
                    globalFactory->createLinearRing(pts), NULL));
  boundaries.push_back(globalFactory->createMultiPolygon(polys));
  boundaries.push_back(globalFactory->createMultiPolygon(&polys));

  for(unsigned int i = 0; i < polys.size(); ++i) delete polys[i];
  polys.clear();
@@ -135,7 +135,7 @@ int main() {

  polys.push_back(globalFactory->createPolygon(
                    globalFactory->createLinearRing(pts), NULL));
  boundaries.push_back(globalFactory->createMultiPolygon(polys));
  boundaries.push_back(globalFactory->createMultiPolygon(&polys));

  for(unsigned int i = 0; i < polys.size(); ++i) delete polys[i];
  polys.clear();
@@ -151,7 +151,7 @@ int main() {

  polys.push_back(globalFactory->createPolygon(
                    globalFactory->createLinearRing(pts), NULL));
  boundaries.push_back(globalFactory->createMultiPolygon(polys));
  boundaries.push_back(globalFactory->createMultiPolygon(&polys));

  for(unsigned int i = 0; i < polys.size(); ++i) delete polys[i];
  polys.clear();
@@ -167,7 +167,7 @@ int main() {

  polys.push_back(globalFactory->createPolygon(
                    globalFactory->createLinearRing(pts), NULL));
  boundaries.push_back(globalFactory->createMultiPolygon(polys));
  boundaries.push_back(globalFactory->createMultiPolygon(&polys));

  for(unsigned int i = 0; i < polys.size(); ++i) delete polys[i];
  polys.clear();