#ifndef ROOT_TEveGeoShape
#define ROOT_TEveGeoShape
#include "TEveElement.h"
#include "TEveProjectionBases.h"
#include "TAttBBox.h"
class TGeoShape;
class TEveGeoShapeExtract;
class TEveGeoShape : public TEveElement,
public TNamed,
public TEveProjectable
{
private:
TEveGeoShape(const TEveGeoShape&);
TEveGeoShape& operator=(const TEveGeoShape&);
protected:
Color_t fColor;
Int_t fNSegments;
TGeoShape* fShape;
static TGeoManager* fgGeoMangeur;
static TEveGeoShape* SubImportShapeExtract(TEveGeoShapeExtract* gse, TEveElement* parent);
TEveGeoShapeExtract* DumpShapeTree(TEveGeoShape* geon, TEveGeoShapeExtract* parent=0);
public:
TEveGeoShape(const char* name="TEveGeoShape", const char* title=0);
virtual ~TEveGeoShape();
virtual Bool_t CanEditMainColor() const { return kTRUE; }
virtual Bool_t CanEditMainTransparency() const { return kTRUE; }
Color_t GetColor() const { return fColor; }
Int_t GetNSegments() const { return fNSegments; }
void SetNSegments(Int_t s) { fNSegments = s; }
TGeoShape* GetShape() { return fShape; }
void SetShape(TGeoShape* s);
virtual void Paint(Option_t* option="");
void Save(const char* file, const char* name="Extract");
void SaveExtract(const char* file, const char* name);
void WriteExtract(const char* name);
static TEveGeoShape* ImportShapeExtract(TEveGeoShapeExtract* gse, TEveElement* parent=0);
virtual TBuffer3D* MakeBuffer3D();
virtual TClass* ProjectedClass(const TEveProjection* p) const;
static TGeoManager* GetGeoMangeur();
ClassDef(TEveGeoShape, 1);
};
class TEveGeoShapeProjected : public TEveElementList,
public TEveProjected,
public TAttBBox
{
private:
TEveGeoShapeProjected(const TEveGeoShapeProjected&);
TEveGeoShapeProjected& operator=(const TEveGeoShapeProjected&);
protected:
TBuffer3D* fBuff;
virtual void SetDepthLocal(Float_t d);
public:
TEveGeoShapeProjected();
virtual ~TEveGeoShapeProjected() {}
virtual Bool_t CanEditMainTransparency() const { return kTRUE; }
virtual void SetProjection(TEveProjectionManager* proj, TEveProjectable* model);
virtual void UpdateProjection();
virtual void ComputeBBox();
virtual void Paint(Option_t* option = "");
ClassDef(TEveGeoShapeProjected, 0);
};
#endif