Logo ROOT  
Reference Guide
TEveGeoNode.h
Go to the documentation of this file.
1// @(#)root/eve:$Id$
2// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TEveGeoNode
13#define ROOT_TEveGeoNode
14
15#include "TEveElement.h"
16#include <list>
17
18class TGeoVolume;
19class TGeoNode;
20class TGeoHMatrix;
21class TGeoManager;
22class TGeoShape;
23
25
26//----------------------------------------------------------------
27
28class TEveGeoNode : public TEveElement,
29 public TObject
30{
31 friend class TEveGeoNodeEditor;
32
33 TEveGeoNode(const TEveGeoNode&); // Not implemented
34 TEveGeoNode& operator=(const TEveGeoNode&); // Not implemented
35
36protected:
39
41 static std::list<TGeoShape*> fgTemporaryStore; //!
42
43public:
44 TEveGeoNode(TGeoNode* node);
45
46 virtual TObject* GetObject(const TEveException&) const
47 { const TObject* obj = this; return const_cast<TObject*>(obj); }
48
49 virtual const char* GetName() const;
50 virtual const char* GetTitle() const;
51 virtual const char* GetElementName() const;
52 virtual const char* GetElementTitle() const;
53
54 TGeoNode* GetNode() const { return fNode; }
55
56 virtual void ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* parent);
57
58 virtual void ExpandIntoListTrees();
59 virtual void ExpandIntoListTreesRecursively();
60
61 virtual Bool_t CanEditElement() const { return kFALSE; }
62
63 virtual void AddStamp(UChar_t bits);
64
65 virtual Bool_t CanEditMainColor() const;
66 virtual void SetMainColor(Color_t color);
67
68 virtual Bool_t CanEditMainTransparency() const;
69 virtual Char_t GetMainTransparency() const;
70 virtual void SetMainTransparency(Char_t t);
71
72 void UpdateNode(TGeoNode* node);
73 void UpdateVolume(TGeoVolume* volume);
74
75 void Save(const char* file, const char* name="Extract", Bool_t leafs_only=kFALSE);
76 void SaveExtract(const char* file, const char* name, Bool_t leafs_only);
77 void WriteExtract(const char* name, Bool_t leafs_only);
78
79 virtual void Draw(Option_t* option="");
80
81 static Int_t GetCSGExportNSeg();
82 static void SetCSGExportNSeg(Int_t nseg);
83
84 ClassDef(TEveGeoNode, 0); // Wrapper for TGeoNode that allows it to be shown in GUI and controlled as a TEveElement.
85};
86
87//----------------------------------------------------------------
88
90{
91 TEveGeoTopNode(const TEveGeoTopNode&); // Not implemented
92 TEveGeoTopNode& operator=(const TEveGeoTopNode&); // Not implemented
93
94protected:
99
100public:
101 TEveGeoTopNode(TGeoManager* manager, TGeoNode* node, Int_t visopt=1,
102 Int_t vislvl=3, Int_t maxvisnds=10000);
103 virtual ~TEveGeoTopNode() {}
104
105 void UseNodeTrans();
106
107 TGeoManager* GetGeoManager() const { return fManager; }
108
109 Int_t GetVisOption() const { return fVisOption; }
110 void SetVisOption(Int_t vo) { fVisOption = vo; }
111 Int_t GetVisLevel() const { return fVisLevel; }
112 void SetVisLevel(Int_t vl) { fVisLevel = vl; }
114 void SetMaxVisNodes(Int_t mvn) { fMaxVisNodes = mvn; }
115
116 virtual Bool_t CanEditElement() const { return kTRUE; }
117 virtual Bool_t SingleRnrState() const { return kTRUE; }
118
119 virtual void AddStamp(UChar_t bits);
120
121 virtual void Draw(Option_t* option="");
122 virtual void Paint(Option_t* option="");
123
124 // Signals from GeoManager.
125 // These are not available any more ... colors in list-tree not refreshed
126 // properly.
127 void VolumeVisChanged(TGeoVolume* volume);
128 void VolumeColChanged(TGeoVolume* volume);
129 void NodeVisChanged(TGeoNode* node);
130
131 ClassDef(TEveGeoTopNode, 0); // Top-level TEveGeoNode with a pointer to TGeoManager and controls for steering of TGeoPainter.
132};
133
134#endif
int Int_t
Definition: RtypesCore.h:45
unsigned char UChar_t
Definition: RtypesCore.h:38
char Char_t
Definition: RtypesCore.h:33
const Bool_t kFALSE
Definition: RtypesCore.h:101
bool Bool_t
Definition: RtypesCore.h:63
short Color_t
Definition: RtypesCore.h:92
const Bool_t kTRUE
Definition: RtypesCore.h:100
const char Option_t
Definition: RtypesCore.h:66
#define ClassDef(name, id)
Definition: Rtypes.h:325
char name[80]
Definition: TGX11.cxx:110
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
Definition: TEveElement.h:36
Exception class thrown by TEve classes and macros.
Definition: TEveUtil.h:102
Editor for TEveGeoNode class.
Wrapper for TGeoNode that allows it to be shown in GUI and controlled as a TEveElement.
Definition: TEveGeoNode.h:30
virtual Char_t GetMainTransparency() const
Get transparency – it is taken from the geo node.
TEveGeoShapeExtract * DumpShapeTree(TEveGeoNode *geon, TEveGeoShapeExtract *parent=0, Bool_t leafs_only=kFALSE)
Export the node hierarchy into tree of TEveGeoShapeExtract objects.
virtual Bool_t CanEditMainTransparency() const
Can edit main transparency – not available for assemblies.
TGeoNode * fNode
Definition: TEveGeoNode.h:37
static std::list< TGeoShape * > fgTemporaryStore
Definition: TEveGeoNode.h:41
virtual void ExpandIntoListTree(TGListTree *ltree, TGListTreeItem *parent)
Checks if child-nodes have been imported ... imports them if not.
TGeoNode * GetNode() const
Definition: TEveGeoNode.h:54
virtual void Draw(Option_t *option="")
Draw the object.
void UpdateVolume(TGeoVolume *volume)
Updates all reve-browsers having the volume in their contents.
virtual void AddStamp(UChar_t bits)
Override from TEveElement.
static Int_t fgCSGExportNSeg
Definition: TEveGeoNode.h:40
virtual void SetMainTransparency(Char_t t)
Set transparency, propagate to volume's transparency.
virtual const char * GetName() const
Return name, taken from geo-node. Used via TObject.
Definition: TEveGeoNode.cxx:84
virtual const char * GetTitle() const
Return title, taken from geo-node. Used via TObject.
Definition: TEveGeoNode.cxx:92
void SaveExtract(const char *file, const char *name, Bool_t leafs_only)
Save the shape tree as TEveGeoShapeExtract.
virtual Bool_t CanEditMainColor() const
Can edit main-color – not available for assemblies.
virtual void ExpandIntoListTrees()
Expand children into all list-trees.
TEveGeoNode(const TEveGeoNode &)
virtual TObject * GetObject(const TEveException &) const
Get a TObject associated with this render-element.
Definition: TEveGeoNode.h:46
TEveGeoNode & operator=(const TEveGeoNode &)
void WriteExtract(const char *name, Bool_t leafs_only)
Write the shape tree as TEveGeoShapeExtract to current directory.
static Int_t GetCSGExportNSeg()
Returns number of segments used for CSG export.
Definition: TEveGeoNode.cxx:52
void Save(const char *file, const char *name="Extract", Bool_t leafs_only=kFALSE)
Save TEveGeoShapeExtract tree starting at this node.
virtual void SetMainColor(Color_t color)
Set color, propagate to volume's line color.
virtual void ExpandIntoListTreesRecursively()
Expand children into all list-trees recursively.
virtual const char * GetElementTitle() const
Return title, taken from geo-node. Used via TEveElement.
void UpdateNode(TGeoNode *node)
Updates all reve-browsers having the node in their contents.
virtual const char * GetElementName() const
Return name, taken from geo-node. Used via TEveElement.
virtual Bool_t CanEditElement() const
Definition: TEveGeoNode.h:61
static void SetCSGExportNSeg(Int_t nseg)
Sets number of segments used for CSG export.
Definition: TEveGeoNode.cxx:60
Globally positioned TGeoShape with rendering attributes and an optional list of daughter shape-extrac...
A wrapper over a TGeoNode, possibly displaced with a global trasformation stored in TEveElement.
Definition: TEveGeoNode.h:90
Int_t fVisOption
Definition: TEveGeoNode.h:96
Int_t GetVisOption() const
Definition: TEveGeoNode.h:109
virtual void Paint(Option_t *option="")
Paint the enclosed TGeo hierarchy with visibility level and option given in data-members.
TGeoManager * GetGeoManager() const
Definition: TEveGeoNode.h:107
void VolumeColChanged(TGeoVolume *volume)
Callback for propagating volume parameter changes.
void SetVisLevel(Int_t vl)
Definition: TEveGeoNode.h:112
TEveGeoTopNode & operator=(const TEveGeoTopNode &)
void SetMaxVisNodes(Int_t mvn)
Definition: TEveGeoNode.h:114
void UseNodeTrans()
Use transformation matrix from the TGeoNode.
TEveGeoTopNode(const TEveGeoTopNode &)
void SetVisOption(Int_t vo)
Definition: TEveGeoNode.h:110
virtual ~TEveGeoTopNode()
Definition: TEveGeoNode.h:103
Int_t GetVisLevel() const
Definition: TEveGeoNode.h:111
virtual Bool_t SingleRnrState() const
Definition: TEveGeoNode.h:117
void NodeVisChanged(TGeoNode *node)
Callback for propagating node visibility changes.
Int_t fMaxVisNodes
Definition: TEveGeoNode.h:98
virtual void Draw(Option_t *option="")
Draw the top-node.
TGeoManager * fManager
Definition: TEveGeoNode.h:95
virtual Bool_t CanEditElement() const
Definition: TEveGeoNode.h:116
Int_t GetMaxVisNodes() const
Definition: TEveGeoNode.h:113
void VolumeVisChanged(TGeoVolume *volume)
Callback for propagating volume visibility changes.
virtual void AddStamp(UChar_t bits)
Revert from TEveGeoNode back to standard behaviour, that is, do not pass visibility changes to fNode ...
A list tree is a widget that can contain a number of items arranged in a tree structure.
Definition: TGListTree.h:195
Matrix class used for computing global transformations Should NOT be used for node definition.
Definition: TGeoMatrix.h:421
The manager class for any TGeo geometry.
Definition: TGeoManager.h:45
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
Definition: TGeoNode.h:41
Base abstract class for all shapes.
Definition: TGeoShape.h:26
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Definition: TGeoVolume.h:49
Mother of all ROOT objects.
Definition: TObject.h:37
Definition: file.py:1