*
* $Id$
*
* $Log$
* Revision 1.1  1995/10/24 10:20:45  cernlib
* Initial revision
*
*
#include "geant321/pilot.h"
*CMZ :  3.21/02 29/03/94  15.41.32  by  S.Giani
*-- Author :
      SUBROUTINE GPASET(PAR)
C-
C-   Created  12-JUN-1991   Nils Joar Hoimyr
C-   Modified 21.02.1992  Jouko Vuoskoski
C-
C-  Calculates the coordinates of the corner points of a GEANT PARA  shape
C-  from the shape parameters.   The end faces are generated by drawing
C-  connected polylines between the corner points at each Z-end of the shape.
C-  A ruled solid is then defined between the 2 faces, and written out in SET.
C---------------------------------------------------------
C
#include "geant321/gcsetf.inc"
 
C
      DIMENSION PAR(50)
      REAL P1X,P1Y,P1Z,P2X,P2Y,P2Z,P3X,P3Y,P3Z,P4X,P4Y,P4Z
      REAL P5X,P5Y,P5Z,P6X,P6Y,P6Z,P7X,P7Y,P7Z,P8X,P8Y,P8Z
 
C
C----------------------------------------------------------------------
C
      DX=PAR(1)
      DY=PAR(2)
      DZ=PAR(3)
      TXY=PAR(4)
      TXZ=PAR(5)
      TYZ=PAR(6)
C       Calculation of corner points (verify PHI/THETA coordinates,
C       I.e. TXZ AND TYZ should possibly change place)
C
C       FACE 1:
      P1X= -DX*COS(TYZ)-DY*SIN(TXY)
      P1Y= -DY*COS(TXY)
      P1Z= -DZ*COS(TXZ)-DY*SIN(TXY)
C
      P2X= DX*COS(TYZ)-DY*SIN(TXY)
      P2Y= -DY*COS(TXY)
      P2Z= -DZ*COS(TXZ)-DY*SIN(TXY)
C
      P3X= DX*COS(TYZ)-DY*SIN(TXY)
      P3Y= DY*COS(TXY)
      P3Z= -DZ*COS(TXZ)+DY*SIN(TXY)
C
      P4X= DX*COS(TYZ)-DY*SIN(TXY)
      P4Y= DY*COS(TXY)
      P4Z= -DZ*COS(TXZ)+DY*SIN(TXY)
C
C      FACE 2:
C
      P5X= -DX*COS(TYZ)+DY*SIN(TXY)
      P5Y= -DY*COS(TXY)
      P5Z= DZ*COS(TXZ)-DY*SIN(TXY)
C
      P6X= DX*COS(TYZ)+DY*SIN(TXY)
      P6Y= -DY*COS(TXY)
      P6Z= DZ*COS(TXZ)-DY*SIN(TXY)
C
      P7X= DX*COS(TYZ)+DY*SIN(TXY)
      P7Y= DY*COS(TXY)
      P7Z= DZ*COS(TXZ)+DY*SIN(TXY)
C
      P8X= -DX*COS(TYZ)+DY*SIN(TXY)
      P8Y= DY*COS(TXY)
      P8Z= DZ*COS(TXZ)+DY*SIN(TXY)
C
C       DESCRIBED BY 2 FACES represented by polylines
C       connected by the corners of the shape.
C *WRITE SET@103,F1#3,3,2,P1X,P1Y,P1Z,P2X,P2Y,P2Z,P3X,P3Y,P3Z,P4X,P4Y,P4Z
C *WRITE SET@103,F2#3,3,2,P5X,P5Y,P5Z,P6X,P6Y,P6Z,P7X,P7Y,P7Z,P8X,P8Y,P8Z
C *WRITE SET @100,N#145,!F1,!F2
C
C----------------------------------------------------------------------
C
      WRITE(BLKSTR,10000)N1,P1X,P1Y,P1Z,P2X,P2Y,P2Z, P3X,P3Y,P3Z,P4X,
     +P4Y,P4Z
      CALL GJWRIT
      N1=N1+1
      WRITE(BLKSTR,10000)N1,P5X,P5Y,P5Z,P6X,P6Y,P6Z, P7X,P7Y,P7Z,P8X,
     +P8Y,P8Z
      CALL GJWRIT
      N1=N1+1
      WRITE(BLKSTR,10100)N1,N1-2,N1-1
      CALL GJWRIT
C
10000   FORMAT('@103,',I10,',:5,2#3,3,2,',G14.7,',',G14.7,','
     +  ,G14.7,',',G14.7,',',G14.7,',',G14.7,',',G14.7,','
     +  ,G14.7,',',G14.7,',',G14.7,',',G14.7,',',G14.7)
10100   FORMAT('@100,',I10,',:5,2#145,!',I10,',!',I10)
C
      END
