Isis 3.0 Developer's Reference (API) |
Home |
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