20#ifndef GEANT4_GM_EXTRUDED_SOLID_H
21#define GEANT4_GM_EXTRUDED_SOLID_H
31class G4ReflectedSolid;
39 ExtrudedSolid(
const std::string& name, std::vector<VGM::TwoVector> polygon,
40 std::vector<std::vector<double> > zsections);
41 ExtrudedSolid(G4ExtrudedSolid* xtru, G4ReflectedSolid* reflXtru = 0);
45 virtual std::string
Name()
const;
51 virtual double Scale(
int iz)
const;
59 typedef std::vector<double> ZSectionType;
62 void CreateFinalSolid();
66 G4VSolid* fExtrudedSolid;
67 std::vector<ZSectionType> fZSections;
68 std::vector<G4ExtrudedSolid*> fConstituents;
VGM implementation for Geant4 xtru solid.
virtual std::string Name() const
Return the name of this solid.
virtual double ZPosition(int iz) const
Return the z position of the iz-th plane in mm.
virtual VGM::TwoVector Offset(int iz) const
Return the polygon offset in iz-th side.
virtual int NofZSections() const
Return the number of planes perpendicular to the z axis.
VGM::TwoVector Vertex(int index) const
Return the index-th vertex of outline polygon.
int NofVertices() const
Return the number of vertices of outline polygon.
virtual double Scale(int iz) const
Return the polygon scale in iz-th side.
VGM implementation for Geant4.
std::pair< double, double > TwoVector