/[escript]/trunk/doc/user/pyvisi.tex
ViewVC logotype

Diff of /trunk/doc/user/pyvisi.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1199 by jongui, Wed Jun 20 05:01:30 2007 UTC revision 1318 by ksteube, Wed Sep 26 04:39:14 2007 UTC
# Line 1  Line 1 
1  \chapter{The module \pyvisi}  \chapter{The Module \pyvisi}
2  \label{PYVISI CHAP}  \label{PYVISI CHAP}
3  \declaremodule{extension}{esys.pyvisi}  \declaremodule{extension}{esys.pyvisi}
4  \modulesynopsis{Python Visualization Interface}  \modulesynopsis{Python Visualization Interface}
# Line 15  with interaction capability (i.e. zoom a Line 15  with interaction capability (i.e. zoom a
15  rendered off-screen (no pop-up window) and (3) Display - object is rendered  rendered off-screen (no pop-up window) and (3) Display - object is rendered
16  on-screen but with no interaction capability (on-the-fly  on-screen but with no interaction capability (on-the-fly
17  animation). All three approaches have the option to save the rendered object  animation). All three approaches have the option to save the rendered object
18  as an image (i.e. jpg).  as an image (i.e. jpg) and subsequently converting a series of images into a
19    movie (.mpg).
20    
21  The following outlines the general steps to use Pyvisi:  The following outlines the general steps to use Pyvisi:
22    
# Line 25  rendered on. Line 26  rendered on.
26  \item Create a data input instance (i.e. \DataCollector or \ImageReader) -  \item Create a data input instance (i.e. \DataCollector or \ImageReader) -
27  reads and loads the source data for visualization.  reads and loads the source data for visualization.
28  \item Create a data visualization instance (i.e. \Map, \Velocity, \Ellipsoid,  \item Create a data visualization instance (i.e. \Map, \Velocity, \Ellipsoid,
29  \Contour, \Carpet, \StreamLine or \Image) -  proccesses and manipulates  \Contour, \Carpet, \StreamLine or \Image) -  processes and manipulates
30  the source data.  the source data.
31  \item Create a \Camera or \Light instance - controls the viewing angle and  \item Create a \Camera or \Light instance - controls the viewing angle and
32  lighting effects.  lighting effects.
33  \item Render the object - using either the Online, Offline or Display approach.  \item Render the object - using either the Online, Offline or Display approach.
34    \item Generate movie - converts a series of images into a movie.
35  \end{enumerate}  \end{enumerate}
36  \begin{center}  \begin{center}
37  \begin{math}  \begin{math}
38  scene \rightarrow data \; input \rightarrow data \; visualization \rightarrow  scene \rightarrow data \; input \rightarrow data \; visualization \rightarrow
39  camera \, / \, light \rightarrow render  camera \, / \, light \rightarrow render \rightarrow movie
40  \end{math}  \end{math}
41  \end{center}  \end{center}
42    
# Line 244  inaccurate object may be rendered from c Line 246  inaccurate object may be rendered from c
246  viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, cell_to_point = False,  viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, cell_to_point = False,
247  outline = True}  outline = True}
248  Class that shows a scalar field on a domain surface. The domain surface  Class that shows a scalar field on a domain surface. The domain surface
249  can either be colored or grey-scaled, depending on the lookup table used.  can either be color or gray-scale, depending on the lookup table used.
250  \end{classdesc}  \end{classdesc}
251    
252  The following are some of the methods available:\\  The following are some of the methods available:\\
# Line 253  Methods from \ActorThreeD and \DataSetMa Line 255  Methods from \ActorThreeD and \DataSetMa
255  A typical usage of \Map is shown below.  A typical usage of \Map is shown below.
256    
257  \begin{python}  \begin{python}
258    """
259    Author: John Ngui, john.ngui@uq.edu.au
260    """
261    
262  # Import the necessary modules.  # Import the necessary modules.
263  from esys.pyvisi import Scene, DataCollector, Map, Camera  from esys.pyvisi import Scene, DataCollector, Map, Camera
264  from esys.pyvisi.constant import *  from esys.pyvisi.constant import *
# Line 341  field clipped using a scalar value. Line 347  field clipped using a scalar value.
347  The following are some of the methods available:\\  The following are some of the methods available:\\
348  Methods from \ActorThreeD, \Clipper and \DataSetMapper.  Methods from \ActorThreeD, \Clipper and \DataSetMapper.
349    
350    \subsubsection{\MapOnScalarClipWithRotation class}
351    
352    \begin{classdesc}{MapOnScalarClipWithRotation}{scene, data_collector,
353    viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, cell_to_point = False}
354    This class works in a similar way to \Map except that it
355    shows a 2D scalar field clipped using a scalar value and subsequently
356    rotated around the z-axis to create a  3D looking effect. This class should
357    only be used with 2D data sets and NOT 3D.
358    \end{classdesc}
359    
360    The following are some of the methods available:\\
361    Methods from \ActorThreeD, \Clipper, \Rotation and \DataSetMapper.
362    
363  \subsubsection{\Velocity class}  \subsubsection{\Velocity class}
364    
365  \begin{classdesc}{Velocity}{scene, data_collector, arrow = Arrow.TWO_D,  \begin{classdesc}{Velocity}{scene, data_collector, arrow = Arrow.TWO_D,
366  color_mode = ColorMode.VECTOR, viewport = Viewport.SOUTH_WEST,    color_mode = ColorMode.VECTOR, viewport = Viewport.SOUTH_WEST,  
367  lut = Lut.COLOR, cell_to_point = False, outline = True}  lut = Lut.COLOR, cell_to_point = False, outline = True}
368  Class that shows a vector field using arrows. The arrows can either be  Class that shows a vector field using arrows. The arrows can either be
369  colored or grey-scaled, depending on the lookup table used. If the arrows  color or gray-scale, depending on the lookup table used. If the arrows
370  are colored, there are two possible coloring modes, either using vector data or  are colored, there are two possible coloring modes, either using vector data or
371  scalar data. Similarly, there are two possible types of arrows, either  scalar data. Similarly, there are two possible types of arrows, either
372  using two-dimensional or three-dimensional.  using two-dimensional or three-dimensional.
# Line 373  Methods from \ActorThreeD, \GlyphThreeD, Line 392  Methods from \ActorThreeD, \GlyphThreeD,
392  A typical usage of \VelocityOnPlaneCut is shown below.  A typical usage of \VelocityOnPlaneCut is shown below.
393    
394  \begin{python}  \begin{python}
395    """
396    Author: John Ngui, john.ngui@uq.edu.au
397    """
398    
399  # Import the necessary modules  # Import the necessary modules
400  from esys.pyvisi import Scene, DataCollector, VelocityOnPlaneCut, Camera  from esys.pyvisi import Scene, DataCollector, VelocityOnPlaneCut, Camera
401  from esys.pyvisi.constant import *  from esys.pyvisi.constant import *
# Line 388  FILE_3D = "interior_3D.xml" Line 411  FILE_3D = "interior_3D.xml"
411  IMAGE_NAME = "velocity.jpg"  IMAGE_NAME = "velocity.jpg"
412  JPG_RENDERER = Renderer.ONLINE_JPG  JPG_RENDERER = Renderer.ONLINE_JPG
413    
414  # Create a Scene with four viewports  # Create a Scene.
415  s = Scene(renderer = JPG_RENDERER, num_viewport = 1, x_size = X_SIZE,  s = Scene(renderer = JPG_RENDERER, num_viewport = 1, x_size = X_SIZE,
416          y_size = Y_SIZE)          y_size = Y_SIZE)
417    
# Line 436  Methods from \ActorThreeD, \GlyphThreeD, Line 459  Methods from \ActorThreeD, \GlyphThreeD,
459  viewport = Viewport = SOUTH_WEST, lut = Lut.COLOR, cell_to_point = False,  viewport = Viewport = SOUTH_WEST, lut = Lut.COLOR, cell_to_point = False,
460  outline = True}  outline = True}
461  Class that shows a tensor field using ellipsoids. The ellipsoids can either be  Class that shows a tensor field using ellipsoids. The ellipsoids can either be
462  colored or grey-scaled, depending on the lookup table used.  color or gray-scale, depending on the lookup table used.
463  \end{classdesc}  \end{classdesc}
464    
465  The following are some of the methods available:\\  The following are some of the methods available:\\
# Line 472  Methods from \ActorThreeD, \Sphere, \Ten Line 495  Methods from \ActorThreeD, \Sphere, \Ten
495  A typical usage of \EllipsoidOnPlaneClip is shown below.  A typical usage of \EllipsoidOnPlaneClip is shown below.
496    
497  \begin{python}  \begin{python}
498    """
499    Author: John Ngui, john.ngui@uq.edu.au
500    """
501    
502  # Import the necessary modules  # Import the necessary modules
503  from esys.pyvisi import Scene, DataCollector, EllipsoidOnPlaneClip, Camera  from esys.pyvisi import Scene, DataCollector, EllipsoidOnPlaneClip, Camera
504  from esys.pyvisi.constant import *  from esys.pyvisi.constant import *
# Line 496  dc1 = DataCollector(source = Source.XML) Line 523  dc1 = DataCollector(source = Source.XML)
523  dc1.setFileName(file_name = os.path.join(PYVISI_EXAMPLE_MESHES_PATH, FILE_3D))  dc1.setFileName(file_name = os.path.join(PYVISI_EXAMPLE_MESHES_PATH, FILE_3D))
524  dc1.setActiveTensor(tensor = TENSOR_FIELD_CELL_DATA)  dc1.setActiveTensor(tensor = TENSOR_FIELD_CELL_DATA)
525    
526  # Create a EllipsoidOnPlaneClip.  # Create an EllipsoidOnPlaneClip.
527  eopc1 = EllipsoidOnPlaneClip(scene = s, data_collector = dc1,  eopc1 = EllipsoidOnPlaneClip(scene = s, data_collector = dc1,
528          viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, cell_to_point = True,          viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, cell_to_point = True,
529          outline = True)          outline = True)
# Line 504  eopc1.setPlaneToXY() Line 531  eopc1.setPlaneToXY()
531  eopc1.setScaleFactor(scale_factor = 0.2)  eopc1.setScaleFactor(scale_factor = 0.2)
532  eopc1.rotateX(angle = 10)  eopc1.rotateX(angle = 10)
533    
534  # Create a camera.  # Create a Camera.
535  c1 = Camera(scene = s, viewport = Viewport.SOUTH_WEST)  c1 = Camera(scene = s, viewport = Viewport.SOUTH_WEST)
536  c1.bottomView()  c1.bottomView()
537  c1.azimuth(angle = -90)  c1.azimuth(angle = -90)
# Line 520  s.render(image_name = os.path.join(PYVIS Line 547  s.render(image_name = os.path.join(PYVIS
547  viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, cell_to_point = False,  viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, cell_to_point = False,
548  outline = True}  outline = True}
549  Class that shows a scalar field using contour surfaces. The contour surfaces can  Class that shows a scalar field using contour surfaces. The contour surfaces can
550  either be colored or grey-scaled, depending on the lookup table used. This  either be color or gray-scale, depending on the lookup table used. This
551  class can also be used to generate iso surfaces.  class can also be used to generate iso surfaces.
552  \end{classdesc}  \end{classdesc}
553    
# Line 530  Methods from \ActorThreeD, \ContourModul Line 557  Methods from \ActorThreeD, \ContourModul
557  A typical usage of \Contour is shown below.  A typical usage of \Contour is shown below.
558    
559  \begin{python}  \begin{python}
560    """
561    Author: John Ngui, john.ngui@uq.edu.au
562    """
563    
564  # Import the necessary modules  # Import the necessary modules
565  from esys.pyvisi import Scene, DataCollector, Contour, Camera  from esys.pyvisi import Scene, DataCollector, Contour, Camera
566  from esys.pyvisi.constant import *  from esys.pyvisi.constant import *
# Line 598  Methods from \ActorThreeD, \ContourModul Line 629  Methods from \ActorThreeD, \ContourModul
629  viewport = Viewport.SOUTH_WEST, color_mode = ColorMode.VECTOR, lut = Lut.COLOR,  viewport = Viewport.SOUTH_WEST, color_mode = ColorMode.VECTOR, lut = Lut.COLOR,
630  cell_to_point = False, outline = True}  cell_to_point = False, outline = True}
631  Class that shows the direction of particles of a vector field using streamlines.  Class that shows the direction of particles of a vector field using streamlines.
632  The streamlines can either be colored or grey-scaled, depending on the lookup  The streamlines can either be color or gray-scale, depending on the lookup
633  table used. If the streamlines are colored, there are two possible coloring  table used. If the streamlines are colored, there are two possible coloring
634  modes, either using vector data or scalar data.  modes, either using vector data or scalar data.
635  \end{classdesc}  \end{classdesc}
# Line 610  Methods from \ActorThreeD, \PointSource, Line 641  Methods from \ActorThreeD, \PointSource,
641  A typical usage of \StreamLine is shown below.  A typical usage of \StreamLine is shown below.
642    
643  \begin{python}  \begin{python}
644    """
645    Author: John Ngui, john.ngui@uq.edu.au
646    """
647    
648  # Import the necessary modules.  # Import the necessary modules.
649  from esys.pyvisi import Scene, DataCollector, StreamLine, Camera  from esys.pyvisi import Scene, DataCollector, StreamLine, Camera
650  from esys.pyvisi.constant import *  from esys.pyvisi.constant import *
# Line 639  sl1 = StreamLine(scene = s, data_collect Line 674  sl1 = StreamLine(scene = s, data_collect
674          lut = Lut.COLOR, cell_to_point = False, outline = True)          lut = Lut.COLOR, cell_to_point = False, outline = True)
675  sl1.setTubeRadius(radius = 0.02)  sl1.setTubeRadius(radius = 0.02)
676  sl1.setTubeNumberOfSides(3)  sl1.setTubeNumberOfSides(3)
677  sl1.setTubeRadiusToVaryByScalar()  sl1.setTubeRadiusToVaryByVector()
678    sl1.setPointSourceRadius(0.9)
679    
680  # Create a Camera.  # Create a Camera.
681  c1 = Camera(scene = s, viewport = Viewport.SOUTH_WEST)  c1 = Camera(scene = s, viewport = Viewport.SOUTH_WEST)
# Line 655  s.render(image_name = os.path.join(PYVIS Line 691  s.render(image_name = os.path.join(PYVIS
691  viewport = Viewport.Viewport.SOUTH_WEST, warp_mode = WarpMode.SCALAR,  viewport = Viewport.Viewport.SOUTH_WEST, warp_mode = WarpMode.SCALAR,
692  lut = Lut.COLOR, cell_to_point = False, outline = True}  lut = Lut.COLOR, cell_to_point = False, outline = True}
693  This class works in a similar way to \MapOnPlaneCut, except that it shows a  This class works in a similar way to \MapOnPlaneCut, except that it shows a
694  scalar field cut on a plane and deformated (warp) along the normal. The  scalar field cut on a plane and deformed (warped) along the normal. The
695  plane can either be colored or grey-scaled, depending on the lookup table used.  plane can either be color or gray-scale, depending on the lookup table used.
696  Similarly, the plane can be deformated either using scalar data or vector data.  Similarly, the plane can be deformed either using scalar data or vector data.
697  \end{classdesc}  \end{classdesc}
698    
699  The following are some of the methods available:\\  The following are some of the methods available:\\
# Line 666  Methods from \ActorThreeD, \Warp, \Trans Line 702  Methods from \ActorThreeD, \Warp, \Trans
702  A typical usage of \Carpet is shown below.  A typical usage of \Carpet is shown below.
703    
704  \begin{python}  \begin{python}
705    """
706    Author: John Ngui, john.ngui@uq.edu.au
707    """
708    
709  # Import the necessary modules.  # Import the necessary modules.
710  from esys.pyvisi import Scene, DataCollector, Carpet, Camera  from esys.pyvisi import Scene, DataCollector, Carpet, Camera
711  from esys.pyvisi.constant import *  from esys.pyvisi.constant import *
# Line 710  s.render(image_name = os.path.join(PYVIS Line 750  s.render(image_name = os.path.join(PYVIS
750  \begin{classdesc}{Legend}{scene, data_collector,  \begin{classdesc}{Legend}{scene, data_collector,
751  viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, legend = LegendType.SCALAR}  viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, legend = LegendType.SCALAR}
752  Class that shows a scalar field on a domain surface. The domain surface  Class that shows a scalar field on a domain surface. The domain surface
753  can either be colored or grey-scaled, depending on the lookup table used  can either be color or gray-scale, depending on the lookup table used
754  \end{classdesc}  \end{classdesc}
755    
756  The following are some of the methods available:\\  The following are some of the methods available:\\
757  Methods from \ActorThreeD, \ScalarBar and \DataSetMapper.  Methods from \ActorThreeD, \ScalarBar and \DataSetMapper.
758    
759    \subsubsection{\Rectangle class}
760    
761    \begin{classdesc}{Rectangle}{scene, viewport = Viewport.SOUTH_WEST}
762    Class that generates a rectangle box.
763    \end{classdesc}
764    
765    The following are some of the methods available:\\
766    Methods from \ActorThreeD, \CubeSource and \DataSetMapper.
767    
768  \subsubsection{\Image class}  \subsubsection{\Image class}
769    
770  \begin{classdesc}{Image}{scene, image_reader, viewport = Viewport.SOUTH_WEST}  \begin{classdesc}{Image}{scene, image_reader, viewport = Viewport.SOUTH_WEST}
# Line 731  Methods from \ActorThreeD, \PlaneSource Line 780  Methods from \ActorThreeD, \PlaneSource
780  A typical usage of \Image is shown below.  A typical usage of \Image is shown below.
781    
782  \begin{python}  \begin{python}
783    """
784    Author: John Ngui, john.ngui@uq.edu.au
785    """
786    
787  # Import the necessary modules.  # Import the necessary modules.
788  from esys.pyvisi import Scene, DataCollector, Map, ImageReader, Image, Camera  from esys.pyvisi import Scene, DataCollector, Map, ImageReader, Image, Camera
789  from esys.pyvisi import GlobalPosition  from esys.pyvisi import GlobalPosition
# Line 795  Methods from \ImageReslice and \ActorTwo Line 848  Methods from \ImageReslice and \ActorTwo
848    
849  \begin{classdesc}{Movie}{parameter_file = "make_movie"}  \begin{classdesc}{Movie}{parameter_file = "make_movie"}
850  Class that creates a file called 'make_movie' by default (if a parameter  Class that creates a file called 'make_movie' by default (if a parameter
851  file name is not speficied) which contains a list of parameters required  file name is not specified) which contains a list of parameters required
852  by the 'ppmtompeg' command to generate a movie from a series of images.  by the 'ppmtompeg' command to generate a movie from a series of images.
853  \end{classdesc}  \end{classdesc}
854    
# Line 815  Generate the movie. Line 868  Generate the movie.
868  A typical usage of \Movie is shown below.  A typical usage of \Movie is shown below.
869    
870  \begin{python}  \begin{python}
871    """
872    Author: John Ngui, john.ngui@uq.edu.au
873    """
874    
875  # Import the necessary modules.  # Import the necessary modules.
876  from esys.pyvisi import Scene, DataCollector, Map, Camera, Velocity, Legend  from esys.pyvisi import Scene, DataCollector, Map, Camera, Velocity, Legend
877  from esys.pyvisi import Movie, LocalPosition  from esys.pyvisi import Movie, LocalPosition
# Line 880  mov.makeMovie(os.path.join(PYVISI_EXAMPL Line 937  mov.makeMovie(os.path.join(PYVISI_EXAMPL
937  \subsection{Coordinate Classes}  \subsection{Coordinate Classes}
938  This subsection details the instances used to position the rendered object.  This subsection details the instances used to position the rendered object.
939    
940    \subsubsection{\LocalPosition class}
941    
942  \begin{classdesc}{LocalPosition}{x_coor, y_coor}  \begin{classdesc}{LocalPosition}{x_coor, y_coor}
943  Class that defines the local positioning (X and Y) coordinate system (2D).  Class that defines the local positioning (X and Y) coordinate system (2D).
944  \end{classdesc}  \end{classdesc}
945    
946    \subsubsection{\GlobalPosition class}
947    
948  \begin{classdesc}{GlobalPosition}{x_coor, y_coor, z_coor}  \begin{classdesc}{GlobalPosition}{x_coor, y_coor, z_coor}
949  Class that defines the global positioning (X, Y and Z) coordinate system (3D).  Class that defines the global positioning (X, Y and Z) coordinate system (3D).
950  \end{classdesc}  \end{classdesc}
# Line 898  inherited by the input (see Section \ref Line 959  inherited by the input (see Section \ref
959  visualization classes (see Section \ref{DATAVIS SEC}).  visualization classes (see Section \ref{DATAVIS SEC}).
960    
961  \subsubsection{\ActorThreeD class}  \subsubsection{\ActorThreeD class}
962    Class that defines a 3D actor. \\
963    
964  The following are some of the methods available:  The following are some of the methods available:
965    
# Line 914  Set the representation of the 3D actor t Line 976  Set the representation of the 3D actor t
976  \end{methoddesc}  \end{methoddesc}
977    
978  \subsubsection{\ActorTwoD class}  \subsubsection{\ActorTwoD class}
979    Class that defines a 2D actor. \\
980    
981  The following are some of the methods available:  The following are some of the methods available:
982    
# Line 923  corner of the window / viewport. Line 986  corner of the window / viewport.
986  \end{methoddesc}  \end{methoddesc}
987    
988  \subsubsection{\Clipper class}  \subsubsection{\Clipper class}
989    Class that defines a clipper. \\
990    
991  The following are some of the methods available:  The following are some of the methods available:
992    
# Line 939  Set the scalar clip value (instead of us Line 1003  Set the scalar clip value (instead of us
1003  \end{methoddesc}  \end{methoddesc}
1004    
1005  \subsubsection{\ContourModule class}  \subsubsection{\ContourModule class}
1006    Class that defines the contour module. \\
1007    
1008  The following are some of the methods available:  The following are some of the methods available:
1009    
# Line 950  must be equal. Line 1015  must be equal.
1015  \end{methoddesc}  \end{methoddesc}
1016    
1017  \subsubsection{\GlyphThreeD class}  \subsubsection{\GlyphThreeD class}
1018    Class that defines 3D glyphs. \\
1019    
1020  The following are some of the methods available:  The following are some of the methods available:
1021    
# Line 966  Set the 3D glyph scale factor. Line 1032  Set the 3D glyph scale factor.
1032  \end{methoddesc}  \end{methoddesc}
1033    
1034  \subsubsection{\TensorGlyph class}  \subsubsection{\TensorGlyph class}
1035    Class that defines tensor glyphs. \\
1036    
1037  The following are some of the methods available:  The following are some of the methods available:
1038    
# Line 978  Set the maximum allowable scale factor f Line 1045  Set the maximum allowable scale factor f
1045  \end{methoddesc}  \end{methoddesc}
1046    
1047  \subsubsection{\PlaneSource class}  \subsubsection{\PlaneSource class}
1048    Class that defines a plane source.  A plane source is defined by an origin
1049    and two other points, which form the axes (X and Y). \\
1050    
1051  The following are some of the methods available:  The following are some of the methods available:
1052    
# Line 990  Set the second point from the origin of Line 1059  Set the second point from the origin of
1059  \end{methoddesc}  \end{methoddesc}
1060    
1061  \subsubsection{\PointSource class}  \subsubsection{\PointSource class}
1062    Class that defines the source (location) to generate points. The points are
1063    generated within the radius of a sphere. \\
1064    
1065  The following are some of the methods available:  The following are some of the methods available:
1066    
# Line 1007  number of points, the more streamlines a Line 1078  number of points, the more streamlines a
1078  \end{methoddesc}  \end{methoddesc}
1079    
1080  \subsubsection{\Sphere class}  \subsubsection{\Sphere class}
1081    Class that defines a sphere. \\
1082    
1083  The following are some of the methods available:  The following are some of the methods available:
1084    
# Line 1019  Set the phi resolution of the sphere. Line 1091  Set the phi resolution of the sphere.
1091  \end{methoddesc}  \end{methoddesc}
1092    
1093  \subsubsection{\StreamLineModule class}  \subsubsection{\StreamLineModule class}
1094    Class that defines the streamline module. \\
1095    
1096  The following are some of the methods available:  The following are some of the methods available:
1097    
# Line 1032  goes) and backward (where the streamline Line 1105  goes) and backward (where the streamline
1105  \end{methoddesc}  \end{methoddesc}
1106    
1107  \subsubsection{\Transform class}  \subsubsection{\Transform class}
1108    Class that defines the orientation of planes. \\
1109    
1110  The following are some of the methods available:  The following are some of the methods available:
1111    
# Line 1064  Set the plane orthogonal to the y-axis. Line 1138  Set the plane orthogonal to the y-axis.
1138  \end{methoddesc}  \end{methoddesc}
1139    
1140  \subsubsection{\Tube class}  \subsubsection{\Tube class}
1141    Class that defines the tube wrapped around the streamlines. \\
1142    
1143  The following are some of the methods available:  The following are some of the methods available:
1144    
# Line 1080  Set the radius of the tube to vary by sc Line 1155  Set the radius of the tube to vary by sc
1155  \end{methoddesc}  \end{methoddesc}
1156    
1157  \subsubsection{\Warp class}  \subsubsection{\Warp class}
1158    Class that defines the deformation of a scalar field. \\
1159    
1160  The following are some of the methods available:  The following are some of the methods available:
1161    
# Line 1088  Set the displacement scale factor. Line 1164  Set the displacement scale factor.
1164  \end{methoddesc}  \end{methoddesc}
1165    
1166  \subsubsection{\MaskPoints class}  \subsubsection{\MaskPoints class}
1167    Class that defines the masking of points
1168    every n'th point.  This is useful to prevent the rendered object
1169    from being cluttered with arrows or ellipsoids. \\
1170    
1171  The following are some of the methods available:  The following are some of the methods available:
1172    
# Line 1099  Mask every n'th point. Line 1178  Mask every n'th point.
1178  Enables the randomization of the points selected for masking.  Enables the randomization of the points selected for masking.
1179  \end{methoddesc}  \end{methoddesc}
1180    
   
