Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
|
#include <HepPolyhedron.h>
Static Public Member Functions | |
static G4int | GetNumberOfRotationSteps () |
static void | SetNumberOfRotationSteps (G4int n) |
static void | ResetNumberOfRotationSteps () |
Protected Member Functions | |
void | AllocateMemory (G4int Nvert, G4int Nface) |
G4int | FindNeighbour (G4int iFace, G4int iNode, G4int iOrder) const |
G4Normal3D | FindNodeNormal (G4int iFace, G4int iNode) const |
void | CreatePrism () |
void | RotateEdge (G4int k1, G4int k2, G4double r1, G4double r2, G4int v1, G4int v2, G4int vEdge, G4bool ifWholeCircle, G4int ns, G4int &kface) |
void | SetSideFacets (G4int ii[4], G4int vv[4], G4int *kk, G4double *r, G4double dphi, G4int ns, G4int &kface) |
void | RotateAroundZ (G4int nstep, G4double phi, G4double dphi, G4int np1, G4int np2, const G4double *z, G4double *r, G4int nodeVis, G4int edgeVis) |
void | SetReferences () |
void | InvertFacets () |
Protected Attributes | |
G4int | nvert |
G4int | nface |
G4Point3D * | pV |
G4Facet * | pF |
Static Protected Attributes | |
static G4int | fNumberOfRotationSteps = DEFAULT_NUMBER_OF_STEPS |
Friends | |
std::ostream & | operator<< (std::ostream &, const HepPolyhedron &ph) |
Definition at line 195 of file HepPolyhedron.h.
|
inline |
Definition at line 240 of file HepPolyhedron.h.
HepPolyhedron::HepPolyhedron | ( | const HepPolyhedron & | from | ) |
Definition at line 105 of file HepPolyhedron.cc.
|
inlinevirtual |
Definition at line 246 of file HepPolyhedron.h.
HepPolyhedron HepPolyhedron::add | ( | const HepPolyhedron & | p | ) | const |
Definition at line 2259 of file HepPolyhedron.cc.
Definition at line 242 of file HepPolyhedron.cc.
Referenced by createPolyhedron(), createTwistedTrap(), G4PolyhedronArbitrary::G4PolyhedronArbitrary(), HepPolyhedron(), HepPolyhedronTrap::HepPolyhedronTrap(), HepPolyhedronTrd2::HepPolyhedronTrd2(), operator=(), and RotateAroundZ().
G4int HepPolyhedron::createPolyhedron | ( | G4int | Nnodes, |
G4int | Nfaces, | ||
const G4double | xyz[][3], | ||
const G4int | faces[][4] | ||
) |
Creates user defined polyhedron. This function allows to the user to define arbitrary polyhedron. The faces of the polyhedron should be either triangles or planar quadrilateral. Nodes of a face are defined by indexes pointing to the elements in the xyz array. Numeration of the elements in the array starts from 1 (like in fortran). The indexes can be positive or negative. Negative sign means that the corresponding edge is invisible. The normal of the face should be directed to exterior of the polyhedron.
Nnodes | number of nodes |
Nfaces | number of faces |
xyz | nodes |
faces | faces (quadrilaterals or triangles) |
Definition at line 1356 of file HepPolyhedron.cc.
Referenced by G4CutTubs::CreatePolyhedron(), G4Polycone::CreatePolyhedron(), G4Polyhedra::CreatePolyhedron(), G4Tet::CreatePolyhedron(), G4TwistedTubs::CreatePolyhedron(), and G4VTwistedFaceted::CreatePolyhedron().
|
protected |
Definition at line 268 of file HepPolyhedron.cc.
Referenced by HepPolyhedronTrap::HepPolyhedronTrap(), and HepPolyhedronTrd2::HepPolyhedronTrd2().
G4int HepPolyhedron::createTwistedTrap | ( | G4double | Dz, |
const G4double | xy1[][2], | ||
const G4double | xy2[][2] | ||
) |
Creates polyhedron for twisted trapezoid. The trapezoid is given by two bases perpendicular to the z-axis.
Dz | half length in z |
xy1 | 1st base (at z = -Dz) |
xy2 | 2nd base (at z = +Dz) |
Definition at line 1287 of file HepPolyhedron.cc.
Definition at line 138 of file HepPolyhedron.cc.
|
protected |
Definition at line 166 of file HepPolyhedron.cc.
void HepPolyhedron::GetFacet | ( | G4int | iFace, |
G4int & | n, | ||
G4int * | iNodes, | ||
G4int * | edgeFlags = 0 , |
||
G4int * | iFaces = 0 |
||
) | const |
Definition at line 1063 of file HepPolyhedron.cc.
Referenced by G4CutTubs::CreatePolyhedron().
void HepPolyhedron::GetFacet | ( | G4int | iFace, |
G4int & | n, | ||
G4Point3D * | nodes, | ||
G4int * | edgeFlags = 0 , |
||
G4Normal3D * | normals = 0 |
||
) | const |
Definition at line 1097 of file HepPolyhedron.cc.
Definition at line 1022 of file HepPolyhedron.cc.
Referenced by G4GMocrenFileSceneHandler::AddSolid().
G4bool HepPolyhedron::GetNextEdge | ( | G4Point3D & | p1, |
G4Point3D & | p2, | ||
G4int & | edgeFlag, | ||
G4int & | iface1, | ||
G4int & | iface2 | ||
) | const |
Definition at line 1043 of file HepPolyhedron.cc.
Definition at line 1006 of file HepPolyhedron.cc.
G4bool HepPolyhedron::GetNextEdgeIndeces | ( | G4int & | i1, |
G4int & | i2, | ||
G4int & | edgeFlag, | ||
G4int & | iface1, | ||
G4int & | iface2 | ||
) | const |
Definition at line 953 of file HepPolyhedron.cc.
G4bool HepPolyhedron::GetNextFacet | ( | G4int & | n, |
G4Point3D * | nodes, | ||
G4int * | edgeFlags = 0 , |
||
G4Normal3D * | normals = 0 |
||
) | const |
Definition at line 1119 of file HepPolyhedron.cc.
G4bool HepPolyhedron::GetNextNormal | ( | G4Normal3D & | normal | ) | const |
Definition at line 1199 of file HepPolyhedron.cc.
Referenced by G4HepRepFileSceneHandler::AddPrimitive(), and G4HepRepSceneHandler::AddPrimitive().
G4bool HepPolyhedron::GetNextUnitNormal | ( | G4Normal3D & | normal | ) | const |
Definition at line 1220 of file HepPolyhedron.cc.
Definition at line 903 of file HepPolyhedron.cc.
Referenced by G4HepRepFileSceneHandler::AddPrimitive(), and G4HepRepSceneHandler::AddPrimitive().
G4bool HepPolyhedron::GetNextVertex | ( | G4Point3D & | vertex, |
G4int & | edgeFlag, | ||
G4Normal3D & | normal | ||
) | const |
Definition at line 921 of file HepPolyhedron.cc.
Definition at line 856 of file HepPolyhedron.cc.
Referenced by G4GMocrenFileSceneHandler::AddPrimitive().
|
inline |
Definition at line 255 of file HepPolyhedron.h.
Referenced by G4HepRepFileSceneHandler::AddPrimitive(), G4HepRepSceneHandler::AddPrimitive(), G4XXXFileSceneHandler::AddPrimitive(), G4XXXSceneHandler::AddPrimitive(), G4XXXSGSceneHandler::AddPrimitive(), G4XXXStoredSceneHandler::AddPrimitive(), G4GMocrenFileSceneHandler::AddPrimitive(), and G4CutTubs::CreatePolyhedron().
G4Normal3D HepPolyhedron::GetNormal | ( | G4int | iFace | ) | const |
Definition at line 1149 of file HepPolyhedron.cc.
|
inline |
Definition at line 252 of file HepPolyhedron.h.
Referenced by G4GMocrenFileSceneHandler::AddSolid(), and G4CutTubs::CreatePolyhedron().
|
static |
Definition at line 194 of file HepPolyhedron.cc.
Referenced by G4Polycone::CreatePolyhedron(), G4TwistedTubs::CreatePolyhedron(), G4VTwistedFaceted::CreatePolyhedron(), G4ReflectedSolid::GetPolyhedron(), G4BooleanSolid::GetPolyhedron(), G4DisplacedSolid::GetPolyhedron(), G4BREPSolid::GetPolyhedron(), G4CSGSolid::GetPolyhedron(), G4Ellipsoid::GetPolyhedron(), G4EllipticalCone::GetPolyhedron(), G4EllipticalTube::GetPolyhedron(), G4GenericTrap::GetPolyhedron(), G4Hype::GetPolyhedron(), G4Paraboloid::GetPolyhedron(), G4TessellatedSolid::GetPolyhedron(), G4Tet::GetPolyhedron(), G4TwistedTubs::GetPolyhedron(), G4VCSGfaceted::GetPolyhedron(), G4VTwistedFaceted::GetPolyhedron(), HepPolyhedronEllipsoid::HepPolyhedronEllipsoid(), HepPolyhedronHype::HepPolyhedronHype(), HepPolyhedronParaboloid::HepPolyhedronParaboloid(), HepPolyhedronSphere::HepPolyhedronSphere(), HepPolyhedronTorus::HepPolyhedronTorus(), and RotateAroundZ().
G4double HepPolyhedron::GetSurfaceArea | ( | ) | const |
Definition at line 1236 of file HepPolyhedron.cc.
G4Normal3D HepPolyhedron::GetUnitNormal | ( | G4int | iFace | ) | const |
Definition at line 1174 of file HepPolyhedron.cc.
Definition at line 883 of file HepPolyhedron.cc.
Referenced by G4GMocrenFileSceneHandler::AddSolid(), and G4CutTubs::CreatePolyhedron().
G4double HepPolyhedron::GetVolume | ( | ) | const |
Definition at line 1258 of file HepPolyhedron.cc.
HepPolyhedron HepPolyhedron::intersect | ( | const HepPolyhedron & | p | ) | const |
Definition at line 2274 of file HepPolyhedron.cc.
|
protected |
Definition at line 805 of file HepPolyhedron.cc.
Referenced by G4PolyhedronArbitrary::InvertFacets(), and Transform().
HepPolyhedron & HepPolyhedron::operator= | ( | const HepPolyhedron & | from | ) |
|
static |
Definition at line 229 of file HepPolyhedron.cc.
Referenced by G4PhysicalVolumeModel::DescribeSolid(), and G4VSceneHandler::RequestPrimitives().
|
protected |
Definition at line 421 of file HepPolyhedron.cc.
Referenced by HepPolyhedronCons::HepPolyhedronCons(), HepPolyhedronEllipsoid::HepPolyhedronEllipsoid(), HepPolyhedronEllipticalCone::HepPolyhedronEllipticalCone(), HepPolyhedronHype::HepPolyhedronHype(), HepPolyhedronParaboloid::HepPolyhedronParaboloid(), HepPolyhedronPgon::HepPolyhedronPgon(), HepPolyhedronSphere::HepPolyhedronSphere(), and HepPolyhedronTorus::HepPolyhedronTorus().
|
protected |
Definition at line 288 of file HepPolyhedron.cc.
Referenced by RotateAroundZ().
|
static |
Definition at line 207 of file HepPolyhedron.cc.
Referenced by G4PhysicalVolumeModel::DescribeSolid(), and G4VSceneHandler::RequestPrimitives().
|
protected |
Definition at line 668 of file HepPolyhedron.cc.
Referenced by createPolyhedron(), HepPolyhedronCons::HepPolyhedronCons(), HepPolyhedronEllipsoid::HepPolyhedronEllipsoid(), HepPolyhedronEllipticalCone::HepPolyhedronEllipticalCone(), HepPolyhedronHype::HepPolyhedronHype(), HepPolyhedronParaboloid::HepPolyhedronParaboloid(), HepPolyhedronPgon::HepPolyhedronPgon(), HepPolyhedronSphere::HepPolyhedronSphere(), HepPolyhedronTorus::HepPolyhedronTorus(), and G4PolyhedronArbitrary::SetReferences().
|
protected |
Definition at line 350 of file HepPolyhedron.cc.
Referenced by RotateAroundZ().
HepPolyhedron HepPolyhedron::subtract | ( | const HepPolyhedron & | p | ) | const |
Definition at line 2289 of file HepPolyhedron.cc.
HepPolyhedron & HepPolyhedron::Transform | ( | const G4Transform3D & | t | ) |
Definition at line 831 of file HepPolyhedron.cc.
Referenced by G4GMocrenFileSceneHandler::AddSolid(), G4ReflectedSolid::CreatePolyhedron(), G4DisplacedSolid::CreatePolyhedron(), G4EllipticalTube::CreatePolyhedron(), and G4ArrowModel::G4ArrowModel().
|
friend |
Definition at line 90 of file HepPolyhedron.cc.
|
staticprotected |
Definition at line 199 of file HepPolyhedron.h.
Referenced by G4Polyhedron::G4Polyhedron(), GetNumberOfRotationSteps(), ResetNumberOfRotationSteps(), and SetNumberOfRotationSteps().
|
protected |
Definition at line 200 of file HepPolyhedron.h.
Referenced by G4PolyhedronArbitrary::AddFacet(), AllocateMemory(), GetNoFacets(), GetSurfaceArea(), GetVolume(), HepPolyhedron(), InvertFacets(), operator=(), RotateAroundZ(), and SetReferences().
|
protected |
Definition at line 200 of file HepPolyhedron.h.
Referenced by G4PolyhedronArbitrary::AddFacet(), G4PolyhedronArbitrary::AddVertex(), AllocateMemory(), createPolyhedron(), GetNoVertices(), HepPolyhedron(), HepPolyhedronEllipsoid::HepPolyhedronEllipsoid(), HepPolyhedronEllipticalCone::HepPolyhedronEllipticalCone(), operator=(), SetReferences(), and Transform().
|
protected |
Definition at line 202 of file HepPolyhedron.h.
Referenced by G4PolyhedronArbitrary::AddFacet(), AllocateMemory(), createPolyhedron(), CreatePrism(), createTwistedTrap(), GetSurfaceArea(), GetVolume(), HepPolyhedron(), InvertFacets(), operator=(), RotateEdge(), SetReferences(), SetSideFacets(), and ~HepPolyhedron().
|
protected |
Definition at line 201 of file HepPolyhedron.h.
Referenced by G4PolyhedronArbitrary::AddVertex(), AllocateMemory(), createPolyhedron(), createTwistedTrap(), GetSurfaceArea(), GetVolume(), HepPolyhedron(), HepPolyhedronEllipsoid::HepPolyhedronEllipsoid(), HepPolyhedronEllipticalCone::HepPolyhedronEllipticalCone(), HepPolyhedronTrap::HepPolyhedronTrap(), HepPolyhedronTrd2::HepPolyhedronTrd2(), operator=(), RotateAroundZ(), Transform(), and ~HepPolyhedron().