Isis Developer Reference
TriangularPlate.h
Go to the documentation of this file.
1#ifndef TriangularPlate_h
2#define TriangularPlate_h
8/* SPDX-License-Identifier: CC0-1.0 */
9#include "AbstractPlate.h"
10
11#include "NaifDskApi.h"
12
13namespace Isis {
14
15 class Angle;
16 class Distance;
17 class Intercept;
18 class Latitude;
19 class Longitude;
20 class SurfacePoint;
21
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
Abstract interface to a TIN plate.
Definition AbstractPlate.h:46
Defines an angle and provides unit conversions.
Definition Angle.h:45
Distance measurement, usually in meters.
Definition Distance.h:34
Container for a intercept condition.
Definition Intercept.h:36
This class is designed to encapsulate the concept of a Latitude.
Definition Latitude.h:51
This class is designed to encapsulate the concept of a Longitude.
Definition Longitude.h:40
This class defines a body-fixed surface point.
Definition SurfacePoint.h:132
Specification for an abstract triangular plate.
Definition TriangularPlate.h:34
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
double area() const
Returns the area of the plate in km.
Definition TriangularPlate.cpp:85
Distance minRadius() const
Gets the minimum radius.
Definition TriangularPlate.cpp:70
QString name() const
Gets the name of this Plate type.
Definition TriangularPlate.cpp:46
virtual ~TriangularPlate()
Definition TriangularPlate.cpp:40
NaifVertex vertex(int v) const
Returns the vth point of the triangle.
Definition TriangularPlate.cpp:306
AbstractPlate * clone() const
Retrns a clone of the current plate.
Definition TriangularPlate.cpp:333
NaifVector center() const
Definition TriangularPlate.cpp:130
int id() const
Definition TriangularPlate.cpp:42
NaifVector normal() const
Compute the surface normal of the plate.
Definition TriangularPlate.cpp:115
Intercept * intercept(const NaifVertex &vertex, const NaifVector &raydir) const
Conpute the intercept point on a triangular plate.
Definition TriangularPlate.cpp:280
bool hasIntercept(const NaifVertex &vertex, const NaifVector &raydir) const
Determines if a look direction from a point intercepts the plate.
Definition TriangularPlate.cpp:176
Distance maxRadius() const
Determines the maximum radius from all the vertices of the plate.
Definition TriangularPlate.cpp:64
Angle separationAngle(const NaifVector &raydir) const
Computes the separation angle from the plate normal of a given vector.
Definition TriangularPlate.cpp:153
bool hasPoint(const Latitude &lat, const Longitude &lon) const
Determines the give lat/lon point intercept the triangular plate.
Definition TriangularPlate.cpp:198
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
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
TNT::Array1D< SpiceDouble > NaifVector
Namespace to contain type definitions of NAIF DSK fundamentals.
Definition NaifDskApi.h:46
TNT::Array2D< SpiceDouble > NaifTriangle
3-D triangle[3][3]
Definition NaifDskApi.h:48
TNT::Array1D< SpiceDouble > NaifVertex
1-D Buffer[3]
Definition NaifDskApi.h:47