67 #ifndef G4GenericTrap_HH 
   68 #define G4GenericTrap_HH 
   70 #if defined(G4GEOM_USE_USOLIDS) 
   71 #define G4GEOM_USE_UGENERICTRAP 1 
   74 #if defined(G4GEOM_USE_UGENERICTRAP) 
   75   #define G4UGenericTrap G4GenericTrap 
   93                     const std::vector<G4TwoVector>& vertices );
 
  104     inline const std::vector<G4TwoVector>& 
GetVertices() 
const;
 
  119                            const G4bool calcNorm = 
false,
 
  133     std::ostream& 
StreamInfo(std::ostream& os) 
const;
 
  163     G4bool  ComputeIsTwisted() ;
 
  164     G4bool  CheckOrder(
const std::vector<G4TwoVector>& vertices) 
const;
 
  169     void ReorderVertices(std::vector<G4ThreeVector>& vertices) 
const;
 
  174     G4VFacet* MakeDownFacet(
const std::vector<G4ThreeVector>& fromVertices, 
 
  176     G4VFacet* MakeUpFacet(
const std::vector<G4ThreeVector>& fromVertices, 
 
  185                            const std::vector<G4TwoVector>& poly) 
const;
 
  191                                 const G4int ipl) 
const;
 
  210     static const G4int       fgkNofVertices;
 
  218     std::vector<G4TwoVector> fVertices;
 
  224     G4int                    fVisSubdivisions;
 
  226     enum ESide {kUndefined,kXY0,kXY1,kXY2,kXY3,kMZ,kPZ};
 
  234 #include "G4GenericTrap.icc" 
G4Polyhedron * GetPolyhedron() const 
G4int GetVisSubdivisions() const 
G4GenericTrap(const G4String &name, G4double halfZ, const std::vector< G4TwoVector > &vertices)
G4VisExtent GetExtent() const 
G4Polyhedron * fpPolyhedron
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pmin, G4double &pmax) const 
G4GeometryType GetEntityType() const 
G4TwoVector GetVertex(G4int index) const 
G4double GetZHalfLength() const 
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const 
G4double GetSurfaceArea()
G4ThreeVector GetPointOnSurface() const 
G4GenericTrap & operator=(const G4GenericTrap &rhs)
std::ostream & StreamInfo(std::ostream &os) const 
G4double GetTwistAngle(G4int index) const 
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const 
G4double GetCubicVolume()
void Extent(G4ThreeVector &pMin, G4ThreeVector &pMax) const 
EInside Inside(const G4ThreeVector &p) const 
G4Polyhedron * CreatePolyhedron() const 
G4int GetNofVertices() const 
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const 
void SetVisSubdivisions(G4int subdiv)
const std::vector< G4TwoVector > & GetVertices() const 
G4bool fRebuildPolyhedron
void DescribeYourselfTo(G4VGraphicsScene &scene) const