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.
 
 
 
 
 
 

53 lines
1.6 KiB

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=======================================================================
SUBROUTINE ROTEYE (EYE, ROTCEN, ROTMAT, *)
C=======================================================================
C --*** ROTEYE *** (MESH) Get rotation matrix from eye position
C -- Written by Amy Gilkey - revised 10/21/86
C --
C --ROTEYE derives the rotation matrix from the given eye position.
C --Rotation matrix gives an X rotation followed by a Y rotation.
C --
C --Parameters:
C -- EYE - IN - the eye position
C -- ROTCEN - IN - the center of rotation
C -- ROTMAT - OUT - the rotation matrix
C -- * - return statement if error in eye position
REAL EYE(3)
REAL ROTCEN(3)
REAL ROTMAT(3,3)
X = EYE(1) - ROTCEN(1)
Y = EYE(2) - ROTCEN(2)
Z = EYE(3) - ROTCEN(3)
VMAG1 = SQRT (Y*Y + Z*Z)
VMAG2 = SQRT (X*X + Y*Y + Z*Z)
IF (VMAG1 .EQ. 0.0) GOTO 100
COS1 = Z / VMAG1
SIN1 = Y / VMAG1
COS2 = VMAG1 / VMAG2
SIN2 = -X / VMAG2
ROTMAT(1,1) = COS2
ROTMAT(2,1) = SIN1 * SIN2
ROTMAT(3,1) = COS1 * SIN2
ROTMAT(1,2) = 0.0
ROTMAT(2,2) = COS1
ROTMAT(3,2) = - SIN1
ROTMAT(1,3) = - SIN2
ROTMAT(2,3) = SIN1 * COS2
ROTMAT(3,3) = COS1 * COS2
RETURN
100 CONTINUE
CALL PRTERR ('CMDERR', 'Eye cannot be exactly on center')
RETURN 1
END