Isis 3 Programmer Reference
|
Abstract interface to a TIN plate. More...
#include <AbstractPlate.h>
Public Member Functions | |
virtual | ~AbstractPlate () |
Empty destructor for an AbstractPlate object. More... | |
virtual QString | name () const =0 |
Gets the name of this Plate type. More... | |
virtual Distance | minRadius () const =0 |
Gets the minimum radius. More... | |
virtual Distance | maxRadius () const =0 |
Gets the maximum radius. More... | |
virtual double | area () const =0 |
Gets the area of the plate. More... | |
virtual NaifVector | normal () const =0 |
Gets the normal. More... | |
virtual Angle | separationAngle (const NaifVector &raydir) const =0 |
Gets the separation angle. More... | |
virtual bool | hasIntercept (const NaifVertex &vertex, const NaifVector &raydir) const =0 |
Determines if a look direction from a point intercepts the plate. More... | |
virtual bool | hasPoint (const Latitude &lat, const Longitude &lon) const =0 |
Determines the give lat/lon point intercept the triangular plate. More... | |
virtual Intercept * | intercept (const NaifVertex &vertex, const NaifVector &raydir) const =0 |
Conpute the intercept point on a triangular plate. More... | |
virtual SurfacePoint * | point (const Latitude &lat, const Longitude &lon) const =0 |
Determine the intercept point of a lat/lon location for the plate. More... | |
virtual AbstractPlate * | clone () const =0 |
Returns a clone of the current plate. More... | |
Protected Member Functions | |
AbstractPlate () | |
Empty constructor for an AbstractPlate object. More... | |
Intercept * | construct (const NaifVertex &vertex, const NaifVector &raydir, SurfacePoint *ipoint) const |
Construct an intercept from a clone of this plate as well as the given vertex, direction vector, and surface point. More... | |
Private Member Functions | |
AbstractPlate (const AbstractPlate &plate) | |
Copy contructor. More... | |
AbstractPlate & | operator= (const AbstractPlate &plate) |
Assignment operator. More... | |
Abstract interface to a TIN plate.
This abstract class defines the interface for triangular plate. The plate is assumed to be a set of 3 body-fixed vertex points that describe a portion of the surface digital elevation model (DEM).
The interface allows for repeated queries (e.g., ray intersection, point containment) of the plate represented by the object containing the plate.
This class is not directly instantiable but is typically provided by a distinct plate model implementation (e.g., NAIF DSK).
This class can be cloned but not copied directly.
2014-02-15 Kris Becker - Original Version
2015-03-08 Jeannie Backer - Added documentation and test. Added class to ISIS trunk. References #2035
2017-06-28 Makayla Shepherd - Updated documentation. References #4807.
Definition at line 60 of file AbstractPlate.h.
|
virtual |
Empty destructor for an AbstractPlate object.
Definition at line 50 of file AbstractPlate.cpp.
|
protected |
Empty constructor for an AbstractPlate object.
This constructor is protected.
Definition at line 43 of file AbstractPlate.cpp.
|
private |
|
pure virtual |
Gets the area of the plate.
This is a pure virtual function.
Implemented in Isis::TriangularPlate.
|
pure virtual |
Returns a clone of the current plate.
Provides replication of the current triangular plate. Note this implementation returns a shared copy of the triangular plate as long as the plate type is shared by copy (TNT library is). This is a pure virtual function.
Implemented in Isis::TriangularPlate.
Referenced by construct().
|
protected |
Construct an intercept from a clone of this plate as well as the given vertex, direction vector, and surface point.
vertex | Observer position |
raydir | Look direction |
ipoint | Surface point of the intercept location on the body |
Definition at line 75 of file AbstractPlate.cpp.
References clone().
|
pure virtual |
Determines if a look direction from a point intercepts the plate.
Given a point in space in body fixed coordinates and a look direction, this method determines the point of intercept on the plate. This is a pure virtual function.
vertex | An observer point in space in body fixed coordinates |
raydir | A look direction vector |
Implemented in Isis::TriangularPlate.
|
pure virtual |
Determines the give lat/lon point intercept the triangular plate.
Given a latitude/longitude point, this method determines if it intercepts the plate. This is a pure virtual function.
lat | The latitude of the given grid point |
lon | Longitude of the given point |
Implemented in Isis::TriangularPlate.
|
pure virtual |
Conpute the intercept point on a triangular plate.
Given a point in space and a look direction, compute the intercept point on a triangular plate. If the intercept point does not exist, return a null pointer. This is a pure virtual function.
vertex | Specifies a point in space of a body fixed coordinate |
raydir | Specifies a look direction from the vertex in body fixed coordinates. It can be of any magnitude. |
Implemented in Isis::TriangularPlate.
|
pure virtual |
Gets the maximum radius.
This is a pure virtual function.
Implemented in Isis::TriangularPlate.
|
pure virtual |
Gets the minimum radius.
This is a pure virtual function.
Implemented in Isis::TriangularPlate.
|
pure virtual |
Gets the name of this Plate type.
Implemented in Isis::TriangularPlate.
Definition at line 59 of file AbstractPlate.cpp.
|
pure virtual |
Gets the normal.
This is a pure virtual function.
Implemented in Isis::TriangularPlate.
|
private |
|
pure virtual |
Determine the intercept point of a lat/lon location for the plate.
Determines if a lat/lon point intercepts a plate. Given a latitude and longitude coordinate, this method converts the point to a body fixed X/Y/Z value and computes intercept point within the boundaries if the plate. If no intercept is found, a null pointer is returned. This is a pure virtual function.
Implemented in Isis::TriangularPlate.
|
pure virtual |
Gets the separation angle.
This is a pure virtual function.
raydir | Given a direction vector, compute the angle of separation between it and the plate normal vector |
Implemented in Isis::TriangularPlate.