Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes
G4PolyhedronArbitrary Class Reference

#include <G4PolyhedronArbitrary.hh>

Inheritance diagram for G4PolyhedronArbitrary:
G4Polyhedron HepPolyhedron G4Visible

Public Member Functions

 G4PolyhedronArbitrary (const G4int nVertices, const G4int nFacets)
 
virtual ~G4PolyhedronArbitrary ()
 
void AddVertex (const G4ThreeVector &v)
 
void AddFacet (const G4int iv1, const G4int iv2, const G4int iv3, const G4int iv4=0)
 
void SetReferences ()
 
void InvertFacets ()
 
- Public Member Functions inherited from G4Polyhedron
 G4Polyhedron ()
 
 G4Polyhedron (const HepPolyhedron &from)
 
virtual ~G4Polyhedron ()
 
G4int GetNumberOfRotationStepsAtTimeOfCreation () const
 
- Public Member Functions inherited from HepPolyhedron
 HepPolyhedron ()
 
 HepPolyhedron (const HepPolyhedron &from)
 
virtual ~HepPolyhedron ()
 
HepPolyhedronoperator= (const HepPolyhedron &from)
 
G4int GetNoVertices () 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 GetNextEdgeIndeces (G4int &i1, G4int &i2, G4int &edgeFlag, G4int &iface1, G4int &iface2) 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])
 
- Public Member Functions inherited from G4Visible
 G4Visible ()
 
 G4Visible (const G4Visible &)
 
 G4Visible (const G4VisAttributes *)
 
virtual ~G4Visible ()
 
G4Visibleoperator= (const G4Visible &)
 
G4bool operator!= (const G4Visible &right) const
 
const G4VisAttributesGetVisAttributes () const
 
void SetVisAttributes (const G4VisAttributes *)
 
void SetVisAttributes (const G4VisAttributes &)
 

Protected Attributes

G4int nVertexCount
 
G4int nFacetCount
 
- Protected Attributes inherited from HepPolyhedron
G4int nvert
 
G4int nface
 
G4Point3DpV
 
G4FacetpF
 
- Protected Attributes inherited from G4Visible
const G4VisAttributesfpVisAttributes
 
G4bool fAllocatedVisAttributes
 

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 ()
 
- Static Protected Attributes inherited from HepPolyhedron
static G4ThreadLocal G4int fNumberOfRotationSteps = DEFAULT_NUMBER_OF_STEPS
 

Detailed Description

Definition at line 75 of file G4PolyhedronArbitrary.hh.

Constructor & Destructor Documentation

G4PolyhedronArbitrary::G4PolyhedronArbitrary ( const G4int  nVertices,
const G4int  nFacets 
)

Definition at line 62 of file G4PolyhedronArbitrary.cc.

References HepPolyhedron::AllocateMemory(), nFacetCount, and nVertexCount.

64 {
65  AllocateMemory(nVertices, nFacets);
66  nVertexCount = 0;
67  nFacetCount = 0;
68 }
void AllocateMemory(G4int Nvert, G4int Nface)
G4PolyhedronArbitrary::~G4PolyhedronArbitrary ( )
virtual

Definition at line 71 of file G4PolyhedronArbitrary.cc.

72 {;}

Member Function Documentation

void G4PolyhedronArbitrary::AddFacet ( const G4int  iv1,
const G4int  iv2,
const G4int  iv3,
const G4int  iv4 = 0 
)

Definition at line 93 of file G4PolyhedronArbitrary.cc.

References G4cerr, G4endl, HepPolyhedron::nface, nFacetCount, HepPolyhedron::nvert, nVertexCount, and HepPolyhedron::pF.

Referenced by G4GenericTrap::CreatePolyhedron(), and G4TessellatedSolid::CreatePolyhedron().

95 {
96  if (nFacetCount == nface)
97  {
98  G4cerr <<G4endl;
99  G4cerr <<"ERROR IN G4PolyhedronArbitrary::AddFacet" <<G4endl;
100  G4cerr <<"ATTEMPT TO EXCEED MAXIMUM NUMBER OF FACETS : " << nFacetCount
101  <<G4endl;
102  G4cerr <<G4endl;
103  }
104  else if (iv1 < 1 || iv1 > nvert || iv2 < 1 || iv2 > nvert ||
105  iv3 < 1 || iv3 > nvert || iv4 > nvert)
106  {
107  G4cerr <<G4endl;
108  G4cerr <<"ERROR IN G4PolyhedronArbitrary::AddFacet" <<G4endl;
109  G4cerr <<"ATTEMPT TO INDEX VERTEX NUMBER WHICH IS OUT-OF-RANGE : " <<G4endl;
110  G4cerr <<G4endl;
111  }
112  else if (iv1 > nVertexCount || iv2 > nVertexCount || iv3 > nVertexCount ||
113  iv4 > nVertexCount)
114  {
115  G4cerr <<G4endl;
116  G4cerr <<"ERROR IN G4PolyhedronArbitrary::AddFacet" <<G4endl;
117  G4cerr <<"VERTEX NEEDS TO BE DEFINED FIRST : " <<G4endl;
118  G4cerr <<G4endl;
119  }
120  else
121  {
122  nFacetCount++;
123  pF[nFacetCount] = G4Facet(iv1, 0, iv2, 0, iv3, 0, iv4, 0);
124  }
125 }
G4Facet * pF
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
void G4PolyhedronArbitrary::AddVertex ( const G4ThreeVector v)

Definition at line 75 of file G4PolyhedronArbitrary.cc.

References G4cerr, G4endl, HepPolyhedron::nvert, nVertexCount, HepPolyhedron::pV, and test::v.

Referenced by G4GenericTrap::CreatePolyhedron(), and G4TessellatedSolid::CreatePolyhedron().

76 {
77  if (nVertexCount == nvert + 1)
78  {
79  G4cerr <<G4endl;
80  G4cerr <<"ERROR IN G4PolyhedronArbitrary::AddVertex" <<G4endl;
81  G4cerr <<"ATTEMPT TO EXCEED MAXIMUM NUMBER OF VERTICES : " << nVertexCount
82  <<G4endl;
83  G4cerr <<G4endl;
84  }
85  else
86  {
87  nVertexCount++;
88  pV[nVertexCount] = v;
89  }
90 }
G4Point3D * pV
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
void G4PolyhedronArbitrary::InvertFacets ( )
inline
void G4PolyhedronArbitrary::SetReferences ( )
inline

Field Documentation

G4int G4PolyhedronArbitrary::nFacetCount
protected

Definition at line 93 of file G4PolyhedronArbitrary.hh.

Referenced by AddFacet(), and G4PolyhedronArbitrary().

G4int G4PolyhedronArbitrary::nVertexCount
protected

Definition at line 92 of file G4PolyhedronArbitrary.hh.

Referenced by AddFacet(), AddVertex(), and G4PolyhedronArbitrary().


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