13#include <Inventor/nodes/SoSeparator.h>
14#include <Inventor/nodes/SoSwitch.h>
15#include <Inventor/SoPath.h>
21 std::map<const VP1StdCollection*,QList< std::pair<const SoMaterial*, QList< const Trk::Track*> > > >
tracksFromVertices ;
27 "Thomas.Kittelmann@cern.ch, Andreas.Wildauer@cern.ch" ),
43 m_d->controller->collWidget()->clear();
44 m_d->tracksFromVertices.clear();
50 root->addChild(
m_d->controller->drawOptions());
52 QList<VP1StdCollection*> cols;
58 m_d->controller->collWidget()->setCollections(cols);
62 root->addChild(col->collSwitch());
74 return m_d->controller;
83 if (col->visible()&&pickedPath->containsNode(col->collSep())) {
89 message(
"Error: Could not determine in which collection click took place.");
104 message(
"Error: Unknown vertex collection type.");
113 serialise.save(
m_d->controller->saveSettings());
114 serialise.save(
m_d->controller->collWidget());
115 serialise.disableUnsavedChecks();
116 return serialise.result();
124 message(
"Warning: State data in .vp1 file is in wrong format - ignoring!");
129 if (
state.version()>=1)
130 m_d->controller->restoreSettings(
state.restoreByteArray());
131 state.restore(
m_d->controller->collWidget());
133 state.disableUnrestoredChecks();
138 messageVerbose(
" updateVertexToTracks with "+QString::number(newTracksFromVertices.size())+
" vertices.");
141 m_d->tracksFromVertices[coll]=newTracksFromVertices;
142 QList< std::pair<const SoMaterial*, QList< const Trk::Track*> > > tmpList;
144 std::map<const VP1StdCollection*,QList< std::pair<const SoMaterial*, QList< const Trk::Track*> > > >
::const_iterator
145 it=
m_d->tracksFromVertices.begin(), itEnd=
m_d->tracksFromVertices.end();
147 for ( ;it!=itEnd; ++it){
150 messageVerbose(
" emitting tracksFromVerticesChanged "+QString::number(tmpList.size())+
" collections.");
IVP13DSystemSimple(const QString &name, const QString &information, const QString &contact_info)
void ensureBuildController()
void messageVerbose(const QString &) const
virtual void restoreFromState(QByteArray)
void message(const QString &) const
virtual QByteArray saveState()
The Athena Transient Store API.
QStringList infoOnClicked(SoPath *pickedPath)
static QList< VP1StdCollection * > createCollections(VertexSysController *)
QStringList infoOnClicked(SoPath *pickedPath)
static QList< VP1StdCollection * > createCollections(VertexSysController *controller)
VertexSysController * controller
std::map< const VP1StdCollection *, QList< std::pair< const SoMaterial *, QList< const Trk::Track * > > > > tracksFromVertices
void restoreFromState(QByteArray ba)
QWidget * buildController()
void tracksFromVertexChanged(QList< std::pair< const SoMaterial *, QList< const Trk::Track * > > > &)
void updateVertexToTracks(QList< std::pair< const SoMaterial *, QList< const Trk::Track * > > > &)
void userPickedNode(SoNode *pickedNode, SoPath *pickedPath)
virtual ~VP1VertexSystem()
void buildEventSceneGraph(StoreGateSvc *sg, SoSeparator *root)