Cloned SEACAS for EXODUS library with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

266 lines
6.4 KiB

2 years ago
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
C NTESS, the U.S. Government retains certain rights in this software.
C
C See packages/seacas/LICENSE for details
c external cgit07
c external cgimet
character*10 met1,met2
integer mf1id, tk1id
real x(20), y(20)
integer clr(3)
integer colors(24)
character*10 text
integer lnclr(3)
integer chhit(10)
include 'cgidef.f'
c set colors up like vdi:
C Index Color RGB Values
C 0 black 0.,0.,0.
C 1 red 1.,0.,0.
C 2 green 0.,1.,0.
C 3 yellow 1.,1.,0.
C 4 blue 0.,0.,1.
C 5 magenta 1.,0.,1.
C 6 cyan 0.,1.,1.
C 7 white 1.,1.,1.
data colors / 0, 0, 0, 255, 0, 0, 0, 255, 0,
* 255, 255, 0, 0, 0, 255, 255, 0, 255,
* 0, 255, 255, 255, 255, 255 /
met1 = 'file55'
met2 = 'meta2'
c call xcact(cgimet,mf1id)
c call xcact(cgimet,mf2id)
c call xcact(cgit07,tk1id)
c call xcooff(tk1id)
c call xcooff(mf2id)
c call cesc(-28372,1,met1)
c call xcooff(mf1id)
c call xcoon(mf2id)
c call cesc(-28372,1,met2)
c call xcoon(tk1id)
c call xcoon(mf1id)
c initialize cgi
c call cesc(-28372,1,met1)
call ci(1)
call cvdcx(0., 0., 32767.,32767.)
c call cv(.5,0.,2.5,1.)
C VDC clip COFF, CON
call ccl(CON)
C viewsurface clip CDCOFF, CDCREC, CVPORT
call cdscl(CDCREC)
do 10 i=1,2
c draw some primitives in default color
c ..polylines
x(1) = 100.
x(2) = 16000.
y(1) = 16500.
y(2) = 16500.
call clnt(1)
call cpl(2,x,y)
y(1) = 20500.
y(2) = 20500.
call clnt(2)
call cpl(2,x,y)
y(1) = 24500.
y(2) = 24500.
call clnt(3)
call cpl(2,x,y)
y(1) = 28500.
y(2) = 28500.
call clnt(4)
call cpl(2,x,y)
c ..polygons
call cis(CHOLLO)
x(1) = 20000.
y(1) = 25000.
x(2) = 29000.
y(2) = 25000.
x(3) = 24500.
y(3) = 32000
x(4) = 20000.
y(4) = 25000.
call cpg(4,x,y)
x(1) = 20000.
y(1) = 23500.
x(2) = 29000.
y(2) = 23500.
x(3) = 24500.
y(3) = 16500.
x(4) = 20000.
y(4) = 23500.
call cis(CSOLID)
call cpg(4,x,y)
c ...markers
x(1) = 100.
y(1) = 100.
x(2) = 2100.
y(2) = 2100.
x(3) = 4100.
y(3) = 4100.
x(4) = 6100.
y(4) = 6100
x(5) = 8100.
y(5) = 8100.
x(6) = 10100.
y(6) = 10100.
x(7) = 12100.
y(7) = 12100.
x(8) = 14100.
y(8) = 14100.
x(9) = 16100.
y(9) = 16100.
call cpm(9,x,y)
c ...text
c ...do tektronix first, then metafile
c ...do this because cgtxx is an inquiry
c do 20 j=1,2
c if(j.eq.1)then
c call xcooff( mf1id )
c call xcooff( mf2id )
c call xcoon( tk1id )
c call xcsol( tk1id )
c call cili( CLOCAT, 1)
c else
c call xcooff( tk1id )
c call xcoon( mf1id )
c call xcoon( mf2id )
c call xcsol( mf1id )
call cili( CLOCAT, 1)
c endif
call cqchh(" ",0,1,1,istat,ntot,nlist,chhit)
text = "TEXT"
call cchh(327.)
call ctx( 17000.,100.,1,text(1:4))
call cgtxx(17000.,100.,text(1:4),ivstat,ivconc,xconc,yconc,
* p1,q1,p2,q2,p3,q3,p4,q4)
call ctx( xconc,yconc,1,text(1:4))
call cgtxx(xconc,yconc,text(1:4),ivstat,ivconc, xconc,yconc,
* p1,q1,p2,q2,p3,q3,p4,q4)
call cchh(3270.)
call ctx( xconc,yconc,1,text(1:4))
call cchh(3270.)
text = "A"
call ctx( 16500.,10000.,1,text(1:1))
call cgtxx(16500.,10000.,text(1:1),ivstat,ivconc, xconc,yconc,
* p1,q1,p2,q2,p3,q3,p4,q4)
text = "B"
call ctx( xconc,yconc,1,text(1:1))
call cgtxx(xconc,yconc,text(1:1),ivstat,ivconc, xconc,yconc,
* p1,q1,p2,q2,p3,q3,p4,q4)
text = "C"
call ctx( xconc,yconc,1,text(1:1))
call cgtxx(xconc,yconc,text(1:1),ivstat,ivconc, xconc,yconc,
* p1,q1,p2,q2,p3,q3,p4,q4)
text = "ABC"
call ctx( xconc, yconc,1,text(1:3))
call cgtxx(xconc,yconc,text(1:3),ivstat,ivconc, xconc,yconc,
* p1,q1,p2,q2,p3,q3,p4,q4)
x(1) = p1
y(1) = q1
x(2) = p2
y(2) = q2
x(3) = p3
y(3) = q3
x(4) = p4
y(4) = q4
x(5) = p1
y(5) = q1
call clnt(1)
call cpl(5,x,y)
c use request locator as a pause
call crqlc(1,1,istat,irstat,mvalid,itrig,xx,yy)
call cpds(0)
20 continue
c turn everything on
c call xcoon( tk1id )
c call xcoon( mf1id )
c call xcoon( mf2id )
c change colors
if(i.eq.1) then
c does the device support direct color
c ...do it this weird way cause i'm lazy - if one is only indexed
c color, then treat them both as indexed color
c call xcsol( tk1id )
call cqc( idum, idum, idum, idum, icmode, idum, idum, idum )
if( icmode .eq. CCLRID ) then
c call xcsol( mf1id )
call cqc( idum, idum, idum, idum, icmode, idum, idum, idum )
endif
c set direct color mode if supported, otherwise use indexed
c only set the color table for indexed color
if( icmode .eq. CCLRID ) then
call ccsm( CDRECT )
else
call ccsm( CINDEX )
call cct(0,8,colors)
endif
c ...make polylines red
if( icmode .eq. CCLRID ) then
clr(1) = 255
clr(2) = 0
clr(3) = 0
else
clr(1) = 1
endif
call clnc(clr)
call cqlna(istat,lnbi,lntyp,lwmod,lnwid,csmod,lnclr,lcmod)
c ...make polygons green
if( icmode .eq. CCLRID ) then
clr(1) = 0
clr(2) = 255
clr(3) = 0
else
clr(1) = 2
endif
call cflc(clr)
c ...make polymarkers yellow
if( icmode .eq. CCLRID ) then
clr(1) = 255
clr(2) = 255
clr(3) = 0
else
clr(1) = 3
endif
call cmkc(clr)
c ...make text blue
if( icmode .eq. CCLRID ) then
clr(1) = 0
clr(2) = 0
clr(3) = 255
else
clr(1) = 4
endif
call ctxc(clr)
endif
10 continue
call ct
c call xcdact( mf1id )
c call xcdact( mf2id )
c call xcdact( tk1id )
stop
end