1181  \subsubsection{\ScalarBar class}  \subsubsection{\ScalarBar class}
1182    Class that defines a scalar bar. \\
1183    
1184  The following are some of the methods available:  The following are some of the methods available:
1185    
# Line 1137  Set the color of the scalar bar's title. Line 1216  Set the color of the scalar bar's title.
1216  \end{methoddesc}  \end{methoddesc}
1217    
1218  \subsubsection{\ImageReslice class}  \subsubsection{\ImageReslice class}
1219    Class that defines an image reslice used to resize static
1220    (no interaction capability) images (i.e. logo). \\
1221    
1222  The following are some of the methods available:  The following are some of the methods available:
1223    
# Line 1146  displays the image in its original size Line 1227  displays the image in its original size
1227  \end{methoddesc}  \end{methoddesc}
1228    
1229  \subsubsection{\DataSetMapper class}  \subsubsection{\DataSetMapper class}
1230    Class that defines a data set mapper. \\
1231    
1232  The following are some of the methods available:  The following are some of the methods available:
1233    
1234  \begin{methoddesc}[DataSetMapper]{setScalarRange}{lower_range, upper_range}  \begin{methoddesc}[DataSetMapper]{setScalarRange}{lower_range, upper_range}
1235  Set the minimum and maximium scalar range for the data set mapper. This  Set the minimum and maximum scalar range for the data set mapper. This
1236  method is called when the range has been specified by the user.  method is called when the range has been specified by the user.
1237  Therefore, the scalar range read from the source will be ignored.  Therefore, the scalar range read from the source will be ignored.
1238  \end{methoddesc}  \end{methoddesc}
1239    
1240    \subsubsection{\CubeSource class}
1241    Class that defines a cube source. The center of the cube source defines
1242    the point from which the cube is to be generated and the X, Y
1243    and Z lengths define the length of the cube from the center point. If
1244    X length is 3, then the X length to the left and right of the center
1245    point is 1.5 respectively.\\
1246    
1247    The following are some of the methods available:
1248    
1249    \begin{methoddesc}[CubeSource]{setCenter}{center}
1250    Set the cube source center.
1251    \end{methoddesc}
1252    
1253    \begin{methoddesc}[CubeSource]{setXLength}{length}
1254    Set the cube source length along the x-axis.
1255    \end{methoddesc}
1256    
1257    \begin{methoddesc}[CubeSource]{setYLength}{length}
1258    Set the cube source length along the y-axis.
1259    \end{methoddesc}
1260    
1261    \begin{methoddesc}[CubeSource]{setZLength}{length}
1262    Set the cube source length along the z-axis.
1263    \end{methoddesc}
1264    
1265    \subsubsection{\Rotation class}
1266    Class that sweeps 2D data around the z-axis to create a 3D looking effect. \\
1267    
1268    The following are some of the methods available:
1269    
1270    \begin{methoddesc}[Rotation]{setResolution}{resolution}
1271    Set the resolution of the sweep for the rotation, which controls the
1272    number of intermediate points
1273    \end{methoddesc}
1274    
1275    \begin{methoddesc}[Rotation]{setAngle}{angle}
1276    Set the angle of rotation.
1277    \end{methoddesc}
1278    
1279    
1280  % #############################################################################  % #############################################################################
1281    
1282    
# Line 1164  This section shows more examples. Line 1286  This section shows more examples.
1286  \textsf{Reading A Series of Files}  \textsf{Reading A Series of Files}
1287    
1288  \begin{python}  \begin{python}
1289    """
1290    Author: John Ngui, john.ngui@uq.edu.au
1291    """
1292    
1293  # Import the necessary modules.  # Import the necessary modules.
1294  from esys.pyvisi import Scene, DataCollector, Contour, Camera  from esys.pyvisi import Scene, DataCollector, Contour, Camera
1295  from esys.pyvisi.constant import *  from esys.pyvisi.constant import *
# Line 1195  mosc1 = Contour(scene = s, data_collecto Line 1321  mosc1 = Contour(scene = s, data_collecto
1321          outline = True)          outline = True)
1322  mosc1.generateContours(0)  mosc1.generateContours(0)
1323    
1324  # Create a second DataCollector reading from the same XML file.  # Create a second DataCollector reading from the same XML file
1325    # but specifying a different scalar field.
1326  dc2 = DataCollector(source = Source.XML)  dc2 = DataCollector(source = Source.XML)
1327  dc2.setActiveScalar(scalar = SCALAR_FIELD_POINT_DATA_2)  dc2.setActiveScalar(scalar = SCALAR_FIELD_POINT_DATA_2)
1328    
# Line 1222  for i in range(99, 104): Line 1349  for i in range(99, 104):
1349  \textsf{Manipulating A Single File with A Series of Translation}  \textsf{Manipulating A Single File with A Series of Translation}
1350    
1351  \begin{python}  \begin{python}
1352    """
1353    Author: John Ngui, john.ngui@uq.edu.au
1354    """
1355    
1356    # Import the necessary modules.
1357    from esys.pyvisi import Scene, DataCollector, MapOnPlaneCut, Camera
1358    from esys.pyvisi.constant import *
1359    import os
1360    
1361    PYVISI_EXAMPLE_MESHES_PATH = "data_meshes"
1362    PYVISI_EXAMPLE_IMAGES_PATH = "data_sample_images"
1363    X_SIZE = 400
1364    Y_SIZE = 400
1365    
1366    SCALAR_FIELD_POINT_DATA = "temperature"
1367    FILE_3D = "interior_3D.xml"
1368    IMAGE_NAME = "seriesofcuts"
1369    JPG_RENDERER = Renderer.ONLINE_JPG
1370    
1371    # Create a Scene.
1372    s = Scene(renderer = JPG_RENDERER, num_viewport = 1, x_size = X_SIZE,
1373            y_size = Y_SIZE)
1374    
1375    # Create a DataCollector reading from a XML file.
1376    dc1 = DataCollector(source = Source.XML)
1377    dc1.setFileName(file_name = os.path.join(PYVISI_EXAMPLE_MESHES_PATH, FILE_3D))
1378    dc1.setActiveScalar(scalar = SCALAR_FIELD_POINT_DATA)
1379    
1380    # Create a MapOnPlaneCut.
1381    mopc1 = MapOnPlaneCut(scene = s, data_collector = dc1,
1382            viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, cell_to_point = False,
1383            outline = True)
1384    mopc1.setPlaneToYZ(offset = 0.1)
1385    
1386    # Create a Camera.
1387    c1 = Camera(scene = s, viewport = Viewport.SOUTH_WEST)
1388    c1.isometricView()
1389    
1390    # Render the object with multiple cuts using a series of translation.
1391    for i in range(0, 5):
1392        s.render(image_name = os.path.join(PYVISI_EXAMPLE_IMAGES_PATH, IMAGE_NAME +
1393                "%02d.jpg") % i)
1394        mopc1.translate(0.6,0,0)
1395  \end{python}  \end{python}
1396    
1397  \textsf{Reading Data Directly from Escript Objects}  \textsf{Reading Data Directly from Escript Objects}
1398    
1399  \begin{python}  \begin{python}
1400    """
1401    Author: Lutz Gross, l.gross@uq.edu.au
1402    Author: John Ngui, john.ngui@uq.edu.au
1403    """
1404    
1405  # Import the necessary modules.  # Import the necessary modules.
1406  from esys.escript import *  from esys.escript import *
1407  from esys.escript.linearPDEs import LinearPDE  from esys.escript.linearPDEs import LinearPDE
# Line 1325  Keypress 's' & Modify the representation Line 1499  Keypress 's' & Modify the representation
1499  \\ \hline  \\ \hline
1500  Keypress 'w' & Modify the representation of the rendered object to wireframe.  Keypress 'w' & Modify the representation of the rendered object to wireframe.
1501  \\ \hline  \\ \hline
1502    Keypress 'r' & Reset the position of the rendered object to the center.
1503    \\ \hline
1504  \end{tabular}  \end{tabular}
1505  \caption{Useful keys}  \caption{Useful keys}
1506  \end{center}  \end{center}
# Line 1337  Keypress 'w' & Modify the representation Line 1513  Keypress 'w' & Modify the representation
1513  \newpage  \newpage
1514    
1515  \section{Sample Output}  \section{Sample Output}
1516  This section displays some of the sample output.    This section displays some of the sample output by Pyvisi.  
1517    
1518  \begin{table}[ht]  \begin{table}[ht]
1519  \begin{tabular}{c c c}  \begin{tabular}{c c c}
1520  \includegraphics[width=\thumbnailwidth]{figures/Map} &  \includegraphics[width=\thumbnailwidth]{figures/Map} &
1521  \includegraphics[width=\thumbnailwidth]{figures/MapOnPlaneCut} &  \includegraphics[width=\thumbnailwidth]{figures/MapOnPlaneCut} &
1522  \includegraphics[width=\thumbnailwidth]{figures/MapOnPlaneClip} \\  \includegraphics[width=\thumbnailwidth]{figures/MapOnPlaneClip} \\
1523  Map & MapOnPlaneCut & MapOnPlaneClip \\  Map & MapOnPlaneCut & MapOnPlaneClip \\
1524  \includegraphics[width=\thumbnailwidth]{figures/MapOnScalarClip} &  \includegraphics[width=\thumbnailwidth]{figures/MapOnScalarClip} &
1525  \includegraphics[width=\thumbnailwidth]{figures/Velocity} &  \includegraphics[width=\thumbnailwidth]{figures/MapOnScalarClipWithRotation} &
1526  \includegraphics[width=\thumbnailwidth]{figures/VelocityOnPlaneCut}  \\  \includegraphics[width=\thumbnailwidth]{figures/Velocity} \\
1527  MapOnScalarClip & Velocity & VelocityOnPlaneCut \\  MapOnScalarClip & MapOnScalarClipWithRotation & Velocity \\ \\ \\ \\
1528    \includegraphics[width=\thumbnailwidth]{figures/VelocityOnPlaneCut} &
1529  \includegraphics[width=\thumbnailwidth]{figures/VelocityOnPlaneClip} &  \includegraphics[width=\thumbnailwidth]{figures/VelocityOnPlaneClip} &
1530  \includegraphics[width=\thumbnailwidth]{figures/Ellipsoid} &  \includegraphics[width=\thumbnailwidth]{figures/Ellipsoid} \\
1531  \includegraphics[width=\thumbnailwidth]{figures/EllipsoidOnPlaneCut}  \\  VelocityOnPlaneCut & VelocityOnPlaneClip & Ellipsoid \\ \\ \\ \\
1532  VelocityOnPlaneClip & Ellipsoid & EllipsoidOnPlaneCut \\  \includegraphics[width=\thumbnailwidth]{figures/EllipsoidOnPlaneCut} &
1533  \includegraphics[width=\thumbnailwidth]{figures/EllipsoidOnPlaneClip} &  \includegraphics[width=\thumbnailwidth]{figures/EllipsoidOnPlaneClip} \\
1534  \includegraphics[width=\thumbnailwidth]{figures/Contour} &  EllipsoidOnPlaneCut & EllipsoidOnPlaneClip \\ \\ \\ \\
 \includegraphics[width=\thumbnailwidth]{figures/ContourOnPlaneCut}  \\  
 EllipsoidOnPlaneClip & Contour & ContourOnPlaneCut \\  
 \includegraphics[width=\thumbnailwidth]{figures/ContourOnPlaneClip} &  
 \includegraphics[width=\thumbnailwidth]{figures/StreamLine} &  
 \includegraphics[width=\thumbnailwidth]{figures/Carpet}  \\  
 ContourOnPlaneClip & StreamLine & Carpet \\  
