GGEMS  1.1
GPU GEant4-based Monte Carlo Simulations
GGEMSTube.hh
Go to the documentation of this file.
1 #ifndef GUARD_GGEMS_GEOMETRIES_GGEMSTUBE_HH
2 #define GUARD_GGEMS_GEOMETRIES_GGEMSTUBE_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 GGEMSTube : public GGEMSVolume
41 {
42  public:
50  GGEMSTube(GGfloat const& radius_x, GGfloat const& radius_y, GGfloat const& height, std::string const& unit = "mm");
51 
55  ~GGEMSTube(void);
56 
62  GGEMSTube(GGEMSTube const& tube) = delete;
63 
69  GGEMSTube& operator=(GGEMSTube const& tube) = delete;
70 
76  GGEMSTube(GGEMSTube const&& tube) = delete;
77 
83  GGEMSTube& operator=(GGEMSTube const&& tube) = delete;
84 
89  void Initialize(void) override;
90 
95  void Draw(void) override;
96 
97  private:
101 };
102 
112 extern "C" GGEMS_EXPORT GGEMSTube* create_tube(GGfloat const radius_x, GGfloat const radius_y, GGfloat const height, char const* unit = "mm");
113 
119 extern "C" GGEMS_EXPORT void delete_tube(GGEMSTube* tube);
120 
130 extern "C" GGEMS_EXPORT void set_position_tube(GGEMSTube* tube, GGfloat const pos_x, GGfloat const pos_y, GGfloat const pos_z, char const* unit = "mm");
131 
138 extern "C" GGEMS_EXPORT void set_material_tube(GGEMSTube* tube, char const* material);
139 
146 extern "C" GGEMS_EXPORT void set_label_value_tube(GGEMSTube* tube, GGfloat const label_value);
147 
153 extern "C" GGEMS_EXPORT void initialize_tube(GGEMSTube* tube);
154 
160 extern "C" GGEMS_EXPORT void draw_tube(GGEMSTube* tube);
161 
162 #endif // End of GUARD_GGEMS_GEOMETRY_GGEMSTUBE_HH
delete_tube
void delete_tube(GGEMSTube *tube)
Delete instance of GGEMSTube.
Definition: GGEMSTube.cc:163
GGEMSTube::height_
GGfloat height_
Definition: GGEMSTube.hh:98
GGEMSVolume
Mother class handle volume.
Definition: GGEMSVolume.hh:41
GGEMSTube::radius_y_
GGfloat radius_y_
Definition: GGEMSTube.hh:100
GGEMSTube::GGEMSTube
GGEMSTube(GGEMSTube const &&tube)=delete
Avoid copy of the class by rvalue reference.
GGEMSVolume.hh
Mother class handle solid volume.
GGEMSTube::GGEMSTube
GGEMSTube(GGEMSTube const &tube)=delete
Avoid copy of the class by reference.
set_label_value_tube
void set_label_value_tube(GGEMSTube *tube, GGfloat const label_value)
Set the label value in tube.
Definition: GGEMSTube.cc:193
GGEMSTube::operator=
GGEMSTube & operator=(GGEMSTube const &&tube)=delete
Avoid copy of the class by rvalue reference.
GGEMSTube::radius_x_
GGfloat radius_x_
Definition: GGEMSTube.hh:99
set_position_tube
void set_position_tube(GGEMSTube *tube, GGfloat const pos_x, GGfloat const pos_y, GGfloat const pos_z, char const *unit="mm")
Set the position of the tube.
Definition: GGEMSTube.cc:175
draw_tube
void draw_tube(GGEMSTube *tube)
Draw analytical volume in voxelized phantom.
Definition: GGEMSTube.cc:211
GGEMSTube::operator=
GGEMSTube & operator=(GGEMSTube const &tube)=delete
Avoid assignement of the class by reference.
GGEMSTube
Class GGEMSTube inheriting from GGEMSVolume handling Tube solid.
Definition: GGEMSTube.hh:41
set_material_tube
void set_material_tube(GGEMSTube *tube, char const *material)
Set the material of the tube.
Definition: GGEMSTube.cc:184
GGEMSVolume::Draw
virtual void Draw(void)=0
Draw analytical volume in voxelized phantom.
initialize_tube
void initialize_tube(GGEMSTube *tube)
Initialize the solid and store it in Phantom creator manager.
Definition: GGEMSTube.cc:202
GGEMSVolume::Initialize
virtual void Initialize(void)=0
Initialize the solid and store it in Phantom creator manager.
GGfloat
#define GGfloat
Definition: GGEMSTypes.hh:273
create_tube
GGEMSTube * create_tube(GGfloat const radius_x, GGfloat const radius_y, GGfloat const height, char const *unit="mm")
Create instance of GGEMSTube.
Definition: GGEMSTube.cc:154