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

Geometry/Vector3D.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 // $Id: Vector3D.h,v 1.3 2003/10/23 21:29:50 garren Exp $
3 // ---------------------------------------------------------------------------
4 //
5 // This file is a part of the CLHEP - a Class Library for High Energy Physics.
6 //
7 // History:
8 // 09.09.96 E.Chernyaev - initial version
9 // 12.06.01 E.Chernyaev - CLHEP-1.7: introduction of BasicVector3D to decouple
10 // the functionality from CLHEP::Hep3Vector
11 // 01.04.03 E.Chernyaev - CLHEP-1.9: template version
12 //
13 
14 #ifndef HEP_VECTOR3D_H
15 #define HEP_VECTOR3D_H
16 
17 #include <iosfwd>
18 #include "CLHEP/Geometry/defs.h"
19 #include "CLHEP/Vector/ThreeVector.h"
21 
22 namespace HepGeom {
23 
24  class Transform3D;
25 
34  template<class T>
35  class Vector3D : public BasicVector3D<T> {};
36 
43  template<>
44  class Vector3D<float> : public BasicVector3D<float> {
45  public:
48  Vector3D() {}
49 
52  Vector3D(float x1, float y1, float z1) : BasicVector3D<float>(x1,y1,z1) {}
53 
56  explicit Vector3D(const float * a)
57  : BasicVector3D<float>(a[0],a[1],a[2]) {}
58 
61  Vector3D(const Vector3D<float> & v) : BasicVector3D<float>(v) {}
62 
66 
69  ~Vector3D() {}
70 
74  set(v.x(),v.y(),v.z()); return *this;
75  }
76 
80  set(v.x(),v.y(),v.z()); return *this;
81  }
82 
85  Vector3D<float> & transform(const Transform3D & m);
86  };
87 
92  Vector3D<float>
93  operator*(const Transform3D & m, const Vector3D<float> & v);
94 
101  template<>
102  class Vector3D<double> : public BasicVector3D<double> {
103  public:
106  Vector3D() {}
107 
110  Vector3D(double x1, double y1, double z1) : BasicVector3D<double>(x1,y1,z1) {}
111 
114  explicit Vector3D(const float * a)
115  : BasicVector3D<double>(a[0],a[1],a[2]) {}
116 
119  explicit Vector3D(const double * a)
120  : BasicVector3D<double>(a[0],a[1],a[2]) {}
121 
125 
129 
133 
137 
144  : BasicVector3D<double>(v.x(),v.y(),v.z()) {}
145 
151  operator CLHEP::Hep3Vector () const { return CLHEP::Hep3Vector(x(),y(),z()); }
152 
156  set(v.x(),v.y(),v.z()); return *this;
157  }
158 
162  set(v.x(),v.y(),v.z()); return *this;
163  }
164 
168  set(v.x(),v.y(),v.z()); return *this;
169  }
170 
173  Vector3D<double> & transform(const Transform3D & m);
174  };
175 
180  Vector3D<double>
181  operator*(const Transform3D & m, const Vector3D<double> & v);
182 
183 } /* namespace HepGeom */
184 
185 #ifdef ENABLE_BACKWARDS_COMPATIBILITY
186 // backwards compatibility will be enabled ONLY in CLHEP 1.9
187 typedef HepGeom::Vector3D<double> HepVector3D;
188 #endif
189 
190 #endif /* HEP_VECTOR3D_H */
double
#define double(obj)
Definition: excDblThrow.cc:32
a
@ a
Definition: testCategories.cc:125
HepGeom::Vector3D< float >::operator=
Vector3D< float > & operator=(const Vector3D< float > &v)
Definition: Geometry/Vector3D.h:73
HepGeom::BasicVector3D
Definition: CLHEP/Geometry/BasicVector3D.h:28
HepGeom::Vector3D< double >::Vector3D
Vector3D(const double *a)
Definition: Geometry/Vector3D.h:119
HepGeom::Vector3D< float >::Vector3D
Vector3D(const BasicVector3D< float > &v)
Definition: Geometry/Vector3D.h:65
HepGeom::Vector3D< float >::operator=
Vector3D< float > & operator=(const BasicVector3D< float > &v)
Definition: Geometry/Vector3D.h:79
BasicVector3D.h
HepGeom::Vector3D< float >::Vector3D
Vector3D(float x1, float y1, float z1)
Definition: Geometry/Vector3D.h:52
HepGeom::Vector3D< double >::operator=
Vector3D< double > & operator=(const BasicVector3D< double > &v)
Definition: Geometry/Vector3D.h:167
HepGeom::Vector3D< double >::Vector3D
Vector3D()
Definition: Geometry/Vector3D.h:106
HepGeom::Vector3D< float >
Definition: CLHEP/Geometry/Vector3D.h:44
HepGeom::Vector3D< double >::Vector3D
Vector3D(const BasicVector3D< float > &v)
Definition: Geometry/Vector3D.h:128
HepGeom::Vector3D< float >::Vector3D
Vector3D(const Vector3D< float > &v)
Definition: Geometry/Vector3D.h:61
v
they are gone ZOOM Features Discontinued The following features of the ZOOM package were felt to be extreme overkill These have been after checking that no existing user code was utilizing as in SpaceVector v
Definition: keyMergeIssues.doc:324
Hep3Vector
Issues Concerning the PhysicsVectors CLHEP Vector Merge The merge of ZOOM PhysicsVdectors and the CLHEP Vector package is completed The purpose of this document is to list the major issues that affected the merge of these and where relevant describe the resolutions More detailed documents describe more minor issues General Approach As agreed at the June CLHEP the approach is to combine the features of each ZOOM class with the corresponding CLHEP class expanding the interface to create a single lingua franca of what a Hep3Vector(for example) means. We are not forming SpaceVector as an class derived from Hep3Vector and enhancing it in that way. Another rule imposed by the agreement is to avoid using the Exceptions package(even though that will later go into CLHEP for other uses). A desirable goal is to avoid cluttering the interface and enlarging the code linked in when ordinary CLHEP Vector functionallity is used. To this end
HepGeom::Transform3D
Definition: CLHEP/Geometry/Transform3D.h:172
HepGeom::Vector3D< double >::operator=
Vector3D< double > & operator=(const Vector3D< double > &v)
Definition: Geometry/Vector3D.h:155
HepGeom::Vector3D< double >::~Vector3D
~Vector3D()
Definition: Geometry/Vector3D.h:136
HepGeom::Vector3D< double >::operator=
Vector3D< double > & operator=(const BasicVector3D< float > &v)
Definition: Geometry/Vector3D.h:161
CLHEP::Hep3Vector
Definition: Geometry/CLHEP/Vector/ThreeVector.h:41
HepGeom::Vector3D< float >::Vector3D
Vector3D()
Definition: Geometry/Vector3D.h:48
HepGeom::Vector3D< float >::Vector3D
Vector3D(const float *a)
Definition: Geometry/Vector3D.h:56
HepGeom::Vector3D< float >::~Vector3D
~Vector3D()
Definition: Geometry/Vector3D.h:69
HepGeom::Vector3D< double >
Definition: CLHEP/Geometry/Vector3D.h:102
set
set(pkginclude_HEADERS itos.h) INSTALL(FILES $
Definition: Cast/Cast/CMakeLists.txt:2
HepGeom
Definition: CLHEP/Geometry/BasicVector3D.h:19
HepGeom::Vector3D< double >::Vector3D
Vector3D(const float *a)
Definition: Geometry/Vector3D.h:114
HepGeom::Vector3D< double >::Vector3D
Vector3D(const BasicVector3D< double > &v)
Definition: Geometry/Vector3D.h:132
HepGeom::Vector3D< double >::Vector3D
Vector3D(const Vector3D< double > &v)
Definition: Geometry/Vector3D.h:124
defs.h
HepGeom::Vector3D< double >::Vector3D
Vector3D(const CLHEP::Hep3Vector &v)
Definition: Geometry/Vector3D.h:143
x
any side effects of that construction would occur twice The semantics of throw x
Definition: whyZMthrowRethrows.txt:37
HepGeom::Vector3D< double >::Vector3D
Vector3D(double x1, double y1, double z1)
Definition: Geometry/Vector3D.h:110
HepGeom::operator*
Normal3D< float > operator*(const Transform3D &m, const Normal3D< float > &v)
Definition: Normal3D.cc:25