ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
graphics
VP1
VP1Systems
VP1GeometrySystems
VP1GeometrySystems
PhiSectorManager.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef PHISECTORMANAGER_H
6
#define PHISECTORMANAGER_H
7
9
// //
10
// Header file for class PhiSectorManager //
11
// //
12
// Author: Thomas Kittelmann <Thomas.Kittelmann@cern.ch> //
13
// //
14
// Initial VP1 version: September 2007 //
15
// //
17
18
#include <QObject>
19
#include "
VP1GeometrySystems/VP1GeoFlags.h
"
20
21
class
PhiSectionWidget
;
22
23
class
SoSwitch;
24
class
SoSeparator;
25
class
SoNode;
26
class
SbMatrix;
27
class
VP1ExtraSepLayerHelper
;
28
class
IVP1System
;
29
30
class
PhiSectorManager
:
public
QObject {
31
32
Q_OBJECT
33
34
public
:
35
36
PhiSectorManager
(
PhiSectionWidget
*,
IVP1System
*, QObject*parent=0);
37
virtual
~PhiSectorManager
();
38
39
//Used by the geometry system to let the manager know under separator stuff for a given subsystem goes:
40
void
registerSubSystemSeparator
(
VP1GeoFlags::SubSystemFlag
flag,SoSeparator * subsystemsep);
41
42
//Volume handles first call this method to figure out what kind of volume they are:
43
int
getVolumeType
(
const
SbMatrix& transform, SoNode * shape)
const
;
44
//The return value, iphi, indicates the type:
45
// 0...(nphi-1): Volume with a bounding box not around the Z axis.
46
// -1: Volume has bounding box around Z-axis, but can not be dynamically altered (probably boolean)
47
// -2: Volume is around Z-axis AND can be dynamically subdivided (SoTubs, SoCons, SoPcons, SoLAr).
48
//if return value was >=-1, attach it via (iphi is the return value from getVolumeType):
49
VP1ExtraSepLayerHelper
*
getSepHelperForNode
(
VP1GeoFlags::SubSystemFlag
flag,
int
iphi);
50
52
VP1ExtraSepLayerHelper
*
getLabelSepHelperForNode
(
VP1GeoFlags::SubSystemFlag
flag,
int
iphi);
53
//if return value was -2, a call to the following is required
54
//instead (again the returned helper is to be used to attach/detach
55
//the nodesep to the scenegraph:
56
VP1ExtraSepLayerHelper
*
registerVolumeAroundZAxis
(
VP1GeoFlags::SubSystemFlag
flag, SoSwitch* sw,
const
SbMatrix& tranformation );
57
//NB: The switch should have your regular shape as its only child (other stuff for the dynamical volumes will be added dynamically):
58
//NB: "tranformation" must be the complete transformation up to the shape.
59
60
//For updating the phi-slicings:
61
void
updateRepresentationsOfVolsAroundZAxis
();
62
63
//If changing the states of a lot of volume handles, call these before and after.
64
void
largeChangesBegin
();
65
void
largeChangesEnd
();
66
67
protected
Q_SLOTS:
68
void
enabledPhiSectorsChanged
();
69
void
updateEnabledPhiSections
(
int
);
70
71
private
:
72
73
class
Imp
;
74
Imp
*
m_d
;
75
76
};
77
78
#endif
VP1GeoFlags.h
IVP1System
Definition
IVP1System.h:36
PhiSectionWidget
Definition
PhiSectionWidget.h:26
PhiSectorManager::Imp
Definition
PhiSectorManager.cxx:41
PhiSectorManager::getVolumeType
int getVolumeType(const SbMatrix &transform, SoNode *shape) const
Definition
PhiSectorManager.cxx:215
PhiSectorManager::PhiSectorManager
PhiSectorManager(PhiSectionWidget *, IVP1System *, QObject *parent=0)
Definition
PhiSectorManager.cxx:262
PhiSectorManager::m_d
Imp * m_d
Definition
PhiSectorManager.h:74
PhiSectorManager::registerVolumeAroundZAxis
VP1ExtraSepLayerHelper * registerVolumeAroundZAxis(VP1GeoFlags::SubSystemFlag flag, SoSwitch *sw, const SbMatrix &tranformation)
Definition
PhiSectorManager.cxx:144
PhiSectorManager::updateEnabledPhiSections
void updateEnabledPhiSections(int)
Definition
PhiSectorManager.cxx:325
PhiSectorManager::~PhiSectorManager
virtual ~PhiSectorManager()
Definition
PhiSectorManager.cxx:278
PhiSectorManager::getSepHelperForNode
VP1ExtraSepLayerHelper * getSepHelperForNode(VP1GeoFlags::SubSystemFlag flag, int iphi)
Definition
PhiSectorManager.cxx:92
PhiSectorManager::largeChangesBegin
void largeChangesBegin()
Definition
PhiSectorManager.cxx:492
PhiSectorManager::largeChangesEnd
void largeChangesEnd()
Definition
PhiSectorManager.cxx:510
PhiSectorManager::registerSubSystemSeparator
void registerSubSystemSeparator(VP1GeoFlags::SubSystemFlag flag, SoSeparator *subsystemsep)
Definition
PhiSectorManager.cxx:78
PhiSectorManager::enabledPhiSectorsChanged
void enabledPhiSectorsChanged()
Definition
PhiSectorManager.cxx:310
PhiSectorManager::getLabelSepHelperForNode
VP1ExtraSepLayerHelper * getLabelSepHelperForNode(VP1GeoFlags::SubSystemFlag flag, int iphi)
Addition to handle label separators, in exactly the same way as getSepHelperForNode(....
Definition
PhiSectorManager.cxx:118
PhiSectorManager::updateRepresentationsOfVolsAroundZAxis
void updateRepresentationsOfVolsAroundZAxis()
Definition
PhiSectorManager.cxx:483
VP1ExtraSepLayerHelper
Definition
VP1ExtraSepLayerHelper.h:22
VP1GeoFlags::SubSystemFlag
SubSystemFlag
Definition
VP1GeoFlags.h:30
Generated on
for ATLAS Offline Software by
1.17.0