VGM Version 5.3
Loading...
Searching...
No Matches
VPlacement.h
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
13//
19
20#ifndef BASE_VGM_V_PLACEMENT_H
21#define BASE_VGM_V_PLACEMENT_H
22
24
25namespace VGM {
26class IVolume;
27}
28
29namespace BaseVGM {
30
31class VPlacement : public virtual VGM::IPlacement
32{
33 public:
34 VPlacement(VGM::IVolume* volume, VGM::IVolume* motherVolume);
35 virtual ~VPlacement();
36
37 // methods
38
39 virtual std::string Name() const = 0;
40 virtual VGM::IVolume* Volume() const;
41 virtual VGM::IVolume* Mother() const;
42 virtual int CopyNo() const = 0;
43 virtual VGM::Transform Transformation() const = 0;
44
45 virtual bool MultiplePlacementData(VGM::Axis& axis, int& nofDivisions,
46 double& width, double& offset, double& halfGap) const = 0;
47
50 virtual std::ostream& Put(std::ostream& out) const;
51
52 void SetVolume(VGM::IVolume* volume);
53
54 protected:
55 VPlacement();
56 VPlacement(const VPlacement& rhs);
57
58 private:
59 VGM::IVolume* fVolume;
60 VGM::IVolume* fMotherVolume;
61};
62
63} // namespace BaseVGM
64
65#endif // BASE_VGM_V_PLACEMENT_H
The abstract base class to positions of volumes.
Definition VPlacement.h:32
void SetVolume(VGM::IVolume *volume)
virtual int CopyNo() const =0
Return the copy number of this placement.
virtual VGM::IVolume * Volume() const
Return the associated volume.
virtual bool MultiplePlacementData(VGM::Axis &axis, int &nofDivisions, double &width, double &offset, double &halfGap) const =0
Fill the multiple placement data if relevant and return true; return false if not multiple placement.
virtual VGM::IVolume * Mother() const
Return the associated mother volume.
virtual std::ostream & Put(std::ostream &out) const
Put the printing of the placement parameters in the out stream.
virtual VGM::Transform Transformation() const =0
Return the 3D transformation (if simple placement)
virtual std::string Name() const =0
Return the name of this placement.
VGM Axis enumeration.
The VGM interface to positions of volumes.
Definition IPlacement.h:44
The VGM interface to volumes.
Definition IVolume.h:32
BaseVGM utilities.
Definition utilities.h:23
VGM interfaces.
Definition VMedium.h:28
std::vector< double > Transform
Definition Transform.h:40