![]() |
Isis 3 Programmer Reference
|
Bullet World manager maintains a proper state for target bodies. More...
#include <BulletWorldManager.h>

Public Member Functions | |
| BulletWorldManager () | |
| Default empty constructor. | |
| BulletWorldManager (const QString &name) | |
| Construct a world manager with a given name. | |
| virtual | ~BulletWorldManager () |
| Destroys the BulletWorldManager. | |
| QString | name () const |
| Name of the world. | |
| int | size () const |
| Number of collision objects in the world. | |
| BulletTargetShape * | getTarget (const int &index=0) const |
| Return a collision object by index into the world. | |
| BulletTargetShape * | getTarget (const QString &name) const |
| Look for a specific collision object by name. | |
| void | addTarget (BulletTargetShape *target) |
| Add a Bullet shape to the collision world. | |
| bool | raycast (const btVector3 &observer, const btVector3 &lookdir, btCollisionWorld::RayResultCallback &hits) const |
| Perform ray casting from a position and a look direction. | |
| const btCollisionWorld & | getWorld () const |
| Get the Collision World where the targets exist. | |
Private Member Functions | |
| void | initWorld () |
| Initialize the collision world for object ray tracing. | |
Private Attributes | |
| QString | m_name |
| QScopedPointer< btDefaultCollisionConfiguration > | m_collision |
| ! The name of the Bullet world. | |
| QScopedPointer< btCollisionDispatcher > | m_dispatcher |
| ! The collision configuration for the world. | |
| QScopedPointer< btBroadphaseInterface > | m_broadphase |
| ! The dispatcher for the world. | |
| QScopedPointer< btCollisionWorld > | m_world |
| ! The interface for overlaps in the world's aabb acceleration tree. | |
| QMutex | m_mutex |
| ! The Bullet collision world that contains the representation of the body. | |
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.
Definition at line 41 of file BulletWorldManager.h.
| Isis::BulletWorldManager::BulletWorldManager | ( | ) |
Default empty constructor.
Definition at line 28 of file BulletWorldManager.cpp.
References initWorld().
| Isis::BulletWorldManager::BulletWorldManager | ( | const QString & | name | ) |
Construct a world manager with a given name.
| name | The name of the world. |
Definition at line 39 of file BulletWorldManager.cpp.
References initWorld(), and name().
|
virtual |
Destroys the BulletWorldManager.
Definition at line 48 of file BulletWorldManager.cpp.
| void Isis::BulletWorldManager::addTarget | ( | BulletTargetShape * | target | ) |
Add a Bullet shape to the collision world.
| target | The target shape to add to the world. |
Definition at line 113 of file BulletWorldManager.cpp.
References Isis::BulletTargetShape::body(), and m_world.
| 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 |
Definition at line 78 of file BulletWorldManager.cpp.
| BulletTargetShape * Isis::BulletWorldManager::getTarget | ( | const QString & | name | ) | const |
Look for a specific collision object by name.
| name | Name of collision object to search for |
Definition at line 92 of file BulletWorldManager.cpp.
References m_world, Isis::BulletTargetShape::name(), and name().
| const btCollisionWorld & Isis::BulletWorldManager::getWorld | ( | ) | const |
Get the Collision World where the targets exist.
Definition at line 151 of file BulletWorldManager.cpp.
References m_world.
|
private |
Initialize the collision world for object ray tracing.
Definition at line 161 of file BulletWorldManager.cpp.
References m_broadphase, m_collision, m_dispatcher, and m_world.
Referenced by BulletWorldManager(), and BulletWorldManager().
| QString Isis::BulletWorldManager::name | ( | ) | const |
Name of the world.
Definition at line 56 of file BulletWorldManager.cpp.
Referenced by BulletWorldManager(), and getTarget().
| 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. |
Definition at line 139 of file BulletWorldManager.cpp.
References m_world.
| int Isis::BulletWorldManager::size | ( | ) | const |
Number of collision objects in the world.
Definition at line 66 of file BulletWorldManager.cpp.
References m_world.
Referenced by getTarget().
|
private |
! The dispatcher for the world.
Definition at line 70 of file BulletWorldManager.h.
Referenced by initWorld().
|
private |
! The name of the Bullet world.
Definition at line 65 of file BulletWorldManager.h.
Referenced by initWorld().
|
private |
! The collision configuration for the world.
Definition at line 68 of file BulletWorldManager.h.
Referenced by initWorld().
|
mutableprivate |
! The Bullet collision world that contains the representation of the body.
Mutex for thread safety
Definition at line 77 of file BulletWorldManager.h.
|
private |
Definition at line 63 of file BulletWorldManager.h.
|
private |
! The interface for overlaps in the world's aabb acceleration tree.
Definition at line 73 of file BulletWorldManager.h.
Referenced by addTarget(), getTarget(), getTarget(), getWorld(), initWorld(), raycast(), and size().