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