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]);
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.
Define shapes and provide utilities for Isis targets.
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.
void setName(QString name)
Sets the shape name.
This class is used to create and store valid Isis targets.
This is free and unencumbered software released into the public domain.
const double RAD2DEG
Multiplier for converting from radians to degrees.