DebugDraw class
Bullet physics debug visualization.
This class implements btIDebugDraw, which allows rendering a visualization of a Bullet physics world for debugging purposes.
Usage
Set up an instance and attach it to Bullet world:
btDynamicsWorld* btWorld = …; BulletIntegration::DebugDraw debugDraw; debugDraw.setMode(BulletIntegration::DebugDraw::Mode::DrawWireframe| BulletIntegration::DebugDraw::Mode::DrawConstraints); btWorld->setDebugDrawer(&debugDraw);
Then, at every frame, call this:
debugDraw.setTransformationProjectionMatrix(projection*transformation); btWorld->debugDrawWorld();
Public types
- enum class Mode: Int { NoDebug = DBG_NoDebug, DrawWireframe = DBG_DrawWireframe, DrawAabb = DBG_DrawAabb, DrawFeaturesText = DBG_DrawFeaturesText, DrawContactPoints = DBG_DrawContactPoints, NoDeactivation = DBG_NoDeactivation, NoHelpText = DBG_NoHelpText, DrawText = DBG_DrawText, ProfileTimings = DBG_ProfileTimings, EnableSatComparison = DBG_EnableSatComparison, DisableBulletLCP = DBG_DisableBulletLCP, EnableCCD = DBG_EnableCCD, DrawConstraints = DBG_DrawConstraints, DrawConstraintLimits = DBG_DrawConstraintLimits, FastWireframe = DBG_FastWireframe, DrawNormals = DBG_DrawNormals }
- Debug mode.
-
using Modes = Containers::
EnumSet<Mode> - Debug modes.
Constructors, destructors, conversion operators
Public functions
- auto operator=(DebugDraw&&) -> DebugDraw& noexcept
- Move assignment.
- auto operator=(const DebugDraw&) -> DebugDraw& deleted
- Copying is not allowed.
- auto mode() const -> Modes
- Debug mode.
- auto debugMode() const -> Modes deprecated in 2018.10
- Debug mode.
- auto setMode(Modes mode) -> DebugDraw&
- Set debug mode.
- auto setTransformationProjectionMatrix(const Matrix4& matrix) -> DebugDraw&
- Set transformation projection matrix used for rendering.
Enum documentation
enum class Magnum:: BulletIntegration:: DebugDraw:: Mode: Int
Debug mode.
| Enumerators | |
|---|---|
| NoDebug |
Disable debug rendering |
| DrawWireframe |
Draw wireframe of all collision shapes |
| DrawAabb |
Draw axis aligned bounding box of all collision object |
| DrawFeaturesText |
Draw text for features |
| DrawContactPoints |
Draw contact points |
| NoDeactivation |
Disable deactivation of objects |
| NoHelpText |
Diable help text |
| DrawText |
Enable text drawing |
| ProfileTimings |
Profile timings |
| EnableSatComparison |
Enable Sat Comparison |
| DisableBulletLCP |
Disable Bullet LCP |
| EnableCCD |
Enable CCD |
| DrawConstraints |
Draw constaints |
| DrawConstraintLimits |
Draw constraint limits |
| FastWireframe |
Draw fast wireframes |
| DrawNormals |
Draw normals |
Typedef documentation
typedef Containers:: EnumSet<Mode> Magnum:: BulletIntegration:: DebugDraw:: Modes
Debug modes.
Function documentation
Magnum:: BulletIntegration:: DebugDraw:: DebugDraw(std:: size_t initialBufferCapacity = 0) explicit
Constructor.
| Parameters | |
|---|---|
| initialBufferCapacity | Amount of lines for which to reserve memory in the buffer vector. |
Sets up Shaders::
Magnum:: BulletIntegration:: DebugDraw:: DebugDraw(NoCreateT) explicit noexcept
Construct without creating the underlying OpenGL objects.
The constructed instance is equivalent to moved-from state. Useful for deferring the initialization to a later point, for example if the OpenGL context is not yet created. Move another instance over it to make it useful.