Isis 3.0 Programmer Reference
Back | Home
AbstractPlate.h
Go to the documentation of this file.
1 #ifndef AbstractPlate_h
2 #define AbstractPlate_h
3 
25 #include <QString>
26 
27 #include "NaifDskApi.h"
28 
29 namespace Isis {
30 
31  class Angle;
32  class Distance;
33  class Intercept;
34  class Latitude;
35  class Longitude;
36  class SurfacePoint;
37 
59  class AbstractPlate {
60  public:
61  virtual ~AbstractPlate();
62 
63  virtual QString name() const = 0;
64 
65  virtual Distance minRadius() const = 0;
66  virtual Distance maxRadius() const = 0;
67 
68  virtual double area() const = 0;
69  virtual NaifVector normal() const = 0;
70  virtual Angle separationAngle(const NaifVector &raydir) const = 0;
71 
72  virtual bool hasIntercept(const NaifVertex &vertex,
73  const NaifVector &raydir) const = 0;
74  virtual bool hasPoint(const Latitude &lat, const Longitude &lon) const = 0;
75 
76  virtual Intercept *intercept(const NaifVertex &vertex,
77  const NaifVector &raydir) const = 0;
78  virtual SurfacePoint *point(const Latitude &lat,
79  const Longitude &lon) const = 0;
80 
81  virtual AbstractPlate *clone() const = 0;
82 
83  protected:
84  AbstractPlate();
85  Intercept *construct(const NaifVertex &vertex, const NaifVector &raydir,
86  SurfacePoint *ipoint) const;
87  private:
88  // Disallow direct copies - use clones
89  AbstractPlate(const AbstractPlate &plate);
90  AbstractPlate &operator=(const AbstractPlate &plate);
91  };
92 
93 
94 } // namespace Isis
95 
96 #endif
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:86
Abstract interface to a TIN plate.
Definition: AbstractPlate.h:59
virtual QString name() const =0
Gets the name of this Plate type.
virtual ~AbstractPlate()
Empty destructor for an AbstractPlate object.
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:59
Distance measurement, usually in meters.
Definition: Distance.h:47
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...
TNT::Array1D< SpiceDouble > NaifVector
Namespace to contain type definitions of NAIF DSK fundamentals.
Definition: NaifDskApi.h:64
AbstractPlate()
Empty constructor for an AbstractPlate object.
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:52
TNT::Array1D< SpiceDouble > NaifVertex
1-D Buffer[3]
Definition: NaifDskApi.h:65
Container for a intercept condition.
Definition: Intercept.h:51
Defines an angle and provides unit conversions.
Definition: Angle.h:58

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:13:43