4 #ifndef vtkSMPToolsInternal_h
5 #define vtkSMPToolsInternal_h
9 #ifndef DOXYGEN_SHOULD_SKIP_THIS
16 VTK_ABI_NAMESPACE_BEGIN
18 template <
typename InputIt,
typename OutputIt,
typename Functor>
19 class 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++)
49 template <
typename InputIt1,
typename InputIt2,
typename OutputIt,
typename Functor>
50 class 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++)
85 FillFunctor(
const T& _value)
90 T operator()(T vtkNotUsed(inValue)) {
return Value; }
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.