Isis Developer Reference
|
Container for a intercept condition. More...
#include <Intercept.h>
Public Member Functions | |
Intercept () | |
Default empty constructor. | |
Intercept (const NaifVertex &observer, const NaifVector &raydir, SurfacePoint *ipoint, AbstractPlate *shape) | |
Constructor of predetermined intercept point. | |
virtual | ~Intercept () |
Empty destructor. | |
bool | isValid () const |
This method tests the vailidty of the intercept point. | |
const NaifVertex & | observer () const |
Accessor for the observer position of the intercept. | |
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. | |
NaifVector | normal () const |
Gets the normal vector to the shape for this plate. | |
Angle | emission () const |
Compute the emission of the intercept point from the observer. | |
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. | |
Container for a intercept condition.
This class is intended to contain all the necessary elements of an observer with a look direction and intercept point on an abtract shape. If efficient, reintrant, thread safe memory management elements (e.g., TNT) are used for the types, this can be used in threaded environments.
Isis::Intercept::Intercept | ( | ) |
Default empty constructor.
Isis::Intercept::Intercept | ( | const NaifVertex & | observer, |
const NaifVector & | raydir, | ||
SurfacePoint * | ipoint, | ||
AbstractPlate * | shape ) |
Constructor of predetermined intercept point.
This constructor provides all the elements that comprise an observer, look direction, intercept point and the shape it intersects. This is well suited for plates (TIN) intercept senarios.
observer | Location of observer in body fixed position |
raydir | Look direction of observer presumably at the target body |
ipoint | Surface point of the intercept location on the body |
shape | Shape of the intercept point |
|
virtual |
Empty destructor.
Angle Isis::Intercept::emission | ( | ) | const |
Compute the emission of the intercept point from the observer.
This method computes the emission angle from the observer to the plate intercept point if the representation of the observer, look direction and intercept point are valid.
References isValid(), and separationAngle().
bool Isis::Intercept::isValid | ( | ) | const |
This method tests the vailidty of the intercept point.
A point is invalid if the intercept point is null, if the shape is null, or if either the observer position or look direction vector is not size 3.
References Isis::validate().
Referenced by emission(), location(), normal(), and separationAngle().
SurfacePoint Isis::Intercept::location | ( | ) | const |
Returns the location of the intercept location on the shape.
This method returns the point of intercept from the observer and a given look direction from the perspective of the observer.
References isValid().
const NaifVector & Isis::Intercept::lookDirectionRay | ( | ) | const |
Accessor for the look direction of the intercept.
NaifVector Isis::Intercept::normal | ( | ) | const |
Gets the normal vector to the shape for this plate.
References isValid().
const NaifVertex & Isis::Intercept::observer | ( | ) | const |
Accessor for the observer position of the intercept.
Angle Isis::Intercept::separationAngle | ( | const NaifVector & | raydir | ) | const |
Returns the separation angle of the observer and the plate normal.
This method computes the seperation between the look direction (from the observer) and the plate normal if the object contains a valid intercept point.
raydir | Look direction to compute the separation angle between it and the plate normal. |
References isValid().
Referenced by emission().
const AbstractPlate * Isis::Intercept::shape | ( | ) | const |
Access the plate for this intercept.
NOTE: A null pointer may be returned if this Intercept was constructed without a shape.