Raytrix Light Field SDK  5.0
Rx::LFR::CImageStacking Class Reference

Detailed Description

Provides methods for stacking images within a given mode using a CUDA device.

Inherits Rx::LFR::CPimpl< CImageStacking_Impl, Interfaces::EImageStacking::ID >.

Public Member Functions

 CImageStacking ()
 Default constructor. More...
 
 CImageStacking (CImageStacking &&xImageStacking)
 Move constructor. More...
 
 ~CImageStacking ()
 Destructor. More...
 
void AddImage (const CRxImage &xImage)
 Adds an image to the stack. The image is uploaded to the CUDA device and processed. More...
 
void Clear ()
 Clears the stack by resetting the internal counter to zero. More...
 
void DownloadStackedImage (CRxImage &xImage) const
 Gets the stacked image if the stacking has been finished. More...
 
void Free ()
 Clears the stack and frees the memory used by this stack. The memory is reallocated by calling AddImage. More...
 
CImageStacking_Impl & GetImpl ()
 Gets the non constant implementation. More...
 
const CImageStacking_Impl & GetImpl () const
 Gets the constant implementation. More...
 
void * GetInterface (Interfaces::EImageStacking::ID eInterface)
 Gets the interface defined by the given interface ID. More...
 
TInterface * GetInterface (Interfaces::EImageStacking::ID eInterface)
 Gets the interface defined by the given interface ID. More...
 
const void * GetInterface (Interfaces::EImageStacking::ID eInterface) const
 Gets the interface defined by the given interface ID. More...
 
const TInterface * GetInterface (Interfaces::EImageStacking::ID eInterface) const
 Gets the interface defined by the given interface ID. More...
 
bool HasInterface (Interfaces::EImageStacking::ID eInterface)
 Queries if this object has the given interface. More...
 
bool IsComplete () const
 Queries if the stack is complete. This is the case if the stack is full. More...
 
CImageStackingoperator= (CImageStacking &&xImageStacking)
 Move assignment operator. More...
 
void SetCudaDevice (const CCudaDevice &xCudaDevice)
 Sets the CUDA device that allocates the memory required for the stack operation and that runs the algorithm. More...
 
void SetMaxImageCount (unsigned uMaxImageCount)
 Sets the maximum number of image on the stack. Resets the stacking result if changed. More...
 
void SetStackingOperation (EImgStack::ID eStackingOp)
 Sets the stacking operation. Resets the stacking result if changed. More...
 

Constructor & Destructor Documentation

◆ CImageStacking() [1/2]

Rx::LFR::CImageStacking::CImageStacking ( )

Default constructor.

◆ CImageStacking() [2/2]

Rx::LFR::CImageStacking::CImageStacking ( CImageStacking &&  xImageStacking)

Move constructor.

Parameters
xImageStacking[in,out] The image stacking instance.

◆ ~CImageStacking()

Rx::LFR::CImageStacking::~CImageStacking ( )

Destructor.

Member Function Documentation

◆ AddImage()

void Rx::LFR::CImageStacking::AddImage ( const CRxImage xImage)

Adds an image to the stack. The image is uploaded to the CUDA device and processed.

Parameters
xImage[in] The image to add.

◆ Clear()

void Rx::LFR::CImageStacking::Clear ( )

Clears the stack by resetting the internal counter to zero.

◆ DownloadStackedImage()

void Rx::LFR::CImageStacking::DownloadStackedImage ( CRxImage xImage) const

Gets the stacked image if the stacking has been finished.

Parameters
xImage[out] The image.

◆ Free()

void Rx::LFR::CImageStacking::Free ( )

Clears the stack and frees the memory used by this stack. The memory is reallocated by calling AddImage.

◆ GetImpl() [1/2]

CImageStacking_Impl & Rx::LFR::CPimpl< CImageStacking_Impl , Interfaces::EImageStacking::ID >::GetImpl
inlineinherited

Gets the non constant implementation.

Returns
The implementation.

◆ GetImpl() [2/2]

const CImageStacking_Impl & Rx::LFR::CPimpl< CImageStacking_Impl , Interfaces::EImageStacking::ID >::GetImpl
inlineinherited

Gets the constant implementation.

Returns
The implementation.

◆ GetInterface() [1/4]

void* Rx::LFR::CPimpl< CImageStacking_Impl , Interfaces::EImageStacking::ID >::GetInterface ( Interfaces::EImageStacking::ID  eInterface)
inherited

Gets the interface defined by the given interface ID.

Parameters
eInterface[in] The interface ID.
Returns
Null if it fails, else the interface.

◆ GetInterface() [2/4]

TInterface* Rx::LFR::CPimpl< CImageStacking_Impl , Interfaces::EImageStacking::ID >::GetInterface ( Interfaces::EImageStacking::ID  eInterface)
inlineinherited

Gets the interface defined by the given interface ID.

Template Parameters
TInterface[in] The interface type.
Parameters
eInterface[in] The interface.
Returns
Null if it fails, else the interface.

◆ GetInterface() [3/4]

const void* Rx::LFR::CPimpl< CImageStacking_Impl , Interfaces::EImageStacking::ID >::GetInterface ( Interfaces::EImageStacking::ID  eInterface) const
inherited

Gets the interface defined by the given interface ID.

Parameters
eInterface[in] The interface ID.
Returns
Null if it fails, else the interface.

◆ GetInterface() [4/4]

const TInterface* Rx::LFR::CPimpl< CImageStacking_Impl , Interfaces::EImageStacking::ID >::GetInterface ( Interfaces::EImageStacking::ID  eInterface) const
inlineinherited

Gets the interface defined by the given interface ID.

Template Parameters
TInterface[in] The interface type.
Parameters
eInterface[in] The interface ID.
Returns
Null if it fails, else the interface.

◆ HasInterface()

bool Rx::LFR::CPimpl< CImageStacking_Impl , Interfaces::EImageStacking::ID >::HasInterface ( Interfaces::EImageStacking::ID  eInterface)
inlineinherited

Queries if this object has the given interface.

Parameters
eInterface[in] The interface to query.
Returns
True if this class has the given interface, false if not.

◆ IsComplete()

bool Rx::LFR::CImageStacking::IsComplete ( ) const

Queries if the stack is complete. This is the case if the stack is full.

Returns
True if complete, false if not.

◆ operator=()

CImageStacking& Rx::LFR::CImageStacking::operator= ( CImageStacking &&  xImageStacking)

Move assignment operator.

Parameters
xImageStacking[in,out] The image stacking instance.
Returns
The instance.

◆ SetCudaDevice()

void Rx::LFR::CImageStacking::SetCudaDevice ( const CCudaDevice xCudaDevice)

Sets the CUDA device that allocates the memory required for the stack operation and that runs the algorithm.

Parameters
xCudaDevice[in] The CUDA device.

◆ SetMaxImageCount()

void Rx::LFR::CImageStacking::SetMaxImageCount ( unsigned  uMaxImageCount)

Sets the maximum number of image on the stack. Resets the stacking result if changed.

Parameters
uMaxImageCount[in] The maximum number of images.

◆ SetStackingOperation()

void Rx::LFR::CImageStacking::SetStackingOperation ( EImgStack::ID  eStackingOp)

Sets the stacking operation. Resets the stacking result if changed.

Parameters
eStackingOp[in] The stacking operation.