CLHEP VERSION Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

Point3D.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 // $Id: Point3D.cc,v 1.3 2003/08/13 20:00:11 garren Exp $
3 // ---------------------------------------------------------------------------
4 
5 #include "CLHEP/Geometry/defs.h"
8 
9 namespace HepGeom {
10  //--------------------------------------------------------------------------
11  Point3D<float> &
13  double vx = x(), vy = y(), vz = z();
14  set(m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
15  m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
16  m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
17  return *this;
18  }
19 
20  //--------------------------------------------------------------------------
22  operator*(const Transform3D & m, const Point3D<float> & v) {
23  double vx = v.x(), vy = v.y(), vz = v.z();
24  return Point3D<float>
25  (m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
26  m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
27  m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
28  }
29 
30  //--------------------------------------------------------------------------
31  Point3D<double> &
33  double vx = x(), vy = y(), vz = z();
34  set(m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
35  m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
36  m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
37  return *this;
38  }
39 
40  //--------------------------------------------------------------------------
42  operator*(const Transform3D & m, const Point3D<double> & v) {
43  double vx = v.x(), vy = v.y(), vz = v.z();
44  return Point3D<double>
45  (m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
46  m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
47  m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
48  }
49 } /* namespace HepGeom */