Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/g4tools/include/tools/lina/vec2f

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/g4tools/include/tools/lina/vec2f (Version 11.3.0) and /externals/g4tools/include/tools/lina/vec2f (Version 8.1.p1)


  1 // Copyright (C) 2010, Guy Barrand. All rights    
  2 // See the file tools.license for terms.          
  3                                                   
  4 #ifndef tools_vec2f                               
  5 #define tools_vec2f                               
  6                                                   
  7 #include "vec2"                                   
  8 #include "../S_STRING"                            
  9 #include <cmath>                                  
 10                                                   
 11 namespace tools {                                 
 12                                                   
 13 class vec2f : public vec2<float> {                
 14   typedef vec2<float> parent;                     
 15 public:                                           
 16   TOOLS_SCLASS(tools::vec2f) //for stype()        
 17 public:                                           
 18   vec2f():parent(){}                              
 19   vec2f(const float a_vec[2]):parent(a_vec){}     
 20   vec2f(float a0,float a1):parent(a0,a1){}        
 21   virtual ~vec2f() {}                             
 22 public:                                           
 23   vec2f(const vec2f& a_from): parent(a_from){}    
 24   vec2f& operator=(const vec2f& a_from){          
 25     parent::operator=(a_from);                    
 26     return *this;                                 
 27   }                                               
 28                                                   
 29   vec2f(const parent& a_from):parent(a_from){}    
 30                                                   
 31 public: //operators                               
 32   vec2f operator*(float a_v) const {              
 33     return vec2f(m_data[0]*a_v,                   
 34                  m_data[1]*a_v);                  
 35   }                                               
 36   vec2f operator+(const vec2f& a_v) const {       
 37     return vec2f(m_data[0]+a_v.m_data[0],         
 38                  m_data[1]+a_v.m_data[1]);        
 39   }                                               
 40   vec2f operator-(const vec2f& a_v) const {       
 41     return vec2f(m_data[0]-a_v.m_data[0],         
 42                  m_data[1]-a_v.m_data[1]);        
 43   }                                               
 44   vec2f& operator+=(const vec2f& a_v) {           
 45     m_data[0] += a_v.m_data[0];                   
 46     m_data[1] += a_v.m_data[1];                   
 47     return *this;                                 
 48   }                                               
 49   vec2f& operator*=(float a_v) {                  
 50     m_data[0] *= a_v;                             
 51     m_data[1] *= a_v;                             
 52     return *this;                                 
 53   }                                               
 54   vec2f operator-() const {                       
 55     return vec2f(-m_data[0],-m_data[1]);          
 56   }                                               
 57 public:                                           
 58 #define TOOLS_VEC2F_MORE_PREC                     
 59 #ifdef TOOLS_VEC2F_MORE_PREC                      
 60   float length() const {                          
 61     return float(::sqrt(m_data[0]*m_data[0]+m_    
 62   }                                               
 63   float normalize() {                             
 64     float norme = length();                       
 65     if(!norme) return 0;                          
 66     divide(norme);                                
 67     return norme;                                 
 68   }                                               
 69 #else                                             
 70   float length() const {return parent::length(    
 71   float normalize() {return parent::normalize(    
 72 #endif                                            
 73 public: //iv2sg                                   
 74   bool equals(const vec2f& a_v,const float a_e    
 75     //if(a_epsil<0.0f))                           
 76     float d0 = m_data[0]-a_v.m_data[0];           
 77     float d1 = m_data[1]-a_v.m_data[1];           
 78     return ((d0*d0+d1*d1)<=a_epsil);              
 79   }                                               
 80   void negate() {                                 
 81     m_data[0] = -m_data[0];                       
 82     m_data[1] = -m_data[1];                       
 83   }                                               
 84                                                   
 85 private:static void check_instantiation() {vec    
 86 };                                                
 87                                                   
 88 inline vec2f operator*(float a_f,const vec2f&     
 89   vec2f res(a_v);                                 
 90   res *= a_f;                                     
 91   return res;                                     
 92 }                                                 
 93                                                   
 94 }                                                 
 95                                                   
 96 #include <vector>                                 
 97                                                   
 98 namespace tools {                                 
 99                                                   
100 #ifndef SWIG                                      
101 //for sf, mf :                                    
102 inline bool set_from_vec(vec2f& a_v,const std:    
103   if(a_sv.size()!=2) return false;                
104   a_v[0] = a_sv[0];                               
105   a_v[1] = a_sv[1];                               
106   return true;                                    
107 }                                                 
108 #endif                                            
109                                                   
110 }                                                 
111                                                   
112 #endif