CVB++ 14.0
RingBufferImage Class Reference

Stream image that is returned, when the ring buffer interface is available on a device. More...

#include <cvb/driver/ring_buffer_image.hpp>

Inherits StreamImage.

Public Member Functions

virtual ~RingBufferImage ()
 Destructor of ring buffer unlocks the buffer if it is locked. More...
 
int BufferIndex () const noexcept
 Gets the index of this buffer in the parent device's ring buffer. More...
 
DevicePtr ParentDevice () const noexcept
 Gets the parent device for this image. More...
 
void Unlock ()
 Unlocks the ring buffer. More...
 
double RawTimestamp () const noexcept override
 Gets the raw timestamp as reported by the driver. More...
 
virtual double RawTimestamp () const noexcept
 Gets the raw timestamp as reported by the driver. More...
 
- Public Member Functions inherited from Image
 Image (Size2D< int > size, int numPlanes=1, DataType dataType=DataType::Int8BppUnsigned())
 Constructs an uninitialized image with the given parameters. More...
 
 Image (int width, int height, int numPlanes=1, DataType dataType=DataType::Int8BppUnsigned())
 Constructs an uninitialized image with the given parameters. More...
 
 Image (const String &fileName)
 Loads an image with the given file name. More...
 
void * Handle () const noexcept
 Classic API image handle. More...
 
int PlanesCount () const noexcept
 Get the number of planes for this image. More...
 
bool PlaneDataTypesIdentical () const noexcept
 Check if all planes have the same data type. More...
 
ImagePlane Plane (int plane) const
 Indexed access to the individual plane information. More...
 
std::vector< ImagePlanePlanes () const noexcept
 Access all planes for this image. More...
 
std::vector< double > GetPixel (Point2D< int > position) const
 Gets the pixel values for all planes at a give position. More...
 
int Height () const noexcept
 Height of the image in pixels. More...
 
int Width () const noexcept
 Width of the image in pixels. More...
 
Cvb::ColorModel ColorModel () const noexcept
 Color model realized by this image. More...
 
void Save (const String &fileName) const
 Write the current content of the image into a file. More...
 
std::unique_ptr< ImageMap (Rect< int > rect) const
 Creates a mapped image of the region of this image. More...
 
std::unique_ptr< ImageMap (Rect< int > sourceRect, Size2D< int > targetSize) const
 Creates a mapped image of the region of that image scaled to the size. More...
 
std::unique_ptr< ImageClone () const
 Creates a new image object, that is a copy of the current instance. More...
 
void Copy (Image &targetImage, Rect< int > sourceRect, Point2D< int > targetPosition) const
 Copies the image data from the source rectangle of this image to the target position inside the target image. More...
 
void Copy (Image &targetImage) const
 Copies the image data from this image to the target image. More...
 
Size2D< int > Size () const noexcept
 Size of the image in pixels. More...
 
Rect< int > Bounds () const noexcept
 Bounding rectangle of the image in pixels. More...
 
void RaisePixelContentChanged () const
 Inform clients listening to the pixel content changed event, that the image data has been completely updated (full area). More...
 
void RaisePixelContentChanged (Rect< int > rect) const
 Inform clients listening to the pixel content changed event, that the image data has been updated in the given rectangle. More...
 
EventCookie RegisterEventPixelContentChanged (std::function< void(const Image &, Rect< int >)> handler)
 Register a listener to the pixel content changed event. More...
 
void UnregisterEventPixelContentChanged (EventCookie eventCookie) noexcept
 Manually unregister a listener from the pixel content changed event. More...
 
Point2D< double > ImageToPixelCoordinates (Point2D< double > point) const noexcept
 Convert a point from image to pixel coordinates. More...
 
Area2D ImageToPixelCoordinates (Area2D area) const noexcept
 Convert an Area2D from image to pixel coordinates. More...
 
