GGEMS  1.1
GPU GEant4-based Monte Carlo Simulations
GGEMSGeometryTransformation Class Reference

This class handles everything about geometry transformation. More...

#include "GGEMSGeometryTransformation.hh"

Collaboration diagram for GGEMSGeometryTransformation:
Collaboration graph

Public Member Functions

 GGEMSGeometryTransformation (void)
 GGEMSGeometryTransformation constructor. More...
 
 ~GGEMSGeometryTransformation (void)
 GGEMSGeometryTransformation destructor. More...
 
 GGEMSGeometryTransformation (GGEMSGeometryTransformation const &transform_calculator)=delete
 Avoid copy of the class by reference. More...
 
GGEMSGeometryTransformationoperator= (GGEMSGeometryTransformation const &geometry_transformation)=delete
 Avoid assignement of the class by reference. More...
 
 GGEMSGeometryTransformation (GGEMSGeometryTransformation const &&geometry_transformation)=delete
 Avoid copy of the class by rvalue reference. More...
 
GGEMSGeometryTransformationoperator= (GGEMSGeometryTransformation const &&geometry_transformation)=delete
 Avoid copy of the class by rvalue reference. More...
 
void SetTranslation (GGfloat const &tx, GGfloat const &ty, GGfloat const &tz)
 Set the translation in X, Y and Z. More...
 
void SetTranslation (GGfloat3 const &txyz)
 Set the translation in X, Y and Z. More...
 
GGfloat44 GetMatrixTranslation (void) const
 Return the translation matrix. More...
 
void SetRotation (GGfloat const &rx, GGfloat const &ry, GGfloat const &rz)
 Set the Rotation in X, Y and Z around global axis. More...
 
void SetRotation (GGfloat3 const &rxyz)
 Set the rotation around global axis. More...
 
GGfloat44 GetMatrixRotation (void) const
 Return the translation matrix. More...
 
void SetAxisTransformation (GGfloat33 const &axis)
 Set the transformation of the frame, usefull for mirroring or convert 3D to 2D. More...
 
void SetAxisTransformation (GGfloat3 const &m0, GGfloat3 const &m1, GGfloat3 const &m2)
 Set the transformation of the frame, usefull for mirroring or convert 3D to 2D. More...
 
GGfloat44 GetMatrixOrthographicProjection (void) const
 return the matrix of orthographic projection More...
 
GGfloat3 GetPosition (void) const
 Return the current position. More...
 
GGfloat3 GetRotation (void) const
 Return the current rotation. More...
 
GGfloat33 GetLocalAxis (void) const
 return the local axis matrix More...
 
cl::Buffer * GetTransformationMatrix (GGsize const &index) const
 return the transformation matrix More...
 

Private Attributes

GGfloat3 position_
 
GGfloat3 rotation_
 
GGfloat33 local_axis_
 
GGfloat44 matrix_translation_
 
GGfloat44 matrix_rotation_
 
GGfloat44 matrix_orthographic_projection_
 
cl::Buffer ** matrix_transformation_
 
GGsize number_activated_devices_
 

Detailed Description

This class handles everything about geometry transformation.

Definition at line 41 of file GGEMSGeometryTransformation.hh.

Constructor & Destructor Documentation

◆ GGEMSGeometryTransformation() [1/3]

GGEMSGeometryTransformation::GGEMSGeometryTransformation ( void  )

GGEMSGeometryTransformation constructor.

Definition at line 40 of file GGEMSGeometryTransformation.cc.

◆ ~GGEMSGeometryTransformation()

GGEMSGeometryTransformation::~GGEMSGeometryTransformation ( void  )

GGEMSGeometryTransformation destructor.

Definition at line 122 of file GGEMSGeometryTransformation.cc.

◆ GGEMSGeometryTransformation() [2/3]

GGEMSGeometryTransformation::GGEMSGeometryTransformation ( GGEMSGeometryTransformation const &  geometry_transformation)
delete

Avoid copy of the class by reference.

Parameters
geometry_transformation- reference on the geometry transformation

◆ GGEMSGeometryTransformation() [3/3]

GGEMSGeometryTransformation::GGEMSGeometryTransformation ( GGEMSGeometryTransformation const &&  geometry_transformation)
delete

Avoid copy of the class by rvalue reference.

Parameters
geometry_transformation- rvalue reference on the geometry transformation

Member Function Documentation

◆ GetLocalAxis()

GGfloat33 GGEMSGeometryTransformation::GetLocalAxis ( void  ) const
inline

return the local axis matrix

Returns
The local axis matrix

Definition at line 170 of file GGEMSGeometryTransformation.hh.

◆ GetMatrixOrthographicProjection()

GGfloat44 GGEMSGeometryTransformation::GetMatrixOrthographicProjection ( void  ) const
inline

return the matrix of orthographic projection

Returns
the matrix of orthographic projection

Definition at line 149 of file GGEMSGeometryTransformation.hh.

◆ GetMatrixRotation()

GGfloat44 GGEMSGeometryTransformation::GetMatrixRotation ( void  ) const
inline

Return the translation matrix.

Returns
the translation matrix

Definition at line 126 of file GGEMSGeometryTransformation.hh.

◆ GetMatrixTranslation()

float4x4 GGEMSGeometryTransformation::GetMatrixTranslation ( void  ) const
inline

Return the translation matrix.

Returns
the translation matrix

Definition at line 103 of file GGEMSGeometryTransformation.hh.

