|
vitrio 0.1.4
High-throughput image I/O for Cryo-Electron Microscopy (CryoEM)
|
Abstract way of turning the events of a detector into an image. More...
#include <vitrio/detector_event_renderer.hpp>

Public Member Functions | |
| detector_event_renderer (const detector_event_renderer &other)=delete | |
| detector_event_renderer (detector_event_renderer &&other)=delete | |
| detector_event_renderer & | operator= (const detector_event_renderer &other)=delete |
| detector_event_renderer & | operator= (detector_event_renderer &&other)=delete |
| virtual std::vector< std::size_t > | get_image_extents (const detector_event_timeline_descriptor &events) const =0 |
| Get the extents of the images rendered from an acquisition. | |
| virtual numerical_type | get_data_type () const noexcept=0 |
| Get the data type images are worked out in. | |
| virtual void | render (const detector_event_timeline_descriptor &descriptor, const detector_event_timeline &events, array_ref destination) const =0 |
| Render events into an image. | |
Abstract way of turning the events of a detector into an image.
A renderer is given events and fills an image with them, whatever the time they span: which events make an image is decided by whoever hands them over. What an image is made of, be it a count of the events per pixel or anything worked out of them, is the business of the renderer, as are its extents and the data type it is worked out in.
|
pure virtualnoexcept |
Get the data type images are worked out in.
Rendering into an image of that type converts nothing, which makes it the cheapest to ask for.
Implemented in vitrio::counting_detector_event_renderer.
|
pure virtual |
Get the extents of the images rendered from an acquisition.
| events | The grid the events are placed on. |
| std::invalid_argument | If this renderer can not render events placed on the grid of events. |
Implemented in vitrio::counting_detector_event_renderer.
|
pure virtual |
Render events into an image.
Every element of destination is written, whatever it held before. Values are converted to its data type as a cast between the two types does.
| descriptor | The grid the events are placed on and the time they span. |
| events | The events to render. Must have the rank of descriptor, and every coordinate must lie within its extents. |
| destination | Where the image is written. Must be initialized and have the extents get_image_extents gives for descriptor. It may be strided. |
| std::invalid_argument | If this renderer can not render events placed on the grid of descriptor, if events does not have its rank, or if destination is not initialized or does not have the extents of an image. |
| std::out_of_range | If an event lies outside the grid of descriptor. |
| unsupported_operation_error | If the data type of destination can not be produced from that of get_data_type. |
Implemented in vitrio::counting_detector_event_renderer.