1535  \end{tabular}  \end{tabular}
1536  \caption{Sample output}  \caption{Sample output}
1537  \end{table}  \end{table}
1538    
1539    \begin{table}[t]
1540    \begin{tabular}{c c c}
1541    \includegraphics[width=\thumbnailwidth]{figures/Contour} &
1542    \includegraphics[width=\thumbnailwidth]{figures/ContourOnPlaneCut} &
1543    \includegraphics[width=\thumbnailwidth]{figures/ContourOnPlaneClip} \\
1544    Contour & ContourOnPlaneCut & ContourOnPlaneClip\\ \\  
1545    \includegraphics[width=\thumbnailwidth]{figures/StreamLine} &
1546    \includegraphics[width=\thumbnailwidth]{figures/Carpet} &
1547    \includegraphics[width=\thumbnailwidth]{figures/Rectangle} \\
1548    Streamline & Carpet & Rectangle \\ \\ \\
1549    \includegraphics[width=\thumbnailwidth]{figures/Text} &
1550    \includegraphics[width=\thumbnailwidth]{figures/Logo} &
1551    \includegraphics[width=\thumbnailwidth]{figures/Image} \\
1552    Text & Logo & Image \\ \\
1553    \includegraphics[width=\thumbnailwidth]{figures/Legend} \\
1554    Legend \\ \\
1555    \end{tabular}
1556    \caption{Sample Output}
1557    \end{table}
1558    
1559    

Legend:
Removed from v.1199  
changed lines
  Added in v.1318

  ViewVC Help
Powered by ViewVC 1.1.26