]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/gdraw/gdcgwv.F
Fix needed on Sun and Alpha
[u/mrichter/AliRoot.git] / GEANT321 / gdraw / gdcgwv.F
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