Geant4 Cross Reference |
1 // -*- C++ -*- 1 // -*- C++ -*- >> 2 // $Id:$ 2 // ------------------------------------------- 3 // --------------------------------------------------------------------------- 3 4 4 #include "CLHEP/Geometry/Normal3D.h" 5 #include "CLHEP/Geometry/Normal3D.h" 5 #include "CLHEP/Geometry/Transform3D.h" 6 #include "CLHEP/Geometry/Transform3D.h" 6 7 7 namespace HepGeom { 8 namespace HepGeom { 8 //------------------------------------------ 9 //-------------------------------------------------------------------------- 9 Normal3D<float> & 10 Normal3D<float> & 10 Normal3D<float>::transform(const Transform3D 11 Normal3D<float>::transform(const Transform3D & m) { 11 double vx = x(), vy = y(), vz = z(); 12 double vx = x(), vy = y(), vz = z(); 12 double xx = m.xx(), xy = m.xy(), xz = m.xz 13 double xx = m.xx(), xy = m.xy(), xz = m.xz(); 13 double yx = m.yx(), yy = m.yy(), yz = m.yz 14 double yx = m.yx(), yy = m.yy(), yz = m.yz(); 14 double zx = m.zx(), zy = m.zy(), zz = m.zz 15 double zx = m.zx(), zy = m.zy(), zz = m.zz(); 15 set((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx* 16 set((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*zy-yy*zx)*vz, 16 (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy* 17 (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy*xx)*vz, 17 (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy* 18 (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy*yx)*vz); 18 return *this; 19 return *this; 19 } 20 } 20 21 21 //------------------------------------------ 22 //-------------------------------------------------------------------------- 22 Normal3D<float> 23 Normal3D<float> 23 operator*(const Transform3D & m, const Norma 24 operator*(const Transform3D & m, const Normal3D<float> & v) { 24 double vx = v.x(), vy = v.y(), vz = v.z( 25 double vx = v.x(), vy = v.y(), vz = v.z(); 25 double xx = m.xx(), xy = m.xy(), xz = m.xz 26 double xx = m.xx(), xy = m.xy(), xz = m.xz(); 26 double yx = m.yx(), yy = m.yy(), yz = m.yz 27 double yx = m.yx(), yy = m.yy(), yz = m.yz(); 27 double zx = m.zx(), zy = m.zy(), zz = m.zz 28 double zx = m.zx(), zy = m.zy(), zz = m.zz(); 28 return Normal3D<float> 29 return Normal3D<float> 29 ((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*z 30 ((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*zy-yy*zx)*vz, 30 (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*x 31 (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy*xx)*vz, 31 (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*y 32 (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy*yx)*vz); 32 } 33 } 33 34 34 //------------------------------------------ 35 //-------------------------------------------------------------------------- 35 Normal3D<double> & 36 Normal3D<double> & 36 Normal3D<double>::transform(const Transform3 37 Normal3D<double>::transform(const Transform3D & m) { 37 double vx = x(), vy = y(), vz = z(); 38 double vx = x(), vy = y(), vz = z(); 38 double xx = m.xx(), xy = m.xy(), xz = m.xz 39 double xx = m.xx(), xy = m.xy(), xz = m.xz(); 39 double yx = m.yx(), yy = m.yy(), yz = m.yz 40 double yx = m.yx(), yy = m.yy(), yz = m.yz(); 40 double zx = m.zx(), zy = m.zy(), zz = m.zz 41 double zx = m.zx(), zy = m.zy(), zz = m.zz(); 41 set((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx* 42 set((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*zy-yy*zx)*vz, 42 (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy* 43 (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy*xx)*vz, 43 (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy* 44 (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy*yx)*vz); 44 return *this; 45 return *this; 45 } 46 } 46 47 47 //------------------------------------------ 48 //-------------------------------------------------------------------------- 48 Normal3D<double> 49 Normal3D<double> 49 operator*(const Transform3D & m, const Norma 50 operator*(const Transform3D & m, const Normal3D<double> & v) { 50 double vx = v.x(), vy = v.y(), vz = v.z( 51 double vx = v.x(), vy = v.y(), vz = v.z(); 51 double xx = m.xx(), xy = m.xy(), xz = m.xz 52 double xx = m.xx(), xy = m.xy(), xz = m.xz(); 52 double yx = m.yx(), yy = m.yy(), yz = m.yz 53 double yx = m.yx(), yy = m.yy(), yz = m.yz(); 53 double zx = m.zx(), zy = m.zy(), zz = m.zz 54 double zx = m.zx(), zy = m.zy(), zz = m.zz(); 54 return Normal3D<double> 55 return Normal3D<double> 55 ((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*z 56 ((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*zy-yy*zx)*vz, 56 (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*x 57 (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy*xx)*vz, 57 (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*y 58 (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy*yx)*vz); 58 } 59 } 59 } /* namespace HepGeom */ 60 } /* namespace HepGeom */ 60 61