Isis 3 Programmer Reference
NaifDskShape.h
Go to the documentation of this file.
1 #ifndef NaifDskShape_h
2 #define NaifDskShape_h
3 
25 #include "ShapeModel.h"
26 
27 #include <vector>
28 
29 #include <QVector>
30 
31 #include "Intercept.h"
32 #include "NaifDskPlateModel.h"
33 
34 namespace Isis {
35  class Intercept;
36 
58  class NaifDskShape : public ShapeModel {
59  public:
60  // Constructors
61  NaifDskShape();
62  NaifDskShape(Target *target, Pvl &pvl);
64 
65  // Destructor
66  ~NaifDskShape();
67 
68  // Make parent functions visible
69  using Isis::ShapeModel::intersectSurface;
70 
71  // Intersect the shape model
72  bool intersectSurface(std::vector<double> observerPos,
73  std::vector<double> lookDirection);
74 
75  // Calculate the default normal of the current intersection point
77 
78  bool isDEM() const;
79 
80  // Calculate the surface normal of the current intersection point
82  void calculateLocalNormal(QVector<double *> cornerNeighborPoints);
84 
85  Distance localRadius(const Latitude &lat, const Longitude &lon);
86 
88 
89  const NaifDskPlateModel &model() const;
90  const Intercept *intercept() const;
91 
92  private:
93  // Disallow copying because ShapeModel is not copyable
95  NaifDskShape &operator=(const NaifDskShape &model);
96 
98  QScopedPointer<Intercept> m_intercept;
99 
100 
101  };
102 }
103 
104 #endif
void calculateSurfaceNormal()
Return the surface normal of the ellipsi=oud.
void setLocalNormalFromIntercept()
Set the normal vector to the intercept point normal.
const Intercept * intercept() const
Returns a pointer to the current intercept.
NaifDskPlateModel m_model
Plate model to intersect.
Definition: NaifDskShape.h:97
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:63
QVector< double > ellipsoidNormal()
Compute the true surface normal vector of an ellipsoid.
Distance measurement, usually in meters.
Definition: Distance.h:47
~NaifDskShape()
Destructor - cleanup is handled automagically.
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:52
NaifDskShape()
Generic constructor sets type to a TIN.
Provides support for NAIF&#39;s Digital Shape Kernel (DSK)
Definition: NaifDskShape.h:58
Container for a intercept condition.
Definition: Intercept.h:51
QScopedPointer< Intercept > m_intercept
Pointer to the shape&#39;s intercept.
Definition: NaifDskShape.h:98
const NaifDskPlateModel & model() const
Returns a direct reference to the DSK plate model file interface.
Distance localRadius(const Latitude &lat, const Longitude &lon)
Determine DEM radius at a given lat/lon grid point.
Container for cube-like labels.
Definition: Pvl.h:135
This class is used to create and store valid Isis3 targets.
Definition: Target.h:76
Define shapes and provide utilities for Isis3 targets.
Definition: ShapeModel.h:78
void calculateLocalNormal(QVector< double *> cornerNeighborPoints)
Compute the normal for a local region of surface points.
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
void calculateDefaultNormal()
Return the surface normal of the ellipsoid as the default.
Implementation interface API for NAIF&#39;s DSK plate model.
bool isDEM() const
Indicates that this shape model is not from a DEM.
bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)
Compute a DEM intersection from and observer and look direction.