void
gimp_vectors_warp_point (const GimpVectors *vectors,
                         GimpCoords        *point,
                         GimpCoords        *point_warped,
                         gdouble            y_offset)
{
  gdouble     x      = point->x;
  gdouble     y      = point->y;
  gdouble     len;
  GList      *list;
  GimpStroke *stroke;

  for (list = vectors->strokes->head;
       list;
       list = g_list_next (list))
    {
      stroke = list->data;

      len = gimp_vectors_stroke_get_length (vectors, stroke);

      if (x < len)
        break;

      x -= len;
    }

  if (! list)
    {
      point_warped->x = 0;
      point_warped->y = 0;
      return;
    }

  gimp_stroke_warp_point (stroke, x, y, point_warped, y_offset);
}
static PyObject *
vs_get_length(PyGimpVectorsStroke *self, PyObject *args, PyObject *kwargs)
{
    double precision;
    double length;

    static char *kwlist[] = { "precision", NULL };

    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "d:get_length", kwlist,
                                     &precision))
        return NULL;

    length = gimp_vectors_stroke_get_length(self->vectors_ID, self->stroke,
                                            precision);

    return PyFloat_FromDouble(length);
}