168 #ifndef HEP_POLYHEDRON_HH
169 #define HEP_POLYHEDRON_HH
176 #ifndef DEFAULT_NUMBER_OF_STEPS
177 #define DEFAULT_NUMBER_OF_STEPS 24
295 G4int *edgeFlags = 0,
G4int *iFaces = 0)
const;
HepPolyhedronTubs(G4double Rmin, G4double Rmax, G4double Dz, G4double Phi1, G4double Dphi)
G4Point3D GetVertex(G4int index) const
HepPolyhedronTorus(G4double rmin, G4double rmax, G4double rtor, G4double phi, G4double dphi)
G4int createPolyhedron(G4int Nnodes, G4int Nfaces, const G4double xyz[][3], const G4int faces[][4])
HepPolyhedronPcon(G4double phi, G4double dphi, G4int nz, const G4double *z, const G4double *rmin, const G4double *rmax)
virtual ~HepPolyhedronBox()
G4bool GetNextFacet(G4int &n, G4Point3D *nodes, G4int *edgeFlags=0, G4Normal3D *normals=0) const
G4Normal3D FindNodeNormal(G4int iFace, G4int iNode) const
HepPolyhedron subtract(const HepPolyhedron &p) const
G4double GetSurfaceArea() const
virtual ~HepPolyhedronCone()
HepPolyhedronCone(G4double Rmn1, G4double Rmx1, G4double Rmn2, G4double Rmx2, G4double Dz)
static void ResetNumberOfRotationSteps()
HepPolyhedronTrap(G4double Dz, G4double Theta, G4double Phi, G4double Dy1, G4double Dx1, G4double Dx2, G4double Alp1, G4double Dy2, G4double Dx3, G4double Dx4, G4double Alp2)
HepPolyhedronEllipticalCone(G4double dx, G4double dy, G4double z, G4double zcut1)
void RotateAroundZ(G4int nstep, G4double phi, G4double dphi, G4int np1, G4int np2, const G4double *z, G4double *r, G4int nodeVis, G4int edgeVis)
virtual ~HepPolyhedronTrd1()
HepPolyhedronTube(G4double Rmin, G4double Rmax, G4double Dz)
HepPolyhedronBox(G4double Dx, G4double Dy, G4double Dz)
static G4ThreadLocal G4int fNumberOfRotationSteps
static double normal(HepRandomEngine *eptr)
G4int FindNeighbour(G4int iFace, G4int iNode, G4int iOrder) const
friend std::ostream & operator<<(std::ostream &, const G4Facet &facet)
HepPolyhedronEllipsoid(G4double dx, G4double dy, G4double dz, G4double zcut1, G4double zcut2)
virtual ~HepPolyhedronTrd2()
static void SetNumberOfRotationSteps(G4int n)
virtual ~HepPolyhedronPgon()
G4int GetNoVerteces() const
virtual ~HepPolyhedronPcon()
G4bool GetNextVertexIndex(G4int &index, G4int &edgeFlag) const
HepPolyhedron add(const HepPolyhedron &p) const
G4bool GetNextEdge(G4Point3D &p1, G4Point3D &p2, G4int &edgeFlag) const
G4Facet(G4int v1=0, G4int f1=0, G4int v2=0, G4int f2=0, G4int v3=0, G4int f3=0, G4int v4=0, G4int f4=0)
void GetFacet(G4int iFace, G4int &n, G4int *iNodes, G4int *edgeFlags=0, G4int *iFaces=0) const
HepPolyhedronPgon(G4double phi, G4double dphi, G4int npdv, G4int nz, const G4double *z, const G4double *rmin, const G4double *rmax)
HepPolyhedron & Transform(const G4Transform3D &t)
void RotateEdge(G4int k1, G4int k2, G4double r1, G4double r2, G4int v1, G4int v2, G4int vEdge, G4bool ifWholeCircle, G4int ns, G4int &kface)
G4bool GetNextUnitNormal(G4Normal3D &normal) const
virtual ~HepPolyhedronTubs()
virtual ~HepPolyhedronTube()
G4bool GetNextVertex(G4Point3D &vertex, G4int &edgeFlag) const
void SetSideFacets(G4int ii[4], G4int vv[4], G4int *kk, G4double *r, G4double dphi, G4int ns, G4int &kface)
virtual ~HepPolyhedronPara()
virtual ~HepPolyhedronTorus()
G4bool GetNextEdgeIndeces(G4int &i1, G4int &i2, G4int &edgeFlag, G4int &iface1, G4int &iface2) const
virtual ~HepPolyhedronParaboloid()
static G4int GetNumberOfRotationSteps()
virtual ~HepPolyhedronEllipticalCone()
G4int GetNoVertices() const
G4bool GetNextNormal(G4Normal3D &normal) const
G4Normal3D GetUnitNormal(G4int iFace) const
G4int createTwistedTrap(G4double Dz, const G4double xy1[][2], const G4double xy2[][2])
friend std::ostream & operator<<(std::ostream &, const HepPolyhedron &ph)
G4Normal3D GetNormal(G4int iFace) const
virtual ~HepPolyhedronCons()
HepPolyhedronSphere(G4double rmin, G4double rmax, G4double phi, G4double dphi, G4double the, G4double dthe)
virtual ~HepPolyhedronTrap()
HepPolyhedronParaboloid(G4double r1, G4double r2, G4double dz, G4double Phi1, G4double Dphi)
virtual ~HepPolyhedronSphere()
G4double GetVolume() const
virtual ~HepPolyhedronEllipsoid()
void AllocateMemory(G4int Nvert, G4int Nface)
HepPolyhedronTrd1(G4double Dx1, G4double Dx2, G4double Dy, G4double Dz)
G4int GetNoFacets() const
G4bool GetNextEdgeIndices(G4int &i1, G4int &i2, G4int &edgeFlag, G4int &iface1, G4int &iface2) const
G4bool GetNextEdgeIndeces(G4int &i1, G4int &i2, G4int &edgeFlag) const
HepPolyhedron intersect(const HepPolyhedron &p) const
virtual ~HepPolyhedronHype()
HepPolyhedronPara(G4double Dx, G4double Dy, G4double Dz, G4double Alpha, G4double Theta, G4double Phi)
HepPolyhedron & operator=(const HepPolyhedron &from)
HepPolyhedronCons(G4double Rmn1, G4double Rmx1, G4double Rmn2, G4double Rmx2, G4double Dz, G4double Phi1, G4double Dphi)
HepPolyhedronTrd2(G4double Dx1, G4double Dx2, G4double Dy1, G4double Dy2, G4double Dz)
HepPolyhedronHype(G4double r1, G4double r2, G4double tan1, G4double tan2, G4double halfZ)