Loading [MathJax]/jax/output/NativeMML/config.js
Isis Developer Reference
Intercept.h
Go to the documentation of this file.
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 
69  NaifVertex m_observer;
70  NaifVector m_raydir;
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
NaifDskApi.h
Isis::Intercept::location
SurfacePoint location() const
Returns the location of the intercept location on the shape.
Definition: Intercept.cpp:116
Isis::Intercept::normal
NaifVector normal() const
Gets the normal vector to the shape for this plate.
Definition: Intercept.cpp:129
Longitude.h
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::AbstractPlate
Abstract interface to a TIN plate.
Definition: AbstractPlate.h:46
Isis::Intercept::~Intercept
virtual ~Intercept()
Empty destructor.
Definition: Intercept.cpp:59
IString.h
Latitude.h
Isis::Intercept::lookDirectionRay
const NaifVector & lookDirectionRay() const
Accessor for the look direction of the intercept.
Definition: Intercept.cpp:99
_FILEINFO_
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
SurfacePoint.h
Intercept.h
AbstractPlate.h
Isis::IException
Isis exception class.
Definition: IException.h:91
Isis::Angle
Defines an angle and provides unit conversions.
Definition: Angle.h:45
IException.h
Isis::IException::Programmer
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:146
std
Namespace for the standard library.
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
Angle.h
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::validate
bool validate(const NaifVertex &v)
Verifies that the given NaifVector or NaifVertex is 3 dimensional.
Definition: NaifDskApi.cpp:28
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

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 USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:11:24