CEDRIC  Revision_backup-2009-02
PhastParser.h
Go to the documentation of this file.
1 /******************************************************************************
2  *
3  * Copyright (C) 2008 Boris Iven, Max Hermann
4  *
5  * This file is part of the "CEDRIC Event Display" application.
6  *
7  *****************************************************************************/
8 
9 #ifndef PHASTPARSER_H_
10 #define PHASTPARSER_H_
11 
12 #include <QtGui>
13 #include <Phast.h>
14 #include <PaMetaDB.h>
15 #include <QDomElement>
16 #include <list>
17 #include <string>
18 
19 #include "PhastNode.h"
20 //#include "PhastGeometryBuilder.h"
21 //#include "ChangeColorVisitor.h"
22 
23 class SetupTreeWidget;
24 class PhastScene;
25 
26 
37 {
38 
39 public:
40  enum Types
41  {
42  DETECTORS = 1,
44  RICH = 3,
45  MAGNETS = 4,
46  TARGET = 5
47  };
48  PhastParser(QDomDocument* doc, Phast* phast, SetupTreeWidget* tree, PhastScene* phastScene);
49  void ParseDetectors(const PaSetup& setup, QTreeWidgetItem* parent, QDomElement detectorsNode /*, osg::ref_ptr<osg::node> osgnode*/);
50 
51  //PhastGeometryBuilder& geometryBuilder() { return phastGeometryBuilder; }
52 
53 
54 
55 private:
56  QTreeWidget* treeWidget;
57  QTreeWidgetItem* item;
58 
59  PhastScene* m_phastScene;
60 
61  //ChangeColorVisitor* cnc;
62 
63  //QColor actGroupColor; //for parsing
64  //QColor getColor(QDomNode node);
65 
66  void traverse( QDomNode node, const PaSetup& setup, QTreeWidgetItem* parent, PhastNode* osgnode, Types type);
67 
68  QTreeWidgetItem* createProtoItem( QTreeWidgetItem* parentItem, int typeFlags, PhastNode* parentOsgNode, QDomNode curDomNode, QString name, PhastNode* node );
69  QTreeWidgetItem* createItem(QTreeWidgetItem* parentItem, int typeFlags, PhastNode* parentOSGNode, QDomNode actDomNode);
70  QTreeWidgetItem* createRichItem(QTreeWidgetItem* parentItem, int typeFlags, PhastNode* parentOSGNode, QDomNode actDomNode, const PaRich& rich);
71  QTreeWidgetItem* createCalorimeterItem(QTreeWidgetItem* parentItem, int typeFlags, PhastNode* parentOSGNode, QDomNode actDomNode, const PaCalorimeter& cal);
72  QTreeWidgetItem* createDetectorItem(QTreeWidgetItem* parentItem, int typeFlags, PhastNode* parentOSGNode, QDomNode actDomNode, const PaDetect& det);
73  QTreeWidgetItem* createMagnetItem(QTreeWidgetItem* parentItem, int typeFlags, PhastNode* parentOSGNode, QDomNode actDomNode, const PhastNode::Magnet& mag);
74  QTreeWidgetItem* createTargetItem(QTreeWidgetItem* parentItem, int typeFlags, PhastNode* parentOSGNode, QDomNode actDomNode, const PhastNode::Target& mag);
75  void setItemColor(QDomNode domNode, QTreeWidgetItem* item);
76 
79  std::list<int> getDetectorsByPrefix( const PaSetup& setup, const std::string& prefix );
80  std::list<int> getDetectorsByRegExp( const PaSetup& setup, const QString& pattern );
81  std::list<int> getCalorimetersByRegExp( const PaSetup& setup, const QString& pattern );
82  const PaDetect& getDetectorByName(const PaSetup& setup, const QString& name);
83  const PaCalorimeter& getCalorimeterByName(const PaSetup& setup, const QString& name);
85 
86  //PhastGeometryBuilder phastGeometryBuilder;
87 };
88 
89 #endif /*PHASTPARSER_H_*/
The Phast Setup in a QTreeWidget, relates DOM (XML) and OSG (graphical) representation.
Definition: SetupTreeWidget.h:25
Types
Definition: PhastParser.h:40
Definition: PhastParser.h:44
Definition: PhastParser.h:43
Definition: PhastNode.h:43
Graphical representation of Phast objects (e.g. PaDetector, PaTrack, ...) as OpenSceneGraph node...
Definition: PhastNode.h:32
PhastParser(QDomDocument *doc, Phast *phast, SetupTreeWidget *tree, PhastScene *phastScene)
Definition: PhastParser.cpp:38
Definition: PhastParser.h:46
Parse currently loaded PHAST setup and create DOM structure and a OSG scenegraph from it...
Definition: PhastParser.h:36
Definition: PhastParser.h:42
Scenegraph holding static and dynamic Phast geometry.
Definition: PhastScene.h:32
Definition: PhastNode.h:58
Definition: PhastParser.h:45
void ParseDetectors(const PaSetup &setup, QTreeWidgetItem *parent, QDomElement detectorsNode)
Definition: PhastParser.cpp:758