Как передать указатель на массив указателей на структуры из PythonPython

Программы на Python
Ответить
Anonymous
 Как передать указатель на массив указателей на структуры из Python

Сообщение Anonymous »

Я использую ctypes в Python, и мне нужно передать указатель на массив указателей на структуры некоторой функции C.
Это структура:

Код: Выделить всё

typedef struct {
float x;
float y;
float z;
float radius;
} Sphere;
И у меня есть функция со следующим прототипом:

Код: Выделить всё

void render(Sphere** spheres);
В Python я объявил класс для структуры Sphere, и мне нужно установить типы аргументов для функции рендеринга:

Код: Выделить всё

lib_render = ctypes.cdll.LoadLibrary('librender.so')

class Sphere(ctypes.Structure):
_fields_ = [('x', ctypes.c_float),
('y', ctypes.c_float),
('z', ctypes.c_float),
('radius', ctypes.c_float)]

render = lib_render.render
render.argtypes = []

spheres = numpy.array([Sphere(1, 2.8, 3, 0.5),
Sphere(4.2, 2, 1, 3.2)])
render(spheres)
Как правильно передать этот массив?

Подробнее здесь: https://stackoverflow.com/questions/470 ... rom-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»