Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/clhep/include/CLHEP/Geometry/Vector3D.h

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/clhep/include/CLHEP/Geometry/Vector3D.h (Version 11.3.0) and /externals/clhep/include/CLHEP/Geometry/Vector3D.h (Version 10.7.p3)


  1 // -*- C++ -*-                                      1 // -*- C++ -*-
  2 // -------------------------------------------      2 // ---------------------------------------------------------------------------
  3 //                                                  3 //
  4 // This file is a part of the CLHEP - a Class       4 // This file is a part of the CLHEP - a Class Library for High Energy Physics.
  5 //                                                  5 //
  6 // History:                                         6 // History:
  7 // 09.09.96 E.Chernyaev - initial version           7 // 09.09.96 E.Chernyaev - initial version
  8 // 12.06.01 E.Chernyaev - CLHEP-1.7: introduct      8 // 12.06.01 E.Chernyaev - CLHEP-1.7: introduction of BasicVector3D to decouple
  9 //                        the functionality fr      9 //                        the functionality from CLHEP::Hep3Vector
 10 // 01.04.03 E.Chernyaev - CLHEP-1.9: template      10 // 01.04.03 E.Chernyaev - CLHEP-1.9: template version
 11 //                                                 11 //
 12                                                    12 
 13 #ifndef HEP_VECTOR3D_H                             13 #ifndef HEP_VECTOR3D_H
 14 #define HEP_VECTOR3D_H                             14 #define HEP_VECTOR3D_H
 15                                                    15 
 16 #include <iosfwd>                                  16 #include <iosfwd>
 17 #include "CLHEP/Vector/ThreeVector.h"              17 #include "CLHEP/Vector/ThreeVector.h"
 18 #include "CLHEP/Geometry/BasicVector3D.h"          18 #include "CLHEP/Geometry/BasicVector3D.h"
 19                                                    19 
 20 namespace HepGeom {                                20 namespace HepGeom {
 21                                                    21 
 22   class Transform3D;                               22   class Transform3D;
 23                                                    23 
 24   /**                                              24   /**
 25    * Geometrical 3D Vector.                        25    * Geometrical 3D Vector.
 26    * This is just a declaration of the class n     26    * This is just a declaration of the class needed to define
 27    * specializations Vector3D<float> and Vecto     27    * specializations Vector3D<float> and Vector3D<double>.
 28    *                                               28    *
 29    * @ingroup geometry                             29    * @ingroup geometry
 30    * @author Evgeni Chernyaev <Evgueni.Tcherni     30    * @author Evgeni Chernyaev <Evgueni.Tcherniaev@cern.ch>
 31    */                                              31    */
 32   template<class T>                                32   template<class T>
 33   class Vector3D : public BasicVector3D<T> {};     33   class Vector3D : public BasicVector3D<T> {};
 34                                                    34 
 35   /**                                              35   /**
 36    * Geometrical 3D Vector with components of      36    * Geometrical 3D Vector with components of float type.
 37    *                                               37    *
 38    * @author Evgeni Chernyaev <Evgueni.Tcherni     38    * @author Evgeni Chernyaev <Evgueni.Tcherniaev@cern.ch>
 39    * @ingroup geometry                             39    * @ingroup geometry
 40    */                                              40    */
 41   template<>                                       41   template<>
 42   class Vector3D<float> : public BasicVector3D     42   class Vector3D<float> : public BasicVector3D<float> {
 43   public:                                          43   public:
 44     /**                                            44     /**
 45      * Default constructor. */                     45      * Default constructor. */
 46     Vector3D() = default;                          46     Vector3D() = default;
 47                                                    47 
 48     /**                                            48     /**
 49      * Constructor from three numbers. */          49      * Constructor from three numbers. */
 50     Vector3D(float x1, float y1, float z1) : B     50     Vector3D(float x1, float y1, float z1) : BasicVector3D<float>(x1,y1,z1) {}
 51                                                    51 
 52     /**                                            52     /**
 53      * Constructor from array of floats. */        53      * Constructor from array of floats. */
 54     explicit Vector3D(const float * a)             54     explicit Vector3D(const float * a)
 55       : BasicVector3D<float>(a[0],a[1],a[2]) {     55       : BasicVector3D<float>(a[0],a[1],a[2]) {}
 56                                                    56 
 57     /**                                            57     /**
 58      * Copy constructor. */                        58      * Copy constructor. */
 59     Vector3D(const Vector3D<float> &) = defaul     59     Vector3D(const Vector3D<float> &) = default;
 60                                                    60 
 61     /**                                            61     /**
 62      * Move constructor. */                        62      * Move constructor. */
 63     Vector3D(Vector3D<float> &&) = default;        63     Vector3D(Vector3D<float> &&) = default;
 64                                                    64 
 65     /**                                            65     /**
 66      * Constructor from BasicVector3D<float>.      66      * Constructor from BasicVector3D<float>. */
 67     Vector3D(const BasicVector3D<float> & v) :     67     Vector3D(const BasicVector3D<float> & v) : BasicVector3D<float>(v) {}
 68                                                    68 
 69     /**                                            69     /**
 70      * Destructor. */                              70      * Destructor. */
 71     ~Vector3D() = default;                         71     ~Vector3D() = default;
 72                                                    72 
 73     /**                                            73     /**
 74      * Assignment. */                              74      * Assignment. */
 75     Vector3D<float> & operator=(const Vector3D     75     Vector3D<float> & operator=(const Vector3D<float> &) = default;
 76                                                    76 
 77     /**                                            77     /**
 78      * Assignment from BasicVector3D<float>. *     78      * Assignment from BasicVector3D<float>. */
 79     Vector3D<float> & operator=(const BasicVec     79     Vector3D<float> & operator=(const BasicVector3D<float> & v) {
 80       this->BasicVector3D<float>::operator=(v)     80       this->BasicVector3D<float>::operator=(v);
 81       return *this;                                81       return *this;
 82     }                                              82     }
 83                                                    83 
 84     /**                                            84     /**
 85      * Move assignment. */                         85      * Move assignment. */
 86     Vector3D<float> & operator=(Vector3D<float     86     Vector3D<float> & operator=(Vector3D<float> &&) = default;
 87                                                    87 
 88     /**                                            88     /**
 89      * Transformation by Transform3D. */           89      * Transformation by Transform3D. */
 90     Vector3D<float> & transform(const Transfor     90     Vector3D<float> & transform(const Transform3D & m);
 91   };                                               91   };
 92                                                    92 
 93   /**                                              93   /**
 94    * Transformation of Vector<float> by Transf     94    * Transformation of Vector<float> by Transform3D.
 95    * @relates Vector3D                             95    * @relates Vector3D
 96    */                                              96    */
 97   Vector3D<float>                                  97   Vector3D<float>
 98   operator*(const Transform3D & m, const Vecto     98   operator*(const Transform3D & m, const Vector3D<float> & v);
 99                                                    99 
100   /**                                             100   /**
101    * Geometrical 3D Vector with components of     101    * Geometrical 3D Vector with components of double type.
102    *                                              102    *
103    * @author Evgeni Chernyaev <Evgueni.Tcherni    103    * @author Evgeni Chernyaev <Evgueni.Tcherniaev@cern.ch>
104    * @ingroup geometry                            104    * @ingroup geometry
105    */                                             105    */
106   template<>                                      106   template<>
107   class Vector3D<double> : public BasicVector3    107   class Vector3D<double> : public BasicVector3D<double> {
108   public:                                         108   public:
109     /**                                           109     /**
110      * Default constructor. */                    110      * Default constructor. */
111     Vector3D() = default;                         111     Vector3D() = default;
112                                                   112 
113     /**                                           113     /**
114      * Constructor from three numbers. */         114      * Constructor from three numbers. */
115     Vector3D(double x1, double y1, double z1)     115     Vector3D(double x1, double y1, double z1) : BasicVector3D<double>(x1,y1,z1) {}
116                                                   116 
117     /**                                           117     /**
118      * Constructor from array of floats. */       118      * Constructor from array of floats. */
119     explicit Vector3D(const float * a)            119     explicit Vector3D(const float * a)
120       : BasicVector3D<double>(a[0],a[1],a[2])     120       : BasicVector3D<double>(a[0],a[1],a[2]) {}
121                                                   121 
122     /**                                           122     /**
123      * Constructor from array of doubles. */      123      * Constructor from array of doubles. */
124     explicit Vector3D(const double * a)           124     explicit Vector3D(const double * a)
125       : BasicVector3D<double>(a[0],a[1],a[2])     125       : BasicVector3D<double>(a[0],a[1],a[2]) {}
126                                                   126 
127     /**                                           127     /**
128      * Copy constructor. */                       128      * Copy constructor. */
129     Vector3D(const Vector3D<double> &) = defau    129     Vector3D(const Vector3D<double> &) = default;
130                                                   130 
131     /**                                           131     /**
132      * Move constructor. */                       132      * Move constructor. */
133     Vector3D(Vector3D<double> &&) = default;      133     Vector3D(Vector3D<double> &&) = default;
134                                                   134 
135     /**                                           135     /**
136      * Constructor from BasicVector3D<float>.     136      * Constructor from BasicVector3D<float>. */
137     Vector3D(const BasicVector3D<float> & v) :    137     Vector3D(const BasicVector3D<float> & v) : BasicVector3D<double>(v) {}
138                                                   138 
139     /**                                           139     /**
140      * Constructor from BasicVector3D<double>.    140      * Constructor from BasicVector3D<double>. */
141     Vector3D(const BasicVector3D<double> & v)     141     Vector3D(const BasicVector3D<double> & v) : BasicVector3D<double>(v) {}
142                                                   142 
143     /**                                           143     /**
144      * Destructor. */                             144      * Destructor. */
145     ~Vector3D() = default;                        145     ~Vector3D() = default;
146                                                   146 
147     /**                                           147     /**
148      * Constructor from CLHEP::Hep3Vector.        148      * Constructor from CLHEP::Hep3Vector.
149      * This constructor is needed only for bac    149      * This constructor is needed only for backward compatibility and
150      * in principle should be absent.             150      * in principle should be absent.
151      */                                           151      */
152     Vector3D(const CLHEP::Hep3Vector & v)         152     Vector3D(const CLHEP::Hep3Vector & v)
153       : BasicVector3D<double>(v.x(),v.y(),v.z(    153       : BasicVector3D<double>(v.x(),v.y(),v.z()) {}
154                                                   154 
155     /**                                           155     /**
156      * Conversion (cast) to CLHEP::Hep3Vector.    156      * Conversion (cast) to CLHEP::Hep3Vector.
157      * This operator is needed only for backwa    157      * This operator is needed only for backward compatibility and
158      * in principle should not exit.              158      * in principle should not exit.
159      */                                           159      */
160     operator CLHEP::Hep3Vector () const { retu    160     operator CLHEP::Hep3Vector () const { return CLHEP::Hep3Vector(x(),y(),z()); }
161                                                   161 
162     /**                                           162     /**
163      * Assignment. */                             163      * Assignment. */
164     Vector3D<double> & operator=(const Vector3    164     Vector3D<double> & operator=(const Vector3D<double> &) = default;
165                                                   165 
166     /**                                           166     /**
167      * Assignment from BasicVector3D<float>. *    167      * Assignment from BasicVector3D<float>. */
168     Vector3D<double> & operator=(const BasicVe    168     Vector3D<double> & operator=(const BasicVector3D<float> & v) {
169       this->BasicVector3D<double>::operator=(v    169       this->BasicVector3D<double>::operator=(v);
170       return *this;                               170       return *this;
171     }                                             171     }
172                                                   172 
173     /**                                           173     /**
174      * Assignment from BasicVector3D<double>.     174      * Assignment from BasicVector3D<double>. */
175     Vector3D<double> & operator=(const BasicVe    175     Vector3D<double> & operator=(const BasicVector3D<double> & v) {
176       this->BasicVector3D<double>::operator=(v    176       this->BasicVector3D<double>::operator=(v);
177       return *this;                               177       return *this;
178     }                                             178     }
179                                                   179 
180     /**                                           180     /**
181      * Move assignment. */                        181      * Move assignment. */
182     Vector3D<double> & operator=(Vector3D<doub    182     Vector3D<double> & operator=(Vector3D<double> &&) = default;
183                                                   183 
184     /**                                           184     /**
185      * Transformation by Transform3D. */          185      * Transformation by Transform3D. */
186     Vector3D<double> & transform(const Transfo    186     Vector3D<double> & transform(const Transform3D & m);
187   };                                              187   };
188                                                   188 
189   /**                                             189   /**
190    * Transformation of Vector<double> by Trans    190    * Transformation of Vector<double> by Transform3D.
191    * @relates Vector3D                            191    * @relates Vector3D
192    */                                             192    */
193   Vector3D<double>                                193   Vector3D<double>
194   operator*(const Transform3D & m, const Vecto    194   operator*(const Transform3D & m, const Vector3D<double> & v);
195                                                   195 
196 } /* namespace HepGeom */                         196 } /* namespace HepGeom */
197                                                   197 
198 #endif /* HEP_VECTOR3D_H */                       198 #endif /* HEP_VECTOR3D_H */
199                                                   199