#ifndef ROOT_TEveGeoNode
#define ROOT_TEveGeoNode
#include "TEveElement.h"
#include "TEveTrans.h"
#include "TEveProjectionBases.h"
class TGeoVolume;
class TGeoNode;
class TGeoHMatrix;
class TGeoManager;
class TGeoShape;
class TEveGeoShapeExtract;
class TEveGeoNode : public TEveElement,
public TObject
{
friend class TEveGeoNodeEditor;
TEveGeoNode(const TEveGeoNode&);
TEveGeoNode& operator=(const TEveGeoNode&);
protected:
TGeoNode *fNode;
TEveGeoShapeExtract* DumpShapeTree(TEveGeoNode* geon, TEveGeoShapeExtract* parent = 0, Int_t level = 0);
public:
TEveGeoNode(TGeoNode* node);
virtual const Text_t* GetName() const;
virtual const Text_t* GetTitle() const;
TGeoNode* GetNode() const { return fNode; }
virtual void ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* parent);
virtual Bool_t CanEditRnrElement() { return false; }
virtual void SetRnrSelf(Bool_t rnr);
virtual void SetRnrChildren(Bool_t rnr);
virtual void SetRnrState(Bool_t rnr);
virtual Bool_t CanEditMainColor() { return true; }
virtual void SetMainColor(Color_t color);
virtual void SetMainColor(Pixel_t pixel);
void UpdateNode(TGeoNode* node);
void UpdateVolume(TGeoVolume* volume);
void Save(const char* file, const char* name="Extract");
virtual void Draw(Option_t* option="");
ClassDef(TEveGeoNode, 1);
};
class TEveGeoTopNode : public TEveGeoNode
{
TEveGeoTopNode(const TEveGeoTopNode&);
TEveGeoTopNode& operator=(const TEveGeoTopNode&);
protected:
TGeoManager* fManager;
TEveTrans fGlobalTrans;
Int_t fVisOption;
Int_t fVisLevel;
public:
TEveGeoTopNode(TGeoManager* manager, TGeoNode* node, Int_t visopt=1, Int_t vislvl=3);
virtual ~TEveGeoTopNode() {}
virtual Bool_t CanEditMainHMTrans() { return kTRUE; }
virtual TEveTrans* PtrMainHMTrans() { return &fGlobalTrans; }
TEveTrans& RefGlobalTrans() { return fGlobalTrans; }
void SetGlobalTrans(const TGeoHMatrix* m);
void UseNodeTrans();
Int_t GetVisOption() const { return fVisOption; }
void SetVisOption(Int_t visopt);
Int_t GetVisLevel() const { return fVisLevel; }
void SetVisLevel(Int_t vislvl);
virtual Bool_t CanEditRnrElement() { return true; }
virtual void SetRnrSelf(Bool_t rnr);
virtual void Draw(Option_t* option="");
virtual void Paint(Option_t* option="");
void VolumeVisChanged(TGeoVolume* volume);
void VolumeColChanged(TGeoVolume* volume);
void NodeVisChanged(TGeoNode* node);
ClassDef(TEveGeoTopNode, 1);
};
class TEveGeoShape : public TEveElement,
public TNamed,
public TEveProjectable
{
TEveGeoShape(const TEveGeoShape&);
TEveGeoShape& operator=(const TEveGeoShape&);
protected:
TEveTrans fHMTrans;
Color_t fColor;
UChar_t fTransparency;
TGeoShape* fShape;
static TEveGeoShape* SubImportShapeExtract(TEveGeoShapeExtract* gse, TEveElement* parent);
TEveGeoShapeExtract* DumpShapeTree(TEveGeoShape* geon, TEveGeoShapeExtract* parent = 0);
public:
TEveGeoShape(const Text_t* name="TEveGeoShape", const Text_t* title=0);
virtual ~TEveGeoShape();
virtual Bool_t CanEditMainColor() { return kTRUE; }
virtual Bool_t CanEditMainTransparency() { return kTRUE; }
virtual UChar_t GetMainTransparency() const { return fTransparency; }
virtual void SetMainTransparency(UChar_t t) { fTransparency = t; }
virtual Bool_t CanEditMainHMTrans() { return kTRUE; }
virtual TEveTrans* PtrMainHMTrans() { return &fHMTrans; }
TEveTrans& RefHMTrans() { return fHMTrans; }
void SetTransMatrix(Double_t* carr) { fHMTrans.SetFrom(carr); }
void SetTransMatrix(const TGeoMatrix& mat) { fHMTrans.SetFrom(mat); }
Color_t GetColor() { return fColor; }
TGeoShape* GetShape() { return fShape; }
virtual void Paint(Option_t* option="");
void Save(const char* file, const char* name="Extract");
static TEveGeoShape* ImportShapeExtract(TEveGeoShapeExtract* gse, TEveElement* parent);
virtual TBuffer3D* MakeBuffer3D();
virtual TClass* ProjectedClass() const;
ClassDef(TEveGeoShape, 1);
};
#endif
Last update: Thu Jan 17 08:48:35 2008
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.