source: trunk/environments/g4py/source/python/g4viscp.py

Last change on this file was 1337, checked in by garnier, 14 years ago

tag geant4.9.4 beta 1 + modifs locales

File size: 2.3 KB
Line 
1#$Id: g4viscp.py,v 1.2 2006/04/25 08:09:45 kmura Exp $
2"""
3# ==================================================================
4#   Python module
5#
6#   Visualization Control Panel
7#
8#                                              Q, 2005
9# ==================================================================
10"""
11from G4interface import *
12
13# ------------------------------------------------------------------
14# Scene
15# ------------------------------------------------------------------
16class G4Scene :
17  "Scene"
18  def __init__(self, aname, vol= "world", acopyno=0,
19               amode=0, bmode=1):
20    self.name=    aname
21    self.volume=  vol
22    self.copyno=  acopyno
23    self.mode_eventaction= amode  # 0: accumulate / 1: refresh
24    self.mode_runaction=   bmode  # 0: accumulate / 1: refresh
25    self.mode=    ("accumulate", "refresh")
26
27  def create_scene(self):
28    ApplyUICommand("/vis/scene/create " + self.name)
29    ApplyUICommand("/vis/scene/add/volume %s %d" %
30                   (self.volume, self.copyno))
31    ApplyUICommand("/vis/scene/add/trajectories")
32    self.update_scene()
33     
34  def update_scene(self):
35    ApplyUICommand("/vis/scene/select " + self.name)
36    ApplyUICommand("/vis/sceneHandler/attach")
37    ApplyUICommand("/vis/scene/endOfEventAction %s" %
38                   (self.mode[self.mode_eventaction]) )
39    ApplyUICommand("/vis/scene/endOfRunAction %s" %
40                   (self.mode[self.mode_runaction]) )
41
42# ------------------------------------------------------------------
43# Visualization Control Panel
44# ------------------------------------------------------------------
45class G4VisCP :
46  "G4 Visualization Control Panel"
47
48  def __init__(self, gsys="OGLIX"):
49    self.gsystem=    gsys   
50    self.scenelist=  [G4Scene("default")]   
51    self.viewpoint=  [270., 90.]
52
53    rc= ApplyUICommand("/vis/open " + gsys)
54    if (rc != 0):
55      return
56
57    self.scenelist[0].create_scene()
58    ApplyUICommand("/vis/viewer/set/viewpointThetaPhi %f %f"
59                   % (self.viewpoint[0], self.viewpoint[1]) )
60    ApplyUICommand("/tracking/storeTrajectory 1")
61
62  def add_scene(self, ascene):
63    self.scenelist.append(ascene)
64   
65  def select_scene(self, iscene):
66    self.scenelist[iscene].update_scene()
67    ApplyUICommand("/vis/viewer/set/viewpointThetaPhi %f %f"
68                   % (self.viewpoint[0], self.viewpoint[1]) )
69
Note: See TracBrowser for help on using the repository browser.