USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::PolygonSeeder Class Referenceabstract

This class is used as the base class for all PolygonSeeder objects. More...

#include <PolygonSeeder.h>

Inheritance diagram for Isis::PolygonSeeder:
Inheritance graph
Collaboration diagram for Isis::PolygonSeeder:
Collaboration graph

Public Member Functions

 PolygonSeeder (Pvl &pvl)
 Create PolygonSeeder object.
 
 PolygonSeeder (const PolygonSeeder &other)
 Copy constructor.
 
virtual ~PolygonSeeder ()
 Destroys the PolygonSeeder object.
 
virtual std::vector
< geos::geom::Point * > 
Seed (const geos::geom::MultiPolygon *mp)=0
 Pure virtual seed method.
 
double MinimumThickness ()
 Return the minimum allowed thickness of the polygon.
 
double MinimumArea ()
 Return the minimum allowed area of the polygon.
 
QString Algorithm () const
 The name of the algorithm, read from the Name Keyword in the PolygonSeeder Pvl passed into the constructor.
 
virtual PvlGroup PluginParameters (QString grpName)
 Plugin parameters.
 
Pvl InvalidInput ()
 This method returns a copy of the Pvl passed in by the constructor (from a def file probably) minus what was used.
 
const PolygonSeederoperator= (const PolygonSeeder &other)
 Assignment operator.
 

Protected Member Functions

virtual void Parse (Pvl &pvl)
 Initialize parameters in the PolygonSeeder class using a PVL specification.
 
QString StandardTests (const geos::geom::MultiPolygon *multiPoly, const geos::geom::Envelope *polyBoundBox)
 Check the polygon to see if it meets standard criteria.
 

Protected Attributes

PvlinvalidInput
 
The Pvl passed in by the constructor minus what 

was used.

 

Private Attributes

QString p_algorithmName
 The value for the 'Name' Keyword in the PolygonSeederAlgorithm group of the Pvl that is passed into the constructor.
 
double p_minimumThickness
 
   The value for the 'MinimumThickness' 

Keyword in the PolygonSeederAlgorithm group of the Pvl that is passed into the constructor

 
double p_minimumArea
 
        The value for the 'MinimumArea' Keyword 

in the PolygonSeederAlgorithm group of the Pvl that is passed into the constructor

 

Detailed Description

This class is used as the base class for all PolygonSeeder objects.

The class is pure virtual.

Author
2006-01-20 Stuart Sides
History:

2008-08-18 Christopher Austin - Upgraded to geos3.0.0, removed Chip.h include, fixed ifndef

2009-08-05 Travis Addair - Encapsulated group creation for seed definition group

2009-04-15 Eric Hyer - Now stores invalid input. Added Copy constructor, destructor, and assignment operator

2010-04-20 Christopher Austin - adapted for generic/unitless seeding

2012-04-17 Jeannie Backer - Added forward declaration for PvlObject and ordered includes in the implementation file. Added documentation. Moved Algorithm method from header file to implementation file.

Definition at line 62 of file PolygonSeeder.h.

Constructor & Destructor Documentation

Isis::PolygonSeeder::PolygonSeeder ( Pvl pvl)

Create PolygonSeeder object.

Because this is a pure virtual class you can not create an PolygonSeeder class directly. Instead, see the PolygonSeederFactory class.

Parameters
pvlA pvl object containing a valid PolygonSeeder specification

Definition at line 24 of file PolygonSeeder.cpp.

References invalidInput, p_algorithmName, and Parse().

Isis::PolygonSeeder::PolygonSeeder ( const PolygonSeeder other)

Copy constructor.

Create PolygonSeeder object by copying the algorithm name, the minimum thickness, and the minimum area of an existing PolygonSeeder object.

Parameters
otherThe other PolygonSeeder object that will be copied.

Definition at line 43 of file PolygonSeeder.cpp.

References p_algorithmName, p_minimumArea, and p_minimumThickness.

Isis::PolygonSeeder::~PolygonSeeder ( )
virtual

Destroys the PolygonSeeder object.

Definition at line 53 of file PolygonSeeder.cpp.

References invalidInput.

Member Function Documentation

QString Isis::PolygonSeeder::Algorithm ( ) const

The name of the algorithm, read from the Name Keyword in the PolygonSeeder Pvl passed into the constructor.

Returns
QString The value of the Name Keyword in the Pvl.

Definition at line 166 of file PolygonSeeder.cpp.

References p_algorithmName.

Referenced by Isis::LimitPolygonSeeder::PluginParameters(), Isis::StripPolygonSeeder::PluginParameters(), and Isis::GridPolygonSeeder::PluginParameters().

Pvl Isis::PolygonSeeder::InvalidInput ( )

This method returns a copy of the Pvl passed in by the constructor (from a def file probably) minus what was used.

Returns
Pvl A copy of this pvl minus what was used.

Definition at line 225 of file PolygonSeeder.cpp.

References invalidInput.

double Isis::PolygonSeeder::MinimumArea ( )

Return the minimum allowed area of the polygon.

This value is set from the "MinimumArea" keyword in the PVL. The seeding algorithm will not seed polygons that have an area less than this.

Returns
double The value for the minimum area allowed.

Definition at line 189 of file PolygonSeeder.cpp.

References p_minimumArea.

Referenced by Isis::LimitPolygonSeeder::PluginParameters(), Isis::StripPolygonSeeder::PluginParameters(), Isis::GridPolygonSeeder::PluginParameters(), and StandardTests().

double Isis::PolygonSeeder::MinimumThickness ( )

Return the minimum allowed thickness of the polygon.

This value is set from the "MinimumThickness" keyword in the PVL. The seeding algorithm will not seed polygons that have a thickness ratio less than this

