blob: 6a0300432f2da61578137ea2b4d9283f89799037 [file] [log] [blame] [edit]
#ifndef _RIVE_PATH_MEASURE_HPP_
#define _RIVE_PATH_MEASURE_HPP_
#include "rive/math/contour_measure.hpp"
#include <vector>
namespace rive
{
class PathMeasure
{
public:
PathMeasure();
PathMeasure(const RawPath* path,
float tol = ContourMeasureIter::kDefaultTolerance);
ContourMeasure::PosTanDistance atDistance(float distance) const;
ContourMeasure::PosTanDistance atPercentage(float percentageDistance) const;
void getSegment(float startDistance,
float endDistance,
RawPath* dst,
bool startWithMove = true) const;
float length() const { return m_length; }
bool isClosed() const;
private:
float m_length;
std::vector<rcp<ContourMeasure>> m_contours;
};
} // namespace rive
#endif