Isis 3.0 Programmer Reference
Back | Home
Intercept.h
Go to the documentation of this file.
1 #ifndef Intercept_h
2 #define Intercept_h
3 
25 #include <QSharedPointer>
26 
27 #include "AbstractPlate.h"
28 #include "NaifDskApi.h"
29 
30 namespace Isis {
31 
32  class Angle;
33  class SurfacePoint;
34 
51  class Intercept {
52  public:
53  Intercept();
54  Intercept(const NaifVertex &observer, const NaifVector &raydir,
55  SurfacePoint *ipoint, AbstractPlate *shape);
56  virtual ~Intercept();
57 
58  bool isValid() const;
59 
60  const NaifVertex &observer() const;
61  const NaifVector &lookDirectionRay() const;
62  SurfacePoint location() const;
63 
64  NaifVector normal() const;
65  Angle emission() const;
66 
67  Angle separationAngle(const NaifVector &raydir) const;
68 
69  const AbstractPlate *shape() const;
70 
71  private:
72 
77  enum ErrAction { Throw,
79  }; // Error mode to employ
80 
81  bool verify(const bool &test, const QString &errmsg,
82  const ErrAction &action = Throw) const;
83 
86 
87  QSharedPointer<SurfacePoint> m_point;
89  QSharedPointer<AbstractPlate> m_shape;
90 
91  };
92 
93 }; // namespace Isis
94 #endif
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:86
NaifVertex m_observer
Three dimensional coordinate position of the observer, in body fixed.
Definition: Intercept.h:84
NaifVector normal() const
Gets the normal vector to the shape for this plate.
Definition: Intercept.cpp:146
QSharedPointer< AbstractPlate > m_shape
Shape Model for the intercept point.
Definition: Intercept.h:89
Abstract interface to a TIN plate.
Definition: AbstractPlate.h:59
NaifVector m_raydir
Three dimensional ray representing the look direction.
Definition: Intercept.h:85
Do not throw an exception if an error occurs.
Definition: Intercept.h:78
TNT::Array1D< SpiceDouble > NaifVector
Namespace to contain type definitions of NAIF DSK fundamentals.
Definition: NaifDskApi.h:64
TNT::Array1D< SpiceDouble > NaifVertex
1-D Buffer[3]
Definition: NaifDskApi.h:65
virtual ~Intercept()
Empty destructor.
Definition: Intercept.cpp:76
Container for a intercept condition.
Definition: Intercept.h:51
const NaifVector & lookDirectionRay() const
Accessor for the look direction of the intercept.
Definition: Intercept.cpp:116
SurfacePoint location() const
Returns the location of the intercept location on the shape.
Definition: Intercept.cpp:133
bool isValid() const
This method tests the vailidty of the intercept point.
Definition: Intercept.cpp:87
Angle emission() const
Compute the emission of the intercept point from the observer.
Definition: Intercept.cpp:167
Intercept()
Default empty constructor.
Definition: Intercept.cpp:47
Throw an exception if an error occurs.
Definition: Intercept.h:77
Defines an angle and provides unit conversions.
Definition: Angle.h:58
Angle separationAngle(const NaifVector &raydir) const
Returns the separation angle of the observer and the plate normal.
Definition: Intercept.cpp:199
const AbstractPlate * shape() const
Access the plate for this intercept.
Definition: Intercept.cpp:240
const NaifVertex & observer() const
Accessor for the observer position of the intercept.
Definition: Intercept.cpp:104
bool verify(const bool &test, const QString &errmsg, const ErrAction &action=Throw) const
Convenient error handler.
Definition: Intercept.cpp:222
ErrAction
Enumeration to indicate whether to throw an exception if an error occurs.
Definition: Intercept.h:77
QSharedPointer< SurfacePoint > m_point
Surface point of the intercept location on the body, in body fixed.
Definition: Intercept.h:87

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:20:39