Isis Developer Reference
PlaneShape.h
Go to the documentation of this file.
1 #ifndef PlaneShape_h
2 #define PlaneShape_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */#include "ShapeModel.h"
9 
10 #include <string>
11 #include <vector>
12 
13 #include <QVector>
14 
15 #include <SpiceUsr.h>
16 #include <SpiceZfc.h>
17 #include <SpiceZmc.h>
18 
19 #include "Pvl.h"
20 #include "SurfacePoint.h"
21 
22 namespace Isis {
44  class PlaneShape : public Isis::ShapeModel {
45  public:
46  // Constructors
47  PlaneShape(Target *target, Isis::Pvl &pvl);
48  PlaneShape(Target *target);
49  PlaneShape();
50 
51  // Destructor
52  ~PlaneShape();
53 
54  // Make parent functions visible
56 
57  // Intersect the shape model
58  bool intersectSurface(std::vector<double> observerPos,
59  std::vector<double> lookDirection);
60 
61  bool isDEM() const;
62 
63  // Calculate the surface normal of the current intersection point
66  void calculateLocalNormal(QVector<double *> cornerNeighborPoints);
67 
68  double emissionAngle(const std::vector<double> & sB);
69  double incidenceAngle(const std::vector<double> &uB);
70 
71  // Get the local radius for a point on the surface
72  Distance localRadius(const Latitude &lat, const Longitude &lon);
73  };
74 };
75 
76 #endif
Isis::PlaneShape::PlaneShape
PlaneShape()
Initialize the PlaneShape.
Definition: PlaneShape.cpp:57
Isis::SurfacePoint::GetX
Displacement GetX() const
Definition: SurfacePoint.cpp:1436
Isis::Latitude
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:51
Isis::ShapeModel::surfaceIntersection
SurfacePoint * surfaceIntersection() const
Returns the surface intersection for this ShapeModel.
Definition: ShapeModel.cpp:358
ShapeModel.h
Isis::PlaneShape::calculateLocalNormal
void calculateLocalNormal(QVector< double * > cornerNeighborPoints)
There is no implementation for this method.
Definition: PlaneShape.cpp:159
Isis::ShapeModel::setHasIntersection
void setHasIntersection(bool b)
Sets the flag to indicate whether this ShapeModel has an intersection.
Definition: ShapeModel.cpp:554
PlaneShape.h
Isis::PlaneShape::calculateSurfaceNormal
void calculateSurfaceNormal()
There is no implementation for this method.
Definition: PlaneShape.cpp:145
Longitude.h
NaifStatus.h
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::SurfacePoint::GetZ
Displacement GetZ() const
Definition: SurfacePoint.cpp:1450
Isis::NaifStatus::CheckErrors
static void CheckErrors(bool resetNaif=true)
This method looks for any naif errors that might have occurred.
Definition: NaifStatus.cpp:28
Isis::ShapeModel::setNormal
void setNormal(const std::vector< double >)
Sets the normal for the currect intersection point.
Definition: ShapeModel.cpp:487
Isis::PlaneShape::emissionAngle
double emissionAngle(const std::vector< double > &sB)
Computes and returns emission angle in degrees given the observer position.
Definition: PlaneShape.cpp:178
Isis::ShapeModel::intersectSurface
virtual bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)=0
Isis::Distance
Distance measurement, usually in meters.
Definition: Distance.h:34
Isis::Longitude
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:40
Isis::Distance::Kilometers
@ Kilometers
The distance is being specified in kilometers.
Definition: Distance.h:45
Isis::ShapeModel::setName
void setName(QString name)
Sets the shape name.
Definition: ShapeModel.cpp:532
Latitude.h
Pvl.h
Isis::PlaneShape::isDEM
bool isDEM() const
Indicates that this shape model is not from a DEM.
Definition: PlaneShape.cpp:137
SurfacePoint.h
Isis::PlaneShape::incidenceAngle
double incidenceAngle(const std::vector< double > &uB)
Computes and returns incidence angle in degrees given the sun position.
Definition: PlaneShape.cpp:235
Isis::PlaneShape::~PlaneShape
~PlaneShape()
Destructor.
Definition: PlaneShape.cpp:65
Isis::SurfacePoint::FromNaifArray
void FromNaifArray(const double naifValues[3])
A naif array is a c-style array of size 3.
Definition: SurfacePoint.cpp:891
Isis::Displacement::kilometers
double kilometers() const
Get the displacement in kilometers.
Definition: Displacement.cpp:94
IException.h
Isis::ShapeModel
Define shapes and provide utilities for Isis targets.
Definition: ShapeModel.h:62
Distance.h
QVector
This is free and unencumbered software released into the public domain.
Definition: Calculator.h:18
Isis::PlaneShape::calculateDefaultNormal
void calculateDefaultNormal()
There is no implementation for this method.
Definition: PlaneShape.cpp:152
Isis::PlaneShape::intersectSurface
bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)
Find the intersection point.
Definition: PlaneShape.cpp:77
Isis::Target
This class is used to create and store valid Isis targets.
Definition: Target.h:63
Isis::RAD2DEG
const double RAD2DEG
Multiplier for converting from radians to degrees.
Definition: Constants.h:44
Isis::SurfacePoint::GetY
Displacement GetY() const
Definition: SurfacePoint.cpp:1443
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::PlaneShape::localRadius
Distance localRadius(const Latitude &lat, const Longitude &lon)
Gets the local radius for the given latitude/longitude coordinate.
Definition: PlaneShape.cpp:285
Isis::PlaneShape
Define plane shape model.
Definition: PlaneShape.h:44