Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/g4tools/include/tools/rroot/vector3

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 ]

  1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
  2 // See the file tools.license for terms.
  3 
  4 #ifndef tools_rroot_vector3
  5 #define tools_rroot_vector3
  6 
  7 #include "../scast"
  8 #include "object"
  9 #include "cids"
 10 
 11 namespace tools {
 12 namespace rroot {
 13 
 14 class vector3 : public virtual iro {
 15   typedef iro parent;
 16 private:
 17   static const std::string& s_store_class() {
 18     static const std::string s_v("TVector3");
 19     return s_v;
 20   }
 21 public:
 22   static const std::string& s_class() {
 23     static const std::string s_v("tools::rroot::vector3");
 24     return s_v;
 25   }
 26 public: //iro
 27   virtual void* cast(const std::string& a_class) const {
 28     if(void* p = cmp_cast<vector3>(this,a_class)) return p;
 29     return 0;
 30   }
 31   virtual const std::string& s_cls() const {return s_class();}
 32   virtual iro* copy() const {return new vector3(*this);}
 33 public:
 34   static cid id_class() {return vector3_cid();}
 35   virtual void* cast(cid a_class) const {
 36     if(void* p = cmp_cast<vector3>(this,a_class)) {return p;}
 37     else return 0;
 38   }
 39 public:
 40   virtual bool stream(buffer& a_buffer) {
 41     unsigned int _s,_c;
 42     short v;
 43     if(!a_buffer.read_version(v,_s,_c)) return false;
 44 
 45     //printf("debug : tools::rroot::vector3::stream : version %d\n",v);
 46 
 47    {uint32 id,bits;
 48     if(!Object_stream(a_buffer,id,bits)) return false;}
 49 
 50     if(!a_buffer.read(m_x)) return false;
 51     if(!a_buffer.read(m_y)) return false;
 52     if(!a_buffer.read(m_z)) return false;
 53 
 54     if(!a_buffer.check_byte_count(_s,_c,s_store_class())) return false;
 55     return true;
 56   }
 57 
 58 public:
 59   vector3():m_x(0),m_y(0),m_z(0){
 60 #ifdef TOOLS_MEM
 61     mem::increment(s_class().c_str());
 62 #endif
 63   }
 64   virtual ~vector3(){
 65 #ifdef TOOLS_MEM
 66     mem::decrement(s_class().c_str());
 67 #endif
 68   }
 69 public:
 70   vector3(const vector3& a_from)
 71   :parent(a_from)
 72   ,m_x(a_from.m_x),m_y(a_from.m_y),m_z(a_from.m_z)
 73   {}
 74   vector3& operator=(const vector3& a_from){
 75     m_x = a_from.m_x;
 76     m_y = a_from.m_y;
 77     m_z = a_from.m_z;
 78     return *this;
 79   }
 80 public:
 81   double x() const {return m_x;}
 82   double y() const {return m_y;}
 83   double z() const {return m_z;}
 84 private:
 85   double m_x,m_y,m_z;
 86 };
 87 
 88 }}
 89 
 90 #endif