◆ GetPosition()

GGfloat3 GGEMSGeometryTransformation::GetPosition ( void  ) const
inline

Return the current position.

Returns
The position of source/detector...

Definition at line 156 of file GGEMSGeometryTransformation.hh.

◆ GetRotation()

GGfloat3 GGEMSGeometryTransformation::GetRotation ( void  ) const
inline

Return the current rotation.

Returns
The rotation of source/detector...

Definition at line 163 of file GGEMSGeometryTransformation.hh.

◆ GetTransformationMatrix()

Matrix::float4x4 GGEMSGeometryTransformation::GetTransformationMatrix ( GGsize const &  index) const
inline

return the transformation matrix

Parameters
index- index of device
Returns
the transformation matrix

Definition at line 178 of file GGEMSGeometryTransformation.hh.

◆ operator=() [1/2]

GGEMSGeometryTransformation & GGEMSGeometryTransformation::operator= ( GGEMSGeometryTransformation const &&  geometry_transformation)
delete

Avoid copy of the class by rvalue reference.

Parameters
geometry_transformation- rvalue reference on the geometry transformation

◆ operator=() [2/2]

GGEMSGeometryTransformation & GGEMSGeometryTransformation::operator= ( GGEMSGeometryTransformation const &  geometry_transformation)
delete

Avoid assignement of the class by reference.

Parameters
geometry_transformation- reference on the geometry transformation

◆ SetAxisTransformation() [1/2]

void GGEMSGeometryTransformation::SetAxisTransformation ( GGfloat3 const &  m0,
GGfloat3 const &  m1,
GGfloat3 const &  m2 
)

Set the transformation of the frame, usefull for mirroring or convert 3D to 2D.

Parameters
m0- Row 0 in the matrix 3x3 for local axis
m1- Row 1 in the matrix 3x3 for local axis
m2- Row 2 in the matrix 3x3 for local axis

Definition at line 284 of file GGEMSGeometryTransformation.cc.

◆ SetAxisTransformation() [2/2]

void GGEMSGeometryTransformation::SetAxisTransformation ( GGfloat33 const &  axis)

Set the transformation of the frame, usefull for mirroring or convert 3D to 2D.

Parameters
axis- Matrix (3x3) that contains the mapping of the coordinates (ex. x becomes y and vice-versa). Values are 0, 1 or -1.

Definition at line 129 of file GGEMSGeometryTransformation.hh.

◆ SetRotation() [1/2]

void GGEMSGeometryTransformation::SetRotation ( GGfloat const &  rx,
GGfloat const &  ry,
GGfloat const &  rz 
)

Set the Rotation in X, Y and Z around global axis.

Parameters
rx- Rotation in X
ry- Rotation in Y
rz- Rotation in Z

Definition at line 106 of file GGEMSGeometryTransformation.hh.

◆ SetRotation() [2/2]

void GGEMSGeometryTransformation::SetRotation ( GGfloat3 const &  rxyz)

Set the rotation around global axis.

Parameters
rxyz- Rotation around X, Y and Z global axis

Definition at line 275 of file GGEMSGeometryTransformation.cc.

◆ SetTranslation() [1/2]

void GGEMSGeometryTransformation::SetTranslation ( GGfloat const &  tx,
GGfloat const &  ty,
GGfloat const &  tz 
)

Set the translation in X, Y and Z.

Parameters
tx- Translation in X
ty- Translation in Y
tz- Translation in Z

Definition at line 143 of file GGEMSGeometryTransformation.cc.

◆ SetTranslation() [2/2]

void GGEMSGeometryTransformation::SetTranslation ( GGfloat3 const &  txyz)

Set the translation in X, Y and Z.

Parameters
txyz- Translation in X, Y and Z

Definition at line 187 of file GGEMSGeometryTransformation.cc.

Member Data Documentation

◆ local_axis_

GGfloat33 GGEMSGeometryTransformation::local_axis_
private

Matrix of local axis

Definition at line 183 of file GGEMSGeometryTransformation.hh.

◆ matrix_orthographic_projection_

GGfloat44 GGEMSGeometryTransformation::matrix_orthographic_projection_
private

Matrix of orthographic projection

Definition at line 186 of file GGEMSGeometryTransformation.hh.

◆ matrix_rotation_

GGfloat44 GGEMSGeometryTransformation::matrix_rotation_
private

Matrix of rotation

Definition at line 185 of file GGEMSGeometryTransformation.hh.

◆ matrix_transformation_

cl::Buffer** GGEMSGeometryTransformation::matrix_transformation_
private

OpenCL buffer storing the matrix transformation

Definition at line 187 of file GGEMSGeometryTransformation.hh.

◆ matrix_translation_

GGfloat44 GGEMSGeometryTransformation::matrix_translation_
private

Matrix of translation

Definition at line 184 of file GGEMSGeometryTransformation.hh.

◆ number_activated_devices_

GGsize GGEMSGeometryTransformation::number_activated_devices_
private

Number of activated device

Definition at line 188 of file GGEMSGeometryTransformation.hh.

◆ position_

GGfloat3 GGEMSGeometryTransformation::position_
private

Position of the source/detector

Definition at line 181 of file GGEMSGeometryTransformation.hh.

◆ rotation_

GGfloat3 GGEMSGeometryTransformation::rotation_
private

Rotation of the source/detector

Definition at line 182 of file GGEMSGeometryTransformation.hh.


The documentation for this class was generated from the following files: