Isis 3 Programmer Reference
Intercept.h
1 #ifndef Intercept_h
2 #define Intercept_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 
10 #include <QSharedPointer>
11 
12 #include "AbstractPlate.h"
13 #include "NaifDskApi.h"
14 
15 namespace Isis {
16 
17  class Angle;
18  class SurfacePoint;
19 
36  class Intercept {
37  public:
38  Intercept();
39  Intercept(const NaifVertex &observer, const NaifVector &raydir,
40  SurfacePoint *ipoint, AbstractPlate *shape);
41  virtual ~Intercept();
42 
43  bool isValid() const;
44 
45  const NaifVertex &observer() const;
46  const NaifVector &lookDirectionRay() const;
47  SurfacePoint location() const;
48 
49  NaifVector normal() const;
50  Angle emission() const;
51 
52  Angle separationAngle(const NaifVector &raydir) const;
53 
54  const AbstractPlate *shape() const;
55 
56  private:
57 
62  enum ErrAction { Throw,
63  NoThrow
64  }; // Error mode to employ
65 
66  bool verify(const bool &test, const QString &errmsg,
67  const ErrAction &action = Throw) const;
68 
71 
75 
76  };
77 
78 }; // namespace Isis
79 #endif
Isis::Intercept::separationAngle
Angle separationAngle(const NaifVector &raydir) const
Returns the separation angle of the observer and the plate normal.
Definition: Intercept.cpp:182
Isis::NaifVertex
TNT::Array1D< SpiceDouble > NaifVertex
1-D Buffer[3]
Definition: NaifDskApi.h:47
Isis::Intercept::location
SurfacePoint location() const
Returns the location of the intercept location on the shape.
Definition: Intercept.cpp:116
Isis::Intercept::Throw
@ Throw
Throw an exception if an error occurs.
Definition: Intercept.h:62
Isis::Intercept::normal
NaifVector normal() const
Gets the normal vector to the shape for this plate.
Definition: Intercept.cpp:129
Isis::Intercept::emission
Angle emission() const
Compute the emission of the intercept point from the observer.
Definition: Intercept.cpp:150
QSharedPointer
Definition: JigsawWorkOrder.h:28
Isis::Intercept::m_observer
NaifVertex m_observer
Three dimensional coordinate position of the observer, in body fixed.
Definition: Intercept.h:69
Isis::AbstractPlate
Abstract interface to a TIN plate.
Definition: AbstractPlate.h:46
Isis::Intercept::~Intercept
virtual ~Intercept()
Empty destructor.
Definition: Intercept.cpp:59
Isis::Intercept::lookDirectionRay
const NaifVector & lookDirectionRay() const
Accessor for the look direction of the intercept.
Definition: Intercept.cpp:99
Isis::Intercept::NoThrow
@ NoThrow
Do not throw an exception if an error occurs.
Definition: Intercept.h:63
Isis::Intercept::m_point
QSharedPointer< SurfacePoint > m_point
Surface point of the intercept location on the body, in body fixed.
Definition: Intercept.h:72
Isis::Angle
Defines an angle and provides unit conversions.
Definition: Angle.h:45
Isis::Intercept::ErrAction
ErrAction
Enumeration to indicate whether to throw an exception if an error occurs.
Definition: Intercept.h:62
Isis::Intercept
Container for a intercept condition.
Definition: Intercept.h:36
Isis::Intercept::observer
const NaifVertex & observer() const
Accessor for the observer position of the intercept.
Definition: Intercept.cpp:87
Isis::Intercept::verify
bool verify(const bool &test, const QString &errmsg, const ErrAction &action=Throw) const
Convenient error handler.
Definition: Intercept.cpp:205
Isis::Intercept::isValid
bool isValid() const
This method tests the vailidty of the intercept point.
Definition: Intercept.cpp:70
Isis::NaifVector
TNT::Array1D< SpiceDouble > NaifVector
Namespace to contain type definitions of NAIF DSK fundamentals.
Definition: NaifDskApi.h:46
Isis::Intercept::m_raydir
NaifVector m_raydir
Three dimensional ray representing the look direction.
Definition: Intercept.h:70
Isis::Intercept::Intercept
Intercept()
Default empty constructor.
Definition: Intercept.cpp:30
Isis::SurfacePoint
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:132
Isis::Intercept::shape
const AbstractPlate * shape() const
Access the plate for this intercept.
Definition: Intercept.cpp:223
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::Intercept::m_shape
QSharedPointer< AbstractPlate > m_shape
Shape Model for the intercept point.
Definition: Intercept.h:74