|
GGEMS
1.1
GPU GEant4-based Monte Carlo Simulations
|
Go to the documentation of this file. 1 #ifndef GUARD_GGEMS_GEOMETRIES_GGEMSVOLUMECREATORMANAGER_HH
2 #define GUARD_GGEMS_GEOMETRIES_GGEMSVOLUMECREATORMANAGER_HH
35 #pragma warning(disable: 4251) // Deleting warning exporting STL members!!!
109 void SetElementSizes(
GGfloat const& voxel_width,
GGfloat const& voxel_height,
GGfloat const& voxel_depth, std::string
const& unit =
"mm");
125 void SetVolumeDimensions(
GGsize const& volume_width,
GGsize const& volume_height,
GGsize const& volume_depth);
140 void SetMaterial(std::string
const& material =
"Air");
168 void SetOutputImageFilename(std::string
const& output_image_filename);
175 void SetRangeToMaterialDataFilename(std::string
const& output_range_to_material_filename);
183 void AddLabelAndMaterial(
GGfloat const& label, std::string
const& material);
190 void SetDataType(std::string
const& data_type =
"MET_FLOAT");
196 void Initialize(
void);
215 void CheckParameters(
void)
const;
221 void WriteMHDImage(
void)
const;
227 void WriteRangeToMaterialFile(
void);
234 template <
typename T>
235 void AllocateImage(
void);
252 template <
typename T>
339 #endif // GUARD_GGEMS_GEOMETRIES_GGEMSVOLUMECREATORMANAGER_HH
void AllocateImage(void)
allocating buffer storing volume
GGfloat3 GetElementsSizes() const
size of voxels in the voxelized volume
GGEMSVolumeCreatorManager(GGEMSVolumeCreatorManager const &&volume_creator_manager)=delete
Avoid copy of the singleton by rvalue reference.
GGsize GetNumberElements(void) const
Return the total number of voxels.
Structure storing 3 GGsize values.
std::string GetDataType(void) const
get the type of data
static GGEMSVolumeCreatorManager & GetInstance(void)
Create at first time the Singleton.
void set_volume_dimension_volume_creator_manager(GGEMSVolumeCreatorManager *volume_creator_manager, GGsize const volume_width, GGsize const volume_height, GGsize const volume_depth)
Set the dimension of the volume for the voxelized volume.
void set_output_image_filename_volume_creator_manager(GGEMSVolumeCreatorManager *volume_creator_manager, char const *output_image_filename)
Set the filename of MHD output.
GGEMSVolumeCreatorManager * get_instance_volume_creator_manager(void)
Get the GGEMSVolumeCreatorManager pointer for python user.
std::map< GGfloat, std::string > LabelToMaterialMap
cl::Buffer * GetVoxelizedVolume(void) const
Return the voxelized volume on OpenCL device.
GGsize3 volume_dimensions_
void initialize_volume_creator_manager(GGEMSVolumeCreatorManager *volume_creator_manager)
Initialize the volume creator manager.
void CleanBuffer(cl::Buffer *buffer, GGsize const &size, GGsize const &thread_index)
Cleaning buffer on OpenCL device.
cl::Buffer * voxelized_volume_
void set_material_volume_creator_manager(GGEMSVolumeCreatorManager *volume_creator_manager, char const *material)
set the material of the global (background volume)
cl::Buffer * Allocate(void *host_ptr, GGsize const &size, GGsize const &thread_index, cl_mem_flags flags, std::string const &class_name="Undefined")
Allocation of OpenCL memory.
Singleton class handling convertion from analytical volume to voxelized volume.
GGEMSVolumeCreatorManager & operator=(GGEMSVolumeCreatorManager const &&volume_creator_manager)=delete
Avoid copy of the singleton by rvalue reference.
void set_data_type_volume_creator_manager(GGEMSVolumeCreatorManager *volume_creator_manager, char const *data_type)
set the type of data
std::string output_range_to_material_filename_
GGsize3 GetVolumeDimensions() const
dimensions of volume
LabelToMaterialMap label_to_material_
std::string output_image_filename_
Singleton class storing all informations about OpenCL and managing GPU/CPU devices,...
Singleton class storing all informations about OpenCL and managing GPU/CPU devices,...
void write_volume_creator_manager(GGEMSVolumeCreatorManager *volume_creator_manager)
Save the voxelized volume to raw data in mhd file.
GGEMSVolumeCreatorManager & operator=(GGEMSVolumeCreatorManager const &volume_creator_manager)=delete
Avoid assignement of the singleton by reference.
void set_element_sizes_volume_creator_manager(GGEMSVolumeCreatorManager *volume_creator_manager, GGfloat const voxel_width, GGfloat const voxel_height, GGfloat const voxel_depth, char const *unit)
Set the size of the elements for the voxelized volume.
static GGEMSOpenCLManager & GetInstance(void)
Create at first time the Singleton.
GGEMSVolumeCreatorManager(GGEMSVolumeCreatorManager const &volume_creator_manager)=delete
Avoid copy of the singleton by reference.
void set_output_range_to_material_filename_volume_creator_manager(GGEMSVolumeCreatorManager *volume_creator_manager, char const *output_range_to_material_filename)
Set the filename of range to material data.