From: Dragan T. <dr...@us...> - 2004-11-12 00:32:40
|
Update of /cvsroot/octaviz/octaviz In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32186 Modified Files: README Log Message: Updated README: removed obsolete compiling instructions and updated description. Index: README =================================================================== RCS file: /cvsroot/octaviz/octaviz/README,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- README 4 Nov 2004 22:04:04 -0000 1.2 +++ README 12 Nov 2004 00:32:26 -0000 1.3 @@ -1,126 +1,55 @@ -Octaviz is a visualization system for octave (www.octave.org). It -consists of two major parts: - -1. VTK wrapper that creates an Octave object (a function that -simulates objects using . operator) for each VTK class. Functions are -named after classes they represent, for example vtkRenderer class is -wrapped in vtkRenderer function. Instances of VTK objects are created -by calling the class function without parameters: command "ren = -vtkRenderer;" creates a new instance of vtkRenderer class that is kept -in octave variable ren. Methods within a class are accessed directly -using C++ (or Python) syntax, for example, using the above created -object ren, the method Render is accessible as ren.Render(). Online -help is also available for each class and method. vtkClass("Help") -displays the description of vtkClass, while -vtkClass("MethodName","Help") displays help for the method -vtkClass.MethodName. - -At this point, the first part, i.e. VTK wrapper, is almost complete, -the missing part are callback functions. For those familiar with both -octave and vtk it should be as simple to use as in Python with the -same syntax and functionality. Excluding language specific constructs, -Python examples (included in VTK) can be used in octave without any -modification. The only exception is the creation of new instances that -are created as obj = vtk.vtkClassName in Python while the octave -syntax is obj = vtkClassName. You can use a text editor to replace all -"vtk." strings in a Python example and it should run fine in -octave. About 70 Python examples are converted to Octave and included -in Octaviz. - -2. High-level functions for 2D and 3D visualization. The following -functions are available: +Octaviz is a visualization system for Octave. It is a wrapper that makes all VTK classes accessible from within Octave using the same object-oriented syntax as in C++ or Python. Octaviz also provides high-level functions for 2D and 3D visualization. Using those functions, most common visualization tasks (3D surface plots, contour plots, meshes etc) can be accomplished without any knowledge about VTK. -vtk_arrows3.m -vtk_axis.m -vtk_clear.m -vtk_close.m -vtk_cone3.m -vtk_contour3.m -vtk_figure.m -vtk_imshow.m -vtk_line3.m -vtk_mesh.m -vtk_meshc.m -vtk_plot.m -vtk_plot3.m -vtk_poly3.m -vtk_polycut.m -vtk_print.m -vtk_quiver3.m -vtk_scalarbar.m -vtk_surf.m -vtk_surfc.m -vtk_title.m -vtk_trimesh.m -vtk_trisurf.m -vtk_update.m +Although Octaviz is in active development, it already quite usable and stable. All major features of the wrapper are implemented: all VTK classes are wrapped, array exchange between Octave and VTK works, callbacks work and finally there is experimental CygWin support. Excluding language specific constructs, Python examples (included in VTK) can be used in octave without any modification. To help you get started, about 70 Python examples are converted to Octave and included in Octaviz. -And some demos: +Octaviz consists of two parts: +wrappers for all VTK classes and high-level Octave scripts that hide VTK internals and provide visualization capabilities without requiring any VTK knowledge. +VTK classes can be used in Octave as easily as they are used in Python and with the same syntax. Unlike other scripts or toolboxes for octave, octaviz uses object-oriented syntax. Octaviz wraps each VTK class into an Octave function of the same name. Those function are used as objects: An instance of a VTK class are created by calling corresponding octave function without parameters. For example, command "ren =vtkRenderer();" creates an instance of vtkRenderer class that is kept in octave variable "ren". Methods within a class are accessed directly using C++ (or Python) syntax. For example, using the above created object ren, the method Render is accessible as "ren.Render()". Online help is available for each class and method: vtkClass("Help") displays the description of vtkClass, while vtkClass("MethodName","Help") displays help for the method vtkClass.MethodName. List of available methods for a class can be obtained as vtkClass("List"). -vtk_demo.m - Basic demo. Displays a colored cube. -vtk_demo_old_syntax.m - Same as above with the alternative syntax -vtk_image_demo.m - Image display example (requires vtk-data) -vtk_image_demo2.m - imshow example. -vtk_sombsurf.m - Sombrero, surface plot -vtk_sombmesh.m - Sombrero, mesh plot -xyPlot.m - Example of multiple plots in a single figure -vtk_demo_xy_plot.m - Interactive 2D plot (allows interactive scaling and shifting) +Octaviz has been developed for Linux with X-Window System and OpenGL but it should work on any platform that supports X and VTK. Octaviz should work under CygWin too but this port requires more testing. Any feedback regarding Octaviz in CygWin is welcome. -BUILDING +BUILDING INSTRUCTIONS -Octaviz has been tested only in Linux with X-Window System and OpenGL -but it should work on any platform that supports X. Octaviz compiles -under CygWin but there is a problem related to cygwin implementation -of fork, dlopen, base addresses in dlls or something. If you know how -to solve it please share... +Linux: -You'll need octave 2.1.53 or later and VTK CVS to build octaviz (VTK -4.2 works but closing figures crashes). You will probably need to -recompile octave with -pthread flag in order to make multithreading -function properly (alternatively you can export LD_ASSUME_KERNEL=2.4.1 -before starting octave). To compile octaviz, run "ccmake ." in the -root directory of the source tree, then "make" and finally "make -create_links". +You'll need octave 2.1.53 or later and VTK CVS to build octaviz. + - run ccmake . in Octaviz root directory + - press "c" to configure + - press "g" to generate Makefiles + - press "q" to quit ccmake + - run make + - make install -To build octaviz under CygWin follow the following steps (keep in mind -that it will compile but it will NOT work due to the fork/dlopen -problem. Unless you want to solve the problem, you be compiling -octaviz in vain.) +To build octaviz under CygWin: 1. Compile VTK with support for XFree under Cygwin and OpenGL from XFree (NOT Win32!) - - rum "ccmake ." in the root directory of the VTK source tree - - Set the following options (press "t" to see advanced options) - X11_X11_LIB /usr/X11R6/lib/libX11.dll.a - X11_Xext_LIB /usr/X11R6/lib/libXext.dll.a - OPENGL_INCLUDE_PATH /usr/X11R6/include - OPENGL_gl_LIBRARY /usr/X11R6/lib/libGL.dll.a - OPENGL_glu_LIBRARY /usr/X11R6/lib/libGLU.dll.a - BUILD_TESTING OFF - BUILD_SHARED ON - CMAKE_X_LIBS -lX11 -lXt - - press "c" to configure - - change VTK_USE_X to ON - - press "c" to configure - - press "g" to generate Makefiles - - press "q" to quit - - run make - - run make install - - do chmod +x libvtk* in the VTK installation directory (usually /usr/local/lib/vtk). - - Make sure that the VTK installation directory is in your $PATH - -2. Compile Octave - - run ./configure --enable-shared --enable-dl in the root directory of octave source tree - - run make - - make install - + - rum "ccmake ." in the root directory of the VTK source tree + - Set the following options (press "t" to see advanced options) + X11_X11_LIB /usr/X11R6/lib/libX11.dll.a + X11_Xext_LIB /usr/X11R6/lib/libXext.dll.a + OPENGL_INCLUDE_PATH /usr/X11R6/include + OPENGL_gl_LIBRARY /usr/X11R6/lib/libGL.dll.a + OPENGL_glu_LIBRARY /usr/X11R6/lib/libGLU.dll.a + BUILD_TESTING OFF + BUILD_SHARED ON + CMAKE_X_LIBS -lX11 -lXt + - press "c" to configure + - change VTK_USE_X to ON + - press "c" to configure + - press "g" to generate Makefiles + - press "q" to quit + - run make + - run make install + - do chmod +x libvtk* in the VTK installation directory (usually /usr/local/lib/vtk). + - Make sure that the VTK installation directory is in your $PATH + 2. Compile Octaviz - - run ccmake . in Octaviz root directory - - press "c" to configure - - press "g" to generate Makfiles - - press "q" to quit ccmake - - run make - - make install - - make create_links + - run ccmake . in Octaviz root directory + - press "c" to configure + - press "g" to generate Makefiles + - press "q" to quit ccmake + - run make + - make install Comments, suggestions, bug repports and patches are most welcome (you can use mailing lists at SourceForge or send to |