1 package org.lcsim.recon.tracking.vsegment.transform; 2 3 import hep.physics.matrix.SymmetricMatrix; 4 import hep.physics.vec.Hep3Vector; 5 6 /** 7 * An object of this type defines a reference frame transformation in 3D space. 8 * The origins of the two frames are assumed to be at the same point. 9 * 10 * @author D.Onoprienko 11 * @version $Id: Transformation3D.java,v 1.1 2008/12/06 21:53:44 onoprien Exp $ 12 */ 13 public interface Transformation3D { 14 15 /** 16 * Returns coordinates of a point in the transformed reference frame given its 17 * coordinates in the original reference frame. 18 */ 19 public Hep3Vector transformTo(Hep3Vector vector); 20 21 /** 22 * Returns coordinates of a point in the original reference frame given its 23 * coordinates in the transformed reference frame. 24 */ 25 public Hep3Vector transformFrom(Hep3Vector vector); 26 27 /** 28 * Returns covariance matrix in the transformed reference frame given the 29 * covariance matrix in the original reference frame. 30 * Throws <tt>RuntimeException</tt> if transformed covariance matrix cannot be 31 * computed based on the original covariance matrix alone. 32 */ 33 public SymmetricMatrix transformTo(SymmetricMatrix covMatrix); 34 35 /** 36 * Returns covariance matrix in the original reference frame given the 37 * covariance matrix in the transformed reference frame. 38 * Throws <tt>RuntimeException</tt> if original covariance matrix cannot be 39 * computed based on the transformed covariance matrix alone. 40 */ 41 public SymmetricMatrix transformFrom(SymmetricMatrix covMatrix); 42 43 /** 44 * Returns covariance matrix in the transformed reference frame given the 45 * covariance matrix and position in the original reference frame. 46 */ 47 public SymmetricMatrix transformTo(SymmetricMatrix covMatrix, Hep3Vector vector); 48 49 /** 50 * Returns covariance matrix in the original reference frame given the 51 * covariance matrix and position in the transformed reference frame. 52 */ 53 public SymmetricMatrix transformFrom(SymmetricMatrix covMatrix, Hep3Vector vector); 54 55 }