77                                    std::vector<double> lookDirection)=0;
 
   83                                    const std::vector<double> &observerPos,
 
   84                                    const bool &backCheck = 
true);
 
   86                                    const std::vector<double> &observerPos,
 
   87                                    const bool &backCheck = 
true);
 
  112      virtual double emissionAngle(
const std::vector<double> & sB);
 
  118      virtual double phaseAngle(
const std::vector<double> &sB,
 
  119                                const std::vector<double> &uB);
 
  135      QString 
name() 
const;
 
  144      virtual std::vector<double>  
normal();
 
  147      virtual bool isVisibleFrom(
const std::vector<double> observerPos,
 
  148                                 const std::vector<double> lookDirection);
 
  153      void setNormal(
const std::vector<double>);
 
  154      void setNormal(
const double a, 
const double b, 
const double c);
 
  164                              const std::vector<double> &observerLookVectorToTarget);
 
  171      bool m_hasEllipsoidIntersection; 
 
  172      bool m_hasIntersection;          
 
  174      std::vector<double> m_normal;    
 
Distance measurement, usually in meters.
Definition: Distance.h:34
 
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:51
 
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:40
 
Define shapes and provide utilities for Isis targets.
Definition: ShapeModel.h:62
 
virtual bool isDEM() const =0
Indicates whether this shape model is from a DEM.
 
double resolution()
Convenience method to get pixel resolution (m/pix) at current intersection point.
Definition: ShapeModel.cpp:592
 
virtual void clearSurfacePoint()
Clears or resets the current surface point.
Definition: ShapeModel.cpp:386
 
void setHasNormal(bool status)
Sets the flag to indicate whether this ShapeModel has a surface normal.
Definition: ShapeModel.cpp:581
 
bool hasIntersection()
Returns intersection status.
Definition: ShapeModel.cpp:368
 
void Initialize()
Initializes the ShapeModel private variables.
Definition: ShapeModel.cpp:65
 
virtual ~ShapeModel()=0
Virtual destructor to destroy the ShapeModel object.
Definition: ShapeModel.cpp:76
 
virtual void calculateSurfaceNormal()=0
 
void setHasIntersection(bool b)
Sets the flag to indicate whether this ShapeModel has an intersection.
Definition: ShapeModel.cpp:554
 
void setNormal(const std::vector< double >)
Sets the normal for the currect intersection point.
Definition: ShapeModel.cpp:487
 
virtual SurfacePoint * surfaceIntersection() const
Returns the surface intersection for this ShapeModel.
Definition: ShapeModel.cpp:358
 
bool hasValidTarget() const
Returns the status of the target.
Definition: ShapeModel.cpp:449
 
virtual double emissionAngle(const std::vector< double > &sB)
Computes and returns emission angle, in degrees, given the observer position.
Definition: ShapeModel.cpp:185
 
QString name() const
Gets the shape name.
Definition: ShapeModel.cpp:543
 
void calculateEllipsoidalSurfaceNormal()
Calculates the ellipsoidal surface normal.
Definition: ShapeModel.cpp:140
 
virtual Distance localRadius(const Latitude &lat, const Longitude &lon)=0
 
virtual bool isVisibleFrom(const std::vector< double > observerPos, const std::vector< double > lookDirection)
Default occulsion implementation.
Definition: ShapeModel.cpp:431
 
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:267
 
virtual double incidenceAngle(const std::vector< double > &uB)
Computes and returns incidence angle, in degrees, given the illuminator position.
Definition: ShapeModel.cpp:232
 
bool hasEllipsoidIntersection()
Returns the status of the ellipsoid model intersection.
Definition: ShapeModel.cpp:213
 
virtual void setSurfacePoint(const SurfacePoint &surfacePoint)
Set surface intersection point.
Definition: ShapeModel.cpp:565
 
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:324
 
virtual std::vector< double > normal()
Returns the local surface normal at the current intersection point.
Definition: ShapeModel.cpp:401
 
virtual bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)=0
 
std::vector< Distance > targetRadii() const
Returns the radii of the body in km.
Definition: ShapeModel.cpp:465
 
ShapeModel()
Default constructor creates ShapeModel object, initializing name to an empty string,...
Definition: ShapeModel.cpp:40
 
virtual void calculateLocalNormal(QVector< double * > neighborPoints)=0
 
virtual void calculateDefaultNormal()=0
 
bool hasNormal() const
Returns surface point normal status.
Definition: ShapeModel.cpp:378
 
void setName(QString name)
Sets the shape name.
Definition: ShapeModel.cpp:532
 
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:132
 
This class is used to create and store valid Isis targets.
Definition: Target.h:63
 
This is free and unencumbered software released into the public domain.
Definition: Calculator.h:18
 
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16