Isis Developer Reference
Isis::FeatureNomenclature Class Reference

Feature nomenclature database querier. More...

#include <FeatureNomenclature.h>

Inheritance diagram for Isis::FeatureNomenclature:
Inheritance graph
Collaboration diagram for Isis::FeatureNomenclature:
Collaboration graph

Classes

class  Feature
 A named feature on a target. More...
 

Public Types

enum  IAUStatus { NoStatus, Approved, Dropped, Unapproved }
 Enumeration of approval statuses. More...
 

Signals

void featuresIdentified (FeatureNomenclature *)
 This is emitted when a query is completed. More...
 

Public Member Functions

 FeatureNomenclature ()
 Instantiate a feature nomenclature. More...
 
 FeatureNomenclature (const FeatureNomenclature &other)
 Copy a feature nomenclature. More...
 
 ~FeatureNomenclature ()
 Frees allocated memory. More...
 
void queryFeatures (QString target, Latitude startLat, Longitude startLon, Latitude endLat, Longitude endLon)
 Makes sure the longitudinal ranges are correct. More...
 
QList< Featurefeatures () const
 This gives you the features found in all of the queries so far. More...
 
bool hasResult () const
 Test if any understandable results have been received from the nomenclature database. More...
 
void swap (FeatureNomenclature &other)
 Swap the instances *this and other. More...
 
FeatureNomenclatureoperator= (const FeatureNomenclature &other)
 This takes on the data from rhs. More...
 

Static Public Member Functions

static bool featureDiameterGreaterThan (const FeatureNomenclature::Feature &lhs, const FeatureNomenclature::Feature &rhs)
 Compare the diameter of two features. More...
 

Detailed Description

Feature nomenclature database querier.

This class queries the nomenclature database for features. To use this class, you create a blank instance. Then you connect to the featuresIdentified() signal. Finally, you call query with the appropriate input data. You can call query as many times as you want; featuresIdentified() will be emitted the same number of times. Finally, you can access the features with features().

Author
2012-03-14 Steven Lambright

Member Enumeration Documentation

◆ IAUStatus

Enumeration of approval statuses.

Enumerator
NoStatus 

When this status is assigned to a feature, there will be no status displayed and the feature will not be shown if the IAU approved only checkbox is checked.

Approved 

When this status is assigned to a feature, the displayed status will be "Adopted by the IAU" and the feature will always be shown.

Dropped 

When this status is assigned to a feature, the displayed status will be "Dropped, disallowed" and the feature will not be shown if the IAU approved only checkbox is checked.

Unapproved 

When this status is assigned to a feature, the displayed status will be "Never approved by the IAU" and the feature will not be shown if the IAU approved only checkbox checked.

Constructor & Destructor Documentation

◆ FeatureNomenclature() [1/2]

Isis::FeatureNomenclature::FeatureNomenclature ( )

Instantiate a feature nomenclature.

This prepares to make network requests.

◆ FeatureNomenclature() [2/2]

Isis::FeatureNomenclature::FeatureNomenclature ( const FeatureNomenclature other)

Copy a feature nomenclature.

Data being queried currently will not be available in the copy, but ready results will be available.

Parameters
otherThe feature nomenclature to copy

◆ ~FeatureNomenclature()

Isis::FeatureNomenclature::~FeatureNomenclature ( )

Frees allocated memory.

Member Function Documentation

◆ featureDiameterGreaterThan()

bool Isis::FeatureNomenclature::featureDiameterGreaterThan ( const FeatureNomenclature::Feature lhs,
const FeatureNomenclature::Feature rhs 
)
static

Compare the diameter of two features.

This is very useful for sorting with qSort(). If lhs > rhs, then this returns true. This considers valid data

invalid data.

Parameters
lhsThe left hand side of the '>' operator
rhsThe right hand side of the '>' operator
Returns
lhs > rhs

References Isis::FeatureNomenclature::Feature::diameter(), and Isis::Distance::isValid().

◆ features()

QList< FeatureNomenclature::Feature > Isis::FeatureNomenclature::features ( ) const

This gives you the features found in all of the queries so far.

If all of the queries are finished, then this list will contain all of the results. The list will be empty if no queries have succeeded so far.

Returns
a cumulative list of all of the features found so far.

◆ featuresIdentified

void Isis::FeatureNomenclature::featuresIdentified ( FeatureNomenclature )
signal

This is emitted when a query is completed.

When emitted, the this pointer is provided.

◆ hasResult()

bool Isis::FeatureNomenclature::hasResult ( ) const

Test if any understandable results have been received from the nomenclature database.

Returns
True if any queries have succeeded.

◆ operator=()

FeatureNomenclature & Isis::FeatureNomenclature::operator= ( const FeatureNomenclature rhs)

This takes on the data from rhs.

Active queries will not be copied. This is exception safe.

Parameters
rhsThe FeatureNomenclature on the right hand side of the '='
Returns
*this

References swap().

◆ queryFeatures()

void Isis::FeatureNomenclature::queryFeatures ( QString  target,
Latitude  startLat,
Longitude  startLon,
Latitude  endLat,
Longitude  endLon 
)

Makes sure the longitudinal ranges are correct.

If the range intersects with the 0 line the range is split into two ranges, the minimum to 360 and 0 to the maximum. Then it runs a query on each range.

Parameters
targetThe target for which features might be present
startLatThe minimum latitude of the ground range to search
startLonThe minimum longitude of the ground range to search
endLatThe maximum latitude of the ground range to search
endLonThe maximum longitude of the ground range to search

References Isis::Longitude::to360Range().

◆ swap()

void Isis::FeatureNomenclature::swap ( FeatureNomenclature other)

Swap the instances *this and other.

This cannot throw an exception.

Parameters
otherThe FeatureNomenclature to trade data with.

Referenced by Isis::FeatureNomenclature::Feature::operator=(), and operator=().


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