]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1995/10/24 10:20:21 cernlib | |
6 | * Geant | |
7 | * | |
8 | * | |
9 | #include "geant321/pilot.h" | |
10 | #if defined(CERNLIB_CG) | |
11 | *CMZ : 3.21/02 29/03/94 15.41.26 by S.Giani | |
12 | *-- Author : | |
13 | SUBROUTINE GDCGWV(IWOFFS) | |
14 | ************************************************************************ | |
15 | * * | |
16 | * Name: GDCGWV extracted from CG routine CGVWIR * | |
17 | * Author: E. Chernyaev Date: 09.08.88 * | |
18 | * Revised: * | |
19 | * * | |
20 | * Function: Vizualisation of WIRE-object * | |
21 | * * | |
22 | * References: CGVHED * | |
23 | * * | |
24 | * Input: Q(JCG+IWOFFS+*) - WIRE-object * | |
25 | * Q(JCG+*) - HIDE-structure * | |
26 | * * | |
27 | * Output: none * | |
28 | * * | |
29 | * Errors: none * | |
30 | * * | |
31 | ************************************************************************ | |
32 | #include "geant321/gcbank.inc" | |
33 | #include "geant321/gcunit.inc" | |
34 | #include "geant321/cggpar.inc" | |
35 | #include "geant321/cghpar.inc" | |
36 | #include "geant321/cgctra.inc" | |
37 | #include "geant321/cgcedg.inc" | |
38 | #include "geant321/gcdraw.inc" | |
39 | * | |
40 | REAL P1(3),P2(3),AX(2),AY(2) | |
41 | * SAVE FIRST,JPOLD | |
42 | * LOGICAL FIRST | |
43 | * DATA FIRST/.TRUE./ | |
44 | *SG | |
45 | * DIMENSION TESTX(2),TESTY(2) | |
46 | *SG | |
47 | * IF(FIRST) THEN | |
48 | * JPOLD=LQ(LQ(JDRAW-3)-5) | |
49 | * FIRST=.FALSE. | |
50 | * ENDIF | |
51 | IF (Q(JCG+IWOFFS+KCGSIZ) .LE. 0.) THEN | |
52 | WRITE(CHMAIL,10000) | |
53 | GOTO 50 | |
54 | ENDIF | |
55 | IF (Q(JCG+KHSIZE) .LE. LHHEAD) THEN | |
56 | WRITE(CHMAIL,10100) | |
57 | GOTO 50 | |
58 | ENDIF | |
59 | *SG | |
60 | * Icolar is equal to 1 even if hide is off, but linbuf can be = 2 only | |
61 | * if fill area option is switched on AND hide is on. | |
62 | * | |
63 | * LINBUF=0 | |
64 | * DO 111 IJ=1,2 | |
65 | * TESTX(IJ)=0 | |
66 | * TESTY(IJ)=0 | |
67 | * 111 CONTINUE | |
68 | * LINFIL=IBITS(LINATT,17,3) | |
69 | * IF(LINFIL.GT.0)THEN | |
70 | * CALL GDRAWV(TESTX,TESTY,-1) | |
71 | * ENDIF | |
72 | *SG | |
73 | NT = Q(JCG+KHNT) | |
74 | IF (NT.LE.0 .OR. NT.GT.NTMAX) GOTO 50 | |
75 | NEDGE = Q(JCG+IWOFFS+KCGNF) | |
76 | * IF(NEDGE.EQ.0)GOTO 49 | |
77 | JXYZ1 = Q(JCG+KHJXYZ) | |
78 | JFA = Q(JCG+KHJFA) | |
79 | JPFA = Q(JCG+KHJPFA) | |
80 | JDFA = Q(JCG+KHJDFA) | |
81 | JTRE = Q(JCG+KHJTRE) | |
82 | JSTA = Q(JCG+KHJSTA) | |
83 | JALE = Q(JCG+KHJALE) | |
84 | JARI = Q(JCG+KHJARI) | |
85 | NFACE = Q(JCG+KHNFAC) | |
86 | DO 40 NE=1,NEDGE | |
87 | J = LCGHEA + (NE-1)*LCGEDG | |
88 | * IEA = Q(JCG+IWOFFS+J+KCGAE) | |
89 | P1(1) = Q(JCG+IWOFFS+J+KCGX1) | |
90 | P1(2) = Q(JCG+IWOFFS+J+KCGY1) | |
91 | P1(3) = Q(JCG+IWOFFS+J+KCGZ1) | |
92 | P2(1) = Q(JCG+IWOFFS+J+KCGX2) | |
93 | P2(2) = Q(JCG+IWOFFS+J+KCGY2) | |
94 | P2(3) = Q(JCG+IWOFFS+J+KCGZ2) | |
95 | CALL CGVEDG(NT,P1,P2,IVIS) | |
96 | IF (IVIS .LT. 0) GOTO 40 | |
97 | IF (NFACE .EQ. 0) GOTO 30 | |
98 | CALL CGVHED( Q(JCG+JXYZ1),Q(JCG+JFA),Q(JCG+JPFA), | |
99 | + Q(JCG+JDFA),Q(JCG+JTRE),Q(JCG+JSTA), | |
100 | + Q(JCG+JALE),Q(JCG+JARI)) | |
101 | * D R A W E D G E | |
102 | IF (NPART) 40 ,30 ,10 | |
103 | 10 DO 20 I=1,NPART+1 | |
104 | IF (I .EQ. 1) T1 = 0. | |
105 | IF (I .NE. 1) T1 = TEND(I-1) | |
106 | IF (I .NE. NPART+1) T2 = TSTRT(I) | |
107 | IF (I .EQ. NPART+1) T2 = 1. | |
108 | IF (T2-T1 .LT. TDEL) GOTO 20 | |
109 | AX(1) = XA + T1*XDELT | |
110 | AY(1) = YA + T1*YDELT | |
111 | AX(2) = XA + T2*XDELT | |
112 | AY(2) = YA + T2*YDELT | |
113 | * JPNOW=LQ(LQ(JDRAW-3)-5) | |
114 | * IF(JPNOW.NE.JPOLD) THEN | |
115 | * PRINT*,'JPOLD, JPNEW before 1st GDRAWV ',JPOLD,JPNEW | |
116 | * Q(JCG+100000000)=1. | |
117 | * ENDIF | |
118 | CALL GDRAWV(AX,AY,2) | |
119 | * IF(JPNOW.NE.JPOLD) THEN | |
120 | * PRINT*,'JPOLD, JPNEW after 1st GDRAWV ',JPOLD,JPNEW | |
121 | * Q(JCG+100000000)=1. | |
122 | * ENDIF | |
123 | 20 CONTINUE | |
124 | GOTO 40 | |
125 | * L I N E I S F U L L Y V I S I B L E | |
126 | 30 CONTINUE | |
127 | AX(1) = AA(1) | |
128 | AY(1) = AA(2) | |
129 | AX(2) = BB(1) | |
130 | AY(2) = BB(2) | |
131 | * IF(JPNOW.NE.JPOLD) THEN | |
132 | * PRINT*,'JPOLD, JPNEW before 2nd GDRAWV ',JPOLD,JPNEW | |
133 | * Q(JCG+100000000)=1. | |
134 | * ENDIF | |
135 | CALL GDRAWV(AX,AY,2) | |
136 | * IF(JPNOW.NE.JPOLD) THEN | |
137 | * PRINT*,'JPOLD, JPNEW after 2nd GDRAWV ',JPOLD,JPNEW | |
138 | * Q(JCG+100000000)=1. | |
139 | * ENDIF | |
140 | 40 CONTINUE | |
141 | *SG | |
142 | * IF(LINFIL.EQ.1)CALL GDRAWV(TESTX,TESTY,0) | |
143 | * 49 CONTINUE | |
144 | *SG | |
145 | 50 RETURN | |
146 | * | |
147 | 10000 FORMAT(' First word of WIRE less or equal 0 ') | |
148 | 10100 FORMAT(' N. of words of Hidden Structure less or equal 18 ') | |
149 | * | |
150 | END | |
151 | #endif |