47 Intercept::Intercept() : m_observer(), m_raydir(), m_point(0), m_shape(0) { }
69 m_observer(observer.copy()), m_raydir(raydir.copy()),
70 m_point(ipoint), m_shape(shape) {}
91 if (
m_point.isNull() ) valid =
false;
92 if (
m_shape.isNull() ) valid =
false;
134 verify(
isValid(),
"Unable to return Intercept location. Invalid/undefined Intercept point.");
147 verify(
isValid(),
"Unable to return Intercept normal. Invalid/undefined Intercept point.");
169 "Unable to return Intercept emission angle. Invalid/undefined Intercept point." );
173 m_point->ToNaifArray(&point[0]);
176 vsub_c(&
m_observer[0], &point[0], &raydir[0]);
201 "Unable to return Intercept separation angle. Invalid/undefined Intercept point.");
202 return (
m_shape->separationAngle(raydir));
224 if ( (
Throw == action ) && ( !test ) ) {
This class defines a body-fixed surface point.
NaifVertex m_observer
Three dimensional coordinate position of the observer, in body fixed.
NaifVector normal() const
Gets the normal vector to the shape for this plate.
QSharedPointer< AbstractPlate > m_shape
Shape Model for the intercept point.
Abstract interface to a TIN plate.
NaifVector m_raydir
Three dimensional ray representing the look direction.
This error is for when a programmer made an API call that was illegal.
TNT::Array1D< SpiceDouble > NaifVector
Namespace to contain type definitions of NAIF DSK fundamentals.
TNT::Array1D< SpiceDouble > NaifVertex
1-D Buffer[3]
virtual ~Intercept()
Empty destructor.
#define _FILEINFO_
Macro for the filename and line number.
const NaifVector & lookDirectionRay() const
Accessor for the look direction of the intercept.
SurfacePoint location() const
Returns the location of the intercept location on the shape.
bool isValid() const
This method tests the vailidty of the intercept point.
Angle emission() const
Compute the emission of the intercept point from the observer.
Intercept()
Default empty constructor.
bool validate(const NaifVertex &v)
Verifies that the given NaifVector or NaifVertex is 3 dimensional.
Throw an exception if an error occurs.
Defines an angle and provides unit conversions.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
Angle separationAngle(const NaifVector &raydir) const
Returns the separation angle of the observer and the plate normal.
const AbstractPlate * shape() const
Access the plate for this intercept.
const NaifVertex & observer() const
Accessor for the observer position of the intercept.
bool verify(const bool &test, const QString &errmsg, const ErrAction &action=Throw) const
Convenient error handler.
ErrAction
Enumeration to indicate whether to throw an exception if an error occurs.
QSharedPointer< SurfacePoint > m_point
Surface point of the intercept location on the body, in body fixed.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.