1#ifndef BulletShapeModel_h 
    2#define BulletShapeModel_h 
   52                            std::vector<double> lookDirection);
 
   54                                    const std::vector<double> &observerPos,
 
   55                                    const bool &checkOcclusion = 
true);
 
   57                                    const std::vector<double> &observerPos,
 
   58                                    const bool &checkOcclusion = 
true);
 
   81      virtual bool isVisibleFrom(
const std::vector<double> observerPos,
 
   82                                 const std::vector<double> lookDirection);
 
   88      QScopedPointer<BulletWorldManager> m_model;        
 
   94      btScalar maxDistance() 
const;
 
   96      btVector3 castLookDir(
const btVector3 &observer, 
const btVector3 &lookdir) 
const;
 
   98      btVector3 pointToVector(
const  SurfacePoint &point) 
const;
 
   99      SurfacePoint makeSurfacePoint(
const btVector3 &point) 
const;
 
  102                                                 const btVector3 &sortPoint) 
const;
 
  104                      const btVector3 &observer) 
const;
 
Bullet ray tracing callback to return all intersections along a ray's path.
Definition: BulletAllHitsRayCallback.h:30
 
Bullet ray tracing callback for closest hit on target surface.
Definition: BulletClosestRayCallback.h:33
 
Shape model that uses the Bullet library to perform ray tracing.
Definition: BulletShapeModel.h:35
 
const BulletWorldManager & model() const
Returns a direct reference to the Bullet world that contains the target shape and can perform ray cas...
Definition: BulletShapeModel.cpp:598
 
BulletShapeModel(const QString &shapefile, Target *target, Pvl &pvl)
 
void calculateSurfaceNormal()
compute the ellipsoid surface normal of the target
Definition: BulletShapeModel.cpp:539
 
void calculateLocalNormal(QVector< double * > cornerNeighborPoints)
Compute the normal for a local region of surface points.
Definition: BulletShapeModel.cpp:516
 
Distance localRadius(const Latitude &lat, const Longitude &lon)
Compute the radius of the body at a lat/lon point.
Definition: BulletShapeModel.cpp:410
 
QVector< double > ellipsoidNormal()
Compute the true surface normal vector of an ellipsoid.
Definition: BulletShapeModel.cpp:559
 
double getTolerance() const
Returns the occlusion tolerance in kilometers.
Definition: BulletShapeModel.cpp:167
 
virtual bool isVisibleFrom(const std::vector< double > observerPos, const std::vector< double > lookDirection)
Check if the saved intercept is visible from a observer with a given look direction.
Definition: BulletShapeModel.cpp:470
 
BulletShapeModel()
Default constructor that creates a shape model without any internal model.
Definition: BulletShapeModel.cpp:53
 
void calculateDefaultNormal()
Calculate the surface normal of the ellipsoid as the default.
Definition: BulletShapeModel.cpp:531
 
~BulletShapeModel()
Destructor.
Definition: BulletShapeModel.cpp:159
 
virtual void clearSurfacePoint()
Clear the saved surface point and reset the saved intersection.
Definition: BulletShapeModel.cpp:388
 
void setLocalNormalFromIntercept()
Set the normal vector to the intercept point normal.
Definition: BulletShapeModel.cpp:436
 
bool isDEM() const
Indicates that this shape model is not from a DEM.
Definition: BulletShapeModel.cpp:456
 
bool intersectSurface(std::vector< double > observerPos, std::vector< double > lookDirection)
This method computes a DEM intercept point given an observer location and look direction using the Bu...
Definition: BulletShapeModel.cpp:193
 
virtual void setSurfacePoint(const SurfacePoint &surfacePoint)
Set the internal surface point.
Definition: BulletShapeModel.cpp:379
 
void setTolerance(const double &tolerance)
Sets the occlusion tolerance.
Definition: BulletShapeModel.cpp:177
 
Bullet Target Shape for planetary bodies.
Definition: BulletTargetShape.h:33
 
Bullet World manager maintains a proper state for target bodies.
Definition: BulletWorldManager.h:41
 
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
 
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