27 template<
class T>
class QVector;
93 std::vector<double> lookDirection)=0;
99 const std::vector<double> &observerPos,
100 const bool &backCheck =
true);
102 const std::vector<double> &observerPos,
103 const bool &backCheck =
true);
128 virtual double emissionAngle(
const std::vector<double> & sB);
134 virtual double phaseAngle(
const std::vector<double> &sB,
135 const std::vector<double> &uB);
148 virtual bool isDEM()
const = 0;
151 QString
name()
const;
160 std::vector<double>
normal();
163 virtual bool isVisibleFrom(
const std::vector<double> observerPos,
164 const std::vector<double> lookDirection);
169 void setNormal(
const std::vector<double>);
170 void setNormal(
const double a,
const double b,
const double c);
180 const std::vector<double> &observerLookVectorToTarget);
187 bool m_hasEllipsoidIntersection;
188 bool m_hasIntersection;
190 std::vector<double> m_normal;
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:148
void calculateEllipsoidalSurfaceNormal()
Calculates the ellipsoidal surface normal.
Definition: ShapeModel.cpp:134
std::vector< double > normal()
Returns the local surface normal at the current intersection point.
Definition: ShapeModel.cpp:395
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:34
bool hasValidTarget() const
Returns the status of the target.
Definition: ShapeModel.cpp:443
void setNormal(const std::vector< double >)
Sets the normal for the currect intersection point.
Definition: ShapeModel.cpp:481
virtual void calculateDefaultNormal()=0
bool hasIntersection()
Returns intersection status.
Definition: ShapeModel.cpp:362
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:63
SurfacePoint * surfaceIntersection() const
Returns the surface intersection for this ShapeModel.
Definition: ShapeModel.cpp:352
virtual double emissionAngle(const std::vector< double > &sB)
Computes and returns emission angle, in degrees, given the observer position.
Definition: ShapeModel.cpp:179
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:459
void setHasIntersection(bool b)
Sets the flag to indicate whether this ShapeModel has an intersection.
Definition: ShapeModel.cpp:548
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:318
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:261
double resolution()
Convenience method to get pixel resolution (m/pix) at current intersection point. ...
Definition: ShapeModel.cpp:586
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:226
virtual bool isDEM() const =0
Indicates whether this shape model is from a DEM.
virtual void clearSurfacePoint()
Clears or resets the current surface point.
Definition: ShapeModel.cpp:380
This class is used to create and store valid Isis3 targets.
Definition: Target.h:76
virtual ~ShapeModel()=0
Virtual destructor to destroy the ShapeModel object.
Definition: ShapeModel.cpp:70
Define shapes and provide utilities for Isis3 targets.
Definition: ShapeModel.h:78
Definition: Calculator.h:33
QString name() const
Gets the shape name.
Definition: ShapeModel.cpp:537
virtual bool isVisibleFrom(const std::vector< double > observerPos, const std::vector< double > lookDirection)
Default occulsion implementation.
Definition: ShapeModel.cpp:425
virtual void setSurfacePoint(const SurfacePoint &surfacePoint)
Set surface intersection point.
Definition: ShapeModel.cpp:559
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
virtual void calculateLocalNormal(QVector< double *> neighborPoints)=0
void setName(QString name)
Sets the shape name.
Definition: ShapeModel.cpp:526
void setHasNormal(bool status)
Sets the flag to indicate whether this ShapeModel has a surface normal.
Definition: ShapeModel.cpp:575
bool hasEllipsoidIntersection()
Returns the status of the ellipsoid model intersection.
Definition: ShapeModel.cpp:207
void Initialize()
Initializes the ShapeModel private variables.
Definition: ShapeModel.cpp:59
bool hasNormal() const
Returns surface point normal status.
Definition: ShapeModel.cpp:372
virtual Distance localRadius(const Latitude &lat, const Longitude &lon)=0