Import Geant4 11.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2025-12-05 08:54:02 +01:00
parent a499fb82e9
commit b4a16de652
6484 changed files with 232674 additions and 221097 deletions
+1 -49
View File
@@ -6,62 +6,33 @@
#include <cstddef> //size_t
#ifdef TOOLS_MEM
#include "../mem"
#endif
namespace tools {
template <class T>
class vec3 {
#ifdef TOOLS_MEM
static const std::string& s_class() {
static const std::string s_v("tools::vec3");
return s_v;
}
#endif
public:
typedef T elem_t;
unsigned int dimension() const {return 3;}
public:
vec3(){
#ifdef TOOLS_MEM
mem::increment(s_class().c_str());
#endif
m_data[0] = T();
m_data[1] = T();
m_data[2] = T();
}
vec3(const T a_vec[3]) {
#ifdef TOOLS_MEM
mem::increment(s_class().c_str());
#endif
m_data[0] = a_vec[0];
m_data[1] = a_vec[1];
m_data[2] = a_vec[2];
}
vec3(const T& a0,const T& a1,const T& a2
#ifdef TOOLS_MEM
,bool a_inc = true
#endif
) {
#ifdef TOOLS_MEM
if(a_inc) mem::increment(s_class().c_str());
#endif
vec3(const T& a0,const T& a1,const T& a2) {
m_data[0] = a0;
m_data[1] = a1;
m_data[2] = a2;
}
virtual ~vec3() {
#ifdef TOOLS_MEM
mem::decrement(s_class().c_str());
#endif
}
public:
vec3(const vec3& a_from){
#ifdef TOOLS_MEM
mem::increment(s_class().c_str());
#endif
m_data[0] = a_from.m_data[0];
m_data[1] = a_from.m_data[1];
m_data[2] = a_from.m_data[2];
@@ -105,12 +76,6 @@ public:
a2 = m_data[2];
}
//bool set_value(unsigned int a_index,const T& a_value) {
// if(a_index>=3) return false;
// m_[a_index] = a_value;
// return true;
//}
T length(T(*a_sqrt)(T)) const {
return a_sqrt(m_data[0]*m_data[0]+m_data[1]*m_data[1]+m_data[2]*m_data[2]);
}
@@ -297,15 +262,9 @@ public: //for iv2sg
}
public:
#if defined(TOOLS_MEM) && !defined(TOOLS_MEM_ATEXIT)
static const vec3<T>& s_x() {static const vec3<T> s_v(1,0,0,false);return s_v;}
static const vec3<T>& s_y() {static const vec3<T> s_v(0,1,0,false);return s_v;}
static const vec3<T>& s_z() {static const vec3<T> s_v(0,0,1,false);return s_v;}
#else
static const vec3<T>& s_x() {static const vec3<T> s_v(1,0,0);return s_v;}
static const vec3<T>& s_y() {static const vec3<T> s_v(0,1,0);return s_v;}
static const vec3<T>& s_z() {static const vec3<T> s_v(0,0,1);return s_v;}
#endif
protected:
T m_data[3];
@@ -333,13 +292,6 @@ inline void get_normal(const vec3<T>& a_p0,const vec3<T>& a_p1,const vec3<T>& a_
a_nm.normalize(a_sqrt);
}
/*
template <class VEC3>
inline void get_normal(const VEC3& a_p0,const VEC3& a_p1,const VEC3& a_p2,VEC3& a_nm) {
VEC3 tmp1,tmp2;
get_normal(a_p0,a_p1,a_p2,a_nm,tmp1,tmp2);
}
*/
template <class VEC3>
inline void direction(const VEC3& a_p0,const VEC3& a_p1,const VEC3& a_p2,VEC3& a_value) {
// Orientation is computed by taking (p1 - p0) x (p2 - p0)