gov.nist.microanalysis.EPQLibrary
Interface ITransform

All Known Implementing Classes:
CylindricalShape, MonteCarloSS.Region, MultiPlaneShape, ShapeDifference, Sphere, SumShape

public interface ITransform

An interface for providing mechanisms for objects to rotate and translate in 3-space.

Copyright: Pursuant to title 17 Section 105 of the United States Code this software is not subject to copyright protection and is in the public domain

Company: National Institute of Standards and Technology

Version:
1.0
Author:
Nicholas W. M. Ritchie

Method Summary
 void rotate(double[] pivot, double phi, double theta, double psi)
          rotate - Rotate the object around the specified point by phi about the z-axis followed by theta round the y-axis followed by psi around the z-axis.
 void translate(double[] distance)
          translate - Translate this object by the distance specified.
 

Method Detail

rotate

void rotate(double[] pivot,
            double phi,
            double theta,
            double psi)
rotate - Rotate the object around the specified point by phi about the z-axis followed by theta round the y-axis followed by psi around the z-axis. These is the standard Euler angle rotation. The rotation matrix is...
[ cos(phi)*cos(th)*cos(psi)-sin(phi)*sin(psi) -sin(phi)*cos(th)*cos(psi)-cos(phi)*sin(psi) sin(th)*cos(psi) ]
[ sin(phi)*cos(psi)+cos(phi)*cos(th)*sin(psi) -sin(phi)*cos(th)*sin(psi)+cos(phi)*cos(psi) sin(th)*sin(psi) ]
[ -cos(phi)*sin(th) sin(th)*sin(phi) cos(th) ]

Parameters:
pivot - double[] - a three-vector specifying the point around which the rotation is performed
phi - double
theta - double
psi - double

translate

void translate(double[] distance)
translate - Translate this object by the distance specified.

Parameters:
distance - double[] - A three-vector specifying how much to translate