Преобразование SWIG и TypeError (карта типов классов) - PullRequest
2 голосов
/ 14 июля 2020

Я пытаюсь преобразовать простой файл .h из c ++ в python с помощью swig.

Файл .i довольно простой, и это:

%module conversions
%{
    #include "conversions.h"
%}

%include "typemaps.i"
%include "conversions.h"    

I Я могу преобразовать файл из c ++ и вызвать его в python, но когда я пытаюсь использовать одну из преобразованных функций, у меня появляется следующая ошибка TypeError:

TypeError: in method 'msgToMap', argument 1 of type 'octomap_msgs::Octomap const &'

Вход, переданный этой функции при вызове имеет тип:

<class 'octomap_msgs.msg._Octomap.Octomap'>

, и я знаю, что этот тип тот же, преобразованный из C ++ в Python. Я хочу сказать SWIG или python: обрабатывать тип octomap_msgs.msg._Octomap.Octomap в python как octomap_msgs :: Octomap const & когда в C ++.

Я знаю, что существует библиотека typemaps.i в swig, но я действительно не понимаю, как ее использовать в этом контексте. Как я могу это сделать?

...