Isis Developer Reference
Isis::BulletWorldManager Class Reference

Bullet World manager maintains a proper state for target bodies. More...

#include <BulletWorldManager.h>

Collaboration diagram for Isis::BulletWorldManager:
Collaboration graph

Public Member Functions

 BulletWorldManager ()
 Default empty constructor. More...
 
 BulletWorldManager (const QString &name)
 Construct a world manager with a given name. More...
 
virtual ~BulletWorldManager ()
 Destroys the BulletWorldManager. More...
 
QString name () const
 Name of the world. More...
 
int size () const
 Number of collision objects in the world. More...
 
BulletTargetShapegetTarget (const int &index=0) const
 Return a collision object by index into the world. More...
 
BulletTargetShapegetTarget (const QString &name) const
 Look for a specific collision object by name. More...
 
void addTarget (BulletTargetShape *target)
 Add a Bullet shape to the collision world. More...
 
bool raycast (const btVector3 &observer, const btVector3 &lookdir, btCollisionWorld::RayResultCallback &hits) const
 Perform ray casting from a position and a look direction. More...
 
const btCollisionWorld & getWorld () const
 Get the Collision World where the targets exist. More...
 

Detailed Description

Bullet World manager maintains a proper state for target bodies.

This class maintains the physics world created in Bullet-verse. This world is target-centric in that the center of the world is the center of the target (body-fixed) coordinate system. This could be changed to represent some other system (e.g., J2000), However this design allows one to operate on a per target basis.

This class uses only the collision body world of Bullet, which is static and will not be subject to simulation operations.

This design also allows for a whole target body DEM to be loaded or a large body broken up into smaller parts of the whole if needed.

Author
2017-03-17 Kris Becker

Constructor & Destructor Documentation

◆ BulletWorldManager() [1/2]

Isis::BulletWorldManager::BulletWorldManager ( )

Default empty constructor.

◆ BulletWorldManager() [2/2]

Isis::BulletWorldManager::BulletWorldManager ( const QString &  name)

Construct a world manager with a given name.

Parameters
nameThe name of the world.

◆ ~BulletWorldManager()

Isis::BulletWorldManager::~BulletWorldManager ( )
virtual

Destroys the BulletWorldManager.

Member Function Documentation

◆ addTarget()

void Isis::BulletWorldManager::addTarget ( BulletTargetShape target)

Add a Bullet shape to the collision world.

Parameters
targetThe target shape to add to the world.

References Isis::BulletTargetShape::body().

◆ getTarget() [1/2]

BulletTargetShape * Isis::BulletWorldManager::getTarget ( const int &  index = 0) const

Return a collision object by index into the world.

Parameters
indexIndex from 0 to size()-1 of the object that exist in the world
Returns
BulletTargetShape* Pointer to shape if found.

◆ getTarget() [2/2]

BulletTargetShape * Isis::BulletWorldManager::getTarget ( const QString &  name) const

Look for a specific collision object by name.

Parameters
nameName of collision object to search for
Returns
BulletTargetShape* Pointer to shape if found. Otherwise null.

References Isis::BulletTargetShape::name().

◆ getWorld()

const btCollisionWorld & Isis::BulletWorldManager::getWorld ( ) const

Get the Collision World where the targets exist.

Returns
btCollisionWorld The Bullet collision world used for ray casting.

◆ name()

QString Isis::BulletWorldManager::name ( ) const

Name of the world.

Returns
QString The name of the Bullet collision world.

◆ raycast()

bool Isis::BulletWorldManager::raycast ( const btVector3 &  rayStart,
const btVector3 &  rayEnd,
btCollisionWorld::RayResultCallback &  results 
) const

Perform ray casting from a position and a look direction.

Author
2017-03-17 Kris Becker
Parameters
rayStartThe origin of the ray
rayEndThe end point of the ray
[in,out]resultsRay intersection callback. holds the output results of the ray cast. The type of callback determines what happens when an intersection is found during ray casting.
Returns
bool Returns true if any intersections are detected
See also
btCollisionWorld::rayTest

◆ size()

int Isis::BulletWorldManager::size ( ) const

Number of collision objects in the world.

Returns
int The number of collision objects in the world.

The documentation for this class was generated from the following files: