#ifndef ROOT_TGeoOverlap
#define ROOT_TGeoOverlap
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
#ifndef ROOT_TAttLine
#include "TAttLine.h"
#endif
#ifndef ROOT_TAttFill
#include "TAttFill.h"
#endif
#ifndef ROOT_TAtt3D
#include "TAtt3D.h"
#endif
#ifndef ROOT_TGeoMatrix
#include "TGeoMatrix.h"
#endif
class TGeoVolume;
class TPolyMarker3D;
class TBrowser;
class TGeoOverlap : public TNamed,
public TAttLine,
public TAttFill,
public TAtt3D
{
public:
enum EOverlapType {
kGeoOverlap = BIT(14),
kGeoExtrusion = BIT(15)
};
private:
TGeoOverlap(const TGeoOverlap&);
TGeoOverlap& operator=(const TGeoOverlap&);
protected:
Double_t fOverlap;
TGeoVolume *fVolume1;
TGeoVolume *fVolume2;
TGeoHMatrix *fMatrix1;
TGeoHMatrix *fMatrix2;
TPolyMarker3D *fMarker;
public:
TGeoOverlap();
TGeoOverlap(const char *name, TGeoVolume *vol1, TGeoVolume *vol2,
const TGeoMatrix *matrix1, const TGeoMatrix *matrix2,
Bool_t isovlp=kTRUE, Double_t ovlp=0.01);
virtual ~TGeoOverlap();
void Browse(TBrowser *b);
virtual Int_t Compare(const TObject *obj) const;
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
virtual void Draw(Option_t *option="");
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
TPolyMarker3D *GetPolyMarker() const {return fMarker;}
TGeoVolume *GetFirstVolume() const {return fVolume1;}
TGeoVolume *GetSecondVolume() const {return fVolume2;}
TGeoHMatrix *GetFirstMatrix() const {return fMatrix1;}
TGeoHMatrix *GetSecondMatrix() const {return fMatrix2;}
Double_t GetOverlap() const {return fOverlap;}
Bool_t IsExtrusion() const {return TObject::TestBit(kGeoExtrusion);}
Bool_t IsOverlap() const {return TObject::TestBit(kGeoOverlap);}
Bool_t IsFolder() const {return kFALSE;}
virtual Bool_t IsSortable() const {return kTRUE;}
virtual void Paint(Option_t *option="");
virtual void Print(Option_t *option="") const;
virtual void PrintInfo() const;
virtual void Sizeof3D() const;
void SampleOverlap(Int_t npoints=1000000);
void SetIsExtrusion(Bool_t flag=kTRUE) {TObject::SetBit(kGeoExtrusion,flag); TObject::SetBit(kGeoOverlap,!flag);}
void SetIsOverlap(Bool_t flag=kTRUE) {TObject::SetBit(kGeoOverlap,flag); TObject::SetBit(kGeoExtrusion,!flag);}
void SetNextPoint(Double_t x, Double_t y, Double_t z);
void SetFirstVolume(TGeoVolume *vol) {fVolume1=vol;}
void SetSecondVolume(TGeoVolume *vol) {fVolume2=vol;}
void SetFirstMatrix(TGeoMatrix *matrix) {*fMatrix1 = matrix;}
void SetSecondMatrix(TGeoMatrix *matrix) {*fMatrix2 = matrix;}
void SetOverlap(Double_t ovlp) {fOverlap=ovlp;}
void Validate() const;
ClassDef(TGeoOverlap, 2)
};
#endif
Last change: Fri Jul 18 17:30:47 2008
Last generated: 2008-07-18 17:30
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.