Isis 3 Programmer Reference
FeatureNomenclature.h
1#ifndef FeatureNomenclature_h
2#define FeatureNomenclature_h
3
4#include <QObject>
5
6// This is needed for the QVariant macro
7#include <QMetaType>
8
9class QDomDocument;
10class QDomElement;
11class QNetworkAccessManager;
12class QNetworkReply;
13class QNetworkRequest;
14class QString;
15class QUrl;
16class QWidget;
17
18template <typename T> class QList;
19
20namespace Isis {
21 class Distance;
22 class iTime;
23 class Latitude;
24 class Longitude;
25
52 Q_OBJECT
53
54 public:
55
80
84
85 void queryFeatures(QString target,
86 Latitude startLat, Longitude startLon,
87 Latitude endLat, Longitude endLon);
88
89 class Feature;
90 QList<Feature> features() const;
91 bool hasResult() const;
92
93 void swap(FeatureNomenclature &other);
95
99
117 class Feature {
118 public:
119 Feature();
120 Feature(QDomElement searchResultFeature, IAUStatus status);
121 Feature(const Feature &other);
122 ~Feature();
123
124 QWidget *toWidget() const;
125
126 QString id() const;
127 QString name() const;
128 QString cleanName() const;
129 QString controlNet() const;
130 QString displayName() const;
131 QString target() const;
132 QString system() const;
133 Distance diameter() const;
134 QString diameterString() const;
135 Latitude centerLatitude() const;
136 QString centerLatitudeString() const;
138 QString centerLongitudeString() const;
140 QString northernLatitudeString() const;
142 QString southernLatitudeString() const;
144 QString easternLongitudeString() const;
146 QString westernLongitudeString() const;
147 QString originatingContinent() const;
148 QString originatingEthnicity() const;
149 QString approvalStatus() const;
150 QString approvalDate() const;
151 QString featureType() const;
152 QString referenceString() const;
153 QString origin() const;
154 QString lastUpdated() const;
155 QUrl referenceUrl() const;
156 QString referenceUrlString() const;
157 IAUStatus status() const;
158
159 void swap(Feature &other);
160 Feature &operator=(const Feature &rhs);
161
162 private:
163 QString getTagText(QString tagName) const;
164
165 private:
170 QDomElement * m_xmlRepresenation;
173 };
174
175 signals:
181
182 private slots:
183 void requestFinished(QNetworkReply *);
184
185 private:
186 void readSearchResults(QDomElement);
187 void runQuery(QString target,
188 Latitude startLat, Longitude startLon,
189 Latitude endLat, Longitude endLon);
190
191 private:
192 QNetworkAccessManager *m_networkMgr;
193 QNetworkRequest *m_request;
194
196 QList<Feature> *m_features;
201 };
202
203};
204
206Q_DECLARE_METATYPE(Isis::FeatureNomenclature::Feature);
207
208#endif
Distance measurement, usually in meters.
Definition Distance.h:34
~Feature()
Clean up allocated memory by this feature.
QString getTagText(QString tagName) const
Get the string value of an element of the XML.
IAUStatus m_approvalStatus
The approval status of the feature.
QWidget * toWidget() const
This converts the data in this feature to a widget.
QDomElement * m_xmlRepresenation
This is the XML returned by the nomenclature DB.
Feature()
Construct a feature with no data.
Feature & operator=(const Feature &rhs)
Assign the values of this feature from the values of rhs.
void swap(Feature &other)
Swap the member data of this feature with another feature.
Feature nomenclature database querier.
void requestFinished(QNetworkReply *)
This is called when a query is done.
QList< Feature > features() const
This gives you the features found in all of the queries so far.
void readSearchResults(QDomElement)
This is a helper method for requestFinished.
bool m_lastQuery
True if all queries have finished.
QList< Feature > * m_features
These are the features identified by the nomenclature database.
void runQuery(QString target, Latitude startLat, Longitude startLon, Latitude endLat, Longitude endLon)
Query the nomenclature database for features inside the given range on the target.
QNetworkRequest * m_request
Network request sent.
void featuresIdentified(FeatureNomenclature *)
This is emitted when a query is completed.
void swap(FeatureNomenclature &other)
Swap the instances *this and other.
bool hasResult() const
Test if any understandable results have been received from the nomenclature database.
QNetworkAccessManager * m_networkMgr
Network manager does request.
IAUStatus
Enumeration of approval statuses.
@ Dropped
When this status is assigned to a feature, the displayed status will be "Dropped, disallowed" and the...
@ NoStatus
When this status is assigned to a feature, there will be no status displayed and the feature will not...
@ Unapproved
When this status is assigned to a feature, the displayed status will be "Never approved by the IAU" a...
@ Approved
When this status is assigned to a feature, the displayed status will be "Adopted by the IAU" and the ...
~FeatureNomenclature()
Frees allocated memory.
FeatureNomenclature()
Instantiate a feature nomenclature.
FeatureNomenclature & operator=(const FeatureNomenclature &other)
This takes on the data from rhs.
void queryFeatures(QString target, Latitude startLat, Longitude startLon, Latitude endLat, Longitude endLon)
Makes sure the longitudinal ranges are correct.
static bool featureDiameterGreaterThan(const FeatureNomenclature::Feature &lhs, const FeatureNomenclature::Feature &rhs)
Compare the diameter of two features.
IAUStatus m_statusApproval
The approval status of the feature from the database.
This class is designed to encapsulate the concept of a Latitude.
Definition Latitude.h:51
This class is designed to encapsulate the concept of a Longitude.
Definition Longitude.h:40
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16