Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HepPolyhedronPgon Class Reference

#include <HepPolyhedron.h>

Inheritance diagram for HepPolyhedronPgon:
Collaboration diagram for HepPolyhedronPgon:

Public Member Functions

 HepPolyhedronPgon (G4double phi, G4double dphi, G4int npdv, G4int nz, const G4double *z, const G4double *rmin, const G4double *rmax)
 
virtual ~HepPolyhedronPgon ()
 
- Public Member Functions inherited from HepPolyhedron
 HepPolyhedron ()
 
 HepPolyhedron (const HepPolyhedron &from)
 
virtual ~HepPolyhedron ()
 
HepPolyhedronoperator= (const HepPolyhedron &from)
 
G4int GetNoVertices () const
 
G4int GetNoVerteces () const
 
G4int GetNoFacets () const
 
HepPolyhedronTransform (const G4Transform3D &t)
 
G4bool GetNextVertexIndex (G4int &index, G4int &edgeFlag) const
 
G4Point3D GetVertex (G4int index) const
 
G4bool GetNextVertex (G4Point3D &vertex, G4int &edgeFlag) const
 
G4bool GetNextVertex (G4Point3D &vertex, G4int &edgeFlag, G4Normal3D &normal) const
 
G4bool GetNextEdgeIndices (G4int &i1, G4int &i2, G4int &edgeFlag, G4int &iface1, G4int &iface2) const
 
G4bool GetNextEdgeIndeces (G4int &i1, G4int &i2, G4int &edgeFlag, G4int &iface1, G4int &iface2) const
 
G4bool GetNextEdgeIndices (G4int &i1, G4int &i2, G4int &edgeFlag) const
 
G4bool GetNextEdgeIndeces (G4int &i1, G4int &i2, G4int &edgeFlag) const
 
G4bool GetNextEdge (G4Point3D &p1, G4Point3D &p2, G4int &edgeFlag) const
 
G4bool GetNextEdge (G4Point3D &p1, G4Point3D &p2, G4int &edgeFlag, G4int &iface1, G4int &iface2) const
 
void GetFacet (G4int iFace, G4int &n, G4int *iNodes, G4int *edgeFlags=0, G4int *iFaces=0) const
 
void GetFacet (G4int iFace, G4int &n, G4Point3D *nodes, G4int *edgeFlags=0, G4Normal3D *normals=0) const
 
G4bool GetNextFacet (G4int &n, G4Point3D *nodes, G4int *edgeFlags=0, G4Normal3D *normals=0) const
 
G4Normal3D GetNormal (G4int iFace) const
 
G4Normal3D GetUnitNormal (G4int iFace) const
 
G4bool GetNextNormal (G4Normal3D &normal) const
 
G4bool GetNextUnitNormal (G4Normal3D &normal) const
 
HepPolyhedron add (const HepPolyhedron &p) const
 
HepPolyhedron subtract (const HepPolyhedron &p) const
 
HepPolyhedron intersect (const HepPolyhedron &p) const
 
G4double GetSurfaceArea () const
 
G4double GetVolume () const
 
G4int createTwistedTrap (G4double Dz, const G4double xy1[][2], const G4double xy2[][2])
 
G4int createPolyhedron (G4int Nnodes, G4int Nfaces, const G4double xyz[][3], const G4int faces[][4])
 

Additional Inherited Members

- Static Public Member Functions inherited from HepPolyhedron
static G4int GetNumberOfRotationSteps ()
 
static void SetNumberOfRotationSteps (G4int n)
 
static void ResetNumberOfRotationSteps ()
 
- Protected Member Functions inherited from HepPolyhedron
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 inherited from HepPolyhedron
G4int nvert
 
G4int nface
 
G4Point3DpV
 
G4FacetpF
 
- Static Protected Attributes inherited from HepPolyhedron
static G4ThreadLocal G4int fNumberOfRotationSteps = DEFAULT_NUMBER_OF_STEPS
 

Detailed Description

Definition at line 466 of file HepPolyhedron.h.

Constructor & Destructor Documentation

HepPolyhedronPgon::HepPolyhedronPgon ( G4double  phi,
G4double  dphi,
G4int  npdv,
G4int  nz,
const G4double z,
const G4double rmin,
const G4double rmax 
)

Definition at line 1800 of file HepPolyhedron.cc.

1823 {
1824  // C H E C K I N P U T P A R A M E T E R S
1825 
1826  if (dphi <= 0. || dphi > twopi) {
1827  std::cerr
1828  << "HepPolyhedronPgon/Pcon: wrong delta phi = " << dphi
1829  << std::endl;
1830  return;
1831  }
1832 
1833  if (nz < 2) {
1834  std::cerr
1835  << "HepPolyhedronPgon/Pcon: number of z-planes less than two = " << nz
1836  << std::endl;
1837  return;
1838  }
1839 
1840  if (npdv < 0) {
1841  std::cerr
1842  << "HepPolyhedronPgon/Pcon: error in number of phi-steps =" << npdv
1843  << std::endl;
1844  return;
1845  }
1846 
1847  G4int i;
1848  for (i=0; i<nz; i++) {
1849  if (rmin[i] < 0. || rmax[i] < 0. || rmin[i] > rmax[i]) {
1850  std::cerr
1851  << "HepPolyhedronPgon: error in radiuses rmin[" << i << "]="
1852  << rmin[i] << " rmax[" << i << "]=" << rmax[i]
1853  << std::endl;
1854  return;
1855  }
1856  }
1857 
1858  // P R E P A R E T W O P O L Y L I N E S
1859 
1860  G4double *zz, *rr;
1861  zz = new G4double[2*nz];
1862  rr = new G4double[2*nz];
1863 
1864  if (z[0] > z[nz-1]) {
1865  for (i=0; i<nz; i++) {
1866  zz[i] = z[i];
1867  rr[i] = rmax[i];
1868  zz[i+nz] = z[i];
1869  rr[i+nz] = rmin[i];
1870  }
1871  }else{
1872  for (i=0; i<nz; i++) {
1873  zz[i] = z[nz-i-1];
1874  rr[i] = rmax[nz-i-1];
1875  zz[i+nz] = z[nz-i-1];
1876  rr[i+nz] = rmin[nz-i-1];
1877  }
1878  }
1879 
1880  // R O T A T E P O L Y L I N E S
1881 
1882  RotateAroundZ(npdv, phi, dphi, nz, nz, zz, rr, -1, (npdv == 0) ? -1 : 1);
1883  SetReferences();
1884 
1885  delete [] zz;
1886  delete [] rr;
1887 }
int G4int
Definition: G4Types.hh:78
static constexpr double twopi
Definition: G4SIunits.hh:76
void RotateAroundZ(G4int nstep, G4double phi, G4double dphi, G4int np1, G4int np2, const G4double *z, G4double *r, G4int nodeVis, G4int edgeVis)
void SetReferences()
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

HepPolyhedronPgon::~HepPolyhedronPgon ( )
virtual

Definition at line 1889 of file HepPolyhedron.cc.

1889 {}

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