VGM
Version 5.5
Toggle main menu visibility
Loading...
Searching...
No Matches
packages
BaseVGM
source
volumes
VVolume.cxx
Go to the documentation of this file.
1
// $Id$
2
3
// -----------------------------------------------------------------------
4
// The BaseVGM 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
12
//
13
// Class VVolume
14
// ---------------
15
// The abstract base class for volumes.
16
//
17
// Author: Ivana Hrivnacova; IPN Orsay
18
19
#include "
VGM/solids/ISolid.h
"
20
#include "
VGM/volumes/IPlacement.h
"
21
22
#include "
BaseVGM/volumes/VVolume.h
"
23
24
//_____________________________________________________________________________
25
std::ostream&
operator<<
(std::ostream& out,
const
VGM::IVolume
& volume)
26
{
27
out <<
"Volume: "
28
<<
"\""
<< volume.
Name
() <<
"\""
29
<<
" material "
30
<<
"\""
<< volume.
MaterialName
() <<
"\""
31
<<
" solid "
32
<<
"\""
<<
VGM::SolidTypeName
(volume.
Solid
()->
Type
()) <<
"\" "
33
<< volume.
NofDaughters
() <<
" daughters: "
;
34
35
for
(
int
i = 0; i < volume.
NofDaughters
(); i++) {
36
out <<
"\""
<< volume.
Daughter
(i)->
Name
() <<
"\" "
;
37
}
38
39
return
out;
40
}
41
42
//_____________________________________________________________________________
43
BaseVGM::VVolume::VVolume
(
VGM::ISolid
* solid)
44
:
VGM
::IVolume(), fSolid(solid), fDaughters()
45
{
47
}
48
49
//_____________________________________________________________________________
50
BaseVGM::VVolume::VVolume
() :
VGM
::IVolume()
51
{
53
}
54
55
//_____________________________________________________________________________
56
BaseVGM::VVolume::VVolume
(
const
VVolume
& rhs) :
VGM
::IVolume(rhs)
57
{
59
}
60
61
//_____________________________________________________________________________
62
BaseVGM::VVolume::~VVolume
()
63
{
64
//
65
66
// Delete daughters
67
for
(
unsigned
int
i = 0; i < fDaughters.size(); i++) {
68
delete
fDaughters[i];
69
}
70
}
71
72
//_____________________________________________________________________________
73
VGM::ISolid
*
BaseVGM::VVolume::Solid
()
const
{
return
fSolid; }
74
75
//_____________________________________________________________________________
76
int
BaseVGM::VVolume::NofDaughters
()
const
{
return
fDaughters.size(); }
77
78
//_____________________________________________________________________________
79
VGM::IPlacement
*
BaseVGM::VVolume::Daughter
(
int
i)
const
80
{
81
return
fDaughters[i];
82
}
83
84
//_____________________________________________________________________________
85
void
BaseVGM::VVolume::AddDaughter
(
VGM::IPlacement
* daughter)
86
{
87
fDaughters.push_back(daughter);
88
}
89
90
//_____________________________________________________________________________
91
void
BaseVGM::VVolume::ResetSolid
(
VGM::ISolid
* solid) { fSolid = solid; }
IPlacement.h
ISolid.h
operator<<
std::ostream & operator<<(std::ostream &out, const VGM::IVolume &volume)
Definition
VVolume.cxx:25
VVolume.h
BaseVGM::VVolume::Solid
virtual VGM::ISolid * Solid() const
Return the associated solid.
Definition
VVolume.cxx:73
BaseVGM::VVolume::ResetSolid
virtual void ResetSolid(VGM::ISolid *solid)
Definition
VVolume.cxx:91
BaseVGM::VVolume::VVolume
VVolume()
Definition
VVolume.cxx:50
BaseVGM::VVolume::AddDaughter
virtual void AddDaughter(VGM::IPlacement *daughter)
Add the specified daughter.
Definition
VVolume.cxx:85
BaseVGM::VVolume::Daughter
virtual VGM::IPlacement * Daughter(int i) const
Return the i-th daughter.
Definition
VVolume.cxx:79
BaseVGM::VVolume::VVolume
VVolume(VGM::ISolid *solid)
Definition
VVolume.cxx:43
BaseVGM::VVolume::~VVolume
virtual ~VVolume()
Definition
VVolume.cxx:62
BaseVGM::VVolume::NofDaughters
virtual int NofDaughters() const
Return the number of volume daughters.
Definition
VVolume.cxx:76
VGM::IPlacement
The VGM interface to positions of volumes.
Definition
IPlacement.h:44
VGM::IPlacement::Name
virtual std::string Name() const =0
Return the name of this placement.
VGM::ISolid
The VGM interface to solids.
Definition
ISolid.h:58
VGM::ISolid::Type
virtual SolidType Type() const =0
Return the type of this solid.
VGM::IVolume
The VGM interface to volumes.
Definition
IVolume.h:32
VGM::IVolume::Solid
virtual ISolid * Solid() const =0
Return the associated solid.
VGM::IVolume::MaterialName
virtual std::string MaterialName() const =0
Return the name of the associated material.
VGM::IVolume::Name
virtual std::string Name() const =0
Return the name of this volume.
VGM::IVolume::Daughter
virtual IPlacement * Daughter(int i) const =0
Return the i-th daughter.
VGM::IVolume::NofDaughters
virtual int NofDaughters() const =0
Return the number of volume daughters.
VGM
VGM interfaces.
Definition
VMedium.h:28
VGM::SolidTypeName
std::string SolidTypeName(VGM::SolidType typeId)
Definition
solid.cxx:27
Generated on
for VGM by
1.17.0