Fortran: 06.01.02/P09
This is Fortran source code, based on the
abstract design
for this program. You may return to the
documentation
for the module containing this program, or to the
entire hierarchical table of
topics covered by the PVT.
C *********************************************************
C * *
C * TEST NUMBER: 06.01.02/09 *
C * TEST TITLE : Visual effect of modelling *
C * transformation *
C * *
C * PHIGS Validation Tests, produced by NIST *
C * *
C *********************************************************
COMMON /GLOBNU/ CTLHND, ERRSIG, ERRFIL, IERRCT, UNERR,
1 TESTCT, IFLERR, PASSSW, ERRSW, MAXLIN,
2 CONID, MEMUN, WKID, WTYPE, GLBLUN, INDLUN,
3 DUMINT, DUMRL
INTEGER CTLHND, ERRSIG, ERRFIL, IERRCT, UNERR,
1 TESTCT, IFLERR, PASSSW, ERRSW, MAXLIN,
2 CONID, MEMUN, WKID, WTYPE, GLBLUN, INDLUN,
3 DUMINT(20), ERRIND
REAL DUMRL(20)
COMMON /GLOBCH/ PIDENT, GLBERR, TSTMSG, FUNCID,
1 DUMCH
CHARACTER PIDENT*40, GLBERR*60, TSTMSG*900, FUNCID*80,
1 DUMCH(20)*20
COMMON /DIALOG/ DOUTYP, DINTYP, DSTDNR, DSTRID, PSTRID, DTCLIM,
1 SCRMOD, DTXCI, SPECWT,
2 DSIZE, EFRAC, DYXRAT, SYXRAT, MTRPDC, WCPDC, QVIS
INTEGER DOUTYP, DINTYP, DSTDNR, DSTRID, PSTRID, DTCLIM,
1 SCRMOD, DTXCI, SPECWT
REAL DSIZE, EFRAC, DYXRAT, SYXRAT, MTRPDC, WCPDC, QVIS
C
C Aspect source
C BUNDLED INDIVIDUAL
INTEGER PBUNDL, PINDIV
PARAMETER (PBUNDL = 0, PINDIV = 1)
INTEGER IDUM1,IDUM2,IDUM3, IDUM4
INTEGER PICSTR, TXCI, NGBOX, MODTRN
REAL NOMMS, MSCF, RDUM1, RDUM2
CALL INITGL ('06.01.02/09')
CALL XPOPPH (ERRFIL, MEMUN)
C
C Set-up of workstation and dialogue area
PICSTR = 101
TXCI = 1
CALL SETDLG (PICSTR, 801,TXCI)
CALL POPST (PICSTR)
C By convention, view #1 is for picture
CALL PSVWI (1)
C Use individual attributes
CALL SETASF (PINDIV)
C Adjust polymarker size
CALL PQPMF (SPECWT, 0, ERRIND, IDUM1,IDUM2,IDUM3, NOMMS, RDUM1,
1 RDUM2, IDUM4)
CALL CHKINQ ('pqpmf', ERRIND)
MSCF = .02 / (NOMMS*WCPDC)
CALL PSMKSC (MSCF)
C Adjust polyline width
CALL PQPLF (SPECWT, 0, ERRIND, IDUM1,IDUM2,IDUM3, NOMMS, RDUM1,
1 RDUM2, IDUM4)
CALL CHKINQ ('pqplf', ERRIND)
MSCF = .01 / (NOMMS*WCPDC)
CALL PSLWSC (MSCF)
CALL PEXST (106)
CALL PEXST (102)
CALL PCLST
C *** *** *** *** *** 3D Transformations *** *** *** *** ***
CALL SETMSG ('1 8 9 15 16 17', 'The modelling coordinates of ' //
1 'a 3D polyline should be transformed into world ' //
2 'coordinates by 3D local and global modelling ' //
3 'transformation.')
NGBOX = MODTRN(3)
CALL DCHPFV ('3D MODELLING TRANSFORMATION: Which box ' //
1 'contains something other than a single ' //
2 'line segment with circled endpoints? ', 6, NGBOX)
CALL PEMST (102)
CALL PEMST (106)
C *** *** *** *** *** 2D Transformations *** *** *** *** ***
CALL SETMSG ('4 8 12 15 16 17 18', 'The modelling coordinates ' //
1 'of a 3D polyline should be transformed into ' //
2 'world coordinates by 2D local and global ' //
3 'modelling transformation.')
NGBOX = MODTRN(2)
CALL DCHPFV ('2D MODELLING TRANSFORMATION: Which box ' //
1 'contains something other than a single ' //
2 'line segment with circled endpoints? ', 6, NGBOX)
C Wrap it up.
CALL ENDIT
END