Isis 3 Developer Reference
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 {
91  public:
92  CameraGroundMap(Camera *parent);
93 
95  virtual ~CameraGroundMap() {};
96 
97  virtual bool SetFocalPlane(const double ux, const double uy,
98  const double uz);
99 
104  enum PartialType {
111  };
112 
113  virtual bool SetGround(const Latitude &lat, const Longitude &lon);
114  virtual bool SetGround(const SurfacePoint &surfacePoint);
115  virtual bool GetXY(const SurfacePoint &spoint, double *cudx,
116  double *cudy, bool test=true);
117  virtual bool GetXY(const double lat, const double lon,
118  const double radius, double *cudx, double *cudy);
119  virtual bool GetdXYdPosition(const SpicePosition::PartialType varType,
120  int coefIndex,
121  double *cudx, double *cudy);
122  virtual bool GetdXYdOrientation(const SpiceRotation::PartialType varType,
123  int coefIndex,
124  double *cudx, double *cudy);
125  virtual bool GetdXYdTOrientation(const SpiceRotation::PartialType varType,
126  int coefIndex,
127  double *cudx, double *cudy);
128  virtual bool GetdXYdPoint(std::vector<double> d_pB,
129  double *dx, double *dy);
130  std::vector<double> PointPartial(SurfacePoint spoint, PartialType wrt);
131  std::vector<double> EllipsoidPartial(SurfacePoint spoint, PartialType raxis);
132  std::vector<double> MeanRadiusPartial(SurfacePoint spoint, Distance meanRadius);
133  double DQuotient(std::vector<double> &look, std::vector<double> &dlook,
134  int index);
135 
139  inline double FocalPlaneX() const {
140  return p_focalPlaneX;
141  };
142 
146  inline double FocalPlaneY() const {
147  return p_focalPlaneY;
148  };
149 
150  protected:
151  Camera *p_camera;
152  double p_focalPlaneX;
153  double p_focalPlaneY;
154 
155  private:
156  void LookCtoFocalPlaneXY();
157 
158  std::vector<double> m_pB;
160  std::vector<double> m_lookJ;
161  };
162 };
163 #endif
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:148
virtual bool SetFocalPlane(const double ux, const double uy, const double uz)
Compute ground position from focal plane coordinate.
Definition: CameraGroundMap.cpp:66
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)
Definition: CameraGroundMap.cpp:452
Camera * p_camera
Camera.
Definition: CameraGroundMap.h:148
double p_focalPlaneY
Camera&#39;s y focal plane coordinate.
Definition: CameraGroundMap.h:153
double FocalPlaneY() const
Definition: CameraGroundMap.h:146
Definition: CameraGroundMap.h:106
double p_focalPlaneX
Camera&#39;s x focal plane coordinate.
Definition: CameraGroundMap.h:152
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.
Definition: CameraGroundMap.cpp:370
virtual ~CameraGroundMap()
Destructor.
Definition: CameraGroundMap.h:95
Definition: CameraGroundMap.h:107
double DQuotient(std::vector< double > &look, std::vector< double > &dlook, int index)
Convenience method for quotient rule applied to look vector.
Definition: CameraGroundMap.cpp:566
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:63
Distance measurement, usually in meters.
Definition: Distance.h:47
Definition: CameraGroundMap.h:108
Definition: Camera.h:249
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.
Definition: CameraGroundMap.cpp:92
PartialType
Radius axes types to use when computing partials.
Definition: CameraGroundMap.h:104
Convert between undistorted focal plane and ground coordinates.
Definition: CameraGroundMap.h:90
std::vector< double > MeanRadiusPartial(SurfacePoint spoint, Distance meanRadius)
Compute derivative of focal plane coordinate w/r to mean of the ellipsoidal radii (a...
Definition: CameraGroundMap.cpp:502
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...
Definition: CameraGroundMap.cpp:295
PartialType
Definition: SpicePosition.h:211
virtual bool GetXY(const SurfacePoint &spoint, double *cudx, double *cudy, bool test=true)
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage cal...
Definition: CameraGroundMap.cpp:168
double FocalPlaneX() const
Definition: CameraGroundMap.h:139
CameraGroundMap(Camera *parent)
Constructor.
Definition: CameraGroundMap.cpp:47
Definition: CameraGroundMap.h:109
PartialType
This enumeration indicates whether the partial derivative is taken with respect to Right Ascension...
Definition: SpiceRotation.h:271
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...
Definition: CameraGroundMap.cpp:334
Definition: CameraGroundMap.h:110
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
std::vector< double > PointPartial(SurfacePoint spoint, PartialType wrt)
Compute derivative with respect to indicated variable of conversion function from lat/lon/rad to rect...
Definition: CameraGroundMap.cpp:524
Definition: CameraGroundMap.h:105
virtual bool GetdXYdPoint(std::vector< double > d_pB, double *dx, double *dy)
Compute derivative of focal plane coordinate w/r to ground point using current state.
Definition: CameraGroundMap.cpp:414