16#ifndef vtkSMPToolsInternal_h
17#define vtkSMPToolsInternal_h
21#ifndef DOXYGEN_SHOULD_SKIP_THIS
29template <
typename InputIt,
typename OutputIt,
typename Functor>
30class UnaryTransformCall
38 UnaryTransformCall(InputIt _in, OutputIt _out, Functor& _transform)
49 std::advance(itIn, begin);
50 std::advance(itOut, begin);
51 for (
vtkIdType it = begin; it < end; it++)
60template <
typename InputIt1,
typename InputIt2,
typename OutputIt,
typename Functor>
61class BinaryTransformCall :
public UnaryTransformCall<InputIt1, OutputIt, Functor>
66 BinaryTransformCall(InputIt1 _in1, InputIt2 _in2, OutputIt _out, Functor& _transform)
67 : UnaryTransformCall<InputIt1, OutputIt, Functor>(_in1, _out, _transform)
74 InputIt1 itIn1(this->In);
76 OutputIt itOut(this->Out);
77 std::advance(itIn1, begin);
78 std::advance(itIn2, begin);
79 std::advance(itOut, begin);
80 for (
vtkIdType it = begin; it < end; it++)
82 *itOut = this->Transform(*itIn1, *itIn2);
96 FillFunctor(
const T& _value)
101 T operator()(T vtkNotUsed(inValue)) {
return Value; }
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.