1#ifndef EmbreeShapeModel_h 
    2#define EmbreeShapeModel_h 
   13#include <embree2/rtcore.h> 
   51                                    std::vector<double> lookDirection);
 
   53                                    const std::vector<double> &observerPos,
 
   54                                    const bool &backCheck = 
true);
 
   56                                    const std::vector<double> &observerPos,
 
   57                                    const bool &backCheck = 
true);
 
   61      virtual bool isDEM() 
const;
 
   78      virtual bool isVisibleFrom(
const std::vector<double> observerPos,
 
   79                                 const std::vector<double> lookDirection);
 
Distance measurement, usually in meters.
Definition: Distance.h:34
 
General purpose Embree ray tracing model.
Definition: EmbreeShapeModel.h:37
 
QVector< double > ellipsoidNormal()
Compute the true surface normal vector of an ellipsoid.
Definition: EmbreeShapeModel.cpp:544
 
virtual bool isVisibleFrom(const std::vector< double > observerPos, const std::vector< double > lookDirection)
Check if the current internalized surface point is visible from an observer position and look directi...
Definition: EmbreeShapeModel.cpp:448
 
virtual bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)
This method computes an intercept point given an observer location and look direction using the Embre...
Definition: EmbreeShapeModel.cpp:161
 
virtual Distance localRadius(const Latitude &lat, const Longitude &lon)
Determine radius at a given lat/lon grid point.
Definition: EmbreeShapeModel.cpp:402
 
virtual void calculateDefaultNormal()
Return the surface normal of the ellipsoid as the default.
Definition: EmbreeShapeModel.cpp:514
 
virtual void clearSurfacePoint()
Flag that the ShapeModel does not have a surface point or normal.
Definition: EmbreeShapeModel.cpp:384
 
void setTolerance(const double &tolerance)
Set the tolerance used when checking if the stored surface point is visible.
Definition: EmbreeShapeModel.cpp:745
 
virtual void calculateSurfaceNormal()
Return the surface normal of the ellipsoid.
Definition: EmbreeShapeModel.cpp:523
 
virtual ~EmbreeShapeModel()
Destructor that notifies the target shape manager that the target shape is no longer in use.
Definition: EmbreeShapeModel.cpp:145
 
double getTolerance() const
Get the tolerance used when checking if the stored surface point is visible.
Definition: EmbreeShapeModel.cpp:732
 
virtual double incidenceAngle(const std::vector< double > &uB)
Computes and returns incidence angle, in degrees, given the illuminator position.
Definition: EmbreeShapeModel.cpp:595
 
virtual bool isDEM() const
Indicates that this shape model is not from a DEM.
Definition: EmbreeShapeModel.cpp:433
 
virtual void calculateLocalNormal(QVector< double * > cornerNeighborPoints)
Compute the normal for a local region of surface points.
Definition: EmbreeShapeModel.cpp:500
 
EmbreeShapeModel()
Default constructor sets type to a TIN.
Definition: EmbreeShapeModel.cpp:32
 
Class for managing the construction and destruction of EmbreeTargetShapes.
Definition: EmbreeTargetManager.h:37
 
Embree Target Shape for planetary bodies.
Definition: EmbreeTargetShape.h:139
 
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:51
 
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
Definition: LinearAlgebra.h:132
 
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:40
 
Container for cube-like labels.
Definition: Pvl.h:119
 
Define shapes and provide utilities for Isis targets.
Definition: ShapeModel.h:62
 
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:132
 
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: Calculator.h:18
 
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
 
Struct for capturing multiple intersections when using embree::rtcintersectscene.
Definition: EmbreeTargetShape.h:44