VGM Version 5.3
Loading...
Searching...
No Matches
IExtrudedSolid.h
Go to the documentation of this file.
1// $Id$
2
3// -----------------------------------------------------------------------
4// The VGM package of the Virtual Geometry Model
5// Copyright (C) 2007, Ivana Hrivnacova
6// All rights reserved.
7//
8// For the licensing terms see vgm/LICENSE.
9// Contact: ivana@ipno.in2p3.fr
10// -----------------------------------------------------------------------
11
19
20#ifndef VGM_I_EXTRUDED_SOLID_H
21#define VGM_I_EXTRUDED_SOLID_H
22
24#include "VGM/solids/ISolid.h"
25
26#include <iostream>
27
28namespace VGM {
29
30class IExtrudedSolid : public virtual ISolid
31{
32 public:
33 virtual ~IExtrudedSolid() {}
34
35 // methods
36
37 virtual SolidType Type() const = 0;
38 virtual std::string Name() const = 0;
39
42 virtual int NofVertices() const = 0;
45 virtual TwoVector Vertex(int index) const = 0;
48 virtual int NofZSections() const = 0;
51 virtual double ZPosition(int iz) const = 0;
54 virtual TwoVector Offset(int iz) const = 0;
57 virtual double Scale(int iz) const = 0;
58
59 // streaming
60 virtual std::ostream& Put(std::ostream& out) const = 0;
61};
62
63} // namespace VGM
64
65std::ostream& operator<<(std::ostream& out, const VGM::IExtrudedSolid& xtru);
66
67#endif // VGM_I_EXTRUDED_SOLID_H
std::ostream & operator<<(std::ostream &out, const VGM::IExtrudedSolid &xtru)
The VGM interface to extruded solids.
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.
Definition ISolid.h:58
VGM interfaces.
Definition VMedium.h:28
std::pair< double, double > TwoVector
Definition TwoVector.h:28
SolidType
Definition ISolid.h:29