5 * Revision 1.1.1.1 1995/10/24 10:20:27 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.27 by S.Giani
12 SUBROUTINE GDRVOL(N,NNAME,NNUMB,NRS,UTHET,UPHI,UPSI,UU0,UV0,SU,SV)
14 C. ******************************************************************
16 C. * Draws the object NNAME(N),NNUMB(N) with its contents. *
17 C. * The parameters UTHET,UPHI,...,SV are the same of GDRAW. *
18 C. * NNAME(1),...,NNAME(N) contain the volume names and *
19 C. * NNUMB(1),...,NNUMB(N) the volume numbers defining the *
20 C. * path to go from the top volume to the one to be drawn. *
22 C. * This routine differs from GDRAW in the following : *
23 C. * - the object to be drawn is identified by a full path, *
24 C. * giving so the possibility to draw a particular copy *
25 C. * or division of a volume, or even a volume that has *
26 C. * more than one mother in the geometry tree *
27 C. * - the object can be drawn either with respect to the *
28 C. * MAster Reference System (NRS=0) or with respect to its *
29 C. * Daugther Reference System; in the first case it is *
30 C. * drawn where it stands in the real world, while in *
31 C. * the second one it is drawn like GDRAW would do *
32 C. * - in this latter case, track and hit points will be *
33 C. * drawn with respect to the DRS of the volume last *
34 C. * drawn by this routine, and not with respect to the *
35 C. * MARS as it done normally; to reset to the normal *
36 C. * case a call with NRS=0 or N=0 is required *
38 C. * ==>Called by : <USER>, <GXINT> *
39 C. * Author : P.Zanarini ********** *
41 C. ******************************************************************
43 #include "geant321/gcvolu.inc"
44 #include "geant321/gcdraw.inc"
45 DIMENSION NNAME(15),NNUMB(15),GR0(10),GT0(3)
49 DATA GR0/1.,0.,0.,0.,1.,0.,0.,0.,1.,0./
52 C. ------------------------------------------------------------------
56 C Restore unitary transformation in /GCDRAW/
66 IF (N.GT.15.OR.N.LT.1) GO TO 999
68 C Save /GCVOLU/ if necessary
76 C Force GLVOLU to recompute the path
79 CALL GLVOLU(N,NNAME,NNUMB,IER)
80 IF (IER.NE.0) GO TO 90
84 C Store unitary transformation in /GCDRAW/
93 C Store N-th level transformation in /GCDRAW/
96 50 GTRAN0(I)=GTRAN(I,N)
98 60 GRMAT0(I)=GRMAT(I,N)
100 C Replace N-th level transformation with the unitary one
109 C NLEVEL < 0 to inform GDRAW that GSCVOL has already been ca
111 IF (IFCVOL.EQ.1) NLEVEL=-NLEVEL
114 CALL UHTOC(NNAME(N),4,NAME,4)
115 CALL GDRAW(NAME,UTHET,UPHI,UPSI,UU0,UV0,SU,SV)
119 IF (IFCVOL.EQ.1) THEN