Import Geant4 11.4.0 source tree
This commit is contained in:
@@ -27,13 +27,13 @@
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
// Defines a list of (voxel) extents along one axis.
|
||||
// Defines a list of (voxel) extents along one axis.
|
||||
//
|
||||
// This utility class is designed for one specific purpose:
|
||||
// to calculate the extent of a CSG-like solid for a voxel
|
||||
// (G4VSolid::CalculateExtent).
|
||||
// This utility class is designed for one specific purpose:
|
||||
// to calculate the extent of a CSG-like solid for a voxel
|
||||
// (G4VSolid::CalculateExtent).
|
||||
|
||||
// Author: David C. Williams (davidw@scipp.ucsc.edu)
|
||||
// Author: David C. Williams (UCSC), 1998
|
||||
// --------------------------------------------------------------------
|
||||
#ifndef G4SOLIDEXTENTLIST_HH
|
||||
#define G4SOLIDEXTENTLIST_HH
|
||||
@@ -42,28 +42,57 @@
|
||||
|
||||
#include "G4ClippablePolygon.hh"
|
||||
|
||||
/**
|
||||
* @brief G4SolidExtentList is utility class designed for calculating
|
||||
* the extent of a CSG-like solid for a voxel.
|
||||
*/
|
||||
|
||||
class G4SolidExtentList
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Default Constructor.
|
||||
*/
|
||||
G4SolidExtentList();
|
||||
|
||||
/**
|
||||
* Constructor provided axis and limits.
|
||||
* @param[in] targetAxis Axis along which compute the extent.
|
||||
* @param[in] voxelLimits The limiting space dictated by voxels.
|
||||
*/
|
||||
G4SolidExtentList( const EAxis targetAxis,
|
||||
const G4VoxelLimits& voxelLimits );
|
||||
~G4SolidExtentList();
|
||||
|
||||
/**
|
||||
* Default Destructor.
|
||||
*/
|
||||
~G4SolidExtentList() = default;
|
||||
|
||||
/**
|
||||
* Categorises polygon surfaces.
|
||||
*/
|
||||
void AddSurface( const G4ClippablePolygon& surface );
|
||||
|
||||
/**
|
||||
* Returns extent after processing all surfaces.
|
||||
* @param[out] min The minimum extent
|
||||
* @param[out] max The maximum extent
|
||||
* @returns false if no surfaces within limits or facing inwards.
|
||||
*/
|
||||
G4bool GetExtent( G4double& min, G4double& max ) const;
|
||||
|
||||
protected:
|
||||
|
||||
EAxis axis; // Target axis
|
||||
G4bool limited = false; // True if limited
|
||||
private:
|
||||
|
||||
/** Axis and limits... */
|
||||
EAxis axis; // Target axis
|
||||
G4bool limited = false; // True if limited
|
||||
G4double minLimit; // ... min limit
|
||||
G4double maxLimit; // ... max limit
|
||||
|
||||
/** Surfaces within the limits... */
|
||||
G4ClippablePolygon minSurface, // Minimum surface within limits
|
||||
maxSurface, // Maximum
|
||||
maxSurface, // Maximum surface within limits
|
||||
minAbove, // Minimum surface totally above max limit
|
||||
maxBelow; // Maximum surface totally below min limit
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user