USGS

Isis 3.0 Developer's Reference (API)

Home

PolygonSeeder.h

Go to the documentation of this file.
00001 #ifndef PolygonSeeder_h
00002 #define PolygonSeeder_h
00003 
00026 #include <string>
00027 #include <vector>
00028 
00029 #include "geos/geom/Point.h"
00030 #include "geos/geom/MultiPolygon.h"
00031 
00032 #include "Projection.h"
00033 
00034 namespace Isis {
00035   class Pvl;
00036   class PolygonTools;
00037 
00057   class PolygonSeeder {
00058     public:
00059       PolygonSeeder(Pvl &pvl);
00060       PolygonSeeder(const PolygonSeeder &other);
00061       virtual ~PolygonSeeder();
00062 
00063       virtual std::vector<geos::geom::Point *> Seed(const geos::geom::MultiPolygon *mp) = 0;
00064 
00065       std::string Name();
00066       double MinimumThickness();
00067       double MinimumArea();
00068       inline std::string Algorithm() const {
00069         return p_algorithmName;
00070       }
00071       virtual PvlGroup PluginParameters(std::string grpName);
00072       Pvl InvalidInput();
00073 
00074       const PolygonSeeder &operator=(const PolygonSeeder &other);
00075 
00076     protected:
00077       virtual void Parse(Pvl &pvl);
00078       std::string StandardTests(const geos::geom::MultiPolygon *multiPoly,
00079                                 const geos::geom::Envelope *polyBoundBox);
00080 
00081     protected:
00082       Pvl *invalidInput;
00083 
00084     private:
00085       std::string p_algorithmName;
00086       double p_minimumThickness;
00087       double p_minimumArea;
00088 
00089   };
00090 };
00091 
00092 #endif