gov.nist.microanalysis.NISTMonte
Class ShapeDifference

java.lang.Object
  extended by gov.nist.microanalysis.NISTMonte.ShapeDifference
All Implemented Interfaces:
ITransform, MonteCarloSS.Shape

public class ShapeDifference
extends java.lang.Object
implements MonteCarloSS.Shape, ITransform

Implements the MonteCarloSS.Shape interface to define a Shape that represents the volume in the primary Shape that is not within the volume of the delta Shape. Creates a Shape by removing one Shape from another. ShapeDifference does not implement TrajectoryVRML.IRender as it is hard to imagine how to do this in a reasonably simple manner.

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

Constructor Summary
ShapeDifference(MonteCarloSS.Shape primary, MonteCarloSS.Shape delta)
          MCSS_ShapeDifference - Create a Shape that represents the the primary Shape minus any overlapping regions in the delta Shape.
 
Method Summary
 boolean contains(double[] pos)
          contains - See MonteCarloSS.contains
 double getFirstIntersection(double[] pos0, double[] pos1)
          getFirstIntersection - See MonteCarloSS.getFirstIntersection.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ShapeDifference

public ShapeDifference(MonteCarloSS.Shape primary,
                       MonteCarloSS.Shape delta)
MCSS_ShapeDifference - Create a Shape that represents the the primary Shape minus any overlapping regions in the delta Shape.

Parameters:
primary - Shape
delta - Shape
Method Detail

contains

public boolean contains(double[] pos)
contains - See MonteCarloSS.contains

Specified by:
contains in interface MonteCarloSS.Shape
Parameters:
pos - double[]
Returns:
boolean

getFirstIntersection

public double getFirstIntersection(double[] pos0,
                                   double[] pos1)
getFirstIntersection - See MonteCarloSS.getFirstIntersection.

Specified by:
getFirstIntersection in interface MonteCarloSS.Shape
Parameters:
pos0 - double[]
pos1 - double[]
Returns:
double

rotate

public void rotate(double[] pivot,
                   double phi,
                   double theta,
                   double psi)
Description copied from interface: ITransform
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) ]

Specified by:
rotate in interface ITransform
Parameters:
pivot - double[] - a three-vector specifying the point around which the rotation is performed
phi - double
theta - double
psi - double

translate

public void translate(double[] distance)
Description copied from interface: ITransform
translate - Translate this object by the distance specified.

Specified by:
translate in interface ITransform
Parameters:
distance - double[] - A three-vector specifying how much to translate