Isis 3 Programmer Reference
PlaneShape.h
Go to the documentation of this file.
1 #ifndef PlaneShape_h
2 #define PlaneShape_h
3 
24 #include "ShapeModel.h"
25 
26 #include <string>
27 #include <vector>
28 
29 #include <QVector>
30 
31 #include <SpiceUsr.h>
32 #include <SpiceZfc.h>
33 #include <SpiceZmc.h>
34 
35 #include "Pvl.h"
36 #include "SurfacePoint.h"
37 
38 namespace Isis {
60  class PlaneShape : public Isis::ShapeModel {
61  public:
62  // Constructors
63  PlaneShape(Target *target, Isis::Pvl &pvl);
64  PlaneShape(Target *target);
65  PlaneShape();
66 
67  // Destructor
68  ~PlaneShape();
69 
70  // Make parent functions visible
71  using Isis::ShapeModel::intersectSurface;
72 
73  // Intersect the shape model
74  bool intersectSurface(std::vector<double> observerPos,
75  std::vector<double> lookDirection);
76 
77  bool isDEM() const;
78 
79  // Calculate the surface normal of the current intersection point
82  void calculateLocalNormal(QVector<double *> cornerNeighborPoints);
83 
84  double emissionAngle(const std::vector<double> & sB);
85  double incidenceAngle(const std::vector<double> &uB);
86 
87  // Get the local radius for a point on the surface
88  Distance localRadius(const Latitude &lat, const Longitude &lon);
89  };
90 };
91 
92 #endif
Define plane shape model.
Definition: PlaneShape.h:60
bool isDEM() const
Indicates that this shape model is not from a DEM.
Definition: PlaneShape.cpp:131
void calculateSurfaceNormal()
There is no implementation for this method.
Definition: PlaneShape.cpp:139
Distance localRadius(const Latitude &lat, const Longitude &lon)
Gets the local radius for the given latitude/longitude coordinate.
Definition: PlaneShape.cpp:279
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:63
void calculateLocalNormal(QVector< double *> cornerNeighborPoints)
There is no implementation for this method.
Definition: PlaneShape.cpp:153
Distance measurement, usually in meters.
Definition: Distance.h:47
double incidenceAngle(const std::vector< double > &uB)
Computes and returns incidence angle in degrees given the sun position.
Definition: PlaneShape.cpp:229
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:52
bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)
Find the intersection point.
Definition: PlaneShape.cpp:71
PlaneShape()
Initialize the PlaneShape.
Definition: PlaneShape.cpp:51
~PlaneShape()
Destructor.
Definition: PlaneShape.cpp:59
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 calculateDefaultNormal()
There is no implementation for this method.
Definition: PlaneShape.cpp:146
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
double emissionAngle(const std::vector< double > &sB)
Computes and returns emission angle in degrees given the observer position.
Definition: PlaneShape.cpp:172