Ross Bamford
11/9/2006 5:25:00 PM
On Fri, 2006-11-10 at 02:09 +0900, Aureliano Buendia wrote:
> There is a ruby wrapper available for vtk which works, more or less,
> fine. For those who are not familiar with vtk, it is avisualisation
> library written in c++ and the output is a native window showing some
> interactive OpenGL graphics.
>
> The VTK code usually ends with:
>
> iren = Vtk::RenderWindowInteractor.new
> iren.start()
>
> Here is where the problem comes: iren.start() starts a new thread in
> c++, while, I am trying to run the script in irb and interactively
> change the objects properties and see the live results in the OpenGL
> window. Unfortunately, after iren.start() ruby goes to a deep sleep.
> This is the irb output:
>
> >>
> ?> iren.Start()
>
> which obviously does not let me to enter any more commands unless I
> close the window:
>
> => nil
> >>
>
> which is too late for manipulating objects interactively.
I don't have any of this stuff installed, so I'm guessing, but couldn't
you just do e.g.:
winthr = Thread.new { iren.Start() }
// do whatever else you need to do
winthr.kill # or close the window may be better
Obviously I don't know about the concurrency issues but with this being
interactive I'd guess it's not something you'd worry much about.
--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk