Isis 3.0 Programmer Reference
Back | Home
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 
55  class NaifDskShape : public ShapeModel {
56  public:
57  // Constructors
58  NaifDskShape();
59  NaifDskShape(Target *target, Pvl &pvl);
61 
62  // Destructor
63  ~NaifDskShape();
64 
65  // Intersect the shape model
66  bool intersectSurface(std::vector<double> observerPos,
67  std::vector<double> lookDirection);
68 
69  // Calculate the default normal of the current intersection point
71 
72  bool isDEM() const;
73 
74  // Calculate the surface normal of the current intersection point
76  void calculateLocalNormal(QVector<double *> cornerNeighborPoints);
78 
79  Distance localRadius(const Latitude &lat, const Longitude &lon);
80 
82 
83  const NaifDskPlateModel &model() const;
84  const Intercept *intercept() const;
85 
86  private:
87  // Disallow copying because ShapeModel is not copyable
88  NaifDskShape(const NaifDskShape &model);
89  NaifDskShape &operator=(const NaifDskShape &model);
90 
92  QScopedPointer<Intercept> m_intercept;
93 
94 
95  };
96 }
97 
98 #endif
void calculateSurfaceNormal()
Return the surface normal of the ellipsi=oud.
void setLocalNormalFromIntercept()
Set the normal vector to the intercept point normal.
NaifDskPlateModel m_model
Plate model to intersect.
Definition: NaifDskShape.h:91
const NaifDskPlateModel & model() const
Returns a direct reference to the DSK plate model file interface.
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:59
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
bool isDEM() const
Indicates that this shape model is not from a DEM.
NaifDskShape()
Generic constructor sets type to a TIN.
Provides support for NAIF&#39;s Digital Shape Kernel (DSK)
Definition: NaifDskShape.h:55
Container for a intercept condition.
Definition: Intercept.h:51
QScopedPointer< Intercept > m_intercept
Pointer to the shape&#39;s intercept.
Definition: NaifDskShape.h:92
void calculateLocalNormal(QVector< double * > cornerNeighborPoints)
Compute the normal for a local region of surface points.
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:63
Define shapes and provide utilities for Isis3 targets.
Definition: ShapeModel.h:68
void calculateDefaultNormal()
Return the surface normal of the ellipsoid as the default.
Implementation interface API for NAIF&#39;s DSK plate model.
const Intercept * intercept() const
Returns a pointer to the current intercept.
bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)
Compute a DEM intersection from and observer and look direction.

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:24:24