Isis 3 Programmer Reference
Isis::ProcessByBrick::ProcessCubesFunctor< T > Class Template Reference

Create an arbitrary number of output cubes given an arbitrary number of input cubes (these counts can be zero). More...

Inheritance diagram for Isis::ProcessByBrick::ProcessCubesFunctor< T >:
Inheritance graph
Collaboration diagram for Isis::ProcessByBrick::ProcessCubesFunctor< T >:
Collaboration graph

Public Member Functions

 ProcessCubesFunctor (std::vector< Cube * > &inputCubes, std::vector< Brick * > &inputTemplateBricks, std::vector< Cube * > &outputCubes, std::vector< Brick * > &outputTemplateBricks, bool wraps, const T &processingFunctor)
 Construct a ProcessCubesFunctor.
 
 ProcessCubesFunctor (const ProcessCubesFunctor &other)
 Copy construction of these objects is fully supported.
 
virtual ~ProcessCubesFunctor ()
 Destructor.
 
void * operator() (const int &brickPosition) const
 Do the work for one position in a cube.
 
ProcessCubesFunctoroperator= (const ProcessCubesFunctor &rhs)
 Assignment of these objects is fully supported.
 

Private Attributes

std::vector< Cube * > m_inputCubes
 The input cubes for reading data from.
 
std::vector< Brick * > & m_inputTemplateBricks
 Template bricks for reading input data.
 
std::vector< Cube * > m_outputCubes
 The output cubes for writing data to.
 
std::vector< Brick * > & m_outputTemplateBricks
 Template bricks for writing output data.
 
bool m_wraps
 Wrap smaller cubes back to the beginning?
 
const T & m_processingFunctor
 The functor which does the work/arbitrary calculations.
 

Detailed Description

template<typename T>
class Isis::ProcessByBrick::ProcessCubesFunctor< T >

Create an arbitrary number of output cubes given an arbitrary number of input cubes (these counts can be zero).

Given a ProcessIterator position, this runs the functor passed into ProcessCubes with the appropriate data.

This functor is a helper for the ProcessCubes() public method. This is designed to be passed into QtConcurrent::mapped to operate over the pre-set cubes.

Author
2012-02-22 Steven Lambright

Definition at line 574 of file ProcessByBrick.h.

Constructor & Destructor Documentation

◆ ProcessCubesFunctor() [1/2]

template<typename T >
Isis::ProcessByBrick::ProcessCubesFunctor< T >::ProcessCubesFunctor ( std::vector< Cube * > & inputCubes,
std::vector< Brick * > & inputTemplateBricks,
std::vector< Cube * > & outputCubes,
std::vector< Brick * > & outputTemplateBricks,
bool wraps,
const T & processingFunctor )
inline

Construct a ProcessCubesFunctor.

This doesn't take ownership of the passed in pointers but expects them to not be deleted.

Parameters
inputCubesThe cubes to read from for input data
inputTemplateBricksThe brick initialized for use with the processingFunctor's input parameter. These must be in the same order as the inputCubes.
outputCubesThe cubes to write to after running the processingFunctor
outputTemplateBricksThe bricks initialized for use with the processingFunctor's output parameter. These must be in the same order as the outputCubes.
wrapsThe current setting for the ProcessByBrick::Wrap() option.
processingFunctorThe functor supplied to ProcessCubes() which actually does the work/ calculations.

Definition at line 596 of file ProcessByBrick.h.

◆ ProcessCubesFunctor() [2/2]

template<typename T >
Isis::ProcessByBrick::ProcessCubesFunctor< T >::ProcessCubesFunctor ( const ProcessCubesFunctor< T > & other)
inline

Copy construction of these objects is fully supported.

Parameters
otherThe functor to copy

Definition at line 616 of file ProcessByBrick.h.

◆ ~ProcessCubesFunctor()

template<typename T >
virtual Isis::ProcessByBrick::ProcessCubesFunctor< T >::~ProcessCubesFunctor ( )
inlinevirtual

Destructor.

Definition at line 629 of file ProcessByBrick.h.

Member Function Documentation

◆ operator()()

◆ operator=()

Member Data Documentation

◆ m_inputCubes

template<typename T >
std::vector<Cube *> Isis::ProcessByBrick::ProcessCubesFunctor< T >::m_inputCubes
private

The input cubes for reading data from.

Definition at line 709 of file ProcessByBrick.h.

Referenced by Isis::ProcessByBrick::ProcessCubesFunctor< T >::operator()(), and Isis::ProcessByBrick::ProcessCubesFunctor< T >::operator=().

◆ m_inputTemplateBricks

template<typename T >
std::vector<Brick *>& Isis::ProcessByBrick::ProcessCubesFunctor< T >::m_inputTemplateBricks
private

Template bricks for reading input data.

Must be parallel to inputCubes.

Definition at line 714 of file ProcessByBrick.h.

Referenced by Isis::ProcessByBrick::ProcessCubesFunctor< T >::operator()(), and Isis::ProcessByBrick::ProcessCubesFunctor< T >::operator=().

◆ m_outputCubes

template<typename T >
std::vector<Cube *> Isis::ProcessByBrick::ProcessCubesFunctor< T >::m_outputCubes
private

◆ m_outputTemplateBricks

template<typename T >
std::vector<Brick *>& Isis::ProcessByBrick::ProcessCubesFunctor< T >::m_outputTemplateBricks
private

Template bricks for writing output data.

Must be parallel to oututCubes.

Definition at line 722 of file ProcessByBrick.h.

Referenced by Isis::ProcessByBrick::ProcessCubesFunctor< T >::operator()(), and Isis::ProcessByBrick::ProcessCubesFunctor< T >::operator=().

◆ m_processingFunctor

template<typename T >
const T& Isis::ProcessByBrick::ProcessCubesFunctor< T >::m_processingFunctor
private

The functor which does the work/arbitrary calculations.

Definition at line 728 of file ProcessByBrick.h.

Referenced by Isis::ProcessByBrick::ProcessCubesFunctor< T >::operator()(), and Isis::ProcessByBrick::ProcessCubesFunctor< T >::operator=().

◆ m_wraps

template<typename T >
bool Isis::ProcessByBrick::ProcessCubesFunctor< T >::m_wraps
private

Wrap smaller cubes back to the beginning?

Definition at line 725 of file ProcessByBrick.h.

Referenced by Isis::ProcessByBrick::ProcessCubesFunctor< T >::operator()(), and Isis::ProcessByBrick::ProcessCubesFunctor< T >::operator=().


The documentation for this class was generated from the following file: