15#include "SurfacePoint.h"
40 double oldLine = m_cam->
Line();
41 double oldSample = m_cam->
Sample();
42 int oldBand = m_cam->
Band();
43 double newLine = imagePoint.line + 0.5;
44 double newSample = imagePoint.sample + 0.5;
45 int newBand = imagePoint.band + 1;
47 bool imagePtChanged = oldLine != newLine ||
48 oldSample != newSample ||
56 SensorUtilities::Vec lookVec = {lookBF[0], lookBF[1], lookBF[2]};
59 SensorUtilities::Vec lookVecJ2000 = {lookJ2000[0], lookJ2000[1], lookJ2000[2]};
61 vector<double> posBF(3);
64 SensorUtilities::Vec sensorPos = {1000 * posBF[0], 1000 * posBF[1], 1000 * posBF[2]};
66 double sensorTime = m_cam->
time().Et();
68 SensorUtilities::ObserverState sensorState = {
97 double oldLine = m_cam->
Line();
98 double oldSample = m_cam->
Sample();
99 double oldBand = m_cam->
Band();
101 bool groundPtChanged = !(oldGroundPt == newGroundPt);
103 if (groundPtChanged) {
108 SensorUtilities::Vec lookVec = {lookBF[0], lookBF[1], lookBF[2]};
111 SensorUtilities::Vec lookVecJ2000 = {lookJ2000[0], lookJ2000[1], lookJ2000[2]};
113 vector<double> posBF(3);
116 SensorUtilities::Vec sensorPos = {1000 * posBF[0], 1000 * posBF[1], 1000 * posBF[2]};
118 double sensorTime = m_cam->
time().Et();
120 SensorUtilities::ImagePt imagePoint = {
125 SensorUtilities::ObserverState sensorState = {
132 if (groundPtChanged) {
134 m_cam->
SetImage(oldSample, oldLine);
@ Radians
Radians are generally used in mathematical equations, 0-2*PI is one circle, however these are more di...
virtual double Line() const
Returns the current line number.
virtual double Sample() const
Returns the current sample number.
virtual bool SetImage(const double sample, const double line)
Sets the sample/line values of the image to get the lat/lon values.
virtual int Band() const
Returns the current band.
virtual bool SetGround(Latitude latitude, Longitude longitude)
Sets the lat/lon values to get the sample/line values.
virtual bool IsBandIndependent()
Virtual method that checks if the band is independent.
virtual void SetBand(const int band)
Virtual method that sets the band number.
Distance measurement, usually in meters.
@ Meters
The distance is being specified in meters.
IsisSensor(Camera *cam)
Create an IsisSensor wrapping an ISIS Camera object.
virtual SensorUtilities::ObserverState getState(const SensorUtilities::ImagePt &imagePoint)
Get the sensor state at an image coordinate.
This class is designed to encapsulate the concept of a Latitude.
This class is designed to encapsulate the concept of a Longitude.
virtual SurfacePoint GetSurfacePoint() const
Returns the surface point (most efficient accessor).
virtual std::vector< double > lookDirectionBodyFixed() const
Returns the look direction in the body fixed coordinate system.
virtual std::vector< double > lookDirectionJ2000() const
Returns the look direction in the camera coordinate system.
virtual void instrumentBodyFixedPosition(double p[3]) const
Returns the spacecraft position in body-fixed frame km units.
virtual iTime time() const
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions.
This class defines a body-fixed surface point.
This is free and unencumbered software released into the public domain.
Namespace for the standard library.