h46531
s 00004/00017/00047
d D 1.3 83/03/08 20:21:58 tes 3 2
c modified axis pipeline for integer calculations
e
s 00000/00000/00064
d D 1.2 83/01/28 14:02:47 tes 2 1
c initial_internal_update
e
s 00064/00000/00000
d D 1.1 83/01/28 13:04:54 tes 1 0
c date and time created 83/01/28 13:04:54 by tes
e
u
tes
mjb
mrk
mmm
U
t
T
I 1
subroutine imove (mode, x, y)
########################################################################
#                                                                      #
#          THIS MATERIAL IS CONFIDENTIAL AND IS FURNISHED UNDER        #
#          A WRITTEN LICENSE AGREEMENT.  IT MAY NOT BE USED,           #
#          COPIED OR DISCLOSED TO OTHERS EXCEPT IN ACCORDANCE          #
#          WITH THE TERMS OF THAT AGREEMENT.                           #
#                                                                      #
#          COPYRIGHT (C) 1982 GRAPHIC SOFTWARE SYSTEMS INC.            #
#          ALL RIGHTS RESERVED.                                        #
#                                                                      #
#     Function: do a 2D absolute move                                  #
#                                                                      #
#     Input Parameters:                                                #
#            mode - 1 = Absolute,  2 = Relative                        #
#            x - x coordinate                                          #
#            y - y coordinate                                          #
#                                                                      #
#     Output Parameters:                                               #
#            none                                                      #
#                                                                      #
#     Routines Called:                                                 #
#            none                                                      #
#                                                                      #
########################################################################
integer mode
real x, y

I 3
integer dc(2)
E 3
real curx, cury
real grmnmx
D 3
integer contrl(5), opcd, intin(1), ptsout(1), intout(1)
E 3

include(`pltcom')
 
D 3
# The following equivelences were made to reduce code size:
#     contrl(1) = opcd

equivalence (contrl(OPCODE), opcd)


   if (ncount > 1)   {  # There is a pending polyline to output
      opcd = POLYLINE 
      contrl(2) = ncount    # Set the number of vertices to ncount for output
 
      call gzddop (contrl, intin, npnts, intout, ptsout)
      }

   ncount = 1  # Reset to the first point

E 3
   if (mode == ABSOLUTE)   {   # an absolute move
      curx = x
      cury = y
      }
   else  {
      curx = zxabsl + x
      cury = zyabsl + y
      }

   zxabsl = grmnmx (curx, 0.0, 1.0)  # Do some clipping
   zyabsl = grmnmx (cury, 0.0, 1.0)

D 3
   call gpn2dc (zxabsl, zyabsl, npnts)  # Convert point to 32k integer space
E 3
I 3
   call gpn2dc (zxabsl, zyabsl, dc)  # Convert point to 32k integer space
   call gpzmov (ABSOLUTE, dc(1), dc(2))

E 3
   return
end
E 1
