GGEMS  1.1
GPU GEant4-based Monte Carlo Simulations
GGEMSSolidBox.hh
Go to the documentation of this file.
1 #ifndef GUARD_GGEMS_GEOMETRIES_GGEMSSOLIDBOX_HH
2 #define GUARD_GGEMS_GEOMETRIES_GGEMSSOLIDBOX_HH
3 
4 // ************************************************************************
5 // * This file is part of GGEMS. *
6 // * *
7 // * GGEMS is free software: you can redistribute it and/or modify *
8 // * it under the terms of the GNU General Public License as published by *
9 // * the Free Software Foundation, either version 3 of the License, or *
10 // * (at your option) any later version. *
11 // * *
12 // * GGEMS is distributed in the hope that it will be useful, *
13 // * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 // * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 // * GNU General Public License for more details. *
16 // * *
17 // * You should have received a copy of the GNU General Public License *
18 // * along with GGEMS. If not, see <https://www.gnu.org/licenses/>. *
19 // * *
20 // ************************************************************************
21 
35 
40 class GGEMS_EXPORT GGEMSSolidBox : public GGEMSSolid
41 {
42  public:
53  GGEMSSolidBox(GGsize const& virtual_element_number_x, GGsize const& virtual_element_number_y, GGsize const& virtual_element_number_z, GGfloat const& element_size_x, GGfloat const& element_size_y, GGfloat const& element_size_z, std::string const& data_reg_type);
54 
58  ~GGEMSSolidBox(void);
59 
65  GGEMSSolidBox(GGEMSSolidBox const& solid_box) = delete;
66 
72  GGEMSSolidBox& operator=(GGEMSSolidBox const& solid_box) = delete;
73 
79  GGEMSSolidBox(GGEMSSolidBox const&& solid_box) = delete;
80 
86  GGEMSSolidBox& operator=(GGEMSSolidBox const&& solid_box) = delete;
87 
93  void Initialize(GGEMSMaterials* materials) override;
94 
99  void EnableScatter(void) override;
100 
105  void PrintInfos(void) const override;
106 
112  void UpdateTransformationMatrix(GGsize const& thread_index) override;
113 
114  private:
119  void InitializeKernel(void) override;
120 
121  private:
122 };
123 
124 #endif // End of GUARD_GGEMS_GEOMETRIES_GGEMSSOLIDBOX_HH
GGEMSSolid::EnableScatter
virtual void EnableScatter(void)=0
Activate scatter registration.
GGEMSSolidBox::operator=
GGEMSSolidBox & operator=(GGEMSSolidBox const &&solid_box)=delete
Avoid copy by rvalue reference.
GGEMSMaterials
GGEMS class handling material(s) for a specific navigator.
Definition: GGEMSMaterials.hh:49
GGEMSSolid
GGEMS class for solid informations.
Definition: GGEMSSolid.hh:48
GGEMSSolidBox::GGEMSSolidBox
GGEMSSolidBox(GGEMSSolidBox const &&solid_box)=delete
Avoid copy by rvalue reference.
GGsize
#define GGsize
Definition: GGEMSTypes.hh:252
GGEMSSolidBox::GGEMSSolidBox
GGEMSSolidBox(GGEMSSolidBox const &solid_box)=delete
Avoid copy by reference.
GGEMSSolid::PrintInfos
virtual void PrintInfos(void) const =0
printing infos about solid
GGEMSSolidBox::operator=
GGEMSSolidBox & operator=(GGEMSSolidBox const &solid_box)=delete
Avoid assignement by reference.
GGEMSSolid.hh
GGEMS class for solid. This class store geometry about phantom or detector.
GGEMSSolidBox
GGEMS class for solid box.
Definition: GGEMSSolidBox.hh:41
GGEMSSolid::UpdateTransformationMatrix
virtual void UpdateTransformationMatrix(GGsize const &thread_index)=0
Update transformation matrix for solid object.
GGEMSSolid::Initialize
virtual void Initialize(GGEMSMaterials *materials)=0
Initialize solid for geometric navigation.
GGEMSSolid::InitializeKernel
virtual void InitializeKernel(void)=0
Initialize kernel for particle solid distance.
GGfloat
#define GGfloat
Definition: GGEMSTypes.hh:273