Isis 3.0 Object Programmers' Reference
Home
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
Sensor.h
Go to the documentation of this file.
1
#ifndef Sensor_h
2
#define Sensor_h
3
25
#include "
Spice.h
"
26
27
#include <QList>
28
#include <QPointF>
29
#include <QString>
30
31
#include "
Cube.h
"
32
#include "
Interpolator.h
"
33
#include "
Portal.h
"
34
#include "
ProjectionFactory.h
"
35
36
namespace
Isis {
37
class
Distance;
38
class
EllipsoidShape;
39
class
iTime;
40
class
Latitude;
41
class
Longitude;
42
class
ShapeModel;
43
class
SurfacePoint;
44
class
Target;
45
179
class
Sensor
:
public
Spice
{
180
public
:
181
Sensor
(
Cube
&cube);
182
183
virtual
~Sensor
();
184
185
void
setTime
(
const
iTime
&
time
);
186
bool
SetLookDirection
(
const
double
v[3]);
187
bool
SetRightAscensionDeclination
(
const
double
ra,
const
double
dec);
188
bool
SetUniversalGround
(
const
double
latitude,
const
double
longitude,
189
bool
backCheck =
true
);
190
bool
SetUniversalGround
(
const
double
latitude,
const
double
longitude,
191
const
double
radius,
bool
backCheck =
true
);
192
bool
SetGround
(
const
SurfacePoint
&surfacePt,
bool
backCheck =
true
);
193
bool
HasSurfaceIntersection
()
const
;
194
void
Coordinate
(
double
p[3])
const
;
195
196
double
UniversalLatitude
()
const
;
197
Latitude
GetLatitude
()
const
;
198
double
UniversalLongitude
()
const
;
199
Longitude
GetLongitude
()
const
;
200
SurfacePoint
GetSurfacePoint
()
const
;
201
202
Distance
LocalRadius
()
const
;
203
Distance
LocalRadius
(
Latitude
lat,
Longitude
lon);
204
Distance
LocalRadius
(
double
lat,
double
lon);
205
206
double
PhaseAngle
()
const
;
207
double
EmissionAngle
()
const
;
208
double
IncidenceAngle
()
const
;
209
210
void
LookDirection
(
double
v[3])
const
;
211
212
double
RightAscension
();
213
double
Declination
();
214
215
// Return vector between spacecraft and surface point in body-fixed
216
void
SpacecraftSurfaceVector
(
double
scSurfaceVector[3])
const
;
217
double
SlantDistance
()
const
;
218
double
LocalSolarTime
();
219
double
SolarDistance
()
const
;
220
double
SpacecraftAltitude
();
221
222
// Return local radius from dem
223
// Distance DemRadius(const SurfacePoint &pt);
224
// Distance DemRadius(const Latitude &lat, const Longitude
225
// &lon); bool HasElevationModel() {
226
233
virtual
double
resolution
() {
234
return
1.0;
235
};
236
void
IgnoreElevationModel
(
bool
ignore);
237
238
virtual
QList<QPointF>
PixelIfovOffsets
();
239
240
virtual
QString instrumentNameLong()
const
= 0;
241
virtual
QString instrumentNameShort()
const
= 0;
242
virtual
QString spacecraftNameLong()
const
= 0;
243
virtual
QString spacecraftNameShort()
const
= 0;
244
245
private
:
246
// This version of DemRadius is for SetLookDirection ONLY. Do not call.
247
// DAC TODO Why is next declaration here? Don't move until I know
248
// double DemRadius(double lat, double lon);
249
void
CommonInitialize(
const
std::string &demCube);
250
251
SpiceDouble
m_lookB
[3];
252
253
bool
m_newLookB
;
254
SpiceDouble
m_ra
;
255
SpiceDouble
m_dec
;
256
void
computeRaDec
();
257
bool
SetGroundLocal
(
bool
backCheck);
258
};
259
};
260
261
#endif