Returns
double The value for the minimum thickness allowed.

Definition at line 177 of file PolygonSeeder.cpp.

References p_minimumThickness.

Referenced by Isis::LimitPolygonSeeder::PluginParameters(), Isis::StripPolygonSeeder::PluginParameters(), Isis::GridPolygonSeeder::PluginParameters(), Isis::GridPolygonSeeder::SeedSubGrid(), and StandardTests().

const PolygonSeeder & Isis::PolygonSeeder::operator= ( const PolygonSeeder other)

Assignment operator.

Sets this PolygonSeeder object equal to another by copying the algorithm name, the minimum thickness, and the minimum area of the other PolygonSeeder object.

Parameters
otherThe other PolygonSeeder object whose values will be copied.
Returns
PolygonSeeder This PolygonSeeder object, once the other object's values have been copied.

Definition at line 240 of file PolygonSeeder.cpp.

References p_algorithmName, p_minimumArea, and p_minimumThickness.

void Isis::PolygonSeeder::Parse ( Pvl pvl)
protectedvirtual

Initialize parameters in the PolygonSeeder class using a PVL specification.

An example of the PVL required for this is:

Object = AutoSeed
Group = Algorithm
Name = Grid
Tolerance = 0.7
EndGroup
EndObject

There are many other options that can be set via the pvl and are described in other documentation (see below).

Parameters
pvlThe pvl object containing the specification

Reimplemented in Isis::GridPolygonSeeder, Isis::StripPolygonSeeder, and Isis::LimitPolygonSeeder.

Definition at line 79 of file PolygonSeeder.cpp.

References _FILEINFO_, Isis::PvlContainer::deleteKeyword(), Isis::PvlContainer::fileName(), Isis::PvlObject::findGroup(), Isis::PvlContainer::hasKeyword(), invalidInput, p_algorithmName, p_minimumArea, p_minimumThickness, Isis::PvlObject::Traverse, and Isis::IException::User.

Referenced by Isis::LimitPolygonSeeder::Parse(), Isis::StripPolygonSeeder::Parse(), Isis::GridPolygonSeeder::Parse(), and PolygonSeeder().

PvlGroup Isis::PolygonSeeder::PluginParameters ( QString  grpName)
virtual

Plugin parameters.

This method will add the PvlKeyword values for algorithm name, minimum thickness, and minimum area of this object to a PvlGroup with the name that is passed in.

Parameters
grpNameA string containing the PvlGroup name.
Returns
PvlGroup The PvlGroup with the appropriate parameters added.

Reimplemented in Isis::GridPolygonSeeder, Isis::StripPolygonSeeder, and Isis::LimitPolygonSeeder.

Definition at line 204 of file PolygonSeeder.cpp.

References Isis::PvlContainer::addKeyword(), p_algorithmName, p_minimumArea, p_minimumThickness, and Isis::toString().

virtual std::vector<geos::geom::Point *> Isis::PolygonSeeder::Seed ( const geos::geom::MultiPolygon *  mp)
pure virtual

Pure virtual seed method.

Parameters
mpThe MultiPolygon object from the geos::geom library.
Returns
std::vector<geos::geom::Point*> A vector of Point objects from the geos::geom library.

Implemented in Isis::StripPolygonSeeder, Isis::GridPolygonSeeder, and Isis::LimitPolygonSeeder.

QString Isis::PolygonSeeder::StandardTests ( const geos::geom::MultiPolygon *  xymp,
const geos::geom::Envelope *  xyBoundBox 
)
protected

Check the polygon to see if it meets standard criteria.

Parameters
xympThe multipoly containing the coordinates in x/y units instead of lon/lat
xyBoundBoxThe bounding box of the multipoly
Returns
QString A string with an appropriate message to throw if a test was unsuccessful or an empty string if all tests passed.

Definition at line 140 of file PolygonSeeder.cpp.

References MinimumArea(), MinimumThickness(), and Isis::toString().

Referenced by Isis::LimitPolygonSeeder::Seed(), Isis::StripPolygonSeeder::Seed(), and Isis::GridPolygonSeeder::SeedSubGrid().

Member Data Documentation

Pvl* Isis::PolygonSeeder::invalidInput
protected

The Pvl passed in by the constructor minus what 

was used.

Definition at line 93 of file PolygonSeeder.h.

Referenced by InvalidInput(), Isis::LimitPolygonSeeder::Parse(), Isis::GridPolygonSeeder::Parse(), Isis::StripPolygonSeeder::Parse(), Parse(), PolygonSeeder(), and ~PolygonSeeder().

QString Isis::PolygonSeeder::p_algorithmName
private

The value for the 'Name' Keyword in the PolygonSeederAlgorithm group of the Pvl that is passed into the constructor.

Definition at line 97 of file PolygonSeeder.h.

Referenced by Algorithm(), operator=(), Parse(), PluginParameters(), and PolygonSeeder().

double Isis::PolygonSeeder::p_minimumArea
private

        The value for the 'MinimumArea' Keyword 

in the PolygonSeederAlgorithm group of the Pvl that is passed into the constructor

Definition at line 104 of file PolygonSeeder.h.

Referenced by MinimumArea(), operator=(), Parse(), PluginParameters(), and PolygonSeeder().

double Isis::PolygonSeeder::p_minimumThickness
private

   The value for the 'MinimumThickness' 

Keyword in the PolygonSeederAlgorithm group of the Pvl that is passed into the constructor

Definition at line 100 of file PolygonSeeder.h.

Referenced by MinimumThickness(), operator=(), Parse(), PluginParameters(), and PolygonSeeder().


The documentation for this class was generated from the following files: