Isis Developer Reference
TriangularPlate.h
Go to the documentation of this file.
1 #ifndef TriangularPlate_h
2 #define TriangularPlate_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 #include "AbstractPlate.h"
10 
11 #include "NaifDskApi.h"
12 
13 namespace Isis {
14 
15  class Angle;
16  class Distance;
17  class Intercept;
18  class Latitude;
19  class Longitude;
20  class SurfacePoint;
21 
34  class TriangularPlate : public AbstractPlate {
35  public:
36  TriangularPlate(const NaifTriangle &plate, const int &plateId = 0);
37  virtual ~TriangularPlate();
38 
39  int id() const;
40  QString name() const;
41 
42  Distance minRadius() const;
43  Distance maxRadius() const;
44 
45  double area() const;
46  NaifVector normal() const;
47  NaifVector center() const;
48 
49  Angle separationAngle(const NaifVector &raydir) const;
50 
51  bool hasIntercept(const NaifVertex &vertex, const NaifVector &raydir) const;
52  bool hasPoint(const Latitude &lat, const Longitude &lon) const;
53 
54  SurfacePoint *point(const Latitude &lat, const Longitude &lon) const;
55  Intercept *intercept(const NaifVertex &vertex, const NaifVector &raydir) const;
56 
57  NaifVertex vertex(int v) const;
58 
59  AbstractPlate *clone() const;
60 
61  protected:
62  bool findPlateIntercept(const NaifVertex &obs, const NaifVector &raydir,
63  NaifVertex &point) const;
64 
65  private:
66  TriangularPlate(); // Disallow an empty instantiation of the class
67  NaifTriangle m_plate;
69  int m_plateId;
70 
71  };
72 };
73 
74 #endif
Isis::TriangularPlate::separationAngle
Angle separationAngle(const NaifVector &raydir) const
Computes the separation angle from the plate normal of a given vector.
Definition: TriangularPlate.cpp:153
Isis::Distance::kilometers
double kilometers() const
Get the distance in kilometers.
Definition: Distance.cpp:106
Isis::NaifVertex
TNT::Array1D< SpiceDouble > NaifVertex
1-D Buffer[3]
Definition: NaifDskApi.h:47
NaifDskApi.h
Isis::Latitude
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:51
Isis::TriangularPlate::vertex
NaifVertex vertex(int v) const
Returns the vth point of the triangle.
Definition: TriangularPlate.cpp:306
TriangularPlate.h
Longitude.h
Isis::TriangularPlate::intercept
Intercept * intercept(const NaifVertex &vertex, const NaifVector &raydir) const
Conpute the intercept point on a triangular plate.
Definition: TriangularPlate.cpp:280
Isis::TriangularPlate::center
NaifVector center() const
Definition: TriangularPlate.cpp:130
Isis::AbstractPlate
Abstract interface to a TIN plate.
Definition: AbstractPlate.h:46
Isis::TriangularPlate::point
SurfacePoint * point(const Latitude &lat, const Longitude &lon) const
Determine the intercept point of a lat/lon location for the plate.
Definition: TriangularPlate.cpp:237
Isis::toString
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
Definition: IString.cpp:211
IString.h
Isis::Distance
Distance measurement, usually in meters.
Definition: Distance.h:34
Isis::Longitude
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:40
Isis::Distance::Kilometers
@ Kilometers
The distance is being specified in kilometers.
Definition: Distance.h:45
Latitude.h
Isis::TriangularPlate::maxRadius
Distance maxRadius() const
Determines the maximum radius from all the vertices of the plate.
Definition: TriangularPlate.cpp:64
_FILEINFO_
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
Isis::TriangularPlate::hasPoint
bool hasPoint(const Latitude &lat, const Longitude &lon) const
Determines the give lat/lon point intercept the triangular plate.
Definition: TriangularPlate.cpp:198
SurfacePoint.h
Intercept.h
Isis::TriangularPlate::clone
AbstractPlate * clone() const
Retrns a clone of the current plate.
Definition: TriangularPlate.cpp:333
AbstractPlate.h
Isis::NaifTriangle
TNT::Array2D< SpiceDouble > NaifTriangle
3-D triangle[3][3]
Definition: NaifDskApi.h:48
Isis::TriangularPlate::name
QString name() const
Gets the name of this Plate type.
Definition: TriangularPlate.cpp:46
Isis::SurfacePoint::FromNaifArray
void FromNaifArray(const double naifValues[3])
A naif array is a c-style array of size 3.
Definition: SurfacePoint.cpp:891
Isis::TriangularPlate::id
int id() const
Definition: TriangularPlate.cpp:42
Isis::IException
Isis exception class.
Definition: IException.h:91
Isis::TriangularPlate::normal
NaifVector normal() const
Compute the surface normal of the plate.
Definition: TriangularPlate.cpp:115
Isis::Angle
Defines an angle and provides unit conversions.
Definition: Angle.h:45
Isis::TriangularPlate::findPlateIntercept
bool findPlateIntercept(const NaifVertex &obs, const NaifVector &raydir, NaifVertex &point) const
Determines of if given a vertex and look direction intercepts the plate.
Definition: TriangularPlate.cpp:357
Isis::TriangularPlate::~TriangularPlate
virtual ~TriangularPlate()
Definition: TriangularPlate.cpp:40
Isis::TriangularPlate::area
double area() const
Returns the area of the plate in km.
Definition: TriangularPlate.cpp:85
IException.h
Isis::IException::Programmer
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:146
std
Namespace for the standard library.
Isis::Intercept
Container for a intercept condition.
Definition: Intercept.h:36
Angle.h
Isis::SurfacePoint::ToNaifArray
void ToNaifArray(double naifOutput[3]) const
A naif array is a c-style array of size 3.
Definition: SurfacePoint.cpp:870
Isis::TriangularPlate::minRadius
Distance minRadius() const
Gets the minimum radius.
Definition: TriangularPlate.cpp:70
Distance.h
Isis::NaifVector
TNT::Array1D< SpiceDouble > NaifVector
Namespace to contain type definitions of NAIF DSK fundamentals.
Definition: NaifDskApi.h:46
Isis::SurfacePoint
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:132
Isis::TriangularPlate
Specification for an abstract triangular plate.
Definition: TriangularPlate.h:34
Isis::Angle::Radians
@ Radians
Radians are generally used in mathematical equations, 0-2*PI is one circle, however these are more di...
Definition: Angle.h:63
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::TriangularPlate::hasIntercept
bool hasIntercept(const NaifVertex &vertex, const NaifVector &raydir) const
Determines if a look direction from a point intercepts the plate.
Definition: TriangularPlate.cpp:176