The Camera class is an abstract interface for a camera in a 3D graphics application....
Provides an abstract implementation of a ray-tracing engine.
PLATFORM_API bool getKeepRunning() const
Returns a boolean indicating whether the user wants to continue rendering.
PLATFORM_API void removeFrameBuffer(FrameBufferPtr frameBuffer)
Removes a frame buffer from the list of buffers that are filled during rendering.
virtual PLATFORM_API FrameBufferPtr createFrameBuffer(const std::string &name, const Vector2ui &frameSize, FrameBufferFormat frameBufferFormat) const =0
Factory method to create an engine-specific framebuffer.
PLATFORM_API void addRendererType(const std::string &name, const PropertyMap &properties={})
Adds a new renderer type with optional properties.
PLATFORM_API FrameBuffer & getFrameBuffer()
Returns the frame buffer.
PLATFORM_API const auto & getParametersManager() const
Returns the parameter manager.
std::vector< FrameBufferPtr > _frameBuffers
PLATFORM_API bool continueRendering() const
Returns a boolean indicating whether render calls shall be continued based on current accumulation se...
ParametersManager & _parametersManager
virtual PLATFORM_API ScenePtr createScene(AnimationParameters &animationParameters, GeometryParameters &geometryParameters, VolumeParameters &volumeParameters, FieldParameters &fieldParameters) const =0
Factory method to create an engine-specific scene.
PLATFORM_API const std::vector< FrameBufferPtr > & getFrameBuffers() const
Returns all registered frame buffers that are used during rendering.
PLATFORM_API Renderer & getRenderer()
Returns the renderer.
PLATFORM_API std::function< void()> triggerRender
Callback when a new frame shall be triggered. Currently called by event plugins Deflect and Rockets.
PLATFORM_API Statistics & getStatistics()
Returns statistics information.
virtual PLATFORM_API void commit()
Commits changes to the engine. This includes scene modifications, camera modifications and renderer m...
std::string _rendererType
PLATFORM_API Scene & getScene()
Returns the scene.
PLATFORM_API Camera & getCamera()
virtual PLATFORM_API void preRender()
Executes engine-specific pre-render operations.
PLATFORM_API void clearFrameBuffers()
Clears all frame buffers.
virtual PLATFORM_API RendererPtr createRenderer(const AnimationParameters &animationParameters, const RenderingParameters &renderingParameters) const =0
Factory method to create an engine-specific renderer.
PLATFORM_API void render()
Renders the current scene and populates the frame buffer accordingly.
PLATFORM_API const strings & getRendererTypes() const
Returns all renderer types.
virtual PLATFORM_API ~Engine()=default
PLATFORM_API void addFrameBuffer(FrameBufferPtr frameBuffer)
Adds a frame buffer to the list to be filled during rendering.
virtual PLATFORM_API CameraPtr createCamera() const =0
Factory method to create an engine-specific camera.
PLATFORM_API void setKeepRunning(bool keepRunning)
Sets a flag to continue or stop rendering.
virtual PLATFORM_API void postRender()
Executes engine-specific post-render operations.
PLATFORM_API void addCameraType(const std::string &name, const PropertyMap &properties={})
Adds a new camera type with optional properties.
PLATFORM_API void resetFrameBuffers()
Resets all frame buffers.
PLATFORM_API void setRendererType(const std::string &name)
Adds a new renderer type with optional properties.
PLATFORM_API const Camera & getCamera() const
Returns the camera.
PLATFORM_API Engine(ParametersManager ¶metersManager)
Engine Constructor.
virtual PLATFORM_API Vector2ui getMinimumFrameSize() const =0
Returns the minimum frame size in pixels supported by this engine.
This class represents a frame buffer for an engine specific code. It provides an API for utilizing an...
Renderer class inherits from PropertyObject class The Renderer class has methods to render a FrameBuf...
Scene object This object contains collections of geometries, materials and light sources that are use...
std::shared_ptr< Camera > CameraPtr
std::shared_ptr< Renderer > RendererPtr
std::shared_ptr< FrameBuffer > FrameBufferPtr
std::shared_ptr< Scene > ScenePtr
glm::vec< 2, uint32_t > Vector2ui