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.
bool verify(const bool &test, const QString &errmsg, const ErrAction &action=Throw) const
Convenient error handler.
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.
Angle separationAngle(const NaifVector &raydir) const
Returns the separation angle of the observer and the plate normal.
Namespace for the standard library.
const NaifVector & lookDirectionRay() const
Accessor for the look direction of the intercept.
const AbstractPlate * shape() const
Access the plate for this intercept.
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]
Angle emission() const
Compute the emission of the intercept point from the observer.
virtual ~Intercept()
Empty destructor.
#define _FILEINFO_
Macro for the filename and line number.
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.
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.
NaifVector normal() const
Gets the normal vector to the shape for this plate.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
Namespace for ISIS/Bullet specific routines.
const NaifVertex & observer() const
Accessor for the observer position of the intercept.
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.