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())