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 }
0029
0030 }
0031
0032 #endif