43 #ifndef G4UGENERICTRAP_hh
44 #define G4UGENERICTRAP_hh
48 #if defined(G4GEOM_USE_USOLIDS)
50 #include "UGenericTrap.hh"
55 class G4UGenericTrap :
public G4USolid
60 const std::vector<G4TwoVector>& vertices);
64 inline UGenericTrap* GetShape()
const;
66 inline G4double GetZHalfLength()
const;
67 inline G4int GetNofVertices()
const;
69 inline const std::vector<G4TwoVector>& GetVertices()
const;
71 inline G4bool IsTwisted()
const;
72 inline G4int GetVisSubdivisions()
const;
73 inline void SetVisSubdivisions(
G4int subdiv);
74 inline void SetZHalfLength(
G4double);
78 G4UGenericTrap(__void__&);
83 G4UGenericTrap(
const G4UGenericTrap& source );
84 G4UGenericTrap &operator=(
const G4UGenericTrap& source);
94 inline UGenericTrap* G4UGenericTrap::GetShape()
const
96 return (UGenericTrap*) fShape;
99 inline G4double G4UGenericTrap::GetZHalfLength()
const
101 return GetShape()->GetZHalfLength();
103 inline G4int G4UGenericTrap::GetNofVertices()
const
105 return GetShape()->GetNofVertices();
109 UVector2 v = GetShape()->GetVertex(index);
112 inline const std::vector<G4TwoVector>& G4UGenericTrap::GetVertices()
const
114 std::vector<UVector2> v = GetShape()->GetVertices();
115 static std::vector<G4TwoVector> vertices; vertices.clear();
116 for (
size_t n=0;
n<v.size(); ++
n)
122 inline G4double G4UGenericTrap::GetTwistAngle(
G4int index)
const
124 return GetShape()->GetTwistAngle(index);
126 inline G4bool G4UGenericTrap::IsTwisted()
const
128 return GetShape()->IsTwisted();
130 inline G4int G4UGenericTrap::GetVisSubdivisions()
const
132 return GetShape()->GetVisSubdivisions();
135 inline void G4UGenericTrap::SetVisSubdivisions(
G4int subdiv)
137 GetShape()->SetVisSubdivisions(subdiv);
140 inline void G4UGenericTrap::SetZHalfLength(
G4double halfZ)
142 GetShape()->SetZHalfLength(halfZ);
145 #endif // G4GEOM_USE_USOLIDS
const G4double x[NPOINTSGL]
CLHEP::Hep2Vector G4TwoVector