4#ifndef vtkSMPToolsInternal_h 
    5#define vtkSMPToolsInternal_h 
    9#ifndef DOXYGEN_SHOULD_SKIP_THIS 
   16VTK_ABI_NAMESPACE_BEGIN
 
   18template <
typename InputIt, 
typename OutputIt, 
typename Functor>
 
   19class UnaryTransformCall
 
   27  UnaryTransformCall(InputIt _in, OutputIt _out, Functor& _transform)
 
   38    std::advance(itIn, begin);
 
   39    std::advance(itOut, begin);
 
   40    for (
vtkIdType it = begin; it < end; it++)
 
   49template <
typename InputIt1, 
typename InputIt2, 
typename OutputIt, 
typename Functor>
 
   50class BinaryTransformCall : 
public UnaryTransformCall<InputIt1, OutputIt, Functor>
 
   55  BinaryTransformCall(InputIt1 _in1, InputIt2 _in2, OutputIt _out, Functor& _transform)
 
   56    : UnaryTransformCall<InputIt1, OutputIt, Functor>(_in1, _out, _transform)
 
   63    InputIt1 itIn1(this->In);
 
   65    OutputIt itOut(this->Out);
 
   66    std::advance(itIn1, begin);
 
   67    std::advance(itIn2, begin);
 
   68    std::advance(itOut, begin);
 
   69    for (
vtkIdType it = begin; it < end; it++)
 
   71      *itOut = this->Transform(*itIn1, *itIn2);
 
   85  FillFunctor(
const T& _value)
 
   90  T operator()(T vtkNotUsed(inValue)) { 
return Value; }
 
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.