1#ifndef EmbreeShapeModel_h
2#define EmbreeShapeModel_h
13#include <embree3/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;
72 virtual bool isVisibleFrom(
const std::vector<double> observerPos,
73 const std::vector<double> lookDirection);
Distance measurement, usually in meters.
Definition Distance.h:34
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:450
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:162
virtual Distance localRadius(const Latitude &lat, const Longitude &lon)
Determine radius at a given lat/lon grid point.
Definition EmbreeShapeModel.cpp:404
virtual void clearSurfacePoint()
Flag that the ShapeModel does not have a surface point or normal.
Definition EmbreeShapeModel.cpp:385
void setTolerance(const double &tolerance)
Set the tolerance used when checking if the stored surface point is visible.
Definition EmbreeShapeModel.cpp:638
virtual ~EmbreeShapeModel()
Destructor that notifies the target shape manager that the target shape is no longer in use.
Definition EmbreeShapeModel.cpp:146
double getTolerance() const
Get the tolerance used when checking if the stored surface point is visible.
Definition EmbreeShapeModel.cpp:625
virtual bool isDEM() const
Indicates that this shape model is not from a DEM.
Definition EmbreeShapeModel.cpp:435
virtual void calculateLocalNormal(QVector< double * > cornerNeighborPoints)
Compute the normal for a local region of surface points.
Definition EmbreeShapeModel.cpp:502
EmbreeShapeModel()
Default constructor sets type to a TIN.
Definition EmbreeShapeModel.cpp:33
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:122
ShapeModel()
Default constructor creates ShapeModel object, initializing name to an empty string,...
Definition ShapeModel.cpp:40
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