VGM
Version 5.5
Toggle main menu visibility
Loading...
Searching...
No Matches
packages
RootGM
source
solids
ScaledSolid.cxx
Go to the documentation of this file.
1
// $Id$
2
3
// -----------------------------------------------------------------------
4
// The RootGM 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 ScaledSolid
14
// ---------------------
15
// VGM implementation for Root Scaled solid
16
//
17
// Author: Ivana Hrivnacova; IPN Orsay
18
19
#include "
RootGM/solids/ScaledSolid.h
"
20
#include "
RootGM/common/transform.h
"
21
#include "
RootGM/solids/SolidMap.h
"
22
23
#include "TGeoMatrix.h"
24
#include "TGeoScaledShape.h"
25
26
//_____________________________________________________________________________
27
RootGM::ScaledSolid::ScaledSolid
(
28
const
std::string& name,
VGM::ISolid
* solid, TGeoScale* scale)
29
:
VGM
::ISolid(),
VGM
::IScaledSolid(),
BaseVGM
::
VScaledSolid
(), fScaledShape(0)
30
{
34
35
// Get solid from the volumes map
36
TGeoShape* rootSolid =
RootGM::SolidMap::Instance
()->
GetSolid
(solid);
37
38
// Create new TGeo scaled solid
39
fScaledShape =
new
TGeoScaledShape(name.data(), rootSolid, scale);
40
41
RootGM::SolidMap::Instance
()->
AddSolid
(
this
, fScaledShape);
42
}
43
44
//_____________________________________________________________________________
45
RootGM::ScaledSolid::ScaledSolid
(TGeoScaledShape* scaledShape)
46
:
VGM
::ISolid(),
47
VGM
::IScaledSolid(),
48
BaseVGM
::
VScaledSolid
(),
49
fScaledShape(scaledShape)
50
{
52
53
RootGM::SolidMap::Instance
()->
AddSolid
(
this
, fScaledShape);
54
}
55
56
//_____________________________________________________________________________
57
RootGM::ScaledSolid::ScaledSolid
()
58
:
VGM
::ISolid(),
VGM
::IScaledSolid(),
BaseVGM
::
VScaledSolid
()
59
{
61
}
62
63
//_____________________________________________________________________________
64
RootGM::ScaledSolid::ScaledSolid
(
const
ScaledSolid
& rhs)
65
:
VGM
::ISolid(rhs),
VGM
::IScaledSolid(rhs),
BaseVGM
::
VScaledSolid
(rhs)
66
{
68
}
69
70
//_____________________________________________________________________________
71
RootGM::ScaledSolid::~ScaledSolid
()
72
{
73
//
74
}
75
76
//
77
// public methods
78
//
79
80
//_____________________________________________________________________________
81
std::string
RootGM::ScaledSolid::Name
()
const
82
{
83
// Returns the Scaled solid name
84
// ---
85
86
return
fScaledShape->GetName();
87
}
88
89
//_____________________________________________________________________________
90
VGM::ISolid
*
RootGM::ScaledSolid::ConstituentSolid
()
const
91
{
92
// Returns the first constituent solid.
93
// ---
94
95
TGeoShape* rootSolid = fScaledShape->GetShape();
96
VGM::ISolid
* solid =
RootGM::SolidMap::Instance
()->
GetSolid
(rootSolid);
97
98
return
solid;
99
}
100
101
//_____________________________________________________________________________
102
VGM::Transform
RootGM::ScaledSolid::Scale
()
const
103
{
104
// Returns the solid scale.
105
// ---
106
107
return
TransformScale
(*(fScaledShape->GetScale()));
108
}
transform.h
ScaledSolid.h
SolidMap.h
BaseVGM::VScaledSolid::VScaledSolid
VScaledSolid()
Definition
VScaledSolid.cxx:33
RootGM::ScaledSolid::ConstituentSolid
virtual VGM::ISolid * ConstituentSolid() const
Return the constituent solid.
Definition
ScaledSolid.cxx:90
RootGM::ScaledSolid::ScaledSolid
ScaledSolid()
Definition
ScaledSolid.cxx:57
RootGM::ScaledSolid::Scale
virtual VGM::Transform Scale() const
Return the 3D scale.
Definition
ScaledSolid.cxx:102
RootGM::ScaledSolid::Name
virtual std::string Name() const
Return the name of this solid.
Definition
ScaledSolid.cxx:81
RootGM::ScaledSolid::~ScaledSolid
virtual ~ScaledSolid()
Definition
ScaledSolid.cxx:71
RootGM::ScaledSolid::ScaledSolid
ScaledSolid(const std::string &name, VGM::ISolid *solid, TGeoScale *scale)
Definition
ScaledSolid.cxx:27
RootGM::SolidMap::GetSolid
TGeoShape * GetSolid(VGM::ISolid *iSolid) const
Definition
SolidMap.cxx:86
RootGM::SolidMap::AddSolid
void AddSolid(VGM::ISolid *, TGeoShape *)
Definition
SolidMap.cxx:59
RootGM::SolidMap::Instance
static SolidMap * Instance()
Definition
SolidMap.cxx:28
VGM::ISolid
The VGM interface to solids.
Definition
ISolid.h:58
BaseVGM
BaseVGM utilities.
Definition
utilities.h:23
RootGM::TransformScale
VGM::Transform TransformScale(const TGeoScale &scale)
Definition
transform.cxx:106
VGM
VGM interfaces.
Definition
VMedium.h:28
VGM::Transform
std::vector< double > Transform
Definition
Transform.h:40
Generated on
for VGM by
1.17.0