1 package org.lcsim.detector;
2
3 import hep.physics.vec.Hep3Vector;
4 import hep.physics.vec.BasicHep3Vector;
5 import hep.physics.vec.VecOp;
6
7
8
9
10
11 public class Translation3D extends BasicHep3Vector implements ITranslation3D
12 {
13
14
15 public Translation3D()
16 {
17 }
18
19 public Translation3D(Hep3Vector translation)
20 {
21 this.setV(translation.x(),translation.y(),translation.z());
22 }
23
24 public Translation3D(double x, double y, double z)
25 {
26 this.setV(x,y,z);
27 }
28
29 public Hep3Vector getTranslationVector()
30 {
31 return (Hep3Vector)this;
32 }
33
34 public void setTranslationVector(Hep3Vector translation)
35 {
36 this.setV(translation.x(),translation.y(),translation.z());
37 }
38
39 public void translate(Hep3Vector coordinates)
40 {
41 Hep3Vector new_coordinates = translated(coordinates);
42 ((BasicHep3Vector)coordinates).setV(new_coordinates.x(),new_coordinates.y(),new_coordinates.z());
43 }
44
45 public Hep3Vector translated(Hep3Vector coordinates)
46 {
47 return VecOp.add(coordinates,this);
48 }
49
50 public void invert()
51 {
52 setTranslationVector(inverse().getTranslationVector());
53 }
54
55 public ITranslation3D inverse()
56 {
57 return new Translation3D(VecOp.mult(-1.0,this));
58 }
59
60 }