
// EqualGradientDirectionDeltaCubicSplitter.hpp - interface to split cubics are even gradient direction intervals

#ifndef __EqualGradientDirectionDeltaCubicSplitter_hpp__
#define __EqualGradientDirectionDeltaCubicSplitter_hpp__

#include "cpu/CPUStrokeTessellator.hpp"

// Split cubic Bezier curves at evenly at spaced gradient directions.
class EqualGradientDirectionDeltaCubicSplitter : CPUStrokeTessellator {
public:
    EqualGradientDirectionDeltaCubicSplitter(float angle_in_radians);

    typedef void EqualGradientDirectionDeltaFunc(const float2 cp[4],
                                                 const float2& start_direction,
                                                 const float2& end_direction,
                                                 void *data);

    void processCubic(EqualGradientDirectionDeltaFunc func, const float2 cp[4], void *data);
};

#endif // __EqualGradientDirectionDeltaCubicSplitter_hpp__
