Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:11

0001 /*
0002  * ScaledShapeStruct.h
0003  *
0004  *  Created on: 22.08.2016
0005  *      Author: mgheata
0006  */
0007 
0008 #ifndef VECGEOM_VOLUMES_SCALEDSHAPESTRUCT_H_
0009 #define VECGEOM_VOLUMES_SCALEDSHAPESTRUCT_H_
0010 #include "VecGeom/base/Global.h"
0011 #include "VecGeom/base/Scale3D.h"
0012 
0013 namespace vecgeom {
0014 
0015 inline namespace VECGEOM_IMPL_NAMESPACE {
0016 
0017 class VPlacedVolume;
0018 /**
0019  * A plain struct without member functions to encapsulate just the parameters
0020  * of the scaled shape
0021  */
0022 template <typename T = double>
0023 struct ScaledShapeStruct {
0024   VPlacedVolume const *fPlaced; /// Need a placed volume for the navigation interface
0025   Scale3D fScale;               /// Scale object
0026 
0027   VECCORE_ATT_HOST_DEVICE
0028   ScaledShapeStruct() : fPlaced(nullptr), fScale() {}
0029 
0030   VECCORE_ATT_HOST_DEVICE
0031   ScaledShapeStruct(VPlacedVolume const *placed, Precision sx, Precision sy, Precision sz)
0032       : fPlaced(placed), fScale(sx, sy, sz)
0033   {
0034   }
0035 };
0036 }
0037 } // end
0038 
0039 #endif