Previous: hiddo Up: ../plot79_h.html Next: hidev
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)