[vtkusers] Using VTK with Java on Mac OS X

garsha garsha at itg.uiuc.edu
Fri Feb 20 20:16:16 EST 2004


I've never been able to get java wrappers working on OS X.  From 10.1 to 
10.3.* I haven't ever been able to pull it off.  I've found python to be 
a more reliable cross-platform solution for working with VTK, but it 
would be nice to have java wrapping available for all platforms too.  I 
just don't know enough about Apple's implementation to suggest a solution.
-Karl

Robert.Nelson at tessella.com wrote:

>
> Tessella Ref: NPD/3797/PR/TN/2004FEB20/14:02:32
>
> Hi,
>
> I've been trying to get Java/VTK to work under OSX. My question is 
> should it work and if so, what am I doing wrong?
>
> I have OS X version 10.2.8 and Java v1.4.1_01-69.1
>
> I had to perform the following hack (found in the mailing list 
> archive) to get the java bindings to build:
> > in VTK/Common/vtkJavaAwt.h change lines 86 through 88 from:-
> >
> > JAWT_MacDrawingSurfaceInfo* dsi_mac;
> >    dsi_mac = (JAWT_MacDrawingSurfaceInfo*)dsi->platformInfo;
> >    temp0->SetWindowId((void *)dsi_mac->fQDWindow);
> >
> > to:-
> >
> > JAWT_MacOSXDrawingSurfaceInfo* dsi_mac;
> >    dsi_mac = (JAWT_MacOSXDrawingSurfaceInfo*)dsi->platformInfo;
> >    temp0->SetWindowId((void *)dsi_mac->cgWindowID);
>
> I then have something which does not work. The program I want to run 
> is too large so I've created the following program which works on the 
> PC - you get a Cone which can be rotated with the mouse. Under CARBON 
> I just get a blank window. Under COCOA I get a bus error:
> #0  0x90986b18 in glMatrixMode ()
> #1  0x0668159c in vtkCocoaRenderWindow::OpenGLInit() ()
> #2  0x06681bd0 in vtkCocoaRenderWindow::WindowInitialize() ()
> #3  0x06680b38 in vtkCocoaRenderWindow::Start() ()
> #4  0x066449ec in vtkRenderWindow::DoStereoRender() ()
> #5  0x066449b0 in vtkRenderWindow::DoFDRender() ()
> #6  0x066445c4 in vtkRenderWindow::DoAARender() ()
> #7  0x06643dcc in vtkRenderWindow::Render() ()
> ...
>
> The program is:
> import java.awt.*;
> import javax.swing.*;
>
> public class ConeFrame extends JFrame {
>     public ConeFrame() { }
>
>     public static void main(String [] args) {
>         ConePanel panel= new ConePanel();
>         panel.drawMe();
>         JFrame frame= new ConeFrame();
>         frame.getContentPane().add(panel);
>         frame.setSize(600,600);
>         frame.show();
>     }
> }
> and:
> import vtk.*;
> import java.awt.*;
>
> public class ConePanel extends vtk.vtkPanel {
>  public ConePanel(){ }
>  
>   public void drawMe () {
>     vtkConeSource cone = new vtkConeSource();
>     cone.SetHeight( 3.0 );
>     cone.SetRadius( 1.0 );
>     cone.SetResolution( 10 );
>     vtkPolyDataMapper coneMapper = new vtkPolyDataMapper();
>     coneMapper.SetInput( cone.GetOutput() );
>     vtkActor coneActor = new vtkActor();
>     coneActor.SetMapper( coneMapper );
>     vtkRenderer ren1 = GetRenderer(); //new vtkRenderer();
>     ren1.AddActor( coneActor );
>     ren1.SetBackground( 0.1, 0.2, 0.4 );
>         enableEvents(AWTEvent.WINDOW_EVENT_MASK);  
>    }
> }
>
> Has anyone managed to do this in Java on the Mac and if so how?
>
> Thanks for your help,
>
> Rob
>
>
> This message is confidential and may be privileged. It is intended for 
> the addressee(s) only. Access to this message by anyone else is 
> unauthorized and strictly prohibited. If you have received this 
> message in error, please inform the sender immediately.   Please note 
> that messages sent or received by the Tessella e-mail system may be 
> monitored and stored in an information retrieval system.
>
> TESSELLA   Robert.Nelson at tessella.com
> __/__/__/  Tessella Support Services plc
> __/__/__/  3 Vineyard Chambers, ABINGDON, OX14 3PX, England
> __/__/__/  Tel: (44)(0)1235-555511  Fax: (44)(0)1235-553301
>                    www.tessella.com    Registered in England No. 1466429




More information about the vtkusers mailing list