* * $Id$ * * $Log$ * Revision 1.1.1.1 1995/10/24 10:20:23 cernlib * Geant * * #include "geant321/pilot.h" *CMZ : 3.21/02 29/03/94 15.41.26 by S.Giani *-- Author : SUBROUTINE GDINIT C. C. ****************************************************************** C. * * C. * Initialize the drawing package * C. * * C. * ==>Called by : UGINIT * C. * Author : P.Zanarini ; S.Giani ********* * C. * * C. ****************************************************************** C. #include "geant321/gcbank.inc" #include "geant321/gcflag.inc" #include "geant321/gcdraw.inc" #include "geant321/gconsp.inc" #include "geant321/gcgobj.inc" #include "geant321/gcmutr.inc" #include "geant321/gcspee.inc" COMMON/INIFIR/NFIRST DIMENSION GR0(10),GT0(3) #if defined(CERNLIB_CG) DIMENSION V(3),T(4,3) #endif C SAVE GR0,GT0 DATA GR0/1.,0.,0.,0.,1.,0.,0.,0.,1.,0./ DATA GT0/0.,0.,0./ C. C. ------------------------------------------------------------------ C. C Initialize general drawing parameters: C C NGVIEW = Flag for GDFR3D, set to 0 if one wants GDFR3D to C compute new transformation matrix C NKVIEW = Total number of view banks C IDVIEW = Actual view bank (0 means screen) C GTHETA,GPHI,...,GSCV = Initial values for GDRAW calling parameters C GZUA,GZVA,GZUB,GZVB,GZUC,GZVC = Zoom parameters C DPERS = Distance from the center of projection C (i.e. viewing position) at Z=-DPERS C and the projection plane at Z=0 C LINBUF = Flag to determine if GDRAWV has to perform C line buffering logic (LINBUF=1) or not C IPIONS = Flag for GDFR3D, set to 1 if PIONS is used C IGMR = Flag for GDFR3D, set to 1 if APOLLO-GMR is used C IPKHIT = Flag for GPHITS (normally 0); if >0 then print only C hit nr. IPKHIT C IDRNUM = Flag for GDRAW, set to 1 when called by GDRVOL C PLTRNX = Screen and plotter X range, PLTRNX x PLTRNY cm. C PLTRNY = Screen and plotter Y range, PLTRNX x PLTRNY cm. *** RNGU1,RNGU2,RNGV1,RNGV2 = Limits of user coordinates (2D window) C IF(IFINIT(14).NE.0)RETURN IFINIT(14)=1 NFIRST=0 NGVIEW=0 NKVIEW = 0 IDVIEW= 0 GTHETA=45. GPHI=135. GPSI=0. GU0=10. GV0=10. GSCU=0.015 GSCV=0.015 SINPSI=SIN(GPSI*DEGRAD) COSPSI=COS(GPSI*DEGRAD) GZUA=1 GZVA=1 GZUB=0 GZVB=0 GZUC=0 GZVC=0 DPERS=1000 LINBUF=0 IPIONS=0 IGMR=0 IPKHIT=0 IDRNUM=0 PLTRNX=20. PLTRNY=20. C C LINATT = Current line attributes C LINATP = Permanent line attributes C ITXATT = Current text attributes C LINCOL=1 LINWID=1 LINSTY=1 LINFIL=0 LEP=1 C LINATT=0 CALL MVBITS(LINCOL,0,8,LINATT,16) CALL MVBITS(LINWID,0,3,LINATT,7) CALL MVBITS(LINSTY,0,3,LINATT,10) CALL MVBITS(LINFIL,0,3,LINATT,13) C LINATP=LINATT C ITXWID=1 ITXCOL=1 C ITXATT=0 CALL MVBITS(ITXWID,0,3,ITXATT,0) CALL MVBITS(ITXCOL,0,4,ITXATT,3) C C Initialize drawing options: C C ITR3D = Flag for GDFR3D : ITR3D=0 for standard projection, C ITR3D <> 0 for rotation + projection i.e. R-Z projection C (refer to the header comments of GDFR3D C to have a detailed explanation of the steps C from 3D to 2D) C C ITHRZ = Flag for GDHITS/GDCXYZ/GDXYZ : if not set to 'OFF ' all t C hits and tracks drawing routines will apply an R-Z C projection in case of SIDE or TOP view C C IOBJ = Type of object being currently drawn : C C 1 : VOLUME C 2 : TRACK C 3 : HIT C 0 : None or any other object (axes,header,text,etc.) C C IPRJ = Flag for GDFR3D : C C 'PARA' : Ortographic parallel projection (default) C 'PERS' : Perspective projection C C ITRKOP = Flag for GDXYZ : C C 'LINE' : Lines joining track points are drawn C 'POIN' : Only the track points are drawn C ITR3D=0 CALL UCTOH('OFF ',ITHRZ,4,4) IOBJ=0 CALL UCTOH('PARA',IPRJ,4,4) CALL UCTOH('LINE',ITRKOP,4,4) CALL UCTOH('OFF ',IHIDEN,4,4) C C Initialize Color look up table C DO 10 I=1,16 10 LOOKTB(I)=I C C Define tree parameters: C C NWCUT = Max words allocated to be used by the cut routines C NWCUT=5000 C C Initialize to unitary transformation C DO 20 I=1,3 20 GTRAN0(I)=GT0(I) DO 30 I=1,10 30 GRMAT0(I)=GR0(I) C C Set display and user coordinate systems C CALL ISWN(1,0.,PLTRNX,0.,PLTRNY) CALL ISVP(1,0.,1.,0.,1.) CALL IGSET('TXFP',-61.) CALL IGRNG(PLTRNX,PLTRNY) CALL IGSA(0) *JS * * Setting the Viewing parameters to THETA =0., PHI=0., PSI=0. * #if defined(CERNLIB_CG) NCVOLS=0 NSHIFT=0 KSHIFT=0 IHOLE=0 CGXMIN=-10000. CGXMAX=-9999. CGYMIN=-10000. CGYMAX=-9999. CGZMIN=-10000. CGZMAX=-9999. V(1)=0. V(2)=0. V(3)=0. CALL GDCGVW(V,T) CALL CGTSET(NTRCG,T,IREP) #endif *JS C C Book JDRAW structure for view banks C IF (JDRAW.LE.0) CALL MZBOOK(IXCONS,JDRAW,JDRAW,1,'DRAW',0,0,0,3,0) C END