32 #include "CubeManager.h" 
   48 #define MAX(x,y) (((x) > (y)) ? (x) : (y)) 
   98     QString message = 
"Pixel Ifov offsets not implemented for this camera.";
 
  164     vector<double> lookC(v, v + 3);
 
  174     memcpy(
m_lookB, &lookB[0], 
sizeof(
double) * 3);
 
  189     return target()->
shape()->intersectSurface(sB, lookB);
 
  328     std::vector<double> sunB(
m_uB, 
m_uB+3);
 
  351     std::vector<double> sunB(
m_uB, 
m_uB+3);
 
  372                                   const double longitude,
 
  407                                   const double longitude,
 
  483     const vector<double> &sB =
 
  528     vector<double> lookB(3);
 
  575     vector<double> lookB(3);
 
  582     recrad_c((SpiceDouble *)&lookJ[0], &range, &
m_ra, &
m_dec);
 
  597     vector<double> lookJ(3);
 
  598     radrec_c(1.0, ra * 
PI / 180.0, dec * 
PI / 180.0, (SpiceDouble *)&lookJ[0]);
 
  614     scSurfaceVector[0] = 
m_lookB[0];
 
  615     scSurfaceVector[1] = 
m_lookB[1];
 
  616     scSurfaceVector[2] = 
m_lookB[2];
 
  626     SpiceDouble psB[3], upsB[3];
 
  637     vsub_c(pB, (SpiceDouble *) &sB[0], psB);
 
  638     unorm_c(psB, upsB, &dist);
 
  654     if (lst < 0.0) lst += 24.0;
 
  655     if (lst > 24.0) lst -= 24.0;
 
  677     double dist = sqrt(xChange*xChange + yChange*yChange + zChange*zChange);
 
  678     dist /= 149597870.691;
 
  697     double rlat = lat * 
PI / 180.0;
 
  698     double rlon = lon * 
PI / 180.0;
 
  708     double xChange = spB[0] - ssB[0];
 
  709     double yChange = spB[1] - ssB[1];
 
  710     double zChange = spB[2] - ssB[2];
 
  713     double dist = sqrt(xChange*xChange + yChange*yChange + zChange*zChange);
 
This class defines a body-fixed surface point. 
 
double RightAscension()
Returns the right ascension angle (sky longitude). 
 
void IgnoreElevationModel(bool ignore)
This allows you to ignore the cube elevation model and use the ellipse. 
 
