VGM Version 5.3
Loading...
Searching...
No Matches
IVolume.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
13//
19
20#ifndef VGM_I_VOLUME_H
21#define VGM_I_VOLUME_H
22
23#include <iostream>
24#include <string>
25
26namespace VGM {
27
28class ISolid;
29class IPlacement;
30
32{
33 public:
34 virtual ~IVolume() {}
35
36 // methods
39 virtual std::string Name() const = 0;
42 virtual std::string MaterialName() const = 0;
45 virtual std::string MediumName() const = 0;
46
49 virtual ISolid* Solid() const = 0;
52 virtual int NofDaughters() const = 0;
55 virtual IPlacement* Daughter(int i) const = 0;
58 virtual void AddDaughter(VGM::IPlacement* daughter) = 0;
59};
60
61} // namespace VGM
62
63std::ostream& operator<<(std::ostream& out, const VGM::IVolume& volume);
64
65#endif // VGM_I_VOLUME_H
std::ostream & operator<<(std::ostream &out, const VGM::IVolume &volume)
Definition VVolume.cxx:25
The VGM interface to positions of volumes.
Definition IPlacement.h:44
The VGM interface to solids.
Definition ISolid.h:58
The VGM interface to volumes.
Definition IVolume.h:32
virtual ISolid * Solid() const =0
Return the associated solid.
virtual std::string MaterialName() const =0
Return the name of the associated material.
virtual std::string Name() const =0
Return the name of this volume.
virtual IPlacement * Daughter(int i) const =0
Return the i-th daughter.
virtual std::string MediumName() const =0
Return the name of the associated medium.
virtual int NofDaughters() const =0
Return the number of volume daughters.
virtual ~IVolume()
Definition IVolume.h:34
virtual void AddDaughter(VGM::IPlacement *daughter)=0
Add the specified daughter.
VGM interfaces.
Definition VMedium.h:28