source: trunk/documents/UserDoc/UsersGuides/ForApplicationDeveloper/html/Visualization/commandcontrol.html @ 1287

Last change on this file since 1287 was 1208, checked in by garnier, 15 years ago

CVS update

File size: 24.4 KB
Line 
1<HTML>
2<TITLE>Controlling Visualization from Commands</title>
3<BODY>
4
5<TABLE WIDTH="100%" >
6<TR>
7<TD>
8</A>
9<A HREF="index.html">
10<IMG SRC="../../../../resources/html/IconsGIF/Contents.gif" ALT="Contents" HEIGHT=16 WIDTH=59></A>
11<A HREF="visdrivers.html">
12<IMG SRC="../../../../resources/html/IconsGIF/Previous.gif" ALT="Previous" HEIGHT=16 WIDTH=59></A>
13<a href="compiledcontrol.html">
14<IMG SRC="../../../../resources/html/IconsGIF/Next.gif" ALT="Next" HEIGHT=16 WIDTH=59></a>
15</TD>
16
17<TD ALIGN="Right"><FONT COLOR="#238E23"><FONT SIZE=-1>
18<B>Geant4 User's Guide</B> <BR>
19<B>For Application Developers</B> <BR>
20<B>Visualization</B> </FONT></FONT> </TD>
21</TR>
22</TABLE>
23
24<CENTER><FONT COLOR="#238E23"><FONT SIZE=+3>
25<b>8.4 Controlling Visualization from Commands</b><BR>
26</FONT></FONT></CENTER>
27<BR>
28
29<HR ALIGN="Center" SIZE="7%"><BR>
30This section describes just a few of the more commonly used visualization commands.
31For the complete list of commands and options,
32see the <A HREF="../Control/UIcommands/_vis_.html">Control...UICommands</A> section of this user guide.
33<P>
34For simplicity, this section assumes that the
35Geant4 executable was compiled incorporating the DAWNFILE and the
36OpenGL-Xlib drivers.  For details on creating an executable for
37visualization see <a href="visexecutable.html">Section 8.2 </a>.
38<p>
39
40<h4>8.4.1 Scene, scene handler, and viewer</h4>
41In using the visualization commands, it is useful to know the concept
42of "scene", "scene handler", and "viewer".
43A "scene" is a set of visualizable raw 3D data.
44A "scene handler" is a graphics-data modeler,
45which processes raw data in a scene for later visualization.
46And a "viewer" generates images based on data processed by a scene handler.
47Roughly speaking, a set of a scene handler and a viewer
48corresponds to a visualization driver.
49
50<P>
51The steps of performing Geant4 visualization are explained below,
52though some of these steps may be done for you so that in practice you may
53use as few as just two commands (such as /vis/open OGLIX plus /vis/drawVolume)
54The seven steps of visualization are:
55:<BR>
56<BR>
57Step 1. Create a scene handler and a viewer.
58<BR>
59Step 2. Create an empty scene.
60<BR>
61Step 3. Add raw 3D data to the created scene.
62<BR>
63Step 4. Attach the current scene handler to the current scene.
64<BR>
65Step 5. Set camera parameters, drawing style (wireframe/surface), etc.
66<BR>
67Step 6. Make the viewer execute visualization.
68<BR>
69Step 7. Declare the end of visualization for flushing.
70<BR>
71<P>
72These seven steps can be controlled explicitly to create multiple scenes and multiple viewers,
73each with its own set of parameters, with easy switching from one scene to another.
74But for the most common case of just having one scene and one viewer,
75many steps are handled implicitly for you.
76<P>
77
78<h4>8.4.2 Create a scene handler and a viewer: <tt>/vis/open</tt> command</h4>
79
80Command "<tt>/vis/open</tt>" creates a scene handler and a viewer,
81which corresponds to Step 1.
82
83<UL>
84<LI><B>Command</B><BR>
85    <TT>/vis/open  [driver_tag_name]</TT>
86<LI><B>Argument</B><BR>
87    A name of (a mode of) an available visualization driver.
88<LI><B>Action</B><BR>
89     Create a visualization driver, i.e. a set of 
90     a scene hander and a viewer.
91<LI><B>Example: Create the OpenGL-Xlib driver with its immediate mode</B><BR>
92    <TT>Idle> /vis/open  OGLIX</TT>
93<LI><B>Additional notes</B>
94<BR>For immediate viewers, such as OGLIX, your geometry will immediately be
95rendered in the new GL window<BR><BR>
96<BR>How to list available driver_tag_name:<BR><BR>
97    <TT>Idle> help /vis/open</TT><BR>
98    or<BR>
99    <TT>Idle> help /vis/sceneHandler/create</TT><BR><BR>
100    The list is, for example, displayed as follows:<BR>
101    .....<BR>
102    <TT> Candidates      : DAWNFILE OGLIX OGLSX </TT><BR>
103    .....<BR>
104<LI>For additional options,
105see the <A HREF="../Control/UIcommands/_vis_.html">Control...UICommands</A> section of this user guide.
106<BR>
107</UL>
108<BR>
109
110<h4>8.4.3 Create an empty scene: <tt>/vis/scene/create</tt> command</h4>
111
112Command "<tt>/vis/scene/create</tt>" creates an empty scene,
113which corresponds to Step 2.
114
115<UL>
116<LI><B>Command</B><BR>
117    <TT>/vis/scene/create [scene_name]</TT>
118<LI><B>Argument</B><BR>
119    A name for this scene.  Created for you if you don't specify one.
120</UL>
121<BR>
122
123
124<h4>8.4.4 Visualization of a physical volume:
125             <tt>/vis/drawVolume</tt>    command </h4>
126
127Command  "<TT>/vis/drawVolume</TT>" adds a physical volume to the scene.
128It also does some of the other steps, if you haven't done them explicitly.
129It takes care of steps 2, 3, 4 and 6.
130Command "<tt>/vis/viewer/flush</tt>" should follow
131in order to do the final Step 7.
132
133<UL>
134<LI><B>Commands</B><BR>
135    <TT>/vis/drawVolume [physical-volume-name]</TT><BR>
136    <TT>.....</TT><BR>
137    <TT>Idle> /vis/viewer/flush</TT>
138<LI><B>Argument</B><BR>
139    A physical-volume name.
140    The default value is "world", which is omittable.
141<LI><B>Action</B><BR>
142      Creates a scene consisting of the given physical volume and asks the
143      current viewer to draw it. 
144      The scene becomes current.
145      Command "<tt>/vis/viewer/flush</tt>" should follow this command
146      in order to declare end of visualization.
147<LI><B>Example: Visualization of the whole world with coordinate axes</B><BR>
148    <TT>Idle> /vis/drawVolume</TT><BR>
149    <TT>Idle> /vis/scene/add/axes  0 0 0 500 mm</TT><BR>
150    <TT>Idle> /vis/viewer/flush</TT>
151</UL>
152<BR>
153
154<h4>8.4.5 Visualization of a logical volume:
155             <tt>/vis/specify </tt> command </h4>
156
157Command  "<TT>/vis/specify</TT>" visualizes a logical volume.
158If allows you to control how much details is shown and whether to show booleans, voxels and readout geometries.
159It also does some of the other steps, if you haven't done them explicitly.
160It takes care of steps 2, 3, 4 and 6.
161Command "<tt>/vis/viewer/flush</tt>" should follow the command
162in order to do the final Step 7.
163
164
165<UL>
166<LI><B>Command</B><BR>
167    <TT>/vis/specify [logical-volume-name][depth-of-descent] [booleans-flag] [voxels-flag] [readout-flag]</TT><BR>
168<LI><B>Argument</B><BR>
169    A logical-volume name.
170<LI><B>Action</B><BR>
171      Creates a scene consisting of the given logical volume and asks the
172      current viewer to draw it.
173      The scene becomes current.
174<LI><B>Example (visualization of a selected logical volume with coordinate axes)</B><BR>
175     <TT>Idle> /vis/specify  Absorber </TT><BR>
176     <TT>Idle> /vis/scene/add/axes   0 0 0 500 mm</TT><BR>
177     <TT>Idle> /vis/scene/add/text   0 0 0 mm  40 -100 -200   LogVol:Absorber </TT><BR>
178     <TT>Idle> /vis/viewer/flush</TT>
179</UL>
180For more options,
181see the <A HREF="../Control/UIcommands/_vis_.html">Control...UICommands</A> section of this user guide.
182<BR>
183
184
185<h4>8.4.6 Visualization of trajectories: <TT>/vis/scene/add/trajectories </TT> command</h4>
186
187Command  "<TT>/vis/scene/add/trajectories</TT>"
188adds trajectories to the current scene.
189Note that this automatically issues "<TT>/tracking/storeTrajectory 1</TT>" so
190that trajectories are stored (by default they are not).
191The visualization is performed with the command
192"<TT>/run/beamOn</TT>"
193unless you have non-default values for /vis/scene/endOfEventAction or /vis/scene/endOfRunAction
194(described below).
195
196
197<UL>
198<LI><B>Command</B><BR>
199    <TT>/vis/scene/add/trajectories [drawing-mode]</TT><BR>
200<LI><B>Action</B><BR>
201    The command adds trajectories to the current scene.
202    Trajectories are drawn at end of event when the scene
203    in which they are added is current.
204<LI><B>Example: Visualization of trajectories </B><BR>
205     <TT>Idle> /vis/scene/add/trajectories     </TT><BR>
206     <TT>Idle> /run/beamOn  10</TT><BR>
207<LI><B>Additional note 1</B><BR>
208See the section <A HREF="enhanceddrawing.html#commandcontrol">Enhanced Trajectory Drawing</a>
209for details on how to control how trajectories are color-coded.
210<LI><B>Additional note 2</B><BR>
211     In examples/novice/N03,
212     command "<TT>/vis/scene/add/trajectories</TT>"
213     need not be executed, since
214     the C++ method <tt>G4Trajectory::DrawTrajectory()</tt> 
215     is explicitly described in the event action.
216     Therefore the command need not be executed though (G)UI.
217</UL>
218For more options,
219see the <A HREF="../Control/UIcommands/_vis_.html">Control...UICommands</A> section of this user guide.
220<BR>
221
222<h4>8.4.7 Visualization of hits: <TT>/vis/scene/add/hits </TT> command</h4>
223
224Command  "<TT>/vis/scene/add/hits</TT>"
225adds hits to the current scene, assuming that you have a hit class and that the hits
226have visualization information.
227The visualization is performed with the command
228"<TT>/run/beamOn</TT>"
229unless you have non-default values for /vis/scene/endOfEventAction or /vis/scene/endOfRunAction
230(described above).
231
232<h4>8.4.8 HepRep Attributes for Hits</h4>
233The HepRep file formats, HepRepFile and HepRepXML, attach various attributes to hits
234such that you can view these attributes, label trajectories by these attributes
235or make visibility cuts based on these attributes.
236Examples of adding HepRep attributes to hit classes can be found in examples
237/extended/analysis/A01 and /extended/runAndEvent/RE01.
238<P>
239For example, in example RE01's class RE01CalorimeterHit.cc,
240available attributes will be:
241<UL>
242<LI>Hit Type</li>
243<LI>Track ID</li>
244<LI>Z Cell ID</li>
245<LI>Phi Cell ID</li>
246<LI>Energy Deposited</li>
247<LI>Energy Deposited by Track</li>
248<LI>Position</li>
249<LI>Logical Volume</li>
250</UL>
251You can add additional attributes of your choosing by modifying the relevant part of the hit class
252(look for the methods GetAttDefs and CreateAttValues).
253
254<h4>8.4.9 Basic camera workings: <tt>/vis/viewer/</tt> commands</tt></h4>
255
256Commands in the command directory "<tt>/vis/viewer/</tt>"
257set camera parameters and drawing style of the
258current viewer, which corresponds to Step 5.
259Note that the camera parameters and the drawing style
260should be set separately for each viewer.
261They can be initialized to the default values
262with command "<tt>/vis/viewer/reset</tt>".
263Some visualization systems, such as the VRML and HepRep browsers also allow camera control
264from the standalone graphics application.
265<P>
266Just a few of the camera commands are described here.
267For more commands,
268see the <A HREF="../Control/UIcommands/_vis_.html">Control...UICommands</A> section of this user guide.
269
270<UL>
271<LI><B>Command</B><BR>
272    <TT>/vis/viewer/set/viewpointThetaPhi [theta] [phi] [deg|rad] </TT>
273<LI><B>Arguments</B><BR>
274    Arguments "theta" and "phi" are polar and azimuthal camera angles, 
275    respectively. The default unit is "degree".
276<LI><B>Action</B><BR>
277     Set a view point in direction of (theta, phi).
278<LI><B>Example: Set the viewpoint in direction of (70 deg, 20 deg)</B><BR>
279    <TT>Idle> /vis/viewer/set/viewpointThetaPhi  70 20</TT>
280<LI><B>Additional notes</B><BR>
281    Camera parameters should be set for each viewer.
282    They are initialized with command "<tt>/vis/viewer/reset</tt>".
283</UL>
284<BR>
285
286<UL>
287<LI><B>Command</B><BR>
288    <TT>/vis/viewer/zoom  [scale_factor]</TT>
289<LI><B>Argument</B><BR>
290    The scale factor.
291    The command multiplies magnification of the view by this factor.
292<LI><B>Action</B><BR>
293     Zoom up/down of view.
294<LI><B>Example: Zoom up by factor 1.5</B><BR>
295    <TT>Idle> /vis/viewer/zoom 1.5</TT>
296<LI><B>Additional notes</B><BR>
297    Camera parameters should be set for each viewer.
298    They are initialized with command "<tt>/vis/viewer/reset</tt>".
299<BR>A similar pair of commands, scale and scaleTo allow non-uniform scaling
300(i.e., zoom differently along different axes).
301For details, see the <A HREF="../Control/UIcommands/_vis_.html">Control...UICommands</A>
302section of this user guide.
303</UL>
304<BR>
305
306<UL>
307<LI><B>Command</B><BR>
308    <TT>/vis/viewer/set/style  [style_name]</TT>
309<LI><B>Arguments</B><BR>
310    Candidate values of the argument are "wireframe" and "surface".
311    ("w" and "s" also work.)
312<LI><B>Action</B><BR>
313     Set a drawing style to wireframe or surface.
314<LI><B>Example: Set the drawing style to "surface"</B><BR>
315    <TT>Idle> /vis/viewer/set/style surface</TT>
316<LI><B>Additional notes</B><BR>
317<BR>The style of some geometry components may have been forced one way or the other through
318calls in compiled code.  The set/style command will NOT override such force styles.
319<BR>Drawing style should be set for each viewer.
320    The drawing style is initialized with
321    command "<tt>/vis/viewer/reset</tt>".
322</UL>
323<BR>
324
325
326<h4>8.4.10 Declare the end of visualization for flushing: <tt>/vis/viewer/flush</tt> command</tt></h4>
327
328<UL>
329<LI><B>Command</B><BR>
330    <TT>/vis/viewer/flush </TT><BR>
331<LI><B>Action</B><BR>
332      Declare the end of visualization for flushing.
333<LI><B>Additional notes</B><BR>
334    Command "<tt>/vis/viewer/flush</tt>" should follow
335    "<tt>/vis/drawVolume</tt>", "<tt>/vis/specify</tt>", etc in order
336    to complete visualization.
337    It corresponds to Step 7.
338<BR>
339    The flush is done automatically after every /run/beamOn command unless
340    you have non-default values for /vis/scene/endOfEventAction or /vis/scene/endOfRunAction
341    (described above).
342    </UL>
343   
344<h4>8.4.11 End of Event Action and End of Run Action: <tt>/vis/viewer/endOfEventAction</tt>
345and <tt>/vis/viewer/endOfEventAction</tt> commands</h4>
346By default, a separate picture is created for each event.
347You can change this behavior to accumulate multiple events, or even multiple runs, in a single picture.
348<UL>
349<LI><B>Command</B><BR>
350    <TT>/vis/scene/endOfEventAction [refresh|accumulate]</TT><BR>
351<LI><B>Action</B><BR>
352      Control how often the picture should be cleared.
353      <BR>
354      <tt>refresh</tt> means each event will be written to a new picture.
355      <BR>
356      <tt>accumulate</tt> means events will be accumulated into a single picture.
357      Picture will be flushed at end of run, unless you have also set
358      <tt>/vis/scene/endOfRunAction accumulate</tt>
359<LI><B>Additional note</B><BR>
360        You may instead choose to use update commands from your BeginOfRunAction or
361     EndOfEventAction, as in early examples, but now the vis manager
362     ia able to do most of what most users require through the above commands.
363</UL>
364<UL>
365<LI><B>Command</B><BR>
366    <TT>/vis/scene/endOfRunAction [refresh|accumulate]</TT><BR>
367<LI><B>Action</B><BR>
368      Control how often the picture should be cleared.
369      <BR>
370      <tt>refresh</tt> means each run will be written to a new picture.
371      <BR>
372      <tt>accumulate</tt> means runs will be accumulated into a single picture.
373      To start a new picture, you must explicitly issue
374      <tt>/vis/viewer/refresh</tt>, <tt>/vis/viewer/update</tt> or <tt>/vis/viewer/flush</tt>
375</UL>
376
377<h4>8.4.12 HepRep Attributes for Trajectories</h4>
378The HepRep file formats, HepRepFile and HepRepXML, attach various attributes to trajectories
379such that you can view these attributes, label trajectories by these attributes
380or make visibility cuts based on these attributes.
381If you use the default Geant4 trajectory class, from /tracking/src/G4Trajectory.cc,
382available attributes will be:
383<UL>
384<LI>Track ID</li>
385<LI>Parent ID</li>
386<LI>Particle Name</li>
387<LI>Charge</li>
388<LI>PDG Encoding</li>
389<LI>Momentum 3-Vector</li>
390<LI>Momentum magnitude</li>
391<LI>Number of points</li>
392</UL>
393You can add additional attributes of your choosing by modifying the relevant part of G4Trajectory
394(look for the methods GetAttDefs and CreateAttValues).
395If you are using your own trajectory class,
396you may want to consider copying these methods from G4Trajectory.
397
398<h4>8.4.13 How to save a visualized views to PostScript files</h4>
399
400 Most of the visualization drivers offer ways to save
401 visualized views to PostScript files
402 (or Encapsulated PostScript (EPS) files) by themselves.
403<P>
404 The DAWNFILE driver, which co-works with Fukui Renderer DAWN,
405 generates "vectorized"  PostScript data
406 with "analytical hidden-line/surface removal", and so it is
407 well suited for technical high-quality outputs for presentation,
408 documentation, and debugging geometry.
409 In the default setting of the DAWNFILE drivers,
410 EPS files named "<tt>g4_00.eps, g4_01.eps, g4_02.eps</tt>,..."
411 are automatically generated in the current directory
412 each time when visualization
413 is performed, and then a PostScript viewer "<tt>gv</tt>"is
414 automatically invoked to visualize the generated EPS files.
415<P>
416 For large data sets, it may take time to generate
417 the vectorized PostScript data.
418 In such a case, visualize the 3D scene with a faster visualization driver
419 beforehand for previewing, and then use the DAWNFILE drivers.
420 For example,
421 the following visualizes the whole detector with the OpenGL-Xlib driver
422 (immediate mode) first, and then with the DAWNFILE driver to generate
423 an EPS file <tt>g4_XX.eps</tt> to save the visualized view:
424<PRE>
425# Invoke the OpenGL visualization driver in its immediate mode
426/vis/open OGLIX
427
428# Camera setting
429/vis/viewer/set/viewpointThetaPhi 20 20
430
431# Camera setting
432/vis/drawVolume
433/vis/viewer/flush
434
435# Invoke the DAWNFILE visualization driver
436/vis/open DAWNFILE
437
438# Camera setting
439/vis/viewer/set/viewpointThetaPhi 20 20
440
441# Camera setting
442/vis/drawVolume
443/vis/viewer/flush
444</PRE>
445This is a good example to show that the visualization drivers
446are complementary to each other.
447<P>
448 In the OpenInventor drivers , you can simply click the "Print" button
449 on their GUI to generate a PostScript file as a hard copy of a visualized
450 view.
451<P>
452 The OpenGL-Motif driver also has a menu to generate PostScript files.
453 It can generate either vectorized or rasterized PostScript data.
454 In generating vectorized PostScript data, hidden-surface removal
455 is performed, based on the painter's algorithm after dividing facets
456 of shapes into small sub-triangles.
457<P>
458 The WIRED3 HepRep Browser and WIRED4 JAS Plug-In can generate a wide variety
459 of bitmap and vector output formats including PostScript and PDF.
460 <p>
461
462<h4>8.4.14 Culling</h4>
463
464 "Culling" means to skip visualizing parts of a 3D scene. Culling is useful
465 for avoiding complexity of visualized views, keeping transparent features
466 of the 3D scene, and for quick visualization.
467<P>
468 Geant4 Visualization supports the following 3 kinds of culling:
469 <UL>
470  <LI>Culling of invisible physical volumes</LI>
471  <LI>Culling of low density physical volumes.</LI>
472  <LI>Culling of covered physical volumes by others</LI>
473 </UL>
474 In order that one or all types of the above culling are on, i.e., activated,
475 the global culling flag should also be on.
476<P>
477 Table 8.4.1 summarizes the default culling policies.
478<p>
479 <CENTER><TABLE BORDER=2 cellpadding=8>
480 <TR>
481  <TD><B>Culling Type</B></TD>
482  <TD><B>Default Value</B></TD>
483 </TR>
484 <TR>
485  <TD>global</TD>
486  <TD align=center>ON</TD>
487 </TR>
488 <TR>
489  <TD>invisible</TD>
490  <TD align=center>ON</TD>
491 </TR>
492 <TR>
493  <TD>low density</TD>
494  <TD align=center>OFF</TD>
495 </TR>
496 <TR>
497  <TD>covered daughter</TD>
498  <TD align=center>OFF</TD>
499 </TR>
500 <tr>
501 <td align=center colspan=2>Table 8.4.1<BR>
502 The default culling policies.
503 </TABLE></CENTER>
504<p>
505 The default threshold density of the low-density culling is 0.01 g/cm<sup>3</sup>.
506<P>
507 The default culling policies can be modified with the following
508 visualization commands.
509 (Below the argument <tt>flag</tt> takes a value of <tt>true</tt> 
510 or <tt>false</tt>.)
511 <PRE>
512     # global
513     /vis/viewer/set/culling  global  flag
514
515     # invisible
516     /vis/viewer/set/culling  invisible  flag
517
518     # low density
519     #   "value" is a proper value of a treshold density
520     #   "unit" is either g/cm3, mg/cm3 or kg/m3
521     /vis/viewer/set/culling  density  flag  value  unit
522
523     # covered daughter
524     /vis/viewer/set/culling  coveredDaughters  flag     density
525 </PRE>
526<p>
527The HepRepFile graphic system will, by default, include culled objects in the file so that they can
528still be made visible later from controls in the HepRep browser.
529If this behavior would cause files to be too large, you can instead choose to have culled objects be omitted from the
530HepRep file.  See details in the HepRepFile Driver section of this user guide.
531
532<h4>8.4.15 Cut view</h4>
533<p>
534
535<h4>Sectioning</h4>
536 
537 "Sectioning" means to make a thin slice of a 3D scene around a given plane.
538 At present, this function is supported by the OpenGL drivers.
539 The sectioning is realized by setting a sectioning plane before performing visualization.
540 The sectioning plane can be set by the command,
541 <PRE>
542     /vis/viewer/set/sectionPlane on x y z units nx ny nz
543 </PRE>
544 where the vector (x,y,z) defines a point on the sectioning plane, and the
545 vector (nx,ny,nz) defines the normal vector of the sectioning plane. For
546 example, the following sets a sectioning plane to a yz plane at x = 2 cm:
547 <PRE>
548     Idle> /vis/viewer/set/sectionPlane  on  2.0  0.0  0.0  cm  1.0  0.0  0.0
549 </PRE>
550<p>
551
552<h4>Cutting away</h4>
553
554 "Cutting away" means to remove a half space, defined with a plane, from a
555 3D scene.
556
557 <ul>
558
559  <li> Cutting away is supported by the DAWNFILE driver "off-line".
560   Do the following:
561   <ul>
562    <li>Perform visualization with the DAWNFILE driver
563        to generate a file <tt>g4.prim</tt>, describing the whole 3D scene.
564    <li>Make the application "DAWNCUT" read the generated file
565        to make a view of cutting away.
566   </ul>
567   See the following WWW page for details:
568   <A HREF="http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAWNCUT.html">
569   http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAWNCUT.html</A>.
570 <p>
571 <li> Alternatively, add up to three cutaway planes:
572 <PRE>
573     /vis/viewer/addCutawayPlane 0 0 0 m 1 0 0
574     /vis/viewer/addCutawayPlane 0 0 0 m 0 1 0
575     ...
576 </PRE>
577     and, for more that one plane, you can change the mode to
578   <ul>
579    <li> (a) "add" or, equivalently, "union" (default) or
580    <li> (b) "multiply" or, equivalently, "intersection":
581   </ul>
582 <PRE>
583     /vis/viewer/set/cutawayMode multiply
584 </PRE>
585     To de-activate:
586 <PRE>
587     /vis/viewer/clearCutawayPlanes
588 </PRE>
589     OpenGL supports this feature.
590
591 </ul>
592<p>
593 
594
595<BR>
596
597
598<h4>8.4.16 Tutorial macros </h4>
599
600The followings are tutorial macros in the directory
601<tt>examples/novice/N03/visTutor/</tt>:
602
603 <UL>
604  <LI>  <A HREF="visTutor/exN03Vis0_mac.html">
605       exN03Vis0.mac:</A><BR>
606       A basic macro for visualization of detector geometry and events
607       using OpenGL in Immediate mode and DAWN.
608  <LI>  <A HREF="visTutor/exN03Vis1_mac.html">
609       exN03Vis1.mac:</A><BR>
610       A basic macro for visualization of detector geometry
611       using OpenGL in Stored mode and DAWN.
612  <LI>  <A HREF="./visTutor/exN03Vis2_mac.html">
613       exN03Vis2.mac:</A><BR>
614       A basic macro for visualization of detector geometry and events
615       using OpenGL in Stored mode and DAWN.
616  <LI>  <A HREF="./visTutor/exN03Vis3_mac.html">
617       exN03Vis3.mac:</A><BR>
618       A basic macro for demonstrating various drawing styles
619       using OpenGL in Immediate mode and DAWN.
620  <LI>  <A HREF="./visTutor/exN03Vis4_mac.html">
621       exN03Vis4.mac:</A><BR>
622       An example of visualizing specific logical volumes
623       using OpenGL in Immediate mode and DAWN.
624  <LI>  <A HREF="./visTutor/exN03Vis5_mac.html">
625       exN03Vis5.mac:</A><BR>
626       A basic macro for visualization of detector geometry and events
627       using OpenInventor on Unix.
628  <LI>  <A HREF="./visTutor/exN03Vis6_mac.html">
629       exN03Vis6.mac:</A><BR>
630       A basic macro for visualization of detector geometry and events
631       using VRML.
632  <LI>  <A HREF="./visTutor/exN03Vis7_mac.html">
633       exN03Vis7.mac:</A><BR>
634       A macro to demonstrate "batch" visualization to generate
635       PostScript files with the DAWNFILE driver
636  <LI>  <A HREF="./visTutor/exN03Vis8_mac.html">
637       exN03Vis8.mac:</A><BR>
638       A macro to demonstrate creation of a "multi-page"
639       PostScript file with the DAWNFILE driver
640  <LI>  <A HREF="./visTutor/exN03Vis9_mac.html">
641       exN03Vis9.mac:</A><BR>
642       A basic macro for visualization of detector geometry and events
643       using OpenGL for Windows.
644  <LI>  <A HREF="./visTutor/exN03Vis10_mac.html">
645       exN03Vis10.mac:</A><BR>
646       A basic macro for visualization of detector geometry and events
647       using OpenInventor on Windows.
648  <LI>  <A HREF="./visTutor/exN03Vis11_mac.html">
649       exN03Vis11.mac:</A><BR>
650       A basic macro for visualization of detector geometry and events
651       using OpenGL in Stored Motif mode and DAWN.
652  <LI>  <A HREF="./visTutor/exN03Vis12_mac.html">
653       exN03Vis12.mac</A> and <A HREF="./visTutor/exN03Vis12_loop.html">
654       exN03Vis12.loop:</A><BR>
655       A basic macro for demonstrating time slicing.
656  <LI>  <A HREF="./visTutor/exN03Vis13_mac.html">
657       exN03Vis13.mac</A> and <A HREF="./visTutor/exN03Vis13_loop.html">
658       exN03Vis13.loop:</A><BR>
659       Time development of an electrmagnetic shower.
660  <LI>  <A HREF="./visTutor/exN03Tree0_mac.html">
661       exN03Tree0.mac:</A><BR>
662       A macro to demonstrate ASCII tree.
663  <LI>  <A HREF="./visTutor/exN03Tree1_mac.html">
664       exN03Tree1.mac:</A><BR>
665       A macro to demonstrate GAG tree.
666 </UL>
667
668<HR>
669 <A HREF="compiledcontrol.html">Next section</A><BR>
670 <A HREF="index.html">Back to contents</A>
671</BODY>
672</HTML>
673
Note: See TracBrowser for help on using the repository browser.