Isis Developer Reference
PlaneShape.h
Go to the documentation of this file.
1#ifndef PlaneShape_h
2#define PlaneShape_h
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
22namespace Isis {
45 public:
46 // Constructors
47 PlaneShape(Target *target, Isis::Pvl &pvl);
48 PlaneShape(Target *target);
49 PlaneShape();
50
51 // Destructor
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
Distance measurement, usually in meters.
Definition Distance.h:34
This class is designed to encapsulate the concept of a Latitude.
Definition Latitude.h:51
This class is designed to encapsulate the concept of a Longitude.
Definition Longitude.h:40
Define plane shape model.
Definition PlaneShape.h:44
void calculateSurfaceNormal()
There is no implementation for this method.
Definition PlaneShape.cpp:145
void calculateDefaultNormal()
There is no implementation for this method.
Definition PlaneShape.cpp:152
Distance localRadius(const Latitude &lat, const Longitude &lon)
Gets the local radius for the given latitude/longitude coordinate.
Definition PlaneShape.cpp:285
bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)
Find the intersection point.
Definition PlaneShape.cpp:77
void calculateLocalNormal(QVector< double * > cornerNeighborPoints)
There is no implementation for this method.
Definition PlaneShape.cpp:159
PlaneShape()
Initialize the PlaneShape.
Definition PlaneShape.cpp:57
~PlaneShape()
Destructor.
Definition PlaneShape.cpp:65
bool isDEM() const
Indicates that this shape model is not from a DEM.
Definition PlaneShape.cpp:137
double emissionAngle(const std::vector< double > &sB)
Computes and returns emission angle in degrees given the observer position.
Definition PlaneShape.cpp:178
double incidenceAngle(const std::vector< double > &uB)
Computes and returns incidence angle in degrees given the sun position.
Definition PlaneShape.cpp:235
Container for cube-like labels.
Definition Pvl.h:119
Define shapes and provide utilities for Isis targets.
Definition ShapeModel.h:66
virtual bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)=0
This class is used to create and store valid Isis targets.
Definition Target.h:63
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16