Geant4.10
|
#include <UVoxelizer.hh>
Public Member Functions | |
void | Voxelize (std::vector< VUSolid * > &solids, std::vector< UTransform3D * > &transforms) |
void | Voxelize (std::vector< VUFacet * > &facets) |
void | DisplayVoxelLimits () |
void | DisplayBoundaries () |
void | DisplayListNodes () |
UVoxelizer () | |
~UVoxelizer () | |
void | GetCandidatesVoxel (std::vector< int > &voxels) |
int | GetCandidatesVoxelArray (const UVector3 &point, std::vector< int > &list, UBits *crossed=NULL) const |
int | GetCandidatesVoxelArray (const std::vector< int > &voxels, const UBits bitmasks[], std::vector< int > &list, UBits *crossed=NULL) const |
int | GetCandidatesVoxelArray (const std::vector< int > &voxels, std::vector< int > &list, UBits *crossed=NULL) const |
const std::vector< UVoxelBox > & | GetBoxes () const |
const std::vector< double > & | GetBoundary (int index) const |
bool | UpdateCurrentVoxel (const UVector3 &point, const UVector3 &direction, std::vector< int > &curVoxel) const |
void | GetVoxel (std::vector< int > &curVoxel, const UVector3 &point) const |
int | GetBitsPerSlice () const |
bool | Contains (const UVector3 &point) const |
double | DistanceToNext (const UVector3 &point, const UVector3 &direction, std::vector< int > &curVoxel) const |
double | DistanceToFirst (const UVector3 &point, const UVector3 &direction) const |
double | SafetyToBoundingBox (const UVector3 &point) const |
int | GetVoxelsIndex (int x, int y, int z) const |
int | GetVoxelsIndex (const std::vector< int > &voxels) const |
bool | GetPointVoxel (const UVector3 &p, std::vector< int > &voxels) const |
int | GetPointIndex (const UVector3 &p) const |
const UBits & | Empty () const |
bool | IsEmpty (int index) const |
void | SetMaxVoxels (int max) |
void | SetMaxVoxels (const UVector3 &reductionRatio) |
int | GetMaxVoxels (UVector3 &ratioOfReduction) |
int | AllocatedMemory () |
long long | GetCountOfVoxels () const |
long long | CountVoxels (std::vector< double > boundaries[]) const |
const std::vector< int > & | GetCandidates (std::vector< int > &curVoxel) const |
int | GetVoxelBoxesSize () const |
const UVoxelBox & | GetVoxelBox (int i) const |
const std::vector< int > & | GetVoxelBoxCandidates (int i) const |
int | GetTotalCandidates () const |
void | BuildBoundingBox () |
void | BuildBoundingBox (UVector3 &amin, UVector3 &amax, double tolerance=0) |
Static Public Member Functions | |
template<typename T > | |
static int | BinarySearch (const std::vector< T > &vec, T value) |
static double | MinDistanceToBox (const UVector3 &aPoint, const UVector3 &f) |
static void | SetDefaultVoxelsCount (int count) |
static int | GetDefaultVoxelsCount () |
Definition at line 49 of file UVoxelizer.hh.
UVoxelizer::UVoxelizer | ( | ) |
Definition at line 31 of file UVoxelizer.cc.
References G4SolidStore::DeRegister(), G4SolidStore::GetInstance(), SetMaxVoxels(), and VUSolid::Tolerance().
UVoxelizer::~UVoxelizer | ( | ) |
Definition at line 45 of file UVoxelizer.cc.
int UVoxelizer::AllocatedMemory | ( | ) |
Definition at line 1136 of file UVoxelizer.cc.
References UBits::GetNbytes(), and int().
|
inlinestatic |
Definition at line 58 of file UVoxelizer.hh.
Referenced by GetCandidatesVoxelArray(), GetPointIndex(), GetPointVoxel(), UVCSGfaceted::GetSection(), UPolycone::GetSection(), GetVoxel(), UVCSGfaceted::SafetyFromInside(), and UPolycone::SafetyFromInside().
void UVoxelizer::BuildBoundingBox | ( | ) |
Definition at line 424 of file UVoxelizer.cc.
References G4INCL::Math::max(), and G4INCL::Math::min().
Definition at line 431 of file UVoxelizer.cc.
References G4INCL::Math::min(), UVector3::x, UVector3::y, and UVector3::z.
bool UVoxelizer::Contains | ( | const UVector3 & | point | ) | const |
Definition at line 997 of file UVoxelizer.cc.
|
inline |
Definition at line 191 of file UVoxelizer.hh.
Referenced by Voxelize().
void UVoxelizer::DisplayBoundaries | ( | ) |
Definition at line 270 of file UVoxelizer.cc.
void UVoxelizer::DisplayListNodes | ( | ) |
Definition at line 403 of file UVoxelizer.cc.
References int(), and UBits::Set().
void UVoxelizer::DisplayVoxelLimits | ( | ) |
Definition at line 173 of file UVoxelizer.cc.
Definition at line 1007 of file UVoxelizer.cc.
References UBox::DistanceToIn().
double UVoxelizer::DistanceToNext | ( | const UVector3 & | point, |
const UVector3 & | direction, | ||
std::vector< int > & | curVoxel | ||
) | const |
Definition at line 1056 of file UVoxelizer.cc.
|
inline |
Definition at line 164 of file UVoxelizer.hh.
|
inline |
Definition at line 115 of file UVoxelizer.hh.
References int().
|
inline |
Definition at line 96 of file UVoxelizer.hh.
Referenced by GetVoxel().
|
inline |
Definition at line 92 of file UVoxelizer.hh.
Definition at line 221 of file UVoxelizer.hh.
References GetVoxelsIndex().
Definition at line 777 of file UVoxelizer.cc.
References GetCandidatesVoxelArray().
int UVoxelizer::GetCandidatesVoxelArray | ( | const UVector3 & | point, |
std::vector< int > & | list, | ||
UBits * | crossed = NULL |
||
) | const |
Definition at line 867 of file UVoxelizer.cc.
References BinarySearch(), UBits::fAllBits, findComponentsFastest(), UVector3::x, UVector3::y, and UVector3::z.
Referenced by GetCandidatesVoxel(), and GetCandidatesVoxelArray().
int UVoxelizer::GetCandidatesVoxelArray | ( | const std::vector< int > & | voxels, |
const UBits | bitmasks[], | ||
std::vector< int > & | list, | ||
UBits * | crossed = NULL |
||
) | const |
Definition at line 938 of file UVoxelizer.cc.
References UBits::fAllBits, and findComponentsFastest().
int UVoxelizer::GetCandidatesVoxelArray | ( | const std::vector< int > & | voxels, |
std::vector< int > & | list, | ||
UBits * | crossed = NULL |
||
) | const |
Definition at line 990 of file UVoxelizer.cc.
References GetCandidatesVoxelArray().
|
inline |
Definition at line 186 of file UVoxelizer.hh.
|
static |
Definition at line 1156 of file UVoxelizer.cc.
Definition at line 178 of file UVoxelizer.hh.
Definition at line 153 of file UVoxelizer.hh.
References BinarySearch(), test::x, and z.
Definition at line 142 of file UVoxelizer.hh.
References BinarySearch().
|
inline |
Definition at line 246 of file UVoxelizer.hh.
Definition at line 103 of file UVoxelizer.hh.
References BinarySearch(), GetBoundary(), and n.
Definition at line 236 of file UVoxelizer.hh.
Definition at line 241 of file UVoxelizer.hh.
|
inline |
Definition at line 231 of file UVoxelizer.hh.
Definition at line 137 of file UVoxelizer.hh.
References GetVoxelsIndex().
|
inline |
Definition at line 169 of file UVoxelizer.hh.
Definition at line 1021 of file UVoxelizer.cc.
References UVector3::x, UVector3::y, and UVector3::z.
Referenced by SafetyToBoundingBox().
double UVoxelizer::SafetyToBoundingBox | ( | const UVector3 & | point | ) | const |
Definition at line 1014 of file UVoxelizer.cc.
References MinDistanceToBox().
Definition at line 1151 of file UVoxelizer.cc.
Definition at line 1124 of file UVoxelizer.cc.
References G4INCL::Math::max(), and UVector3::Set().
Referenced by UVoxelizer().
Definition at line 1130 of file UVoxelizer.cc.
bool UVoxelizer::UpdateCurrentVoxel | ( | const UVector3 & | point, |
const UVector3 & | direction, | ||
std::vector< int > & | curVoxel | ||
) | const |
void UVoxelizer::Voxelize | ( | std::vector< VUSolid * > & | solids, |
std::vector< UTransform3D * > & | transforms | ||
) |
Definition at line 680 of file UVoxelizer.cc.
References UBits::Clear(), CountVoxels(), and int().