12 #ifndef ROOT_TEveGeoNode
13 #define ROOT_TEveGeoNode
27 class TEveGeoShapeExtract;
31 class TEveGeoNode :
public TEveElement,
34 friend class TEveGeoNodeEditor;
36 TEveGeoNode(
const TEveGeoNode&);
37 TEveGeoNode& operator=(
const TEveGeoNode&);
41 TEveGeoShapeExtract* DumpShapeTree(TEveGeoNode* geon, TEveGeoShapeExtract* parent=0, Bool_t leafs_only=kFALSE);
43 static Int_t fgCSGExportNSeg;
44 static std::list<TGeoShape*> fgTemporaryStore;
47 TEveGeoNode(TGeoNode* node);
49 virtual TObject* GetObject(
const TEveException&)
const
50 {
const TObject* obj =
this;
return const_cast<TObject*
>(obj); }
52 virtual const char* GetName()
const;
53 virtual const char* GetTitle()
const;
54 virtual const char* GetElementName()
const;
55 virtual const char* GetElementTitle()
const;
57 TGeoNode* GetNode()
const {
return fNode; }
59 virtual void ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* parent);
61 virtual void ExpandIntoListTrees();
62 virtual void ExpandIntoListTreesRecursively();
64 virtual Bool_t CanEditElement()
const {
return kFALSE; }
66 virtual void AddStamp(UChar_t bits);
68 virtual Bool_t CanEditMainColor()
const;
69 virtual void SetMainColor(Color_t color);
71 virtual Bool_t CanEditMainTransparency()
const;
72 virtual Char_t GetMainTransparency()
const;
73 virtual void SetMainTransparency(Char_t t);
75 void UpdateNode(TGeoNode* node);
76 void UpdateVolume(TGeoVolume* volume);
78 void Save(
const char* file,
const char* name=
"Extract", Bool_t leafs_only=kFALSE);
79 void SaveExtract(
const char* file,
const char* name, Bool_t leafs_only);
80 void WriteExtract(
const char* name, Bool_t leafs_only);
82 virtual void Draw(Option_t* option=
"");
84 static Int_t GetCSGExportNSeg();
85 static void SetCSGExportNSeg(Int_t nseg);
87 ClassDef(TEveGeoNode, 0);
92 class TEveGeoTopNode :
public TEveGeoNode
94 TEveGeoTopNode(
const TEveGeoTopNode&);
95 TEveGeoTopNode& operator=(
const TEveGeoTopNode&);
98 TGeoManager* fManager;
104 TEveGeoTopNode(TGeoManager* manager, TGeoNode* node, Int_t visopt=1,
105 Int_t vislvl=3, Int_t maxvisnds=10000);
106 virtual ~TEveGeoTopNode() {}
110 TGeoManager* GetGeoManager()
const {
return fManager; }
112 Int_t GetVisOption()
const {
return fVisOption; }
113 void SetVisOption(Int_t vo) { fVisOption = vo; }
114 Int_t GetVisLevel()
const {
return fVisLevel; }
115 void SetVisLevel(Int_t vl) { fVisLevel = vl; }
116 Int_t GetMaxVisNodes()
const {
return fMaxVisNodes; }
117 void SetMaxVisNodes(Int_t mvn) { fMaxVisNodes = mvn; }
119 virtual Bool_t CanEditElement()
const {
return kTRUE; }
120 virtual Bool_t SingleRnrState()
const {
return kTRUE; }
122 virtual void AddStamp(UChar_t bits);
124 virtual void Draw(Option_t* option=
"");
125 virtual void Paint(Option_t* option=
"");
130 void VolumeVisChanged(TGeoVolume* volume);
131 void VolumeColChanged(TGeoVolume* volume);
132 void NodeVisChanged(TGeoNode* node);
134 ClassDef(TEveGeoTopNode, 0);