Как преобразовать массив Python в массив Cython?

У меня есть массив значений с плавающей точкой, созданный в обычном Python, который я хочу передать функции cython, являющейся фронтом для лежащей в основе функции C. Функция C требует, чтобы массив передавался как плавающий указатель, как в:

void setOverlays(const float * verts);

оболочка Cython выглядит следующим образом:

def set_overlays(verts):
    setOverlays(verts)

Как я могу сделать вершины в массиве Cython? Я думал, что это может сработать:

cdef float * cVerts = [v for v in verts]

но, к сожалению, сгенерированное значение является объектом Python, и в этом случае автоматическое преобразование не работает.

Эквивалентное выражение (которое работает) в ctypes:

cVerts = (c_float * len(verts))()
for i in range(len(verts)):
    cVerts[i] = verts[i]
setOverlays(cast(byteref(cVerts), POINTER(c_float)))

Я пытаюсь добиться того же, но в Cython

Заранее спасибо!

Ответы на вопрос(5)

Ваш ответ на вопрос