Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-03-13 09:29:30

0001 #ifndef VECGEOM_VOLUMES_SPECIALIZEDBOOLEAN_H
0002 #define VECGEOM_VOLUMES_SPECIALIZEDBOOLEAN_H
0003 
0004 #include "VecGeom/base/Global.h"
0005 
0006 #include "VecGeom/volumes/kernel/BooleanImplementation.h"
0007 #include "VecGeom/volumes/UnplacedBooleanVolume.h"
0008 #include "VecGeom/volumes/PlacedBooleanVolume.h"
0009 #include "VecGeom/volumes/SpecializedPlacedVolImplHelper.h"
0010 
0011 namespace vecgeom {
0012 
0013 inline namespace VECGEOM_IMPL_NAMESPACE {
0014 
0015 template <BooleanOperation boolOp, TranslationCode transCodeT, RotationCode rotCodeT>
0016 using SpecializedBooleanVolume = LoopSpecializedVolImplHelper<BooleanImplementation<boolOp>, transCodeT, rotCodeT>;
0017 
0018 using GenericPlacedUnionVolume = SpecializedBooleanVolume<kUnion, translation::kGeneric, rotation::kGeneric>;
0019 using GenericPlacedIntersectionVolume =
0020     SpecializedBooleanVolume<kIntersection, translation::kGeneric, rotation::kGeneric>;
0021 using GenericPlacedSubtractionVolume =
0022     SpecializedBooleanVolume<kSubtraction, translation::kGeneric, rotation::kGeneric>;
0023 
0024 using GenericUnionVolume        = SpecializedBooleanVolume<kUnion, translation::kIdentity, rotation::kIdentity>;
0025 using GenericIntersectionVolume = SpecializedBooleanVolume<kIntersection, translation::kIdentity, rotation::kIdentity>;
0026 using GenericSubtractionVolume  = SpecializedBooleanVolume<kSubtraction, translation::kIdentity, rotation::kIdentity>;
0027 
0028 } // End impl namespace
0029 
0030 } // End global namespace
0031 
0032 #endif // VECGEOM_VOLUMES_SPECIALIZEDBOOLEAN_H