Directory: source/geometry/solids/specific/include
File Name: G4ExtrudedSolid.hh
         G4ExtrudedSolid is a solid which represents the extrusion of an arbitrary    polygon with fixed outline in the defined Z sections.    The z-sides of the solid are the scaled versions of the same polygon.    The solid is implemented as a specification of G4TessellatedSolid.       Parameters in the constructor:    const G4String& pName - solid name    std::vectorpolygon - the vertices of the outlined polygon    defined in clockwise or anti-clockwise order    std::vector - the z-sections defined by    z position, offset and scale    in increasing z-position order       Parameters in the special constructor (for solid with 2 z-sections:    G4double halfZ - the solid half length in Z    G4TwoVector off1 - offset of the side in -halfZ    G4double scale1 - scale of the side in -halfZ    G4TwoVector off2 - offset of the side in +halfZ    G4double scale2 - scale of the side in -halfZ
G4ExtrudedSolid( const G4String& pName,
std::vector polygon,
std::vector zsections);
// General constructor
G4ExtrudedSolid( const G4String& pName,
std::vector polygon,
G4double halfZ,
G4TwoVector off1, G4double scale1,
G4TwoVector off2, G4double scale2 );
// Special constructor for solid with 2 z-sections
virtual ~G4ExtrudedSolid();
// Destructor
// Accessors
inline G4int GetNofVertices() const;
inline G4TwoVector GetVertex(G4int index) const;
inline std::vector GetPolygon() const;
inline G4int GetNofZSections() const;
inline ZSection GetZSection(G4int index) const;
inline std::vector GetZSections() const;
// Solid methods
EInside Inside (const G4ThreeVector &p) const;
G4double DistanceToOut(const G4ThreeVector &p,
const G4ThreeVector &v,
const G4bool calcNorm=false,
G4bool *validNorm=0, G4ThreeVector *n=0) const;
G4double DistanceToOut (const G4ThreeVector &p) const;
G4GeometryType GetEntityType () const;
G4VSolid* Clone() const;
std::ostream& StreamInfo(std::ostream &os) const;