]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gdraw/gdshif.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / gdraw / gdshif.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:20:28 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.27 by S.Giani
11*-- Author :
12*
13 SUBROUTINE GDSHIF(IVOLNA,ICPOIN)
14*
15* This subroutine allows to shift volumes in a more visible
16* place just for drawing, without alterating the data structure,
17* but perfectly simulating it.
18*
19#include "geant321/gcbank.inc"
20#include "geant321/gcunit.inc"
21#include "geant321/gcvolu.inc"
22#include "geant321/gcgobj.inc"
23*SG
24#include "geant321/gcmutr.inc"
25#include "geant321/gcdraw.inc"
26#include "geant321/gchiln.inc"
27#include "geant321/gcspee.inc"
28*SG
29 COMMON /QUEST/IQUEST(100)
30*SG
31 SAVE IOLDVO
32 DATA IOLDVO/0/
33*
34* Shifting object
35 IF(KSHIFT.EQ.2)THEN
36 DO 333 IJ=1,100
37 IF(IVOLNA.EQ.IVECVO(IJ))GOTO 554
38 IF(IVECVO(IJ).EQ.0)THEN
39 IVECVO(IJ)=IVOLNA
40 GOTO 334
41 ENDIF
42 333 CONTINUE
43 ENDIF
44 334 CONTINUE
45 IF(KSHIFT.GT.0)THEN
46 IF(ISUBLI.EQ.1.AND.NIET.EQ.1)THEN
47 NIET=1
48 CALL CGSHIF(PORGX,PORGY,PORGZ,
49 + Q(ICPOIN))
50 IF(IVOLNA.EQ.IOLDVO)GOTO 554
51 GOTO 54
52 ENDIF
53 IF(ISUBLI.EQ.1.AND.NIET.EQ.2.AND.IVOOLD.NE.0)THEN
54 NIET=1
55 IF(IVOLNA.EQ.IOLDVO)THEN
56 CALL CGSHIF(PORGX,PORGY,PORGZ,
57 + Q(ICPOIN))
58 GOTO 554
59 ENDIF
60 DO 77 I=1,15
61 IF((NLEVEL-I).GT.0)THEN
62 IF(POX(NLEVEL-I).NE.0.OR.POY(NLEVEL-I).NE.0.OR.
63 + POZ(NLEVEL-I).NE.0)THEN
64 PORGX=POX(NLEVEL-I)
65 PORGY=POY(NLEVEL-I)
66 PORGZ=POZ(NLEVEL-I)
67 GOTO 777
68 ENDIF
69 ELSE
70 PORGX=0.
71 PORGY=0.
72 PORGZ=0.
73 POX(NLEVEL)=0.
74 POY(NLEVEL)=0.
75 POZ(NLEVEL)=0.
76 GOTO 777
77 ENDIF
78 77 CONTINUE
79 777 CONTINUE
80 CALL CGSHIF(PORGX,PORGY,PORGZ,
81 + Q(ICPOIN))
82 GOTO 54
83 ENDIF
84 IF(NIET.EQ.0.AND.IVOLNA.EQ.IOLDVO)GOTO 554
85 NIET=0
86 54 CONTINUE
87 DO 553 KHHH=MULTRA,1,-1
88 CALL UCTOH(GNVNV(KHHH),IVN,4,4)
89 IF(IVN.EQ.IVOLNA)THEN
90 NIET=1
91 CALL CGSHIF(GXXXX(KHHH),GYYYY(KHHH),GZZZZ(KHHH),
92 + Q(ICPOIN))
93 IF(IVOLNA.NE.IOLDVO)THEN
94 POX(NLEVEL)=PORGX+GXXXX(KHHH)
95 POY(NLEVEL)=PORGY+GYYYY(KHHH)
96 POZ(NLEVEL)=PORGZ+GZZZZ(KHHH)
97 PORGX=PORGX+GXXXX(KHHH)
98 PORGY=PORGY+GYYYY(KHHH)
99 PORGZ=PORGZ+GZZZZ(KHHH)
100 ENDIF
101 IVOOLD=IVOLNA
102 IOLDVO=IVOLNA
103 GOTO 554
104 ENDIF
105 553 CONTINUE
106 IOLDVO=IVOLNA
107 ENDIF
108 554 CONTINUE
109 999 END
110
111