Isis Developer Reference
|
Bullet World manager maintains a proper state for target bodies. More...
#include <BulletWorldManager.h>
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... | |
BulletTargetShape * | getTarget (const int &index=0) const |
Return a collision object by index into the world. More... | |
BulletTargetShape * | getTarget (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... | |
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.
Isis::BulletWorldManager::BulletWorldManager | ( | ) |
Default empty constructor.
Isis::BulletWorldManager::BulletWorldManager | ( | const QString & | name | ) |
Construct a world manager with a given name.
name | The name of the world. |
|
virtual |
Destroys the BulletWorldManager.
void Isis::BulletWorldManager::addTarget | ( | BulletTargetShape * | target | ) |
Add a Bullet shape to the collision world.
target | The target shape to add to the world. |
References Isis::BulletTargetShape::body().
BulletTargetShape * Isis::BulletWorldManager::getTarget | ( | const int & | index = 0 | ) | const |
Return a collision object by index into the world.
index | Index from 0 to size()-1 of the object that exist in the world |
BulletTargetShape * Isis::BulletWorldManager::getTarget | ( | const QString & | name | ) | const |
Look for a specific collision object by name.
name | Name of collision object to search for |
References Isis::BulletTargetShape::name().
const btCollisionWorld & Isis::BulletWorldManager::getWorld | ( | ) | const |
Get the Collision World where the targets exist.
QString Isis::BulletWorldManager::name | ( | ) | const |
Name of the world.
bool Isis::BulletWorldManager::raycast | ( | const btVector3 & | rayStart, |
const btVector3 & | rayEnd, | ||
btCollisionWorld::RayResultCallback & | results | ||
) | const |
Perform ray casting from a position and a look direction.
rayStart | The origin of the ray | |
rayEnd | The end point of the ray | |
[in,out] | results | Ray 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. |
int Isis::BulletWorldManager::size | ( | ) | const |
Number of collision objects in the world.