From: Jonathan S. <jjs...@us...> - 2004-11-04 22:04:14
|
Update of /cvsroot/octaviz/octaviz In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24149 Modified Files: README Log Message: README updated Index: README =================================================================== RCS file: /cvsroot/octaviz/octaviz/README,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- README 21 Sep 2004 22:50:38 -0000 1.1.1.1 +++ README 4 Nov 2004 22:04:04 -0000 1.2 @@ -1,47 +1,91 @@ -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. +Octaviz is a visualization system for octave (www.octave.org). It +consists of two major parts: -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. +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. -2. High-level functions for 2D and 3D visualization, surf, trisurf, plot3, figure, etc. +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. -The development of high-level octave functions just started. Following functions are available: +2. High-level functions for 2D and 3D visualization. The following +functions are available: -vtk_figure - creates a new figure -vtk_close - closes a figure -plot3 - Displays a set of 3D points -trisurf - Displays a triangulated surface -contour3 - Contour plot -mesh - Displays a surface as a mesh -meshc - Displays a surface as a mesh with contour plot underneath -plot3 - plots a set of 3D points -quiver3 - vector field visualization -surf - Displays a surface -surfc - Displays a surface with contour plot underneath -trimesh - Displays a triangulated mesh -vtk_eps - Saves current figure in .eps format -vtk_imshow - Displays an image -vtk_rib - Saves current figure as Renderman .RIB file -vtk_plot +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 And some demos: -demo.m - Basic demo. Displays a colored cube. -demo_old_syntax.m - Same as above with the alternative syntax -image_demo.m - Image display example (requires vtk-data) -image_demo2.m - imshow example. -somb.m - Sombrero -xyPlot.m - Example of multiple plots in a single figure -test_xy.m - Interactive 2D plot (allows interactive scaling and shifting) +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) BUILDING -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... +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... -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 (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". -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 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.) 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 @@ -78,7 +122,9 @@ - make install - make create_links -Comments, suggestions, bug repports and patches are most welcome (you can use mailing lists at SourceForge or send to dr...@us...). +Comments, suggestions, bug repports and patches are most welcome (you +can use mailing lists at SourceForge or send to +dr...@us...). Octaviz is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the |