def METHOD_NAME(self, context, outline, matrix, plan):
    if outline is None:
        # This job can't be placed.
        return
    scene_width = context.device.unit_width
    scene_height = context.device.unit_height
    unit_x = Length(self.x, relative_length=scene_width).units
    unit_y = Length(self.y, relative_length=scene_height).units
    x, y = matrix.point_in_matrix_space((unit_x, unit_y))
    if 0 <= self.corner <= 3:
        cx, cy = outline[self.corner]
    else:
        cx = sum([c[0] for c in outline]) / len(outline)
        cy = sum([c[1] for c in outline]) / len(outline)
    x -= cx
    y -= cy
    shift_matrix = Matrix()
    if self.rotation != 0:
        shift_matrix.post_rotate(self.rotation, cx, cy)
    shift_matrix.post_translate(x, y)
    yield matrix * shift_matrix