1#ifndef TriangularPlate_h
2#define TriangularPlate_h
9#include "AbstractPlate.h"
11#include "NaifDskApi.h"
Abstract interface to a TIN plate.
Defines an angle and provides unit conversions.
Distance measurement, usually in meters.
Container for a intercept condition.
This class is designed to encapsulate the concept of a Latitude.
This class is designed to encapsulate the concept of a Longitude.
This class defines a body-fixed surface point.
Specification for an abstract triangular plate.
SurfacePoint * point(const Latitude &lat, const Longitude &lon) const
Determine the intercept point of a lat/lon location for the plate.
double area() const
Returns the area of the plate in km.
Distance minRadius() const
Gets the minimum radius.
QString name() const
Gets the name of this Plate type.
NaifTriangle m_plate
Tetrahedron, defined by the coordinate system origin and 3 vertices, used to represent the Triangular...
NaifVertex vertex(int v) const
Returns the vth point of the triangle.
AbstractPlate * clone() const
Retrns a clone of the current plate.
NaifVector normal() const
Compute the surface normal of the plate.
Intercept * intercept(const NaifVertex &vertex, const NaifVector &raydir) const
Conpute the intercept point on a triangular plate.
bool hasIntercept(const NaifVertex &vertex, const NaifVector &raydir) const
Determines if a look direction from a point intercepts the plate.
Distance maxRadius() const
Determines the maximum radius from all the vertices of the plate.
Angle separationAngle(const NaifVector &raydir) const
Computes the separation angle from the plate normal of a given vector.
bool hasPoint(const Latitude &lat, const Longitude &lon) const
Determines the give lat/lon point intercept the triangular plate.
bool findPlateIntercept(const NaifVertex &obs, const NaifVector &raydir, NaifVertex &point) const
Determines of if given a vertex and look direction intercepts the plate.
int m_plateId
ID for this plate on the ShapeModel.
This is free and unencumbered software released into the public domain.
TNT::Array1D< SpiceDouble > NaifVector
Namespace to contain type definitions of NAIF DSK fundamentals.
TNT::Array2D< SpiceDouble > NaifTriangle
3-D triangle[3][3]
TNT::Array1D< SpiceDouble > NaifVertex
1-D Buffer[3]