|
Isis Developer Reference
|
Go to the documentation of this file. 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;
void calculateSurfaceNormal()
compute the ellipsoid surface normal of the target
Definition: BulletShapeModel.cpp:539
PvlGroupIterator findGroup(const QString &name, PvlGroupIterator beg, PvlGroupIterator end)
Find a group with the specified name, within these indexes.
Definition: PvlObject.h:129
virtual void clearSurfacePoint()
Clears or resets the current surface point.
Definition: ShapeModel.cpp:386
BulletShapeModel()
Default constructor that creates a shape model without any internal model.
Definition: BulletShapeModel.cpp:53
btVector3 normal() const
Return the local surface normal at the intersection, if an intersection exists.
Definition: BulletClosestRayCallback.cpp:183
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:51
virtual void clearSurfacePoint()
Clear the saved surface point and reset the saved intersection.
Definition: BulletShapeModel.cpp:388
~BulletShapeModel()
Destructor.
Definition: BulletShapeModel.cpp:159
SurfacePoint * surfaceIntersection() const
Returns the surface intersection for this ShapeModel.
Definition: ShapeModel.cpp:358
virtual void setSurfacePoint(const SurfacePoint &surfacePoint)
Set surface intersection point.
Definition: ShapeModel.cpp:565
Bullet ray tracing callback to return all intersections along a ray's path.
Definition: BulletAllHitsRayCallback.h:30
std::vector< Distance > targetRadii() const
Returns the radii of the body in km.
Definition: ShapeModel.cpp:465
void setLocalNormalFromIntercept()
Set the normal vector to the intercept point normal.
Definition: BulletShapeModel.cpp:436
bool hasKeyword(const QString &name) const
Check to see if a keyword exists.
Definition: PvlContainer.cpp:159
Container for cube-like labels.
Definition: Pvl.h:119
static void CheckErrors(bool resetNaif=true)
This method looks for any naif errors that might have occurred.
Definition: NaifStatus.cpp:28
void setNormal(const std::vector< double >)
Sets the normal for the currect intersection point.
Definition: ShapeModel.cpp:487
Bullet World manager maintains a proper state for target bodies.
Definition: BulletWorldManager.h:41
static BulletTargetShape * load(const QString &dem, const Pvl *conf=0)
Load a DEM file into the target shape.
Definition: BulletTargetShape.cpp:84
btVector3 point() const
Return the intersection point, if one exists.
Definition: BulletClosestRayCallback.cpp:167
Distance measurement, usually in meters.
Definition: Distance.h:34
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:40
@ Traverse
Search child objects.
Definition: PvlObject.h:158
@ Kilometers
The distance is being specified in kilometers.
Definition: Distance.h:45
void setTolerance(const double &tolerance)
Sets the occlusion tolerance.
Definition: BulletShapeModel.cpp:177
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
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
void setName(QString name)
Sets the shape name.
Definition: ShapeModel.cpp:532
Contains multiple PvlContainers.
Definition: PvlGroup.h:41
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
void calculateLocalNormal(QVector< double * > cornerNeighborPoints)
Compute the normal for a local region of surface points.
Definition: BulletShapeModel.cpp:516
const BulletClosestRayCallback & hit(const int &index=0) const
Return a callback for the intersection at a given index.
Definition: BulletAllHitsRayCallback.cpp:112
BulletShapeModel(const QString &shapefile, Target *target, Pvl &pvl)
void calculateDefaultNormal()
Calculate the surface normal of the ellipsoid as the default.
Definition: BulletShapeModel.cpp:531
QString name() const
Return name of the target shape.
Definition: BulletTargetShape.cpp:71
QVector< double > ellipsoidNormal()
Compute the true surface normal vector of an ellipsoid.
Definition: BulletShapeModel.cpp:559
Isis exception class.
Definition: IException.h:91
Distance localRadius(const Latitude &lat, const Longitude &lon)
Compute the radius of the body at a lat/lon point.
Definition: BulletShapeModel.cpp:410
bool isValid() const
Checks if the callback is valid/has a valid intersection.
Definition: BulletClosestRayCallback.cpp:120
bool isDEM() const
Indicates that this shape model is not from a DEM.
Definition: BulletShapeModel.cpp:456
void setHasNormal(bool status)
Sets the flag to indicate whether this ShapeModel has a surface normal.
Definition: ShapeModel.cpp:581
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:146
Namespace for the standard library.
bool hasValidTarget() const
Returns the status of the target.
Definition: ShapeModel.cpp:449
Define shapes and provide utilities for Isis targets.
Definition: ShapeModel.h:62
Bullet Target Shape for planetary bodies.
Definition: BulletTargetShape.h:33
void ToNaifArray(double naifOutput[3]) const
A naif array is a c-style array of size 3.
Definition: SurfacePoint.cpp:870
This is free and unencumbered software released into the public domain.
Definition: CubeIoHandler.h:22
Shape model that uses the Bullet library to perform ray tracing.
Definition: BulletShapeModel.h:35
bool isVisible(const BulletClosestRayCallback &other, const btScalar tolerance=DBL_MAX) const
Check if the intersection in this is visible based on another callback.
Definition: BulletClosestRayCallback.cpp:291
bool hasIntersection()
Returns intersection status.
Definition: ShapeModel.cpp:368
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
This is free and unencumbered software released into the public domain.
Definition: Calculator.h:18
Bullet ray tracing callback for closest hit on target surface.
Definition: BulletClosestRayCallback.h:33
double getTolerance() const
Returns the occlusion tolerance in kilometers.
Definition: BulletShapeModel.cpp:167
This class is used to create and store valid Isis targets.
Definition: Target.h:63
const double RAD2DEG
Multiplier for converting from radians to degrees.
Definition: Constants.h:44
virtual void setSurfacePoint(const SurfacePoint &surfacePoint)
Set the internal surface point.
Definition: BulletShapeModel.cpp:379
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:132
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
@ User
A type of error that could only have occurred due to a mistake on the user's part (e....
Definition: IException.h:126
std::vector< double > normal()
Returns the local surface normal at the current intersection point.
Definition: ShapeModel.cpp:401