ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
graphics
VP1
VP1Base
VP1Base
VisibleObjectToMaterialHelper.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
7
// //
8
// Header file for class VisibleObjectToMaterialHelper //
9
// //
10
// Description: Helper class for those systems that must //
11
// emit signals with lists of physics objects //
12
// pointers and associated materials //
13
// //
14
// Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
15
// Initial version: February 2008 //
16
// //
18
19
#ifndef VISIBLEOBJECTTOMATERIALHELPER_H
20
#define VISIBLEOBJECTTOMATERIALHELPER_H
21
22
#include "
VP1Base/VP1HelperClassBase.h
"
23
#include <QObject>
24
#include <map>
25
class
SoMaterial;
26
27
//We use a _Base class since we can't have templates and signals in
28
//the same class (limitation of Qt's moc):
29
class
VisibleObjectToMaterialHelper_Base
:
public
QObject {
30
Q_OBJECT
31
public
:
32
VisibleObjectToMaterialHelper_Base
(QObject * p) : QObject(p) {}
33
virtual
~VisibleObjectToMaterialHelper_Base
() {}
34
signals:
35
void
visibleObjectsChanged
();
36
private
Q_SLOTS:
37
virtual
void
emitSignal
() = 0;
38
};
39
40
41
template
<
class
object
T>
42
class
VisibleObjectToMaterialHelper
:
public
VisibleObjectToMaterialHelper_Base
,
public
VP1HelperClassBase
{
43
public
:
44
45
inline
VisibleObjectToMaterialHelper
(QObject * parent = 0,
IVP1System
*sys=0);
46
inline
virtual
~VisibleObjectToMaterialHelper
();
47
48
inline
void
setState
(
const
objectT*, SoMaterial *mat );
//Call with null material if the object is not visible.
49
inline
void
setNoVisibleObjects
();
//call from systemerase()
50
51
inline
const
std::map<const objectT*,SoMaterial*>&
visibleObjects
() {
return
m_visobjects
; }
52
53
private
:
54
inline
void
emitSignal
();
55
inline
void
scheduleUpdate
();
56
std::map<const objectT*,SoMaterial*>
m_visobjects
;
57
bool
m_hasscheduledupdate
;
58
};
59
60
#include "
VisibleObjectToMaterialHelper.icc
"
61
62
#endif
VP1HelperClassBase.h
VisibleObjectToMaterialHelper.icc
IVP1System
Definition
IVP1System.h:36
VP1HelperClassBase::VP1HelperClassBase
VP1HelperClassBase(IVP1System *sys=0, QString helpername="")
Definition
VP1HelperClassBase.cxx:28
VisibleObjectToMaterialHelper_Base::visibleObjectsChanged
void visibleObjectsChanged()
VisibleObjectToMaterialHelper_Base::VisibleObjectToMaterialHelper_Base
VisibleObjectToMaterialHelper_Base(QObject *p)
Definition
VisibleObjectToMaterialHelper.h:32
VisibleObjectToMaterialHelper_Base::~VisibleObjectToMaterialHelper_Base
virtual ~VisibleObjectToMaterialHelper_Base()
Definition
VisibleObjectToMaterialHelper.h:33
VisibleObjectToMaterialHelper_Base::emitSignal
virtual void emitSignal()=0
VisibleObjectToMaterialHelper::setState
void setState(const objectT *, SoMaterial *mat)
VisibleObjectToMaterialHelper::visibleObjects
const std::map< const objectT *, SoMaterial * > & visibleObjects()
Definition
VisibleObjectToMaterialHelper.h:51
VisibleObjectToMaterialHelper::scheduleUpdate
void scheduleUpdate()
VisibleObjectToMaterialHelper::~VisibleObjectToMaterialHelper
virtual ~VisibleObjectToMaterialHelper()
VisibleObjectToMaterialHelper::emitSignal
void emitSignal()
VisibleObjectToMaterialHelper::m_hasscheduledupdate
bool m_hasscheduledupdate
Definition
VisibleObjectToMaterialHelper.h:57
VisibleObjectToMaterialHelper::setNoVisibleObjects
void setNoVisibleObjects()
VisibleObjectToMaterialHelper::m_visobjects
std::map< const objectT *, SoMaterial * > m_visobjects
Definition
VisibleObjectToMaterialHelper.h:56
VisibleObjectToMaterialHelper::VisibleObjectToMaterialHelper
VisibleObjectToMaterialHelper(QObject *parent=0, IVP1System *sys=0)
Generated on
for ATLAS Offline Software by
1.17.0