CLHEP 2.0.4.7 Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

Point3D.cc

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 // $Id: Point3D.cc,v 1.3 2003/08/13 20:00:11 garren Exp $
00003 // ---------------------------------------------------------------------------
00004 
00005 #include "CLHEP/Geometry/defs.h"
00006 #include "CLHEP/Geometry/Point3D.h"
00007 #include "CLHEP/Geometry/Transform3D.h"
00008 
00009 namespace HepGeom {
00010   //--------------------------------------------------------------------------
00011   Point3D<float> &
00012   Point3D<float>::transform(const Transform3D & m) {
00013     double vx = x(), vy = y(), vz = z();
00014     set(m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
00015         m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
00016         m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
00017     return *this;
00018   }
00019 
00020   //--------------------------------------------------------------------------
00021   Point3D<float>
00022   operator*(const Transform3D & m, const Point3D<float> & v) {
00023     double vx = v.x(), vy = v.y(), vz = v.z();
00024     return Point3D<float>
00025       (m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
00026        m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
00027        m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
00028   }
00029 
00030   //--------------------------------------------------------------------------
00031   Point3D<double> &
00032   Point3D<double>::transform(const Transform3D & m) {
00033     double vx = x(), vy = y(), vz = z();
00034     set(m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
00035         m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
00036         m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
00037     return *this;
00038   }
00039 
00040   //--------------------------------------------------------------------------
00041   Point3D<double>
00042   operator*(const Transform3D & m, const Point3D<double> & v) {
00043     double vx = v.x(), vy = v.y(), vz = v.z();
00044     return Point3D<double>
00045       (m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
00046        m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
00047        m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
00048   }
00049 } /* namespace HepGeom */

Generated on Thu Jul 1 22:02:30 2010 for CLHEP by  doxygen 1.4.7