15#include "PlaneShape.h"
18#include "IException.h"
21#include "NaifStatus.h"
22#include "ShapeModel.h"
23#include "SurfacePoint.h"
78 std::vector<double> lookDirection) {
94 if (observerPos[2] < 0.0)
99 nvc2pl_c(zvec, 0.0, &plane);
101 SpiceDouble position[3];
102 SpiceDouble lookvector[3];
104 position[0] = observerPos[0];
105 position[1] = observerPos[1];
106 position[2] = observerPos[2];
108 lookvector[0] = lookDirection[0];
109 lookvector[1] = lookDirection[1];
110 lookvector[2] = lookDirection[2];
114 inrypl_c(&position, &lookvector, &plane, &nxpts, xpt);
191 vsub_c((ConstSpiceDouble *) &sB[0], pB, psB);
192 unorm_c(psB, upsB, &dist);
206 double angle = vdot_c(n, upsB);
248 vsub_c((SpiceDouble *) &uB[0], pB, puB);
249 unorm_c(puB, upuB, &dist);
262 double angle = vdot_c((SpiceDouble *) &n[0], upuB);
294 double radius = sqrt(pB[0]*pB[0] + pB[1]*pB[1] + pB[2]*pB[2]);
double kilometers() const
Get the displacement in kilometers.
Distance measurement, usually in meters.
@ Kilometers
The distance is being specified in kilometers.
This class is designed to encapsulate the concept of a Latitude.
This class is designed to encapsulate the concept of a Longitude.
static void CheckErrors(bool resetNaif=true)
This method looks for any naif errors that might have occurred.
void calculateSurfaceNormal()
There is no implementation for this method.
void calculateDefaultNormal()
There is no implementation for this method.
Distance localRadius(const Latitude &lat, const Longitude &lon)
Gets the local radius for the given latitude/longitude coordinate.
bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)
Find the intersection point.
void calculateLocalNormal(QVector< double * > cornerNeighborPoints)
There is no implementation for this method.
PlaneShape()
Initialize the PlaneShape.
bool isDEM() const
Indicates that this shape model is not from a DEM.
double emissionAngle(const std::vector< double > &sB)
Computes and returns emission angle in degrees given the observer position.
double incidenceAngle(const std::vector< double > &uB)
Computes and returns incidence angle in degrees given the sun position.
Container for cube-like labels.
void setHasIntersection(bool b)
Sets the flag to indicate whether this ShapeModel has an intersection.
void setNormal(const std::vector< double >)
Sets the surface normal for the currect intersection point.
virtual SurfacePoint * surfaceIntersection() const
Returns the surface intersection for this ShapeModel.
ShapeModel()
Default constructor creates ShapeModel object, initializing name to an empty string,...
void setName(QString name)
Sets the shape name.
void FromNaifArray(const double naifValues[3])
A naif array is a c-style array of size 3.
This class is used to create and store valid Isis targets.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
const double RAD2DEG
Multiplier for converting from radians to degrees.