Previous: hiddo Up: ../plot79_h.html Next: hidev


HIDDOS

       SUBROUTINE  HIDDOS (Z0, Z1,S1,S2,Z2, MX,MY, NX,NY, LX,LY, S,
      X                   T, SEP, BR, PL2)
 C$    (Double Surface - Stereo)
 C$    Make  a  stereo   hidden-line  drawing   of  two   possibly
 C$    intersecting surfaces, hiding those  parts of each  surface
 C$    which are covered by the other.
 C$
 C$    Z0......Cutoff value.  Only function values, S*(I,J), above
 C$            (S .GT. 0.0) or below (S .LT. 0) Z0 are visible.
 C$    S1,S2...Arrays containing the two surfaces.  S*(I,J) =
 C$            F(X(I),Y(J)), where X(I) = (I-1)*DX and Y(J) =
 C$            (J-1)*DY both map onto the interval 0..1.
 C$    Z1,Z2...Span of surface values.
 C$    MX,MY...Actual declared dimensions of the arrays S1(*,*)
 C$            and S2(*,*).
 C$    NX,NY...Sections of S1(*,*) and S2(*,*) actually used.
 C$    LX,LY...Increments in X and Y directions (.GT. 0).   Values
 C$            of LX and LY larger  than 1 produce a coarser  mesh
 C$            on the drawing without losing the smoothness of the
 C$            complete surface.  LX should be an integral divisor
 C$            of NX-1, and LY of NY-1.  If this is not the  case,
 C$            the  next  smallest  value  which  satisfies   this
 C$            requirement is used internally.
 C$    S.......=+1.0, graph positive part of function,
 C$            =-1.0, graph negative part of function,
 C$            = 0.0, graph both positive and negative parts.
 C$            If S = 0.0, the cutoff value Z0 has no effect.
 C$    T(4,4)..4-D  transformation matrix  defining orientation of
 C$            the surfaces.  The  window coordinates  of a  point
 C$            (X,Y,Z,1.0) are (U,V,W,H) =  (X,Y,Z,1.0) T.  X,  Y,
 C$            and Z  are computed  in the  range 0..1,  and Z  is
 C$            obtained from the  function values  by scaling  the
 C$            range Z1..Z2  onto  0..1.   A  point  (U,V,W,H)  is
 C$            visible if U/H, V/H, and W/H lie in the range 0..1.
 C$    SEP.....Separation  option  (.TRUE. =  yes,  .FALSE. = no).
 C$            When separation is requested, the upper horizon  is
 C$            elevated from the lower  horizon, and the  vertical
 C$            and horizontal coordinates are rescaled to maintain
 C$            correct   proportions.    The   scale   factor   is
 C$            1-ABS(T(2,2)), and best  results are obtained  when
 C$            T(2,2) lies in the approximate range -0.4..+0.4.
 C$    BR......Bounding routine, normally VISTW or VISSB.
 C$    PL2.....2-D pen movement subroutine, normally PL2CA.
 C$
 C$    (07-JUN-85)