import type { SceneTracks } from "@/timeline"; import type { SnapPoint } from "@/timeline/snapping"; export function getElementEdgeSnapPoints({ tracks, excludeElementIds, }: { tracks: SceneTracks; excludeElementIds?: Set; }): SnapPoint[] { const snapPoints: SnapPoint[] = []; const orderedTracks = [...tracks.overlay, tracks.main, ...tracks.audio]; for (const track of orderedTracks) { for (const element of track.elements) { if (excludeElementIds?.has(element.id)) { continue; } snapPoints.push( { time: element.startTime, type: "element-start", elementId: element.id, trackId: track.id, }, { time: element.startTime + element.duration, type: "element-end", elementId: element.id, trackId: track.id, }, ); } } return snapPoints; }