blob: dd1383c4862a5ccf679929fe8a9d60ffb92205c0 [file] [log] [blame]
/*
* Copyright 2022 Rive
*/
#ifndef _RIVE_HITTEST_COMMAND_PATH_HPP_
#define _RIVE_HITTEST_COMMAND_PATH_HPP_
#include "rive/command_path.hpp"
#include "rive/math/hit_test.hpp"
namespace rive {
class HitTester;
class HitTestCommandPath : public CommandPath {
HitTester m_Tester;
Mat2D m_Xform;
IAABB m_Area;
FillRule m_FillRule = FillRule::nonZero;
public:
HitTestCommandPath(const IAABB& area);
// can call this between calls to move/line/etc.
void setXform(const Mat2D& xform) { m_Xform = xform; }
bool wasHit();
// These 4 are not a good for the hit-tester
void reset() override;
void fillRule(FillRule value) override;
void addPath(CommandPath* path, const Mat2D& transform) override;
RenderPath* renderPath() override;
void moveTo(float x, float y) override;
void lineTo(float x, float y) override;
void cubicTo(float ox, float oy, float ix, float iy, float x, float y) override;
void close() override;
};
} // namespace rive
#endif