## Patterns

The cairo C API allows for creating a number of different types of patterns. All of these different types of patterns map to cairo_pattern_t in C, but in an object oriented language, there should instead be a hierarchy of types. (The functions that should map to constructors for the various types are listed after the type, methods on that type are listed below)

    cairo_pattern_t
          cairo_pattern_set_matrix()
          cairo_pattern_get_matrix()
       cairo_solid_pattern_t
       cairo_surface_pattern_t (cairo_pattern_create_for_surface())
             cairo_pattern_set_extend()
             cairo_pattern_get_extend()
             cairo_pattern_set_filter()
             cairo_pattern_get_filter()
       cairo_gradient_t
             cairo_pattern_add_color_stop_rgb()
             cairo_pattern_add_color_stop_rgba()
          cairo_linear_gradient_t (cairo_pattern_create_linear())
          cairo_radial_gradient_t (cairo_pattern_create_radial())