Isis 3.0 Object Programmers' Reference
Home
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
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
9
class
QDomDocument;
10
class
QDomElement;
11
class
QNetworkAccessManager;
12
class
QNetworkReply;
13
class
QNetworkRequest;
14
class
QString;
15
class
QUrl;
16
class
QWidget
;
17
18
template
<
typename
T>
class
QList
;
19
20
namespace
Isis {
21
class
Distance;
22
class
iTime;
23
class
Latitude;
24
class
Longitude;
25
48
class
FeatureNomenclature
:
public
QObject
{
49
Q_OBJECT
50
51
public
:
52
54
enum
IAUStatus
{
59
NoStatus
,
64
Approved
,
70
Dropped
,
76
Unapproved
};
77
78
FeatureNomenclature
();
79
FeatureNomenclature
(
const
FeatureNomenclature
&other);
80
~FeatureNomenclature
();
81
82
void
queryFeatures
(QString target,
83
Latitude
startLat,
Longitude
startLon,
84
Latitude
endLat,
Longitude
endLon);
85
86
class
Feature;
87
QList<Feature>
features
()
const
;
88
bool
hasResult
()
const
;
89
90
void
swap
(
FeatureNomenclature
&other);
91
FeatureNomenclature
&
operator=
(
const
FeatureNomenclature
&other);
92
93
static
bool
featureDiameterGreaterThan
(
94
const
FeatureNomenclature::Feature
&lhs,
95
const
FeatureNomenclature::Feature
&rhs);
96
112
class
Feature
{
113
public
:
114
Feature
();
115
Feature
(QDomElement searchResultFeature,
IAUStatus
status
);
116
Feature
(
const
Feature
&other);
117
~Feature
();
118
119
QWidget
*
toWidget
()
const
;
120
121
QString
id
()
const
;
122
QString
name
()
const
;
123
QString
cleanName
()
const
;
124
QString
controlNet
()
const
;
125
QString
displayName
()
const
;
126
QString
target
()
const
;
127
QString
system
()
const
;
128
Distance
diameter
()
const
;
129
QString
diameterString
()
const
;
130
Latitude
centerLatitude
()
const
;
131
QString
centerLatitudeString
()
const
;
132
Longitude
centerLongitude
()
const
;
133
QString
centerLongitudeString
()
const
;
134
Latitude
northernLatitude
()
const
;
135
QString
northernLatitudeString
()
const
;
136
Latitude
southernLatitude
()
const
;
137
QString
southernLatitudeString
()
const
;
138
Longitude
easternLongitude
()
const
;
139
QString
easternLongitudeString
()
const
;
140
Longitude
westernLongitude
()
const
;
141
QString
westernLongitudeString
()
const
;
142
QString
originatingContinent
()
const
;
143
QString
originatingEthnicity
()
const
;
144
QString
approvalStatus
()
const
;
145
QString
approvalDate
()
const
;
146
QString
featureType
()
const
;
147
QString
referenceString
()
const
;
148
QString
origin
()
const
;
149
QString
lastUpdated
()
const
;
150
QUrl
referenceUrl
()
const
;
151
QString
referenceUrlString
()
const
;
152
IAUStatus
status
()
const
;
153
154
void
swap
(
Feature
&other);
155
Feature
&
operator=
(
const
Feature
&rhs);
156
157
private
:
158
QString
getTagText
(QString tagName)
const
;
159
160
private
:
165
QDomElement *
m_xmlRepresenation
;
167
IAUStatus
m_approvalStatus
;
168
};
169
170
signals:
175
void
featuresIdentified
(
FeatureNomenclature
*);
176
177
private
slots:
178
void
requestFinished
(QNetworkReply *);
179
180
private
:
181
void
readSearchResults
(QDomElement);
182
void
runQuery
(QString target,
183
Latitude
startLat,
Longitude
startLon,
184
Latitude
endLat,
Longitude
endLon);
185
186
private
:
187
QNetworkAccessManager *
m_networkMgr
;
188
QNetworkRequest *
m_request
;
189
191
QList<Feature>
*
m_features
;
193
IAUStatus
m_statusApproval
;
195
bool
m_lastQuery
;
196
};
197
198
};
199
201
Q_DECLARE_METATYPE
(
Isis::FeatureNomenclature::Feature
);
202
203
#endif