Isis 3 Programmer Reference
PolygonSeeder.h
1 #ifndef PolygonSeeder_h
2 #define PolygonSeeder_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 
10 #include <string>
11 #include <vector>
12 #include <cmath>
13 
14 #include "geos/geom/Point.h"
15 #include "geos/geom/MultiPolygon.h"
16 
17 #include "Projection.h"
18 
19 namespace Isis {
20  class Pvl;
21  class PvlGroup;
22  class PolygonTools;
23 
47  class PolygonSeeder {
48  public:
49  PolygonSeeder(Pvl &pvl);
50  PolygonSeeder(const PolygonSeeder &other);
51  virtual ~PolygonSeeder();
52 
60  virtual std::vector<geos::geom::Point *>
61  Seed(const geos::geom::MultiPolygon *mp) = 0;
62 
63  double MinimumThickness();
64  double MinimumArea();
65  QString Algorithm() const;
66 
67  virtual PvlGroup PluginParameters(QString grpName);
68  Pvl InvalidInput();
69 
70  const PolygonSeeder &operator=(const PolygonSeeder &other);
71 
72  protected:
73  virtual void Parse(Pvl &pvl);
74  QString StandardTests(const geos::geom::MultiPolygon *multiPoly,
75  const geos::geom::Envelope *polyBoundBox);
76 
77  protected:
81  private:
82  QString p_algorithmName;
89  double p_minimumArea;
94  };
95 };
96 
97 #endif
Isis::PolygonSeeder::p_minimumArea
double p_minimumArea
The value for the 'MinimumArea' Keyword in the PolygonSeederAlgorithm group of the Pvl that is passed...
Definition: PolygonSeeder.h:89
Isis::PolygonSeeder::p_algorithmName
QString p_algorithmName
The value for the 'Name' Keyword in the PolygonSeederAlgorithm group of the Pvl that is passed into t...
Definition: PolygonSeeder.h:82
Isis::PolygonSeeder::PluginParameters
virtual PvlGroup PluginParameters(QString grpName)
Plugin parameters.
Definition: PolygonSeeder.cpp:210
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::PolygonSeeder::Seed
virtual std::vector< geos::geom::Point * > Seed(const geos::geom::MultiPolygon *mp)=0
Pure virtual seed method.
Isis::PolygonSeeder::MinimumArea
double MinimumArea()
Return the minimum allowed area of the polygon.
Definition: PolygonSeeder.cpp:195
Isis::PolygonSeeder::MinimumThickness
double MinimumThickness()
Return the minimum allowed thickness of the polygon.
Definition: PolygonSeeder.cpp:183
Isis::PvlGroup
Contains multiple PvlContainers.
Definition: PvlGroup.h:41
Isis::PolygonSeeder::invalidInput
Pvl * invalidInput
The Pvl passed in by the constructor minus what was used.
Definition: PolygonSeeder.h:78
Isis::PolygonSeeder::operator=
const PolygonSeeder & operator=(const PolygonSeeder &other)
Assignment operator.
Definition: PolygonSeeder.cpp:246
Isis::PolygonSeeder::~PolygonSeeder
virtual ~PolygonSeeder()
Destroys the PolygonSeeder object.
Definition: PolygonSeeder.cpp:59
Isis::PolygonSeeder::Parse
virtual void Parse(Pvl &pvl)
Initialize parameters in the PolygonSeeder class using a PVL specification.
Definition: PolygonSeeder.cpp:85
Isis::PolygonSeeder::Algorithm
QString Algorithm() const
The name of the algorithm, read from the Name Keyword in the PolygonSeeder Pvl passed into the constr...
Definition: PolygonSeeder.cpp:172
Isis::PolygonSeeder::StandardTests
QString StandardTests(const geos::geom::MultiPolygon *multiPoly, const geos::geom::Envelope *polyBoundBox)
Check the polygon to see if it meets standard criteria.
Definition: PolygonSeeder.cpp:146
Isis::PolygonSeeder::PolygonSeeder
PolygonSeeder(Pvl &pvl)
Create PolygonSeeder object.
Definition: PolygonSeeder.cpp:30
Isis::PolygonSeeder::p_minimumThickness
double p_minimumThickness
The value for the 'MinimumThickness' Keyword in the PolygonSeederAlgorithm group of the Pvl that is p...
Definition: PolygonSeeder.h:85
Isis::PolygonSeeder::InvalidInput
Pvl InvalidInput()
This method returns a copy of the Pvl passed in by the constructor (from a def file probably) minus w...
Definition: PolygonSeeder.cpp:231
Isis::PolygonSeeder
This class is used as the base class for all PolygonSeeder objects.
Definition: PolygonSeeder.h:47
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16