## go-line

go-line

## Synopsis

    enum                GOLineDashType;
    enum                GOLineInterpolation;
                        GOLineDashSequence;
    GOLineDashType      go_line_dash_from_str               (char const *name);
    charconst 		*       go_line_dash_as_str                 (GOLineDashType type);
    charconst 		*       go_line_dash_as_label               (GOLineDashType type);
    double              go_line_dash_get_length             (GOLineDashType type);
    GOLineDashSequence* go_line_dash_get_sequence           (GOLineDashType type,
                                                             double scale);
    void                go_line_dash_sequence_free          (GOLineDashSequence *sequence);
    GOLineInterpolation go_line_interpolation_from_str      (char const *name);
    charconst 		*       go_line_interpolation_as_str        (GOLineInterpolation type);

## Description

## Details

### enum GOLineDashType

    typedef enum {
    	GO_LINE_NONE,
    	GO_LINE_SOLID,
    	GO_LINE_S_DOT,
    	GO_LINE_S_DASH_DOT,
    	GO_LINE_S_DASH_DOT_DOT,
    	GO_LINE_DASH_DOT_DOT_DOT,
    	GO_LINE_DOT,
    	GO_LINE_S_DASH,
    	GO_LINE_DASH,
    	GO_LINE_LONG_DASH,
    	GO_LINE_DASH_DOT,
    	GO_LINE_DASH_DOT_DOT,
    	GO_LINE_MAX
    } GOLineDashType;

### enum GOLineInterpolation

    typedef enum {
    	GO_LINE_INTERPOLATION_LINEAR,
    	GO_LINE_INTERPOLATION_SPLINE,
    	GO_LINE_INTERPOLATION_STEP_START,
    	GO_LINE_INTERPOLATION_STEP_END,
    	GO_LINE_INTERPOLATION_STEP_CENTER_X,
    	GO_LINE_INTERPOLATION_STEP_CENTER_Y,
    	GO_LINE_INTERPOLATION_MAX
    } GOLineInterpolation;

### GOLineDashSequence

    typedef struct {
    	double		 offset;
    	unsigned int	 n_dash;
    	double		*dash;
    } GOLineDashSequence;

### go_line_dash_from_str ()

    GOLineDashType      go_line_dash_from_str               (char const *name);

`name` : | Name of the dash type
Returns : | a GOLineDashType corresponding to name, or `GO_LINE_NONE` if not found.

### go_line_dash_as_str ()

    charconst 		*       go_line_dash_as_str                 (GOLineDashType type);

`type` : | a GOLineDashType
Returns : | a pointer to the nickname of the dash type, or "none" if type is invalid. The returning string should not be freed.

### go_line_dash_as_label ()

    charconst 		*       go_line_dash_as_label               (GOLineDashType type);

`type` : | a GOLineDashType
Returns : | a pointer to the user readable name of the dash type, or the name of `GO_LINE_NONE` if type is invalid. The returned string should not be freed.

### go_line_dash_get_length ()

    double              go_line_dash_get_length             (GOLineDashType type);

`type` : | GOLineDashType
Returns : | the unscaled length of the dash sequence.

### go_line_dash_get_sequence ()

    GOLineDashSequence* go_line_dash_get_sequence           (GOLineDashType type,
                                                             double scale);

`type` : | a GOLineDashType
`scale` : | dash scale
Returns : | a struct containing the dash sequence corresponding to `type`, or `NULL` if type is invalid or equal to `GO_LINE_NONE`. The lengths are scaled according to `scale`.

### go_line_dash_sequence_free ()

    void                go_line_dash_sequence_free          (GOLineDashSequence *sequence);

Frees the dash sequence struct.

`sequence` : | a GOLineDashSequence

### go_line_interpolation_from_str ()

    GOLineInterpolation go_line_interpolation_from_str      (char const *name);

`name` : | an interpolation type nickname
Returns : | a GOLineInterpolation corresponding to `name`, or `GO_LINE_INTERPOLATION_LINEAR` if not found.

### go_line_interpolation_as_str ()

    charconst 		*       go_line_interpolation_as_str        (GOLineInterpolation type);

`type` : | an interpolation type
Returns : | a pointer to the nickname of `type`, or "linear" if type is invalid. The returned string should not be freed.