VTK Classes: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
mNo edit summary
 
(45 intermediate revisions by 13 users not shown)
Line 1: Line 1:
This is a rip from http://www.barre.nom.fr/vtk/links-classes.html
<small>This page was based on Sebastien Barre's [http://www.barre.nom.fr/vtk/links-classes.html VTK Links: Classes] page</small>.
 
Have you written your own VTK C++ classes on top of the VTK core ? Here are some of them, but feel free to send  me any links to your own work : extending the VTK functionalities helps ! Don't forget to check: How to Contribute, the Coding Standards and the Copyright Information :)
 
    * C++
    * Qt
    * FLTK
    * CAVE
    * FOX


Have you written your own VTK C++ classes on top of the VTK core ? Here are some of them, but feel free to send  me any links to your own work : extending the VTK functionalities helps ! Don't forget to check: [http://www.vtk.org/Wiki/VTK/Developers_Corner How to Contribute], the [http://public.kitware.com/VTK/contribute.php#coding-standards Coding Standards] and the [http://public.kitware.com/VTK/copyright.php Copyright Information] :)


== C++ ==
== C++ ==
Line 17: Line 10:
''(J. Shalf)''
''(J. Shalf)''
"Use in place of a vtkRenderWindow to draw an offscreen image. This is specifically for Unix/OpenGL/X11 systems. [...] For SGI systems, it will use pbuffers for hardware accelerated offscreen rendering. For all other architectures, it will use GLX pixmaps which tend to be software-rendering (except for hardware-accelerated Mesa)."
"Use in place of a vtkRenderWindow to draw an offscreen image. This is specifically for Unix/OpenGL/X11 systems. [...] For SGI systems, it will use pbuffers for hardware accelerated offscreen rendering. For all other architectures, it will use GLX pixmaps which tend to be software-rendering (except for hardware-accelerated Mesa)."
[http://www.imaging.robarts.ca/~glehmann/OffScreen/OffScreen.html vtkXOpenGLOffScreenRenderWindow]
''(Glen Lehmann)''
"Glen Lehmann has updated John Shalf's above code to work with more recent versions of VTK."


[http://zeus.ncsa.uiuc.edu/%7Ejshalf/VTK/vtkHDFReader/ vtkHDFReader]
[http://zeus.ncsa.uiuc.edu/%7Ejshalf/VTK/vtkHDFReader/ vtkHDFReader]
''(J. Shalf)''
''(J. Shalf)''
"HDF4 is a self-describing platform independent binary file format for storing Scientific Datasets. [...]. It also interoperates with the Unidata NetCDF standard. The vtkHDFReader is able to read HDF-SDS (Scientific Dataset) files into vtk as well as some versions of NetCDF data."
"HDF4 is a self-describing platform independent binary file format for storing Scientific Datasets. [...]. It also interoperates with the Unidata NetCDF standard. The vtkHDFReader is able to read HDF-SDS (Scientific Dataset) files into vtk as well as some versions of NetCDF data."
Line 47: Line 43:
''(CINECA)''
''(CINECA)''
Various classes : Image Packing/Unpacking, Image Processing, Import/Export, Geometric Tools, Math.
Various classes : Image Packing/Unpacking, Image Processing, Import/Export, Geometric Tools, Math.
[http://gdcm.sf.net/ vtkGDCMImageReader/vtkGDCMImageWriter]
''(Mathieu Malaterre and al.)''
GDCM -which stands for Grassroots DiCoM- is yet another C++ library dedicated to reading/parsing and writing Dicom files.
* offer DICOM jpeg compressed image support,
* enable DICOM header parsing of sequences and overlays,
* distribute a VTK thin wrapper of gdcm (essentially a vtkGDCMImageReader).
[http://www.vtk.org/Wiki/images/7/77/VtkPointNormalColorReader.zip vtkPointNormalColorReader]
''David Doria''
[http://www.cmake.org/Wiki/images/3/31/VtkOFFReader.zip vtkOFFReader]
''David Doria''


== wxWidgets (previously wxWindows) ==
== wxWidgets (previously wxWindows) ==


[http://www.creatis.insa-lyon.fr/~malaterre/wxVTK/ wxVTK - Yet Another Port of wxVTKRenderWindowInteractor]
[http://sourceforge.net/projects/wxvtk/ wxVTK - Yet Another Port of wxVTKRenderWindowInteractor]
This class enable VTK to render to and interact with wxWindows just as any wxWindow component.
 
wxVTKRenderWindowInteractor provide a VTK widget for wxWindow. This class was completely rewrote to have the Look & Feel of the python version.
''(M. Malaterre)''
"This class enable VTK to render to and interact with wxWindows just as any wxWindow component.
wxVTKRenderWindowInteractor provide a VTK widget for wxWindow. This class was completely rewrote to have the Look & Feel of the python version."
 
== gtk2 ==
 
[http://imagic.weizmann.ac.il/~dov/freesw/gtk/vtkgtk vtkgtk - an vtk interactor class in gtk]
 
''(Dov Grobgeld)''
"This is a vtk interactor for gtk2. The class is called vtkGtkRenderWindowInteractor
which inherits from vtkRenderWindowInteractor. It seems to work nicely, though the interactor
should really be turned into a proper GtkWidget."
 
[http://sourceforge.net/projects/vtkmm vtkmm - a small library for using vtk with gtkmm-2.4]
 
''(Matthias Langer)''
"vtkmm should make it easy to write applications using [http://www.gtkmm.org/ gtkmm] for the gui
and vtk for visualisation. Generally speaking, vtkmm gives you a class derived from Gtk::DrawingArea which contains
a vtkRenderer and a vtkRenderWindow, both accessible from the outside. To compensate the fact that
vtkRenderWindowInteractor doesn't seem to work with gtk, the class implements its own interactive
behavour. Please note that the API of the library is at the moment open for discussion and may
therefore change."


== Qt ==
== Qt ==


QVTK: As of 01/28/2005 Qt support is now part of VTK for X11(OpenGL and Mesa), Windows and the Mac platforms.
Qt versions 3 and 4 are both supported.  For more information, go to the [http://vtk.org/cgi-bin/viewcvs.cgi/GUISupport/Qt CVS GUISupport/Qt], and also some [http://vtk.org/cgi-bin/viewcvs.cgi/Examples/GUI/Qt/ examples] are provided.  This Qt code is [http://www.trolltech.com/products/3rdparty/vtksupport.html free] to use with both commercial and free versions of Qt.  It also contains a Qt designer plugin for putting this widget into the designer.  Developers wishing to contribute changes into the VTK CVS repository must have a commercial Qt license to prevent from tainting the BSD-style open source license (see code and README for details).


[http://www.medinf.mu-luebeck.de/%7Eehrhardt/vtkQGL/vtkQGL.html vtkQGL - bringing VTK and Qt together]
[http://www.medinf.mu-luebeck.de/%7Eehrhardt/vtkQGL/vtkQGL.html vtkQGL - bringing VTK and Qt together] link is dead use: [http://web.archive.org/web/ web archive]


''(J. Ehrhardt)''
''(J. Ehrhardt)''
Line 67: Line 102:
This package contains two classes vtkQGLRenderWindow and vtkQGLRenderWindowInteractor which allow one to use VTK with the QGLWidget extension of Qt. In other words, these classes can be used to build Qt applications which utilize the facilities provided by the VTK libraries ; "It should work with both VTK-2.4 and VTK-3.1.2. It also has full GNU autoconf based installation. It does not use any X-windows specific code and hence should work with Microsoft Windows [...]".
This package contains two classes vtkQGLRenderWindow and vtkQGLRenderWindowInteractor which allow one to use VTK with the QGLWidget extension of Qt. In other words, these classes can be used to build Qt applications which utilize the facilities provided by the VTK libraries ; "It should work with both VTK-2.4 and VTK-3.1.2. It also has full GNU autoconf based installation. It does not use any X-windows specific code and hence should work with Microsoft Windows [...]".


[http://wwwisg.cs.uni-magdeburg.de/%7Emakoenig/vtkqt.html vtkQt]
[http://www.matthias-koenig.net/vtkqt/ vtkQt]


''(M. Koenig. )''
''(M. Koenig. )''
The vtkQt classes combine VTK and Qt(TM) for X11.
The vtkQt classes combine VTK and Qt(TM) for X11.


[http://www.medres.ch/%7Ejstifter/vtkandqt/index.html VTK and QT]
[http://www.medres.ch/%7Ejstifter/vtkandqt/index.html VTK and QT] link is dead use: [http://web.archive.org/web/ web archive]


''(J. Stifter)''
''(J. Stifter)''
This package combines vtk and qt together ; "The package is small and simple (800 lines of code), documented with doxygen, flexible to use (dynamic definitons, mouse button) and has been tested on win32, linux, SGI IRIX, IBM RS6000 AIX. It should run on every system, which compiles vtk and qt.".
This package combines vtk and qt together ; "The package is small and simple (800 lines of code), documented with doxygen, flexible to use (dynamic definitons, mouse button) and has been tested on win32, linux, SGI IRIX, IBM RS6000 AIX. It should run on every system, which compiles vtk and qt.".
[http://staff.science.uva.nl/~dshamoni/VtkQt/ VtkQt]
''( Denis P. Shamonin)''
The VtkQt library has widgets for rendering OpenGL graphics. VtkQt provides functionality for displaying Vtk+OpenGL graphics integrated into a Qt application.
[http://wwwipr.ira.uka.de/~kuebler/vtkqt/ VTK_QT]
''(Carsten Kübler)''
MeGI's VTK_QT solution by Carsten Kübler. Dynamic use of the object factory.


== FLTK ==
== FLTK ==




[http://zeus.ncsa.uiuc.edu/%7Ejshalf/VTK/vtkFlRenderWindow/ vtkFlRenderWindow]
[http://zeus.ncsa.uiuc.edu/%7Ejshalf/VTK/vtkFlRenderWindow/ vtkFlRenderWindow] link is dead use [http://web.archive.org/web/ web archive]


''(J. Shalf)''
''(J. Shalf)''
Line 89: Line 134:
''(C. P. Botha)''
''(C. P. Botha)''
"vtkFlRenderWindowInteractor is a VTK class [...] that enables VTK to render to and interact with your FLTK application."
"vtkFlRenderWindowInteractor is a VTK class [...] that enables VTK to render to and interact with your FLTK application."
[http://vtkfltk.sourceforge.net/ vtkFLTK]
''(Sean McInerney)''
"vtkFLTK is a small C++ class library for development of FLTK event-driven interfaces for use with VTK. vtkFLTK bridges disparities between FLTK and VTK event and windowing system handling. Its use is made magically simple via VTK's Instantiator and Factory mechanisms as well as the CMake build system. See the copious examples for usage details."


== CAVE ==
== CAVE ==
Line 98: Line 148:
"The idea is that you can compute geometry using VTK and render using Iris Performer. The advantage of doing so is that there are some things that VTK hasn't been designed for, such as rendering to multiple channels (i.e. multi-headed displays such as the CAVE here at NCSA). Using vtkActorToPF, you can write interactive visualization applications for such environments without much trouble. Performer is a Silicon Graphics rendering library that also provides other features not found in VTK such as scene-graphs and intersection testing."
"The idea is that you can compute geometry using VTK and render using Iris Performer. The advantage of doing so is that there are some things that VTK hasn't been designed for, such as rendering to multiple channels (i.e. multi-headed displays such as the CAVE here at NCSA). Using vtkActorToPF, you can write interactive visualization applications for such environments without much trouble. Performer is a Silicon Graphics rendering library that also provides other features not found in VTK such as scene-graphs and intersection testing."


[http://zeus.ncsa.uiuc.edu/%7Emahall/ vtk2CAVE]
[http://zeus.ncsa.uiuc.edu/%7Emahall/ vtk2CAVE] link is dead use [http://web.archive.org/web/ web archive]


''(M. Hall)''
''(M. Hall)''
"This small collection of files enables one to display a vtkActor in a CAVE/ Immersadesk/ I-Wall, etc. with a very small amount of work. It is very stable, very easy to use, and has a built in shared mem. buffering scheme which means that you can use dynamic vtkActors without writing your own double buffering code. Caveats are that it does not yet support vtkCameras, Lights, or Texture Maps, but if there is enough demand, these features can be added fairly easily."
"This small collection of files enables one to display a vtkActor in a CAVE/ Immersadesk/ I-Wall, etc. with a very small amount of work. It is very stable, very easy to use, and has a built in shared mem. buffering scheme which means that you can use dynamic vtkActors without writing your own double buffering code. Caveats are that it does not yet support vtkCameras, Lights, or Texture Maps, but if there is enough demand, these features can be added fairly easily."
[http://staff.science.uva.nl/~dshamoni/VtkCave/ VtkCave]
''(Denis P. Shamonin)''
The classes in this library provide an interface for VTK programs to render in virtual environments maintained by VRCO's CAVE library. VtkCave is a cross-platform software development system for building high-performance, real-time, integrated 3D immersive applications.


== FOX ==
== FOX ==
Line 110: Line 164:
''(shock8)''
''(shock8)''
"FXVTKWindow is a FOX-GUI renderering window widget class for the exceeding visualization library VTK."
"FXVTKWindow is a FOX-GUI renderering window widget class for the exceeding visualization library VTK."
[http://www.brilligent.com/wikka.php?wakka=VtkFox vtkFOX]
''(D. Henry)''
"FOX/VTK canvas widget and interactor to allow VTK to interact with your FOX application.  Allows VTK to render inside a FOX application via the FXGLCanvas control.  Keyboard and mouse events are translated to allow for "native" VTK functionality.  Source includes examples."
== Cocoa (Mac OS X) ==
[http://www.rogue-research.com/vtk/SimpleCocoaVTK.html SimpleCocoaVTK]
''(Sean McBride)''
"SimpleCocoaVTK is a simple example intended to show how to use vtk in a Mac-only Cocoa application using Xcode 2.2.  The class vtkCocoaGLView is a subclass of NSView and you can use it like pretty much any other NSView."
{{VTK/Template/Footer}}

Latest revision as of 15:17, 6 January 2012

This page was based on Sebastien Barre's VTK Links: Classes page.

Have you written your own VTK C++ classes on top of the VTK core ? Here are some of them, but feel free to send me any links to your own work : extending the VTK functionalities helps ! Don't forget to check: How to Contribute, the Coding Standards and the Copyright Information :)

C++

vtkOpenGLOffscreenRenderWindow

(J. Shalf) "Use in place of a vtkRenderWindow to draw an offscreen image. This is specifically for Unix/OpenGL/X11 systems. [...] For SGI systems, it will use pbuffers for hardware accelerated offscreen rendering. For all other architectures, it will use GLX pixmaps which tend to be software-rendering (except for hardware-accelerated Mesa)."

vtkXOpenGLOffScreenRenderWindow (Glen Lehmann) "Glen Lehmann has updated John Shalf's above code to work with more recent versions of VTK."

vtkHDFReader (J. Shalf) "HDF4 is a self-describing platform independent binary file format for storing Scientific Datasets. [...]. It also interoperates with the Unidata NetCDF standard. The vtkHDFReader is able to read HDF-SDS (Scientific Dataset) files into vtk as well as some versions of NetCDF data."

vtkSMP

(J. Shalf) "This is a slowly growing collection of vtk filters that are being parallelized for Shared Memory Processor (SMP) architectures. The target audience is people who have very large datasets and computers with large numbers of processors and want to accelerate operations like streamlines and contour filters in order to maintain interactive performance."

vtkIVImporter

(S. Desmet) The class vtkIVImporter is capable to import most VRML1.0 or Inventor1.0 scenes. The lex and yacc files come from an existing VRML1.0 syntax checker. Code was incorporated to generate the necessary vtk structures.

vtkOrthoSlicer

(M. Hall) "A small, fast orthogonal slicer for vtkStructuredPoints datasets. It has the following advantages: 1)There are no extents or odd things to set (it uses the dimensions of the input to determine the dimensions of the slice plane). 2)To use it, you set the input, set the plane normal (x,y, or z axes) and set the x,y, or z coordinate of the plane. 3) It has 2 modes of output: Triangle strips and Quads (actually, polygons)."

vtkSMG

(M. Hall) "(Simple Multi Grid) This package is intended to make multigridded datasets (i.e. collections of native vtk dataset types, most importantly StructuredPoints ) into first class datatypes. Only a simple prototype is availible now, however the non-"Simple" version will have the ability to associate a structure with an MGDataset (For dealing with simple collections of boxes, AMR datasets, or hierarchical collections), thus allowing (specially written) filters to take advantage of any inherent structure in the data. Threading will be added at a later date. "

Classes @ CINECA

(CINECA) Various classes : Image Packing/Unpacking, Image Processing, Import/Export, Geometric Tools, Math.

vtkGDCMImageReader/vtkGDCMImageWriter

(Mathieu Malaterre and al.) GDCM -which stands for Grassroots DiCoM- is yet another C++ library dedicated to reading/parsing and writing Dicom files.

  • offer DICOM jpeg compressed image support,
  • enable DICOM header parsing of sequences and overlays,
  • distribute a VTK thin wrapper of gdcm (essentially a vtkGDCMImageReader).

vtkPointNormalColorReader

David Doria

vtkOFFReader

David Doria

wxWidgets (previously wxWindows)

wxVTK - Yet Another Port of wxVTKRenderWindowInteractor

(M. Malaterre) "This class enable VTK to render to and interact with wxWindows just as any wxWindow component. wxVTKRenderWindowInteractor provide a VTK widget for wxWindow. This class was completely rewrote to have the Look & Feel of the python version."

gtk2

vtkgtk - an vtk interactor class in gtk

(Dov Grobgeld) "This is a vtk interactor for gtk2. The class is called vtkGtkRenderWindowInteractor which inherits from vtkRenderWindowInteractor. It seems to work nicely, though the interactor should really be turned into a proper GtkWidget."

vtkmm - a small library for using vtk with gtkmm-2.4

(Matthias Langer) "vtkmm should make it easy to write applications using gtkmm for the gui and vtk for visualisation. Generally speaking, vtkmm gives you a class derived from Gtk::DrawingArea which contains a vtkRenderer and a vtkRenderWindow, both accessible from the outside. To compensate the fact that vtkRenderWindowInteractor doesn't seem to work with gtk, the class implements its own interactive behavour. Please note that the API of the library is at the moment open for discussion and may therefore change."

Qt

QVTK: As of 01/28/2005 Qt support is now part of VTK for X11(OpenGL and Mesa), Windows and the Mac platforms. Qt versions 3 and 4 are both supported. For more information, go to the CVS GUISupport/Qt, and also some examples are provided. This Qt code is free to use with both commercial and free versions of Qt. It also contains a Qt designer plugin for putting this widget into the designer. Developers wishing to contribute changes into the VTK CVS repository must have a commercial Qt license to prevent from tainting the BSD-style open source license (see code and README for details).

vtkQGL - bringing VTK and Qt together link is dead use: web archive

(J. Ehrhardt) vtkQGL provides C++ classes to render your VTK data in a Qt widget. Surface rendering and volume rendering is supported, and now some classes for image display are added. Qt is a fully object-oriented multi-platform GUI toolkit.

vtkQGL : QT RenderWindow and RenderWindowInteractor Classes for VTK

(M. P. Pagey) This package contains two classes vtkQGLRenderWindow and vtkQGLRenderWindowInteractor which allow one to use VTK with the QGLWidget extension of Qt. In other words, these classes can be used to build Qt applications which utilize the facilities provided by the VTK libraries ; "It should work with both VTK-2.4 and VTK-3.1.2. It also has full GNU autoconf based installation. It does not use any X-windows specific code and hence should work with Microsoft Windows [...]".

vtkQt

(M. Koenig. ) The vtkQt classes combine VTK and Qt(TM) for X11.

VTK and QT link is dead use: web archive

(J. Stifter) This package combines vtk and qt together ; "The package is small and simple (800 lines of code), documented with doxygen, flexible to use (dynamic definitons, mouse button) and has been tested on win32, linux, SGI IRIX, IBM RS6000 AIX. It should run on every system, which compiles vtk and qt.".

VtkQt

( Denis P. Shamonin) The VtkQt library has widgets for rendering OpenGL graphics. VtkQt provides functionality for displaying Vtk+OpenGL graphics integrated into a Qt application.

VTK_QT

(Carsten Kübler) MeGI's VTK_QT solution by Carsten Kübler. Dynamic use of the object factory.

FLTK

vtkFlRenderWindow link is dead use web archive

(J. Shalf) "vtkFlRenderWindow extends FLTK's ability to embed OpenGL drawing areas into GUI's so that a vtkRenderWindow can be integrated with an FL user interface [...] The Fast Light Toolkit (FLTK) is a really nifty little cross-platform GUI framework which is complete with a little GUI builder called Fluid."

vtkFlRenderWindowInteractor

(C. P. Botha) "vtkFlRenderWindowInteractor is a VTK class [...] that enables VTK to render to and interact with your FLTK application."

vtkFLTK

(Sean McInerney) "vtkFLTK is a small C++ class library for development of FLTK event-driven interfaces for use with VTK. vtkFLTK bridges disparities between FLTK and VTK event and windowing system handling. Its use is made magically simple via VTK's Instantiator and Factory mechanisms as well as the CMake build system. See the copious examples for usage details."

CAVE

Multipipe Rendering in A CAVE using Performer and vtkActorToPF

(P. Rajlich, NCSA) "The idea is that you can compute geometry using VTK and render using Iris Performer. The advantage of doing so is that there are some things that VTK hasn't been designed for, such as rendering to multiple channels (i.e. multi-headed displays such as the CAVE here at NCSA). Using vtkActorToPF, you can write interactive visualization applications for such environments without much trouble. Performer is a Silicon Graphics rendering library that also provides other features not found in VTK such as scene-graphs and intersection testing."

vtk2CAVE link is dead use web archive

(M. Hall) "This small collection of files enables one to display a vtkActor in a CAVE/ Immersadesk/ I-Wall, etc. with a very small amount of work. It is very stable, very easy to use, and has a built in shared mem. buffering scheme which means that you can use dynamic vtkActors without writing your own double buffering code. Caveats are that it does not yet support vtkCameras, Lights, or Texture Maps, but if there is enough demand, these features can be added fairly easily."

VtkCave (Denis P. Shamonin) The classes in this library provide an interface for VTK programs to render in virtual environments maintained by VRCO's CAVE library. VtkCave is a cross-platform software development system for building high-performance, real-time, integrated 3D immersive applications.

FOX

FXVTKWindow

(shock8) "FXVTKWindow is a FOX-GUI renderering window widget class for the exceeding visualization library VTK."

vtkFOX

(D. Henry) "FOX/VTK canvas widget and interactor to allow VTK to interact with your FOX application. Allows VTK to render inside a FOX application via the FXGLCanvas control. Keyboard and mouse events are translated to allow for "native" VTK functionality. Source includes examples."

Cocoa (Mac OS X)

SimpleCocoaVTK

(Sean McBride) "SimpleCocoaVTK is a simple example intended to show how to use vtk in a Mac-only Cocoa application using Xcode 2.2. The class vtkCocoaGLView is a subclass of NSView and you can use it like pretty much any other NSView."



VTK: [Welcome | Site Map]