43 #ifndef G4UEXTRUDEDSOLID_hh
44 #define G4UEXTRUDEDSOLID_hh
48 #if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
50 #include "UExtrudedSolid.hh"
54 class G4UExtrudedSolid :
public G4USolid
61 : fZ(z), fOffset(offset), fScale(scale) {}
62 ZSection(
const UExtrudedSolid::ZSection& zs)
63 : fZ(zs.fZ), fOffset(
G4TwoVector(zs.fOffset.
x,zs.fOffset.y)),
73 G4UExtrudedSolid(
const G4String& pName,
74 std::vector<G4TwoVector> polygon,
75 std::vector<ZSection> zsections);
78 G4UExtrudedSolid(
const G4String& pName,
79 std::vector<G4TwoVector> polygon,
87 inline UExtrudedSolid* GetShape()
const;
89 G4int GetNofVertices()
const;
91 std::vector<G4TwoVector> GetPolygon()
const;
92 G4int GetNofZSections()
const;
93 ZSection GetZSection(
G4int index)
const;
94 std::vector<ZSection> GetZSections()
const;
100 G4UExtrudedSolid(__void__&);
105 G4UExtrudedSolid(
const G4UExtrudedSolid& source );
106 G4UExtrudedSolid &operator=(
const G4UExtrudedSolid& source);
122 inline UExtrudedSolid* G4UExtrudedSolid::GetShape()
const
124 return (UExtrudedSolid*) fShape;
129 return "G4ExtrudedSolid";
132 #endif // G4GEOM_USE_USOLIDS