#ifndef STREAK_LINE_H
#define STREAK_LINE_H

#include "streaksextern.h"

/** Define a line object converted from streak equatorial object */

typedef struct {
    strkPt begin;
    strkPt end;
    double width;
} Line;

/** Clip the line between (0,0) and the specified upper bound

    @param[in,out] line line to be clipped within the bounds
    @param[in] numCols maximum X (columns) for the line
    @param[in] numRows maximum Y (rows) for the line
    @return true if line overlaps the clip boundaries           */

extern bool LineClip (Line *line, int numCols, int numRows);

/** Map a line to an image for its specified width and append as
    a list of pixel positions

    @param[out] pixels list of PixelPos pointers corresponding
                       based on the line settings
    @param[in] line Line to map to pixels                       */

extern void PixelsFromLine (StreakPixels* pixels, Line *line);

#endif /* STREAK_LINE_H */
