## GOBezierSpline GOBezierSpline |

## Functions

void | go_bezier_spline_destroy ()
GOBezierSpline * | go_bezier_spline_init ()
void | go_bezier_spline_to_cairo ()
GOPath * | go_bezier_spline_to_path ()

## Types and Values

| GOBezierSpline

## Object Hierarchy

        GBoxed
        ╰── GOBezierSpline

## Description

## Functions

### go_bezier_spline_destroy ()

    void
    go_bezier_spline_destroy (GOBezierSpline *sp);

Destroys the given structures after cleaning all allocated fields.

#### Parameters

sp | a struct GOBezierSpline instance |

### go_bezier_spline_init ()

    GOBezierSpline *
    go_bezier_spline_init (double const *x,
                           double const *y,
                           int n,
                           gboolean closed);

`x` and `y` values must be valid and finite. The returned structure contains the x and y coordinates of all control points, including the incoming data. the n and closed fields are just copies of the corresponding arguments.

#### Parameters

x | the x values |
y | the y values |
n | the number of x and y values |
closed | whether to return a closed curve or not |

#### Returns

a newly created struct GOBezierSpline instance which should be destroyed by a call to go_bezier_spline_destroy.

### go_bezier_spline_to_cairo ()

    void
    go_bezier_spline_to_cairo (GOBezierSpline *sp,
                               cairo_t *cr,
                               gboolean horiz_flip);

Renders the spline in \a cr

#### Parameters

sp | a struct GOBezierSpline instance returned by go_bezier_spline_init |
cr | a cairo context |
horiz_flip | whether to flip horizontally (for a RTL canvas). |

### go_bezier_spline_to_path ()

    GOPath *
    go_bezier_spline_to_path (GOBezierSpline *sp);

Builds a GOPath using the control points evaluated in go_bezier_spline_init.

#### Parameters

sp | a struct GOBezierSpline instance returned by go_bezier_spline_init |

#### Returns

a newly created GOPath which should be destroyed by a call to go_path_free.

## Types and Values

### GOBezierSpline

    typedef struct {
    	double *x, *y;
    	int n;
    	gboolean closed;
    	/* private */
    	unsigned ref_count;
    } GOBezierSpline;

#### Members

double *`x`; | control points abscissa. |
double *`y`; | control points ordinates. |
int `n`; | spline segments number. |
gboolean `closed`; | whether the curve is closed. |