VGM
Version 5.5
Toggle main menu visibility
Loading...
Searching...
No Matches
packages
VGM
include
VGM
volumes
IPlacement.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_PLACEMENT_H
21
#define VGM_I_PLACEMENT_H
22
23
#include "
VGM/common/Axis.h
"
24
#include "
VGM/common/Transform.h
"
25
26
#include <iostream>
27
#include <string>
28
29
namespace
VGM
{
30
31
enum
PlacementType
32
{
33
kSimplePlacement
,
34
kMultiplePlacement
,
35
kParameterised
,
36
kUnknownPlacement
37
};
38
39
std::string
PlacementTypeName
(
VGM::PlacementType
typeId);
40
41
class
IVolume;
42
43
class
IPlacement
44
{
45
public
:
46
virtual
~IPlacement
() {}
47
48
// methods
51
virtual
PlacementType
Type
()
const
= 0;
54
virtual
std::string
Name
()
const
= 0;
55
58
virtual
IVolume
*
Volume
()
const
= 0;
61
virtual
IVolume
*
Mother
()
const
= 0;
64
virtual
int
CopyNo
()
const
= 0;
65
69
virtual
Transform
Transformation
()
const
= 0;
74
virtual
bool
MultiplePlacementData
(
VGM::Axis
& axis,
int
& nofItems,
75
double
& width,
double
& offset,
double
& halfGap)
const
= 0;
80
virtual
bool
ParameterisedPlacementData
(
81
std::vector<VGM::Transform>& transforms,
82
std::vector<VGM::IVolume*>& volumes)
const
= 0;
83
86
virtual
std::ostream&
Put
(std::ostream& out)
const
= 0;
87
};
88
89
}
// namespace VGM
90
91
std::ostream&
operator<<
(std::ostream& out,
const
VGM::IPlacement
& placement);
92
93
#endif
// VGM_I_PLACEMENT_H
Axis.h
operator<<
std::ostream & operator<<(std::ostream &out, const VGM::IPlacement &placement)
Definition
VPlacement.cxx:141
Transform.h
VGM::IPlacement
The VGM interface to positions of volumes.
Definition
IPlacement.h:44
VGM::IPlacement::Type
virtual PlacementType Type() const =0
Return the type of this placement.
VGM::IPlacement::~IPlacement
virtual ~IPlacement()
Definition
IPlacement.h:46
VGM::IPlacement::Transformation
virtual Transform Transformation() const =0
Return the 3D transformation (if simple placement).
VGM::IPlacement::MultiplePlacementData
virtual bool MultiplePlacementData(VGM::Axis &axis, int &nofItems, double &width, double &offset, double &halfGap) const =0
Fill the multiple placement data if relevant and return true; return false if not multiple placement.
VGM::IPlacement::ParameterisedPlacementData
virtual bool ParameterisedPlacementData(std::vector< VGM::Transform > &transforms, std::vector< VGM::IVolume * > &volumes) const =0
Fill the parameterised placement data if relevant and return true; return false if not parameterised ...
VGM::IPlacement::CopyNo
virtual int CopyNo() const =0
Return the copy number of this placement.
VGM::IPlacement::Name
virtual std::string Name() const =0
Return the name of this placement.
VGM::IPlacement::Volume
virtual IVolume * Volume() const =0
Return the associated volume.
VGM::IPlacement::Mother
virtual IVolume * Mother() const =0
Return the associated mother volume.
VGM::IPlacement::Put
virtual std::ostream & Put(std::ostream &out) const =0
Put the printing of the placement parameters in the out stream.
VGM::IVolume
The VGM interface to volumes.
Definition
IVolume.h:32
VGM
VGM interfaces.
Definition
VMedium.h:28
VGM::Transform
std::vector< double > Transform
Definition
Transform.h:40
VGM::Axis
Axis
Definition
Axis.h:34
VGM::PlacementTypeName
std::string PlacementTypeName(VGM::PlacementType typeId)
Definition
VPlacement.cxx:123
VGM::PlacementType
PlacementType
Definition
IPlacement.h:32
VGM::kParameterised
@ kParameterised
Definition
IPlacement.h:35
VGM::kSimplePlacement
@ kSimplePlacement
Definition
IPlacement.h:33
VGM::kMultiplePlacement
@ kMultiplePlacement
Definition
IPlacement.h:34
VGM::kUnknownPlacement
@ kUnknownPlacement
Definition
IPlacement.h:36
Generated on
for VGM by
1.17.0