import SVGPathCommander from "svg-path-commander"
// Function to convert SVG path `d` to vertices
export function parsePathToVertices(path: string, sampleLength = 15) {
// Convert path to absolute commands
const commander = new SVGPathCommander(path)
const points: { x: number; y: number }[] = []
let lastPoint: { x: number; y: number } | null = null
// Get total length of the path
const totalLength = commander.getTotalLength()
let length = 0
// Sample points along the path
while (length < totalLength) {
const point = commander.getPointAtLength(length)
// Only add point if it's different from the last one
if (!lastPoint || point.x !== lastPoint.x || point.y !== lastPoint.y) {
points.push({ x: point.x, y: point.y })
lastPoint = point
}
length += sampleLength
}
// Ensure we get the last point
const finalPoint = commander.getPointAtLength(totalLength)
if (
lastPoint &&
(finalPoint.x !== lastPoint.x || finalPoint.y !== lastPoint.y)
) {
points.push({ x: finalPoint.x, y: finalPoint.y })
}
return points
}