GGEMS  1.1
GPU GEant4-based Monte Carlo Simulations
GGEMSSphere.hh
Go to the documentation of this file.
1 #ifndef GUARD_GGEMS_GEOMETRIES_GGEMSSPHERE_HH
2 #define GUARD_GGEMS_GEOMETRIES_GGEMSSPHERE_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 GGEMSSphere : public GGEMSVolume
41 {
42  public:
48  GGEMSSphere(GGfloat const& radius, std::string const& unit = "mm");
49 
53  ~GGEMSSphere(void);
54 
60  GGEMSSphere(GGEMSSphere const& sphere) = delete;
61 
67  GGEMSSphere& operator=(GGEMSSphere const& sphere) = delete;
68 
74  GGEMSSphere(GGEMSSphere const&& sphere) = delete;
75 
81  GGEMSSphere& operator=(GGEMSSphere const&& sphere) = delete;
82 
87  void Initialize(void) override;
88 
93  void Draw(void) override;
94 
95  private:
97 };
98 
106 extern "C" GGEMS_EXPORT GGEMSSphere* create_sphere(GGfloat const radius, char const* unit = "mm");
107 
113 extern "C" GGEMS_EXPORT void delete_sphere(GGEMSSphere* sphere);
114 
124 extern "C" GGEMS_EXPORT void set_position_sphere(GGEMSSphere* sphere, GGfloat const pos_x, GGfloat const pos_y, GGfloat const pos_z, char const* unit = "mm");
125 
132 extern "C" GGEMS_EXPORT void set_material_sphere(GGEMSSphere* sphere, char const* material);
133 
140 extern "C" GGEMS_EXPORT void set_label_value_sphere(GGEMSSphere* sphere, GGfloat const label_value);
141 
147 extern "C" GGEMS_EXPORT void initialize_sphere(GGEMSSphere* sphere);
148 
154 extern "C" GGEMS_EXPORT void draw_sphere(GGEMSSphere* sphere);
155 
156 #endif // End of GUARD_GGEMS_GEOMETRY_GGEMSSPHERE_HH
GGEMSVolume
Mother class handle volume.
Definition: GGEMSVolume.hh:41
GGEMSSphere
Class GGEMSSphere inheriting from GGEMSVolume handling Sphere solid.
Definition: GGEMSSphere.hh:41
set_position_sphere
void set_position_sphere(GGEMSSphere *sphere, GGfloat const pos_x, GGfloat const pos_y, GGfloat const pos_z, char const *unit="mm")
Set the position of the sphere.
Definition: GGEMSSphere.cc:171
GGEMSSphere::GGEMSSphere
GGEMSSphere(GGEMSSphere const &&sphere)=delete
Avoid copy of the class by rvalue reference.
GGEMSVolume.hh
Mother class handle solid volume.
initialize_sphere
void initialize_sphere(GGEMSSphere *sphere)
Initialize the solid and store it in Phantom creator manager.
Definition: GGEMSSphere.cc:198
GGEMSSphere::operator=
GGEMSSphere & operator=(GGEMSSphere const &sphere)=delete
Avoid assignement of the class by reference.
create_sphere
GGEMSSphere * create_sphere(GGfloat const radius, char const *unit="mm")
Create instance of GGEMSSphere.
Definition: GGEMSSphere.cc:150
GGEMSSphere::operator=
GGEMSSphere & operator=(GGEMSSphere const &&sphere)=delete
Avoid copy of the class by rvalue reference.
GGEMSSphere::radius_
GGfloat radius_
Definition: GGEMSSphere.hh:96
delete_sphere
void delete_sphere(GGEMSSphere *sphere)
Delete instance of GGEMSSphere.
Definition: GGEMSSphere.cc:159
set_label_value_sphere
void set_label_value_sphere(GGEMSSphere *sphere, GGfloat const label_value)
Set the label value in sphere.
Definition: GGEMSSphere.cc:189
draw_sphere
void draw_sphere(GGEMSSphere *sphere)
Draw analytical volume in voxelized phantom.
Definition: GGEMSSphere.cc:207
GGEMSSphere::GGEMSSphere
GGEMSSphere(GGEMSSphere const &sphere)=delete
Avoid copy of the class by reference.
GGEMSVolume::Draw
virtual void Draw(void)=0
Draw analytical volume in voxelized phantom.
set_material_sphere
void set_material_sphere(GGEMSSphere *sphere, char const *material)
Set the material of the sphere.
Definition: GGEMSSphere.cc:180
GGEMSVolume::Initialize
virtual void Initialize(void)=0
Initialize the solid and store it in Phantom creator manager.
GGfloat
#define GGfloat
Definition: GGEMSTypes.hh:273