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.