USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::AbstractPlate Class Referenceabstract

Abstract interface to a TIN plate. More...

#include <AbstractPlate.h>

Inheritance diagram for Isis::AbstractPlate:
Inheritance graph
Collaboration diagram for Isis::AbstractPlate:
Collaboration graph

Public Member Functions

virtual ~AbstractPlate ()
 Empty destructor for an AbstractPlate object.
 
virtual QString name () const =0
 Gets the name of this Plate type.
 
virtual Distance minRadius () const =0
 
virtual Distance maxRadius () const =0
 
virtual double area () const =0
 
virtual NaifVector normal () const =0
 
virtual Angle separationAngle (const NaifVector &raydir) const =0
 
virtual bool hasIntercept (const NaifVertex &vertex, const NaifVector &raydir) const =0
 
virtual bool hasPoint (const Latitude &lat, const Longitude &lon) const =0
 
virtual Interceptintercept (const NaifVertex &vertex, const NaifVector &raydir) const =0
 
virtual SurfacePointpoint (const Latitude &lat, const Longitude &lon) const =0
 
virtual AbstractPlateclone () const =0
 

Protected Member Functions

 AbstractPlate ()
 Empty constructor for an AbstractPlate object.
 
Interceptconstruct (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.
 

Private Member Functions

 AbstractPlate (const AbstractPlate &plate)
 
AbstractPlateoperator= (const AbstractPlate &plate)
 

Detailed Description

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.

Author
2014-02-25 Kris Becker
History:

2014-02-15 Kris Becker - Original Version

2015-03-08 Jeannie Backer - Added documentation and test. Added class to ISIS trunk. References #2035

Definition at line 59 of file AbstractPlate.h.

Constructor & Destructor Documentation

Isis::AbstractPlate::~AbstractPlate ( )
virtual

Empty destructor for an AbstractPlate object.

Definition at line 51 of file AbstractPlate.cpp.

Isis::AbstractPlate::AbstractPlate ( )
protected

Empty constructor for an AbstractPlate object.

This constructor is protected.

Definition at line 43 of file AbstractPlate.cpp.

Member Function Documentation

Intercept * Isis::AbstractPlate::construct ( const NaifVertex vertex,
const NaifVector raydir,
SurfacePoint ipoint 
) const
protected

Construct an intercept from a clone of this plate as well as the given vertex, direction vector, and surface point.

Parameters
vertexObserver position
raydirLook direction
ipointSurface point of the intercept location on the body
Returns
Intercept * A pointer to an intercept constructed with the vertex, raydir, ipoint and clone of this AbstractPlate.

Definition at line 77 of file AbstractPlate.cpp.

QString Isis::AbstractPlate::name ( ) const
pure virtual

Gets the name of this Plate type.

Returns
Then name of this plate, "AbstractPlate"

Implemented in Isis::TriangularPlate.

Definition at line 60 of file AbstractPlate.cpp.


The documentation for this class was generated from the following files: