File indexing completed on 2025-12-16 10:33:39
0001 #ifndef VECGEOM_VOLUMES_TSPECIALIZEDBOOLEANMINUS_H
0002 #define VECGEOM_VOLUMES_TSPECIALIZEDBOOLEANMINUS_H
0003
0004 #include "VecGeom/base/Global.h"
0005
0006 #include "VecGeom/volumes/kernel/TBooleanMinusImplementation.h"
0007 #include "VecGeom/volumes/TUnplacedBooleanMinusVolume.h"
0008 #include "VecGeom/volumes/TPlacedBooleanMinusVolume.h"
0009 #include "VecGeom/volumes/ShapeImplementationHelper.h"
0010
0011 namespace VECGEOM_NAMESPACE {
0012
0013 template <typename LeftUnplacedVolume_t, typename RightPlacedVolume_t, TranslationCode transCodeT,
0014 RotationCode rotCodeT>
0015 class TSpecializedBooleanMinusVolume
0016 : public ShapeImplementationHelper<
0017 TPlacedBooleanMinusVolume,
0018 TBooleanMinusImplementation<LeftUnplacedVolume_t, RightPlacedVolume_t, transCodeT, rotCodeT>> {
0019
0020 typedef ShapeImplementationHelper<
0021 TPlacedBooleanMinusVolume,
0022 TBooleanMinusImplementation<LeftUnplacedVolume_t, RightPlacedVolume_t, transCodeT, rotCodeT>>
0023 Helper;
0024
0025
0026 typedef TUnplacedBooleanMinusVolume UnplacedVol_t;
0027
0028 public:
0029 #ifndef VECCORE_CUDA
0030
0031 TSpecializedBooleanMinusVolume(char const *const label, LogicalVolume const *const logical_volume,
0032 Transformation3D const *const transformation)
0033 : Helper(label, logical_volume, transformation, NULL)
0034 {
0035 }
0036
0037 TSpecializedBooleanMinusVolume(LogicalVolume const *const logical_volume,
0038 Transformation3D const *const transformation)
0039 : TSpecializedBooleanMinusVolume("", logical_volume, transformation)
0040 {
0041 }
0042
0043 virtual ~TSpecializedBooleanMinusVolume() {}
0044
0045 #else
0046
0047 VECCORE_ATT_DEVICE TSpecializedBooleanMinusVolume(LogicalVolume const *const logical_volume,
0048 Transformation3D const *const transformation,
0049 PlacedBox const *const boundingBox, const int id)
0050 : Helper(logical_volume, transformation, boundingBox, id)
0051 {
0052 }
0053
0054 #endif
0055
0056 virtual int MemorySize() const { return sizeof(*this); }
0057
0058 VECCORE_ATT_HOST_DEVICE
0059 virtual void PrintType() const { printf("NOT IMPLEMENTED"); };
0060
0061 };
0062
0063 }
0064
0065 #endif