Isis 3.0 Programmer Reference
Back | Home
CameraGroundMap.h
Go to the documentation of this file.
1 
24 #ifndef CameraGroundMap_h
25 #define CameraGroundMap_h
26 
27 #include "Camera.h"
28 #include "CameraDistortionMap.h"
29 #include "SpicePosition.h"
30 #include "SurfacePoint.h"
31 
32 namespace Isis {
86  public:
87  CameraGroundMap(Camera *parent);
88 
90  virtual ~CameraGroundMap() {};
91 
92  virtual bool SetFocalPlane(const double ux, const double uy,
93  const double uz);
94 
99  enum PartialType {
100  WRT_Latitude,
101  WRT_Longitude,
102  WRT_Radius,
103  WRT_MajorAxis,
104  WRT_MinorAxis,
105  WRT_PolarAxis
106  };
107 
108  virtual bool SetGround(const Latitude &lat, const Longitude &lon);
109  virtual bool SetGround(const SurfacePoint &surfacePoint);
110  virtual bool GetXY(const SurfacePoint &spoint, double *cudx, double *cudy);
111  virtual bool GetXY(const double lat, const double lon,
112  const double radius, double *cudx, double *cudy);
113  virtual bool GetdXYdPosition(const SpicePosition::PartialType varType,
114  int coefIndex,
115  double *cudx, double *cudy);
116  virtual bool GetdXYdOrientation(const SpiceRotation::PartialType varType,
117  int coefIndex,
118  double *cudx, double *cudy);
119  virtual bool GetdXYdTOrientation(const SpiceRotation::PartialType varType,
120  int coefIndex,
121  double *cudx, double *cudy);
122  virtual bool GetdXYdPoint(std::vector<double> d_lookB,
123  double *cudx, double *cudy);
124  std::vector<double> PointPartial(SurfacePoint spoint, PartialType wrt);
125  std::vector<double> EllipsoidPartial(SurfacePoint spoint, PartialType raxis);
126  std::vector<double> MeanRadiusPartial(SurfacePoint spoint, Distance meanRadius);
127  double DQuotient(std::vector<double> &look, std::vector<double> &dlook,
128  int index);
129 
131  inline double FocalPlaneX() const {
132  return p_focalPlaneX;
133  };
134 
136  inline double FocalPlaneY() const {
137  return p_focalPlaneY;
138  };
139 
140  protected:
141  Camera *p_camera;
142  double p_focalPlaneX;
143  double p_focalPlaneY;
144 
145  private:
146  void LookCtoFocalPlaneXY();
147  std::vector<double> m_pB;
150  std::vector<double> m_lookJ;
151  };
152 };
153 #endif
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:86
double FocalPlaneX() const
Return undistorted focal plane x.
virtual bool SetFocalPlane(const double ux, const double uy, const double uz)
Compute ground position from focal plane coordinate.
std::vector< double > EllipsoidPartial(SurfacePoint spoint, PartialType raxis)
Compute derivative of focal plane coordinate w/r to one of the ellipsoidal radii (a, b, or c)
Camera * p_camera
Camera.
double p_focalPlaneY
Camera&#39;s y focal plane coordinate.
double p_focalPlaneX
Camera&#39;s x focal plane coordinate.
void LookCtoFocalPlaneXY()
Calculate focalplane x/y from lookvector in camera Surface point calculat...
virtual bool GetXY(const SurfacePoint &spoint, double *cudx, double *cudy)
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage cal...
virtual bool GetdXYdTOrientation(const SpiceRotation::PartialType varType, int coefIndex, double *cudx, double *cudy)
Compute derivative of focal plane coordinate w/r to target body using current state.
virtual ~CameraGroundMap()
Destructor.
double DQuotient(std::vector< double > &look, std::vector< double > &dlook, int index)
Convenience method for quotient rule applied to look vector.
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:59
Distance measurement, usually in meters.
Definition: Distance.h:47
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:52
virtual bool SetGround(const Latitude &lat, const Longitude &lon)
Compute undistorted focal plane coordinate from ground position.
PartialType
Radius axes types to use when computing partials.
virtual bool GetdXYdPoint(std::vector< double > d_lookB, double *cudx, double *cudy)
Compute derivative of focal plane coordinate w/r to ground point using current state.
Convert between undistorted focal plane and ground coordinates.
std::vector< double > MeanRadiusPartial(SurfacePoint spoint, Distance meanRadius)
Compute derivative of focal plane coordinate w/r to mean of the ellipsoidal radii (a...
std::vector< double > m_lookJ
Look vector in J2000 calculated from ground coordinates in GetXY and used for partials.
virtual bool GetdXYdPosition(const SpicePosition::PartialType varType, int coefIndex, double *cudx, double *cudy)
Compute derivative w/r to position of focal plane coordinate from ground position using current Spice...
CameraGroundMap(Camera *parent)
Constructor.
PartialType
This enumeration indicates whether the partial derivative is taken with respect to Right Ascension...
virtual bool GetdXYdOrientation(const SpiceRotation::PartialType varType, int coefIndex, double *cudx, double *cudy)
Compute derivative of focal plane coordinate w/r to instrument using current state from SetImage call...
double FocalPlaneY() const
Return undistorted focal plane y.
std::vector< double > PointPartial(SurfacePoint spoint, PartialType wrt)
Compute derivative with respect to indicated variable of conversion function from lat/lon/rad to rect...

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:15:37