[vtkusers] New wiki Java examples

Jim Peterson jimcp at cox.net
Sun Nov 14 20:06:45 EST 2010


Sebastien,
So if I understand what you are saying, you see a "different paradigm" 
for VTK-Java programming than that established for C++, Python and TCL. 
Where those three generally have a renderer, a renderwindow and a 
renderwindow interactor, each created by the user application, the Java 
pardigm expects a vtkPanel to replace the renderer and renderwindow, and 
vtkCanvas which extends the vtkPanel to add the renderwindowInteractor.  
So if I want to add a  renderer or interactor callback, I should 
subclass vtkCanvas.
I still find the implementation confusing. vtkCanvas appears to drive 
the generic render window interactor, so we have the java events 
captured, but we are driving them through the interactor so the user 
java application can use the addObserver callbacks to get the events via 
the JNI. In my other career we call that a "'round robinhood's barn" 
approach.

I also dislike having to read the virtually uncommented source code as 
the only source of documentation. If we had javadoc or something else 
similar to the doxygen class doc for vtk itself, I would feel a lot more 
comfortable.

I think I like the idea of using a panel of my java application for the 
3D display. I will see what happens when I make the ExtrudeTest extend 
vtkCanvas.

wish me luck.
Jim

Sebastien Jourdain wrote:
> Hi Jim,
>
> I am lazy too and I could have done such kind of documentation, but
> you've done it and that is GREAT !
>
> I did learn VTK some time ago with Java and with the IDE completion...
> So I know how hard it is.
>
> Anyway, I could give some hints here that can be useful and that may
> have a place in a wiki some time...
>
>  - If you create a vtkPanel before using any VTK code, you don't need
> the System.loadLibrary because the vtkPanel embed them...
> - The vtkPanel provide you a renderer where you can add actors and
> Reset the camera.
> - the vtkPanel can be include in any Swing component, although it's a
> AWT component so you may need to deal with HeavyWeight component for
> menu and tooltip that might want to go below the 3d view.
> - If you need to access the interactor for working with widget, you
> might want to go to vtkCanvas, but you will have to setup yourself the
> interaction style if you want a trackball mode.
> - I've added recently some Enum for CellTypes and Helper for library
> loading. (Sorry I don't remember what I've called them)
> - The garbage collection management has been improved to be more
> flexible to allow multi-threaded VTK management. Although VTK is NOT
> thread safe. (See some other Java class about garbage collection.)
> - what else... VTK is fun in Java !!!
>
> Enjoy,
>
> Seb
> -
>
> On Sun, Nov 14, 2010 at 6:19 PM, Jim Peterson <jimcp at cox.net> wrote:
>   
>> Sebastien,
>> Thanks for having a look.
>> The short answer is "Jim is a lazy good for nothing slug.".... <grin>
>> The fact is I built my vtk/Java knowledge on the examples I found in the
>> distribution, and at the time that was the tutorial steps 1 through 5. I see
>> there are three others in infovis that might have been illuminating,
>> however, I cannot get the TreeView example to display anything. Also, as far
>> as I can tell, there is no help or documentation for vtkCanvas, vtkPanel, or
>> vtkRenderWindowPanel. they consist of undocumented source code, so even if I
>> create javadoc, I get no more information than the IDE provides by listing
>> the available methods, parameter types and return types, so unless you think
>> the
>>
>> I started with something that worked and stayed with it, and that was the
>> very basic tutorial style code. While composing this I found the SimpleVTK
>> example. It claims to have JRadioButtons to control the display, but
>> actually only has one large friendly Exit button. The first time I ran it I
>> did not recognize the cone because of the camera position, I now know enough
>> to use the R interaction to reset the camera position. I may see if I can
>> adapt that one to some of my existing projects.
>>
>> Feel free to post updates or interpretations of these or any of the other
>> java examples to use the intended Java interfaces.
>> thanks,
>> Jim
>>
>> Sebastien Jourdain wrote:
>>     
>>> Thanks Jim for your contribution !
>>>
>>> Just a quick question. Why you didn't use the vtkPanel for the
>>> renderer and render window ?
>>>
>>> Anyway, thanks again
>>>
>>> Seb
>>>
>>> On Sun, Nov 14, 2010 at 4:12 PM, Jim Peterson <jimcp at cox.net> wrote:
>>>
>>>       
>>>> Dear list, I have demonstrated several interaction concepts in Java on
>>>> the
>>>> Examples Wiki here :
>>>>
>>>>
>>>> http://www.vtk.org/Wiki/VTK/Examples/Java/ImplicitFunctions/ImplicitSphere
>>>> Illustrates the shere source, and use of the tubefilter to create tubes
>>>> around likes.
>>>> http://www.vtk.org/Wiki/VTK/Examples/Java/Interaction/ExtrudeTest
>>>> Illustrates the linear extrusion filter, the rotational extrusion filter,
>>>> uses a CharEvent callback on the renderwindow interactor to toggle
>>>> between
>>>>  the trackballActor and trackballCamera style interactions. This example
>>>> also demonstrates the end plane artifacts when the extrusion profile has
>>>> concave characteristics.
>>>> Please feel free to give feedback/comment/modify/add to them.
>>>>
>>>> Thanks,
>>>>
>>>>         
>>     
>
>   




More information about the vtkusers mailing list