void SetSpherical(const Latitude &lat, const Longitude &lon, const Distance &radius, const Angle &latSigma=Angle(), const Angle &lonSigma=Angle(), const Distance &radiusSigma=Distance())
Set surface point and covariance matrix in planetocentric coordinates and convert to rectangular (Lat...
 
double degrees() const 
Get the angle in units of Degrees. 
 
Parse and return pieces of a time string. 
 
SpicePosition * sunPosition() const 
Accessor method for the sun position. 
 
Distance GetLocalRadius() const 
Return the radius of the surface point. 
 
virtual QList< QPointF > PixelIfovOffsets()
This method is implemented in Camera which defaults to the (pixel pitch * summing mode ) / 2...
 
double SlantDistance() const 
Return the distance between the spacecraft and surface point in kmv. 
 
Latitude GetLatitude() const 
Returns a planetocentric latitude object at the surface intersection point in body fixed...
 
SpiceRotation * instrumentRotation() const 
Accessor method for the instrument rotation. 
 
Longitude GetLongitude() const 
Returns a positive east, 0-360 domain longitude object at the surface intersection point in the body ...
 
SpiceDouble m_dec
Decliation (sky latitude) 
 
bool hasIntersection()
Returns intersection status. 
 
std::vector< double > lookDirectionBodyFixed() const 
Returns the look direction in the body fixed coordinate system. 
 
const double PI(3.14159265358979323846)
The mathematical constant PI. 
 
bool SetRightAscensionDeclination(const double ra, const double dec)
Given the ra/dec compute the look direction. 
 
double UniversalLatitude() const 
Returns the planetocentric latitude, in degrees, at the surface intersection point in the body fixed ...
 
bool SetGround(const SurfacePoint &surfacePt, bool backCheck=true)
This overloaded method has the opposite function as SetLookDirection. 
 
SpiceDouble m_lookB[3]
Look direction in body fixed. 
 
This class is designed to encapsulate the concept of a Latitude. 
 
void computeRaDec()
Computes the ra/dec from the look direction. 
 
SpicePosition * instrumentPosition() const 
Accessor method for the instrument position. 
 
bool SetUniversalGround(const double latitude, const double longitude, bool backCheck=true)
This is the opposite routine for SetLookDirection. 
 
bool SetLookDirection(const double v[3])
Sets the look direction of the spacecraft. 
 
bool m_newLookB
flag to indicate we need to recompute ra/dec 
 
virtual double emissionAngle(const std::vector< double > &sB)
Computes and returns emission angle, in degrees, given the observer position. 
 
Unless noted otherwise, the portions of Isis written by the USGS are public domain. 
 
This error is for when a programmer made an API call that was illegal. 
 
Distance measurement, usually in meters. 
 
Longitude GetLongitude() const 
Return the body-fixed longitude for the surface point. 
 
bool SetGroundLocal(bool backCheck)
Computes look vector. 
 
double UniversalLongitude() const 
Returns the positive east, 0-360 domain longitude, in degrees, at the surface intersection point in t...
 
void setHasIntersection(bool b)
Sets the flag to indicate whether this ShapeModel has an intersection. 
 
This class is designed to encapsulate the concept of a Longitude. 
 
virtual double phaseAngle(const std::vector< double > &sB, const std::vector< double > &uB)
Computes and returns phase angle, in degrees, given the positions of the observer and illuminator...
 
Target * target() const 
Returns a pointer to the target object. 
 
void restoreShape()
Restores the shape to the original after setShapeEllipsoid has overridden it. 
 
virtual ~Sensor()
Destroys the Sensor. 
 
Degrees are generally considered more human readable, 0-360 is one circle, however most math does not...
 
std::vector< double > ReferenceVector(const std::vector< double > &jVec)
Given a direction vector in J2000, return a reference frame direction. 
 
SpiceRotation * bodyRotation() const 
Accessor method for the body rotation. 
 
Latitude GetLatitude() const 
Return the body-fixed latitude for the surface point. 
 
double EmissionAngle() const 
Returns the emission angle in degrees. 
 
double kilometers() const 
Get the displacement in kilometers. 
 
void subSolarPoint(double &lat, double &lon)
Returns the sub-solar latitude/longitude in universal coordinates (0-360 positive east...
 
#define _FILEINFO_
Macro for the filename and line number. 
 
double PhaseAngle() const 
Returns the phase angle in degrees. 
 
virtual double incidenceAngle(const std::vector< double > &uB)
Computes and returns incidence angle, in degrees, given the illuminator position. ...
 
void setTime(const iTime &time)
By setting the time you essential set the position of the spacecraft and body as indicated in the cla...
 
SurfacePoint GetSurfacePoint() const 
Returns the surface point (most efficient accessor). 
 
bool HasSurfaceIntersection() const 
Returns if the last call to either SetLookDirection or SetUniversalGround had a valid intersection wi...
 
void clearSurfacePoint()
Clears or resets the current surface point. 
 
double SpacecraftAltitude()
Returns the distance from the spacecraft to the subspacecraft point in km. 
 
Define shapes and provide utilities for Isis3 targets. 
 
void Coordinate(double p[3]) const 
Returns the x,y,z of the surface intersection in BodyFixed km. 
 
Unless noted otherwise, the portions of Isis written by the USGS are public domain. 
 
Distance LocalRadius() const 
Returns the local radius at the intersection point. 
 
SpiceDouble m_ra
Right ascension (sky longitude) 
 
std::vector< double > J2000Vector(const std::vector< double > &rVec)
Given a direction vector in the reference frame, return a J2000 direction. 
 
double SolarDistance() const 
Returns the distance between the sun and surface point in AU. 
 
void setSurfacePoint(const SurfacePoint &surfacePoint)
Set surface intersection point. 
 
void setShapeEllipsoid()
Set the shape to the ellipsoid and save the original shape. 
 
Obtain SPICE information for a spacecraft. 
 
The distance is being specified in meters. 
 
double kilometers() const 
Get the distance in kilometers. 
 
void SpacecraftSurfaceVector(double scSurfaceVector[3]) const 
Sets the vector between the spacecraft and surface point in body-fixed. 
 
double LocalSolarTime()
Return the local solar time in hours. 
 
ShapeModel * shape() const 
Return the shape. 
 
void LookDirection(double v[3]) const 
Returns the look direction in the camera coordinate system. 
 
SpiceDouble m_uB[3]
This contains the sun position (u) in the bodyfixed reference frame (B). 
 
double IncidenceAngle() const 
Returns the incidence angle in degrees. 
 
SurfacePoint * surfaceIntersection() const 
Returns the surface intersection for this ShapeModel. 
 
std::vector< double > lookDirectionJ2000() const 
Returns the look direction in the camera coordinate system. 
 
void setTime(const iTime &time)
Sets the ephemeris time and reads the spacecraft and sun position from the kernels at that instant in...
 
Unless noted otherwise, the portions of Isis written by the USGS are public domain. 
 
double Declination()
Returns the declination angle (sky latitude). 
 
IO Handler for Isis Cubes. 
 
void subSpacecraftPoint(double &lat, double &lon)
Returns the sub-spacecraft latitude/longitude in universal coordinates (0-360 positive east...