Forum: Ruby ruby vtk bindings

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Guest (Guest)
on 2006-02-26 21:06
I'm wanting to use ruby with VTK (http://public.kitware.com/VTK/).
Currently I'm getting errors compiling the ruby bindings
(http://www.gfd-dennou.org/arch/ruby/products/ruby-vtk/):

g++ -fPIC -Wall -g -O2  -fPIC   -I. -I/usr/lib/ruby/1.8/i486-linux
-I/usr/lib/ruby/1.8/i486-linux -I. -DHAVE_VTKCONFIGURE_H
-I/usr/include/vtk  -c vtkTk.cxx
In file included from vtkTk.cxx:1399:
/usr/include/vtk/vtkTk.h:26:16: error: tk.h: No such file or directory
vtkTk.cxx:343: warning: â??swig_type_info*
SWIG_TypeDynamicCast(swig_type_info*, void**)â?? defined but not used
vtkTk.cxx:366: warning: â??const char* SWIG_TypePrettyName(const
swig_type_info*)â?? defined but not used
vtkTk.cxx:492: warning: â??char* SWIG_PackVoidPtr(char*, void*, const
char*, size_t)â?? defined but not used
vtkTk.cxx:503: warning: â??const char* SWIG_UnpackVoidPtr(const char*,
void**, const char*)â?? defined but not used
vtkTk.cxx:516: warning: â??char* SWIG_PackDataName(char*, void*, size_t,
const char*, size_t)â?? defined but not used
vtkTk.cxx:531: warning: â??const char* SWIG_UnpackDataName(const char*,
void*, size_t, const char*)â?? defined but not used
vtkTk.cxx:595: warning: â??swig_type_info* SWIG_TypeQuery(const char*)â??
defined but not used
vtkTk.cxx:601: warning: â??void SWIG_TypeClientData(swig_type_info*,
void*)â?? defined but not used
vtkTk.cxx:611: warning: â??void SWIG_PropagateClientData(swig_type_info*)â??
defined but not used
vtkTk.cxx:693: warning: â??VALUE SWIG_Ruby_NewPointerObj(void*,
swig_type_info*, int)â?? defined but not used
vtkTk.cxx:719: warning: â??VALUE SWIG_Ruby_NewClassInstance(VALUE,
swig_type_info*)â?? defined but not used
vtkTk.cxx:798: warning: â??VALUE SWIG_Ruby_NewPackedObj(void*, int,
swig_type_info*)â?? defined but not used
vtkTk.cxx:810: warning: â??void SWIG_Ruby_ConvertPacked(VALUE, void*, int,
swig_type_info*, int)â?? defined but not used
vtkTk.cxx:855: warning: â??void SWIG_AsVal(VALUE, int*)â?? defined but not
used
make: *** [vtkTk.o] Error 1

The big mess of warnings is also somewhat worrisome, but I'd just like
it to compile first. I'm running Ubuntu (Breezy) with all the latest
updates. I installed vtk and tk through apt. I also made sure tk.h was
on my system:
$ find /usr/include -name tk.h
/usr/include/tcl8.4/tk-private/generic/tk.h
/usr/include/tcl8.4/tk.h

I don't have much experience compiling my own libraries from scratch so
I'm not quite sure what I'm doing wrong.

Also it seems the ruby bindings are somewhat old and not much is
happening with them. Is there a gem out there or better documentation?

Thanks for the help!

-----Jay A.
Gerald M. (Guest)
on 2006-02-27 04:09
(Received via mailing list)
removed_email_address@domain.invalid wrote:
> I'm wanting to use ruby with VTK (http://public.kitware.com/VTK/).

> Also it seems the ruby bindings are somewhat old and not much is
> happening with them. Is there a gem out there or better documentation?
>
> Thanks for the help!
>
> -----Jay A.

The ruby-vtk works with VTK-4.4 but not VTK-5.0+
Simple ruby programs work, but those that require interactive use
 - similar to Python's TkIntermodule were not working.
They would require some ruby code to implement that module.

Even with that ruby-vtk, it is an alpha quality.
There is no .gem package yet.
The tar.gz was as easy as reading the instructions in that package.

To get a ruby interface for VTK-5.0 would require implementing a swig
interface.
That is quite a lot of work to get that implemented.

best regards,
Gerald
Jay A. (Guest)
on 2006-02-27 05:15
(Received via mailing list)
Hmm... vtk-4.4 seems to be the default for ubuntu. Following the
install instructions again for ruby-vtk I still get the compile error.
Any ideas on why I might be having trouble compiling? Thanks!

-----Jay
Hidetoshi NAGAI (Guest)
on 2006-02-27 06:47
(Received via mailing list)
From: removed_email_address@domain.invalid
Subject: ruby vtk bindings
Date: Mon, 27 Feb 2006 04:06:23 +0900
Message-ID: <removed_email_address@domain.invalid>
> Also it seems the ruby bindings are somewhat old and not much is
> happening with them. Is there a gem out there or better documentation?

Although I know this is NOT an answer which you want,
Ruby/Tk can control VTK with its Tcl-wrapper. :-)
For example, if you want to use a VTK-Tcl-script,
--------------------------------------------------
require 'tk'

VTK_TCLLIB  = '/usr/local/lib/vtk/tcl'
VTK_EXAMPLE = '/usr/local/src/VTK/VTK/Examples/GUI/Tcl'
VTK_DATA    = '/usr/local/src/VTK/VTKData'

Tk::AUTO_PATH.lappend(VTK_TCLLIB)

TkPackage.require('vtk')
TkPackage.require('vtkinteraction')
Tk.tk_call('set', '::VTK_DATA_ROOT', VTK_DATA)

Tk.load_tclscript(File.join(VTK_EXAMPLE, 'ImagePlaneWidget.tcl'))

Tk.mainloop
Gerald M. (Guest)
on 2006-02-27 07:11
(Received via mailing list)
removed_email_address@domain.invalid wrote:
> Hmm... vtk-4.4 seems to be the default for ubuntu. Following the
> install instructions again for ruby-vtk I still get the compile error.
> Any ideas on why I might be having trouble compiling? Thanks!
>
> -----Jay

I used the tcl8.4.11 and tk8.4.11 src, which put all the headers in
/usr/include/
  tcl.h  tclDecls.h  tclPlatDecls.h
  tk.h  tkDecls.h  tkPlatDecls.h

You need to put those headers where the Makefile finds them.
Perhaps link the headers to /usr/include or use/local/include
OR alter the Makefile generated to include the directories in
which the headers are located.

regards,
Gerald
This topic is locked and can not be replied to.