Point2D< double > PixelToImageCoordinates (Point2D< double > point) const noexcept
 Convert a point from pixel to image coordinates. More...
 
Area2D PixelToImageCoordinates (Area2D area) const noexcept
 Convert an Area2D from pixel to image coordinates. More...
 
AffineMatrix2D CoordinateSystem () const noexcept
 Get the coordinate system of the image. More...
 
void SetCoordinateSystem (AffineMatrix2D affineMatrix) noexcept
 Set the coordinate system of the image. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Image
static std::unique_ptr< ImageLoad (const String &fileName)
 Loads an image with the given file name. More...
 
static std::unique_ptr< ImageCreate (Size2D< int > size, int numPlanes=1, DataType dataType=DataType::Int8BppUnsigned())
 Creates an uninitialized image with the given parameters. More...
 
static std::unique_ptr< ImageCreate (int width, int height, int numPlanes=1, DataType dataType=DataType::Int8BppUnsigned())
 Creates an uninitialized image with the given parameters. More...
 
template<class RANGE >
static TypedRange< std::unique_ptr< Image >, ImagePtr, RANGE >::type FromImages (MappingOption mapping, const RANGE &images)
 Create an image that is the result of concatenating a series of input images. More...
 
template<class... IMAGES>
static VarArgRange< std::unique_ptr< Image >, constImage &, IMAGES... >::type FromImages (MappingOption mapping, const IMAGES &... images)
 Create an image that is the result of concatenating a series of input images. More...
 
template<class RANGE >
static TypedRange< std::unique_ptr< Image >, ImagePlane, RANGE >::type FromPlanes (MappingOption mapping, const RANGE &planes)
 Create an image that is the result of concatenating a series of input planes. More...
 
template<class... PLANES>
static VarArgRange< std::unique_ptr< Image >, ImagePlane &&, PLANES... >::type FromPlanes (MappingOption mapping, PLANES &&... planes)
 Create an image that is the result of concatenating a series of input planes. More...
 
static std::unique_ptr< ImageFromHandle (HandleGuard< Image > &&guard)
 Creates an image from a classic API handle. More...
 
template<class T , class... ARGS>
static std::unique_ptr< T > FromHandle (HandleGuard< Image > &&guard, ARGS &&... args)
 Creates an image from a classic API handle (typed). More...
 

Detailed Description

Stream image that is returned, when the ring buffer interface is available on a device.

Attention
The destructor of ring buffer image unlocks the buffer in any case (also in LockMode::On). To avoid an automatic Unlock() when running out of scope, the image has to be stored.
Examples
GevServer/QmlGevServer, and Minos/QmlMinos.

Constructor & Destructor Documentation

◆ ~RingBufferImage()

~RingBufferImage ( )
inlinevirtual

Destructor of ring buffer unlocks the buffer if it is locked.

Attention
If LockMode::On is set the buffer is nevertheless unlocked. To avoid an automatic Unlock() when running out of scope, the image has to be stored.

Member Function Documentation

◆ BufferIndex()

int BufferIndex ( ) const
inlinenoexcept

Gets the index of this buffer in the parent device's ring buffer.

Returns
The buffer index.
Exceptions
Doesnot throw any exception.

◆ ParentDevice()

DevicePtr ParentDevice ( ) const
inlinenoexcept

Gets the parent device for this image.

Returns
The parent device pointer.
Exceptions
Doesnot throw any exception.

◆ RawTimestamp()

double RawTimestamp ( ) const
inlineoverridevirtualnoexcept

Gets the raw timestamp as reported by the driver.

Returns
double Value with undefined unit (dependent on driver); NAN if no timestamp is present.
Exceptions
Doesnot throw any exception.

This value's unit depends on the driver used.

Reimplemented from StreamImage.

◆ Unlock()

void Unlock ( )
inline

Unlocks the ring buffer.

If LockMode::On is set use this to return the buffer into the acquisition queue.

Exceptions
Anyexception derived from std::exception including CvbException.