mirror of https://github.com/mosra/magnum.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.2 KiB
55 lines
2.2 KiB
namespace Magnum { |
|
/** @page debug-tools Debugging helpers |
|
|
|
@brief Convenience classes to help you during development. |
|
|
|
@tableofcontents |
|
|
|
DebugTools library provides various helper classes to help you with |
|
prototyping and debugging applications without the need to write too much |
|
common code. They probably have no usage in production code, but can be useful |
|
in development. |
|
|
|
@section debug-tools-renderers Debug renderers |
|
|
|
%Debug renderers provide a way to visualize objects and object features in |
|
@ref scenegraph "scene graph" without the need to mess around with meshes and |
|
shaders. They are implemented as object features, so you can attach any number |
|
of them to any object. |
|
|
|
Basic usage involves instancing DebugTools::ResourceManager and keeping it for |
|
for the whole lifetime of debug renderers. Next you need some SceneGraph::DrawableGroup |
|
instance. You can use the same group as for the rest of your scene, but |
|
preferrably use dedicated one for debug renderers, so you can easily enable or |
|
disable debug rendering. |
|
|
|
Next step is to create configuration for your debug renderers and create |
|
particular debug renderer. The configuration is managed using the resource |
|
manager - you create configuration instance, add it to the manager and then |
|
reference it using particular resource key. This way you can easily share the |
|
same options with more renderers. If no options are specified or resource with |
|
given key doesn't exist, default fallback is used. |
|
|
|
Example usage: visualizing object position, rotation and scaling using |
|
DebugTools::ObjectRenderer: |
|
@code |
|
// Global instance of debug resource manager, drawable group for the renderers |
|
DebugTools::ResourceManager manager; |
|
SceneGraph::DrawableGroup3D debugDrawables; |
|
|
|
// Create renderer options which will be referenced later by "my" resource key |
|
DebugTools::ResourceManager::instance()->set("my", |
|
(new DebugTools::ObjectRendererOptions())->setSize(0.3f)); |
|
|
|
// Create debug renderer for given object, use "my" options for it. The |
|
// renderer is automatically added to the object features and also to |
|
// specified drawable group. |
|
Object3D* object; |
|
new DebugTools::ObjectRenderer2D(object, "my", debugDrawables); |
|
@endcode |
|
|
|
See DebugTools::ObjectRenderer and DebugTools::ShapeRenderer for more |
|
information. |
|
|
|
*/ |
|
}
|
|
|