GGEMS  1.1
GPU GEant4-based Monte Carlo Simulations
GGEMSVoxelizedPhantom.hh
Go to the documentation of this file.
1 #ifndef GUARD_GGEMS_NAVIGATORS_GGEMSVOXELIZEDPHANTOM_HH
2 #define GUARD_GGEMS_NAVIGATORS_GGEMSVOXELIZEDPHANTOM_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 
34 
39 class GGEMS_EXPORT GGEMSVoxelizedPhantom : public GGEMSNavigator
40 {
41  public:
46  explicit GGEMSVoxelizedPhantom(std::string const& voxelized_phantom_name);
47 
51  ~GGEMSVoxelizedPhantom(void);
52 
58  GGEMSVoxelizedPhantom(GGEMSVoxelizedPhantom const& voxelized_phantom) = delete;
59 
65  GGEMSVoxelizedPhantom& operator=(GGEMSVoxelizedPhantom const& voxelized_phantom) = delete;
66 
72  GGEMSVoxelizedPhantom(GGEMSVoxelizedPhantom const&& voxelized_phantom) = delete;
73 
79  GGEMSVoxelizedPhantom& operator=(GGEMSVoxelizedPhantom const&& voxelized_phantom) = delete;
80 
87  void SetPhantomFile(std::string const& voxelized_phantom_filename, std::string const& range_data_filename);
88 
93  void Initialize(void) override;
94 
99  void SaveResults(void) override;
100 
101  private:
106  void CheckParameters(void) const override;
107 
108  private:
110  std::string range_data_filename_;
111 };
112 
119 extern "C" GGEMS_EXPORT GGEMSVoxelizedPhantom* create_ggems_voxelized_phantom(char const* voxelized_phantom_name);
120 
128 extern "C" GGEMS_EXPORT void set_phantom_file_ggems_voxelized_phantom(GGEMSVoxelizedPhantom* voxelized_phantom, char const* phantom_filename, char const* range_data_filename);
129 
139 extern "C" GGEMS_EXPORT void set_position_ggems_voxelized_phantom(GGEMSVoxelizedPhantom* voxelized_phantom, GGfloat const position_x, GGfloat const position_y, GGfloat const position_z, char const* unit);
140 
150 extern "C" GGEMS_EXPORT void set_rotation_ggems_voxelized_phantom(GGEMSVoxelizedPhantom* voxelized_phantom, GGfloat const rx, GGfloat const ry, GGfloat const rz, char const* unit);
151 
152 #endif // End of GUARD_GGEMS_NAVIGATORS_GGEMSVOXELIZEDPHANTOM_HH
GGEMSNavigator::Initialize
virtual void Initialize(void)
Definition: GGEMSNavigator.cc:198
GGEMSVoxelizedPhantom::GGEMSVoxelizedPhantom
GGEMSVoxelizedPhantom(GGEMSVoxelizedPhantom const &voxelized_phantom)=delete
Avoid copy by reference.
GGEMSVoxelizedPhantom::operator=
GGEMSVoxelizedPhantom & operator=(GGEMSVoxelizedPhantom const &&voxelized_phantom)=delete
Avoid copy by rvalue reference.
GGEMSVoxelizedPhantom::GGEMSVoxelizedPhantom
GGEMSVoxelizedPhantom(GGEMSVoxelizedPhantom const &&voxelized_phantom)=delete
Avoid copy by rvalue reference.
set_position_ggems_voxelized_phantom
void set_position_ggems_voxelized_phantom(GGEMSVoxelizedPhantom *voxelized_phantom, GGfloat const position_x, GGfloat const position_y, GGfloat const position_z, char const *unit)
set the position of the voxelized phantom in X, Y and Z
Definition: GGEMSVoxelizedPhantom.cc:181
GGEMSNavigator::CheckParameters
virtual void CheckParameters(void) const
Definition: GGEMSNavigator.cc:175
set_rotation_ggems_voxelized_phantom
void set_rotation_ggems_voxelized_phantom(GGEMSVoxelizedPhantom *voxelized_phantom, GGfloat const rx, GGfloat const ry, GGfloat const rz, char const *unit)
Set the rotation of the voxelized phantom around local axis.
Definition: GGEMSVoxelizedPhantom.cc:190
GGEMSVoxelizedPhantom::voxelized_phantom_filename_
std::string voxelized_phantom_filename_
Definition: GGEMSVoxelizedPhantom.hh:109
GGEMSNavigator::SaveResults
virtual void SaveResults(void)=0
save all results from solid
set_phantom_file_ggems_voxelized_phantom
void set_phantom_file_ggems_voxelized_phantom(GGEMSVoxelizedPhantom *voxelized_phantom, char const *phantom_filename, char const *range_data_filename)
set the filename of voxelized phantom and the range data file
Definition: GGEMSVoxelizedPhantom.cc:172
GGEMSVoxelizedPhantom::range_data_filename_
std::string range_data_filename_
Definition: GGEMSVoxelizedPhantom.hh:110
GGEMSVoxelizedPhantom
Child GGEMS class handling voxelized phantom.
Definition: GGEMSVoxelizedPhantom.hh:40
GGEMSNavigator
Parent GGEMS class for navigator.
Definition: GGEMSNavigator.hh:55
GGEMSVoxelizedPhantom::operator=
GGEMSVoxelizedPhantom & operator=(GGEMSVoxelizedPhantom const &voxelized_phantom)=delete
Avoid assignement by reference.
GGEMSNavigator.hh
Parent GGEMS class for navigation.
create_ggems_voxelized_phantom
GGEMSVoxelizedPhantom * create_ggems_voxelized_phantom(char const *voxelized_phantom_name)
Get the GGEMSVoxelizedPhantom pointer for python user.
Definition: GGEMSVoxelizedPhantom.cc:163
GGfloat
#define GGfloat
Definition: GGEMSTypes.hh:273