[Rock-dev] No memory layout for Vector3d when passing base/Position or base/Vector3d

Leif Christensen leif.christensen at dfki.de
Thu Oct 17 10:08:57 CEST 2013


Am 14.10.2013 15:16, schrieb Leif Christensen:
> Am 09.10.2013 15:41, schrieb Sylvain Joyeux:
>> > On 10/01/2013 03:15 PM, Leif Christensen wrote:
>>>> >> > Hi,
>>>> >> >
>>>> >> > I have a callback function foo that awaits two arguments:
>>>> >> >
>>>>>> >>> >> #include <base/Pose.hpp>
>>>>>> >>> >> #include <base/Eigen.hpp>
>>>>>> >>> >> ...
>>>>>> >>> >> void foo(base::Position, base::Vector3d);
>>>>>> >>> >> ...
>>>> >> > When I try to call the function from a ruby script, the script fails:
>>>> >> >
>>>>>> >>> >> pos = Types::Base::Position.new(0,0,0)
>>>>>> >>> >> vec = Types::Base::Vector3d.new(1,1,0)
>>>>>> >>> >> foo(pos,vec)
>>>>>> >>> >> -- Ruby level backtrace information ----------------------------------------
>>>>>> >>> >> test_vf3d.rb:23:in `<main>'
>>>>>> >>> >> test_vf3d.rb:23:in `method_missing'
>> > Hi Leif. How do you do the C++-to-ruby bindings ?
> My code is a widget in the rock_widget_collection, so I guess vizkit is
> doing the c++ to ruby bindings.
Ok, actually vizkit is not doing this automatically. But adding

>require 'vizkittypelib'
>Orocos.load_typekit "base"
>[...]
>gui.extend(Vizkit::QtTypelibExtension)

to my script solved the issue (thanks Alex)

Leif

-- 
 Leif Christensen

 DFKI Bremen
 Robotics Innovation Center
 Robert-Hooke-Straße 5
 28359 Bremen, Germany

 Phone: +49 (0)421 17845-4149
 Fax:   +49 (0)421 17845-4150
 E-Mail: leif.christensen at dfki.de

 Weitere Informationen: http://www.dfki.de/robotik
 -----------------------------------------------------------------------
 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
 Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
 Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
 (Vorsitzender) Dr. Walter Olthoff
 Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
 Amtsgericht Kaiserslautern, HRB 2313
 Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
 USt-Id.Nr.:    DE 148646973
 Steuernummer:  19/673/0060/3
 -----------------------------------------------------------------------



More information about the Rock-dev mailing list