## GoPath

GoPath — Path handling

## Synopsis

    GOPath*             go_path_new                         (void);
    void                go_path_set_options                 (GOPath *path,
                                                             GOPathOptions options);
    GOPathOptions       go_path_get_options                 (GOPath const *path);
    void                go_path_arc                         (GOPath *path,
                                                             double cx,
                                                             double cy,
                                                             double rx,
                                                             double ry,
                                                             double th0,
                                                             double th1);
    void                go_path_arc_to                      (GOPath *path,
                                                             double cx,
                                                             double cy,
                                                             double rx,
                                                             double ry,
                                                             double th0,
                                                             double th1);
    void                go_path_clear                       (GOPath *path);
    void                go_path_close                       (GOPath *path);
    void                go_path_curve_to                    (GOPath *path,
                                                             double x0,
                                                             double y0,
                                                             double x1,
                                                             double y1,
                                                             double x2,
                                                             double y2);
    void                go_path_free                        (GOPath *path);
    void                go_path_line_to                     (GOPath *path,
                                                             double x,
                                                             double y);
    void                go_path_move_to                     (GOPath *path,
                                                             double x,
                                                             double y);
    void                go_path_pie_wedge                   (GOPath *path,
                                                             double cx,
                                                             double cy,
                                                             double rx,
                                                             double ry,
                                                             double th0,
                                                             double th1);
    void                go_path_rectangle                   (GOPath *path,
                                                             double x,
                                                             double y,
                                                             double width,
                                                             double height);
    void                go_path_ring_wedge                  (GOPath *path,
                                                             double cx,
                                                             double cy,
                                                             double rx_out,
                                                             double ry_out,
                                                             double rx_in,
                                                             double ry_in,
                                                             double th0,
                                                             double th1);
    void                go_path_interpret                   (GOPath const *path,
                                                             GOPathDirection direction,
                                                             GOPathMoveToFunc *move_to,
                                                             GOPathLineToFunc *line_to,
                                                             GOPathCurveToFunc *curve_to,
                                                             GOPathClosePathFunc *close_path,
                                                             void *closure);

## Description

## Details

### go_path_new ()

    GOPath*             go_path_new                         (void);

Returns : |

### go_path_set_options ()

    void                go_path_set_options                 (GOPath *path,
                                                             GOPathOptions options);

`path` : |
`options` : |

### go_path_get_options ()

    GOPathOptions       go_path_get_options                 (GOPath const *path);

`path` : |
Returns : |

### go_path_arc ()

    void                go_path_arc                         (GOPath *path,
                                                             double cx,
                                                             double cy,
                                                             double rx,
                                                             double ry,
                                                             double th0,
                                                             double th1);

`path` : |
`cx` : |
`cy` : |
`rx` : |
`ry` : |
`th0` : |
`th1` : |

### go_path_arc_to ()

    void                go_path_arc_to                      (GOPath *path,
                                                             double cx,
                                                             double cy,
                                                             double rx,
                                                             double ry,
                                                             double th0,
                                                             double th1);

`path` : |
`cx` : |
`cy` : |
`rx` : |
`ry` : |
`th0` : |
`th1` : |

### go_path_clear ()

    void                go_path_clear                       (GOPath *path);

`path` : |

### go_path_close ()

    void                go_path_close                       (GOPath *path);

`path` : |

### go_path_curve_to ()

    void                go_path_curve_to                    (GOPath *path,
                                                             double x0,
                                                             double y0,
                                                             double x1,
                                                             double y1,
                                                             double x2,
                                                             double y2);

`path` : |
`x0` : |
`y0` : |
`x1` : |
`y1` : |
`x2` : |
`y2` : |

### go_path_free ()

    void                go_path_free                        (GOPath *path);

Frees all memory allocated for `path`.

`path` : | a GOPath

### go_path_line_to ()

    void                go_path_line_to                     (GOPath *path,
                                                             double x,
                                                             double y);

`path` : |
`x` : |
`y` : |

### go_path_move_to ()

    void                go_path_move_to                     (GOPath *path,
                                                             double x,
                                                             double y);

`path` : |
`x` : |
`y` : |

### go_path_pie_wedge ()

    void                go_path_pie_wedge                   (GOPath *path,
                                                             double cx,
                                                             double cy,
                                                             double rx,
                                                             double ry,
                                                             double th0,
                                                             double th1);

`path` : |
`cx` : |
`cy` : |
`rx` : |
`ry` : |
`th0` : |
`th1` : |

### go_path_rectangle ()

    void                go_path_rectangle                   (GOPath *path,
                                                             double x,
                                                             double y,
                                                             double width,
                                                             double height);

`path` : |
`x` : |
`y` : |
`width` : |
`height` : |

### go_path_ring_wedge ()

    void                go_path_ring_wedge                  (GOPath *path,
                                                             double cx,
                                                             double cy,
                                                             double rx_out,
                                                             double ry_out,
                                                             double rx_in,
                                                             double ry_in,
                                                             double th0,
                                                             double th1);

`path` : |
`cx` : |
`cy` : |
`rx_out` : |
`ry_out` : |
`rx_in` : |
`ry_in` : |
`th0` : |
`th1` : |

### go_path_interpret ()

    void                go_path_interpret                   (GOPath const *path,
                                                             GOPathDirection direction,
                                                             GOPathMoveToFunc *move_to,
                                                             GOPathLineToFunc *line_to,
                                                             GOPathCurveToFunc *curve_to,
                                                             GOPathClosePathFunc *close_path,
                                                             void *closure);

`path` : |
`direction` : |
`move_to` : |
`line_to` : |
`curve_to` : |
`close_path` : |
`closure` : |