27 template<
class T>
class QVector;
83 std::vector<double> lookDirection)=0;
106 virtual double emissionAngle(
const std::vector<double> & sB);
112 virtual double phaseAngle(
const std::vector<double> &sB,
113 const std::vector<double> &uB);
126 virtual bool isDEM()
const = 0;
129 QString
name()
const;
138 std::vector<double>
normal();
143 void setNormal(
const std::vector<double>);
144 void setNormal(
const double a,
const double b,
const double c);
154 const std::vector<double> &observerLookVectorToTarget);
161 bool m_hasEllipsoidIntersection;
162 bool m_hasIntersection;
164 std::vector<double> m_normal;
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:86
void calculateEllipsoidalSurfaceNormal()
Calculates the ellipsoidal surface normal.
Definition: ShapeModel.cpp:81
std::vector< double > normal()
Returns the local surface normal at the current intersection point.
Definition: ShapeModel.cpp:342
ShapeModel()
Default constructor creates ShapeModel object, initializing name to an empty string, surface point to an empty surface point, has intersection to FALSE, has normal to FALSE, has ellipsoid intersection to FALSE, normal vector size to 3, and target to NULL.
Definition: ShapeModel.cpp:32
virtual void calculateLocalNormal(QVector< double * > neighborPoints)=0
QString name() const
Gets the shape name.
Definition: ShapeModel.cpp:454
void setNormal(const std::vector< double >)
Sets the normal for the currect intersection point.
Definition: ShapeModel.cpp:398
bool hasValidTarget() const
Returns the status of the target.
Definition: ShapeModel.cpp:360
virtual void calculateDefaultNormal()=0
bool hasIntersection()
Returns intersection status.
Definition: ShapeModel.cpp:309
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:59
virtual double emissionAngle(const std::vector< double > &sB)
Computes and returns emission angle, in degrees, given the observer position.
Definition: ShapeModel.cpp:126
Distance measurement, usually in meters.
Definition: Distance.h:47
std::vector< Distance > targetRadii() const
Returns the radii of the body in km.
Definition: ShapeModel.cpp:376
void setHasIntersection(bool b)
Sets the flag to indicate whether this ShapeModel has an intersection.
Definition: ShapeModel.cpp:465
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:52
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...
Definition: ShapeModel.cpp:265
virtual void calculateSurfaceNormal()=0
bool intersectEllipsoid(const std::vector< double > observerPosRelativeToTarget, const std::vector< double > &observerLookVectorToTarget)
Finds the intersection point on the ellipsoid model using the given position of the observer (spacecr...
Definition: ShapeModel.cpp:208
double resolution()
Convenience method to get pixel resolution (m/pix) at current intersection point. ...
Definition: ShapeModel.cpp:503
bool hasNormal() const
Returns surface point normal status.
Definition: ShapeModel.cpp:319
virtual bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)=0
virtual double incidenceAngle(const std::vector< double > &uB)
Computes and returns incidence angle, in degrees, given the illuminator position. ...
Definition: ShapeModel.cpp:173
virtual bool isDEM() const =0
Indicates whether this shape model is from a DEM.
void clearSurfacePoint()
Clears or resets the current surface point.
Definition: ShapeModel.cpp:327
This class is used to create and store valid Isis3 targets.
Definition: Target.h:63
virtual ~ShapeModel()=0
Virtual destructor to destroy the ShapeModel object.
Definition: ShapeModel.cpp:68
Define shapes and provide utilities for Isis3 targets.
Definition: ShapeModel.h:68
Definition: Calculator.h:33
void setSurfacePoint(const SurfacePoint &surfacePoint)
Set surface intersection point.
Definition: ShapeModel.cpp:476
void setName(QString name)
Sets the shape name.
Definition: ShapeModel.cpp:443
void setHasNormal(bool status)
Sets the flag to indicate whether this ShapeModel has a surface normal.
Definition: ShapeModel.cpp:492
bool hasEllipsoidIntersection()
Returns the status of the ellipsoid model intersection.
Definition: ShapeModel.cpp:154
SurfacePoint * surfaceIntersection() const
Returns the surface intersection for this ShapeModel.
Definition: ShapeModel.cpp:299
void Initialize()
Initializes the ShapeModel private variables.
Definition: ShapeModel.cpp:57
virtual Distance localRadius(const Latitude &lat, const Longitude &lon)=0