code: def function(self,p):
          
          int_index=int(len(p.generators)*wrap(0,1.0,p.index))
          pg=p.generators[int_index]
  
          image_array = pg(xdensity=p.xdensity,ydensity=p.ydensity,bounds=p.bounds,
                           x=p.x+p.size*(pg.x*np.cos(p.orientation)-pg.y*np.sin(p.orientation)),
                           y=p.y+p.size*(pg.x*np.sin(p.orientation)+pg.y*np.cos(p.orientation)),
                           orientation=pg.orientation+p.orientation,size=pg.size*p.size,
                           scale=pg.scale*p.scale,offset=pg.offset+p.offset)
  
          return image_array
docs: Selects and returns one of the patterns in the list.