20#ifndef VGM_I_EXTRUDED_SOLID_H
21#define VGM_I_EXTRUDED_SOLID_H
38 virtual std::string
Name()
const = 0;
57 virtual double Scale(
int iz)
const = 0;
60 virtual std::ostream&
Put(std::ostream& out)
const = 0;
std::ostream & operator<<(std::ostream &out, const VGM::IExtrudedSolid &xtru)
The VGM interface to extruded solids.
virtual ~IExtrudedSolid()
virtual std::string Name() const =0
Return the name of this solid.
virtual TwoVector Offset(int iz) const =0
Return the polygon offset in iz-th side.
virtual int NofZSections() const =0
Return the number of planes perpendicular to the z axis.
virtual double ZPosition(int iz) const =0
Return the z position of the iz-th plane in mm.
virtual int NofVertices() const =0
Return the number of vertices of outline polygon.
virtual TwoVector Vertex(int index) const =0
Return the index-th vertex of outline polygon.
virtual double Scale(int iz) const =0
Return the polygon scale in iz-th side.
virtual SolidType Type() const =0
Return the type of this solid.
virtual std::ostream & Put(std::ostream &out) const =0
Put the printing of the solid parameters in the out stream.
The VGM interface to solids.
std::pair< double, double > TwoVector