VGM Version 5.3
Loading...
Searching...
No Matches
ISolid.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_SOLID_H
21#define VGM_I_SOLID_H
22
23#include <iostream>
24#include <string>
25
26namespace VGM {
27
54
55std::string SolidTypeName(VGM::SolidType typeId);
56
57class ISolid
58{
59 public:
60 virtual ~ISolid() {}
61
62 // methods
65 virtual SolidType Type() const = 0;
68 virtual std::string Name() const = 0;
69
70 // streaming
73 virtual std::ostream& Put(std::ostream& out) const = 0;
74};
75
76} // namespace VGM
77
78std::ostream& operator<<(std::ostream& out, const VGM::ISolid& solid);
79
80#endif // VGM_I_SOLID_H
std::ostream & operator<<(std::ostream &out, const VGM::ISolid &solid)
Definition solid.cxx:20
The VGM interface to solids.
Definition ISolid.h:58
virtual ~ISolid()
Definition ISolid.h:60
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.
virtual std::string Name() const =0
Return the name of this solid.
VGM interfaces.
Definition VMedium.h:28
std::string SolidTypeName(VGM::SolidType typeId)
Definition solid.cxx:27
SolidType
Definition ISolid.h:29
@ kTessellated
Definition ISolid.h:43
@ kEllipsoid
Definition ISolid.h:34
@ kScaled
Definition ISolid.h:51
@ kTorus
Definition ISolid.h:44
@ kTrd
Definition ISolid.h:46
@ kCons
Definition ISolid.h:32
@ kUnknownSolid
Definition ISolid.h:52
@ kTubs
Definition ISolid.h:47
@ kExtruded
Definition ISolid.h:36
@ kPara
Definition ISolid.h:38
@ kSphere
Definition ISolid.h:42
@ kPolycone
Definition ISolid.h:40
@ kTrap
Definition ISolid.h:45
@ kMultiUnion
Definition ISolid.h:50
@ kPolyhedra
Definition ISolid.h:41
@ kEltu
Definition ISolid.h:35
@ kParaboloid
Definition ISolid.h:39
@ kHype
Definition ISolid.h:37
@ kBoolean
Definition ISolid.h:48
@ kArb8
Definition ISolid.h:30
@ kCtubs
Definition ISolid.h:33
@ kBox
Definition ISolid.h:31
@ kDisplaced
Definition ISolid.h:49