cisst-saw
|
Define binary operations between objects as classes. More...
#include <vctStoreBackBinaryOperations.h>
Classes | |
class | Addition |
Returns the sum of the two InputType object. More... | |
class | ClipIn |
class | Division |
Returns the ratio of the two InputType object. More... | |
class | FirstOperand |
Return the first operand of (input1, input2), i.e., input1. More... | |
class | Maximum |
Return the greater of (input1, input2). More... | |
class | Minimum |
Return the of lesser (input1, input2). More... | |
class | Multiplication |
Returns the product of the two InputType object. More... | |
class | SecondOperand |
Return the first operand of (input1, input2), i.e., input2. More... | |
class | Subtraction |
Returns the difference of the two InputType object. More... | |
class | Swap |
Swap the values of input1, input2. More... | |
Public Types | |
typedef _inputOutputType | InputOutputType |
typedef _input2Type | Input2Type |
Define binary operations between objects as classes.
Class vctStoreBackBinaryOperations is an envelope that wraps binary store back operations between objects as classes. StoreBackOperations defines internal classes such as Addition, Subtraction, etc., and each of the internal classes has one static function named Operate(), which wraps the corresponding operation. The signature of a typical Operate() is
static inline OutputType & Operate(Input1Type & input1, const Input2Type & input2)
Where OutputType, Input1Type, Input2Type are the types of the result and the two operands.
By abstracting very simple operations as inline functions, we can plug the StoreBackOperations internal classes into templated vector operation engines. See an example of such engine in vctFixedSizeVectorRecursiveEngines.h , and an example of plugging an operation into the engine in vctFixedSizeVectorOperations.h .
inputOutputType | the type of the first (left-side) operand, which is an input output |
input2Type | the type of the second (right-side) operand) |
static inline void Operate(Input1Type & input1, Input2Type & input2)with no const or return type. It was included here since we didn't want to have a special file for just one operation.
typedef _input2Type vctStoreBackBinaryOperations< _inputOutputType, _input2Type >::Input2Type |
typedef _inputOutputType vctStoreBackBinaryOperations< _inputOutputType, _input2Type >::InputOutputType |