Isis Developer Reference
Intercept.h
Go to the documentation of this file.
1#ifndef Intercept_h
2#define Intercept_h
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include <QSharedPointer>
11
12#include "AbstractPlate.h"
13#include "NaifDskApi.h"
14
15namespace Isis {
16
17 class Angle;
18 class SurfacePoint;
19
36 class Intercept {
37 public:
38 Intercept();
39 Intercept(const NaifVertex &observer, const NaifVector &raydir,
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
72 QSharedPointer<SurfacePoint> m_point;
74 QSharedPointer<AbstractPlate> m_shape;
75
76 };
77
78}; // namespace Isis
79#endif
Abstract interface to a TIN plate.
Definition AbstractPlate.h:46
Defines an angle and provides unit conversions.
Definition Angle.h:45
Container for a intercept condition.
Definition Intercept.h:36
bool isValid() const
This method tests the vailidty of the intercept point.
Definition Intercept.cpp:70
NaifVector normal() const
Gets the normal vector to the shape for this plate.
Definition Intercept.cpp:129
SurfacePoint location() const
Returns the location of the intercept location on the shape.
Definition Intercept.cpp:116
Angle separationAngle(const NaifVector &raydir) const
Returns the separation angle of the observer and the plate normal.
Definition Intercept.cpp:182
virtual ~Intercept()
Empty destructor.
Definition Intercept.cpp:59
const AbstractPlate * shape() const
Access the plate for this intercept.
Definition Intercept.cpp:223
const NaifVertex & observer() const
Accessor for the observer position of the intercept.
Definition Intercept.cpp:87
const NaifVector & lookDirectionRay() const
Accessor for the look direction of the intercept.
Definition Intercept.cpp:99
Angle emission() const
Compute the emission of the intercept point from the observer.
Definition Intercept.cpp:150
Intercept()
Default empty constructor.
Definition Intercept.cpp:30
This class defines a body-fixed surface point.
Definition SurfacePoint.h:132
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
TNT::Array1D< SpiceDouble > NaifVector
Namespace to contain type definitions of NAIF DSK fundamentals.
Definition NaifDskApi.h:46
TNT::Array1D< SpiceDouble > NaifVertex
1-D Buffer[3]
Definition NaifDskApi.h:47