ImFusion SDK 4.3

#include <ImFusion/GL/RendererFactory.h>

Static factory class to manage registered slice and volume renderers to be used in views. More...

Detailed Description

Static factory class to manage registered slice and volume renderers to be used in views.

,

Classes

struct  SliceRenderer
 Descriptor of a registered slice renderer. More...
 
struct  VolumeRenderer
 Descriptor of a registered volume renderer. More...
 

Public Types

using SliceRendererFactoryFunction = std::function<std::unique_ptr<GlSliceRenderer>(bool is3d)>
 Factory function for a renderer used in a GlSlice.
 
using VolumeRendererFactoryFunction = std::function<std::unique_ptr<GlVolumeRenderer>()>
 Factory function for a renderer used in GlVolumeView.
 
using CapabilityCheckFunction = std::function<bool()>
 Function called to check whether the current OpenGL context supports the corresponding renderer.
 

Slice renderers

static void registerRenderer (SliceRendererFactoryFunction func)
 Registers the given GlSliceRenderer to be used in GlSliceViews.
 
static const std::vector< SliceRenderer > & registeredSliceRenderers ()
 Returns the list of all registered slice renderers.
 

Volume renderers

static void registerRenderer (const std::string &name, VolumeRendererFactoryFunction factoryFunc, CapabilityCheckFunction capabilityCheckFunc=[]() { return true;})
 Registers the given GlVolumeRenderer to be used in GlVolumeViews.
 
static const std::vector< VolumeRenderer > & registeredVolumeRenderers ()
 Return the list of all registered volume renderers.
 
static std::unique_ptr< GlVolumeRenderercreateVolumeRenderer (const std::string &name)
 Create a new instance of the registered volume renderer with the given name.
 

Member Typedef Documentation

◆ SliceRendererFactoryFunction

Factory function for a renderer used in a GlSlice.

Parameters
maskDecoratorConstructor argument passed to the GlSliceRenderer to create
is3dFlag whether to create a MPR slice view or a 2D slice view

Member Function Documentation

◆ registerRenderer() [1/2]

static void registerRenderer ( SliceRendererFactoryFunction func)
static

Registers the given GlSliceRenderer to be used in GlSliceViews.

Example usage:

RendererFactory::registerRenderer([](MaskRenderingDecorator& maskDecorator, bool is3d) -> std::unique_ptr<GlSliceRenderer> {
return (is3d ? std::make_unique<GlSliceRendererSweep>(maskDecorator) : return nullptr);
});
static void registerRenderer(SliceRendererFactoryFunction func)
Registers the given GlSliceRenderer to be used in GlSliceViews.
T make_unique(T... args)
Note
The selection of the renderer at runtime is handled by GlSlice evaluating GlSliceRenderer::accepts(). Individual images can be rendered by different renderers.

◆ registerRenderer() [2/2]

static void registerRenderer ( const std::string & name,
VolumeRendererFactoryFunction factoryFunc,
CapabilityCheckFunction capabilityCheckFunc = []() { return true;} )
static

Registers the given GlVolumeRenderer to be used in GlVolumeViews.

Example usage:

RendererFactory::registerRenderer("Global Illumination Volume Renderer",
[]() { return GLAD_GL_VERSION_4_3 > 0; });
Note
The selection of the renderer at runtime is handled by the user. All images are rendered by the same renderer in a single pass.

The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close