5 * Revision 1.1.1.1 1995/10/24 10:20:30 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.28 by S.Giani
12 SUBROUTINE GVIEWF(U,V,NP)
14 C. ******************************************************************
16 C. * Draw the polyline described by U and V vectors, *
19 C. * Depending on IDVIEW it draws on screen (IDVIEW=0) *
20 C. * or stores in the current view bank (IDVIEW>0). *
22 C. * In LINATT (common GCDRAW) there is *
23 C. * a bit mask for the line attributes : *
25 C. * Bit 1- 7 = Used by view bank (LENGU) *
26 C. * Bit 8-10 = Line width *
27 C. * Bit 11-13 = Line style *
28 C. * Bit 14-16 = Fill area *
29 C. * Bit 17-24 = Line color *
31 C. * ==>Called by : GDRAWV *
32 C. * Author : P.Zanarini ; S.Giani ********* *
34 C. ******************************************************************
36 #include "geant321/gcbank.inc"
37 #include "geant321/gcdraw.inc"
38 #include "geant321/gcunit.inc"
39 #include "geant321/gcflag.inc"
40 #include "geant321/gcspee.inc"
45 C. ------------------------------------------------------------------
48 C Store on view bank IDVIEW
53 10 IF (IGU.LE.MAXGU) GO TO 20
55 C Push graphic unit banks
57 IF(MORGU.EQ.0)MORGU=100
58 MORPUS=MAX(MORGU,MAXGU/4)
60 CALL MZPUSH(IXCONS,JV,0,MORPUS,'I')
61 IF(IEOTRI.NE.0)GO TO 40
64 CALL MZPUSH(IXCONS,JV,0,MORPUS,'I')
65 IF(IEOTRI.NE.0)GO TO 40
70 20 IF ((IGS+NP).LE.MAXGS) GO TO 30
72 C Push graphic segment banks
74 IF(MORGS.EQ.0)MORGS=100
75 MORPUS=MAX(MORGS,MAXGS/4,NP)
77 CALL MZPUSH(IXCONS,JV,0,MORPUS,'I')
78 IF(IEOTRI.NE.0)GO TO 40
81 CALL MZPUSH(IXCONS,JV,0,MORPUS,'I')
82 IF(IEOTRI.NE.0)GO TO 40
101 CALL UCOPY(U,Q(JV4+IGS+1),NP)
102 CALL UCOPY(V,Q(JV5+IGS+1),NP)
105 C Bit 8-24 = Line attribute
108 CALL MVBITS(LINATT,0,24,ISUM,0)
109 CALL MVBITS(NP,0,10,ISUM,0)
116 40 WRITE (CHMAIL,10000)
119 10000 FORMAT (' *** GVIEWF ***: Memory overflow in pushing a bank')