ROOT logo
ROOT » GEOM » GEOMPAINTER » TGeoPainter

class TGeoPainter: public TVirtualGeoPainter

 TGeoPainter - class implementing all draw interfaces for a generic 3D viewer
 using TBuffer3D mechanism.

Function Members (Methods)

public:
TGeoPainter(TGeoManager* manager)
TGeoPainter(const TGeoPainter&)
virtual~TGeoPainter()
voidTObject::AbstractMethod(const char* method) const
virtual voidAddSize3D(Int_t numpoints, Int_t numsegs, Int_t numpolys)
virtual TVirtualGeoTrack*AddTrack(Int_t id, Int_t pdgcode, TObject* part)
virtual voidAddTrackPoint(Double_t* point, Double_t* box, Bool_t reset = kFALSE)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidBombTranslation(const Double_t* tr, Double_t* bombtr)
virtual voidTObject::Browse(TBrowser* b)
virtual voidCheckBoundaryErrors(Int_t ntracks = 1000000, Double_t radius = -1.)
virtual voidCheckBoundaryReference(Int_t icheck = -1)
voidCheckEdit()
virtual voidCheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const
virtual voidCheckGeometryFull(Bool_t checkoverlaps = kTRUE, Bool_t checkcrossings = kTRUE, Int_t nrays = 10000, const Double_t* vertex = NULL)
virtual voidCheckOverlaps(const TGeoVolume* vol, Double_t ovlp = 0.1, Option_t* option = "") const
virtual voidCheckPoint(Double_t x = 0, Double_t y = 0, Double_t z = 0, Option_t* option = "")
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
Int_tCountNodes(TGeoVolume* vol, Int_t level) const
virtual Int_tCountVisibleNodes()
virtual voidDefaultAngles()
virtual voidDefaultColors()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual Int_tDistanceToPrimitiveVol(TGeoVolume* vol, Int_t px, Int_t py)
virtual voidDraw(Option_t* option = "")
virtual voidDrawBatemanSol(TGeoBatemanSol* sol, Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidDrawCurrentPoint(Int_t color)
virtual voidDrawOnly(Option_t* option = "")
virtual voidDrawOverlap(void* ovlp, Option_t* option = "")
virtual voidDrawPanel()
virtual voidDrawPath(const char* path)
virtual voidDrawShape(TGeoShape* shape, Option_t* option = "")
virtual voidDrawVolume(TGeoVolume* vol, Option_t* option = "")
virtual voidTObject::Dump() constMENU
virtual voidEditGeometry(Option_t* option = "")
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidEstimateCameraMove(Double_t tmin, Double_t tmax, Double_t* start, Double_t* end)
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidExecuteManagerEvent(TGeoManager* geom, Int_t event, Int_t px, Int_t py)
virtual voidExecuteShapeEvent(TGeoShape* shape, Int_t event, Int_t px, Int_t py)
virtual voidExecuteVolumeEvent(TGeoVolume* volume, Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
static TVirtualGeoPainter*TVirtualGeoPainter::GeoPainter()
virtual voidGetBombFactors(Double_t& bombx, Double_t& bomby, Double_t& bombz, Double_t& bombr) const
virtual Int_tGetBombMode() const
virtual TGeoNode*GetCheckedNode()
TGeoChecker*GetChecker()
virtual Int_tGetColor(Int_t base, Float_t light) const
virtual TGeoVolume*GetDrawnVolume() const
virtual Option_t*TObject::GetDrawOption() const
virtual const char*GetDrawPath() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual Int_tGetNsegments() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual TGeoVolume*GetTopVolume() const
virtual UInt_tTObject::GetUniqueID() const
virtual voidGetViewAngles(Double_t& longitude, Double_t& latitude, Double_t& psi)
virtual Double_t*GetViewBox()
virtual Int_tGetVisLevel() const
virtual Int_tGetVisOption() const
virtual char*GetVolumeInfo(const TGeoVolume* volume, Int_t px, Int_t py) const
virtual voidGrabFocus(Int_t nfr = 0, Double_t dlong = 0, Double_t dlat = 0, Double_t dpsi = 0)
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tIsExplodedView() const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tIsPaintingShape() const
virtual Bool_tIsRaytracing() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual TH2F*LegoPlot(Int_t ntheta = 60, Double_t themin = 0., Double_t themax = 180., Int_t nphi = 90, Double_t phimin = 0., Double_t phimax = 360., Double_t rmin = 0., Double_t rmax = 9999999, Option_t* option = "")
voidLock(Bool_t flag = kTRUE)
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual voidModifiedPad(Bool_t update = kFALSE) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TGeoPainter&operator=(const TGeoPainter&)
virtual voidOpProgress(const char* opname, Long64_t current, Long64_t size, TStopwatch* watch = 0, Bool_t last = kFALSE, Bool_t refresh = kFALSE)
virtual voidPaint(Option_t* option = "")
virtual voidPaintNode(TGeoNode* node, Option_t* option = "", TGeoMatrix* global = 0)
virtual voidPaintOverlap(void* ovlp, Option_t* option = "")
voidPaintPhysicalNode(TGeoPhysicalNode* node, Option_t* option = "")
Bool_tPaintShape(const TGeoShape& shape, Option_t* option) const
virtual voidPaintShape(TGeoShape* shape, Option_t* option = "")
virtual voidPaintVolume(TGeoVolume* vol, Option_t* option = "", TGeoMatrix* global = 0)
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual voidPrintOverlaps() const
virtual voidRandomPoints(const TGeoVolume* vol, Int_t npoints, Option_t* option = "")
virtual voidRandomRays(Int_t nrays, Double_t startx, Double_t starty, Double_t startz)
virtual voidRaytrace(Option_t* option = "")
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual TGeoNode*SamplePoints(Int_t npoints, Double_t& dist, Double_t epsil, const char* g3path)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidSetBombFactors(Double_t bombx = 1.3, Double_t bomby = 1.3, Double_t bombz = 1.3, Double_t bombr = 1.3)
virtual voidSetCheckedNode(TGeoNode* node)
virtual voidSetClippingShape(TGeoShape* shape)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetExplodedView(Int_t iopt = 0)
virtual voidSetGeoManager(TGeoManager* geom)
virtual voidSetIteratorPlugin(TGeoIteratorPlugin* plugin)
virtual voidSetNmeshPoints(Int_t npoints)
virtual voidSetNsegments(Int_t nseg = 20)
static voidTObject::SetObjectStat(Bool_t stat)
static voidTVirtualGeoPainter::SetPainter(const TVirtualGeoPainter* painter)
virtual voidSetRaytracing(Bool_t flag = kTRUE)
virtual voidSetTopVisible(Bool_t vis = kTRUE)
virtual voidSetTopVolume(TGeoVolume* vol)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidSetVisLevel(Int_t level = 3)
virtual voidSetVisOption(Int_t option = 0)
virtual Int_tShapeDistancetoPrimitive(const TGeoShape* shape, Int_t numpoints, Int_t px, Int_t py) const
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
virtual voidTest(Int_t npoints, Option_t* option)
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTestOverlaps(const char* path)
virtual Bool_tTestVoxels(TGeoVolume* vol)
virtual voidUnbombTranslation(const Double_t* tr, Double_t* bombtr)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Double_tWeight(Double_t precision, Option_t* option = "v")
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidClearVisibleVolumes()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidDefineColors() const
voidLocalToMasterVect(const Double_t* local, Double_t* master) const

Data Members

public:
enum TVirtualGeoPainter::EGeoVisLevel { kGeoVisLevel
};
enum TVirtualGeoPainter::EGeoVisOption { kGeoVisDefault
kGeoVisLeaves
kGeoVisOnly
kGeoVisBranch
kGeoVisChanged
};
enum TVirtualGeoPainter::EGeoBombOption { kGeoNoBomb
kGeoBombXYZ
kGeoBombCyl
kGeoBombSph
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
static TVirtualGeoPainter*TVirtualGeoPainter::fgGeoPainterPointer to class painter
private:
Double_tfBombRbomb factor on radius (cyl or sph)
Double_tfBombXbomb factor on X
Double_tfBombYbomb factor on Y
Double_tfBombZbomb factor on Z
TBuffer3D*fBufferbuffer used for painting
Double_tfCheckedBox[6]bounding box of checked node
TGeoNode*fCheckedNodechecked node
TGeoChecker*fCheckergeometry checker
TGeoShape*fClippingShapeclipping shape
Int_tfExplodedViewtype of exploding current view
TGeoManager*fGeoManagergeometry to which applies
TGeoHMatrix*fGlobalcurrent global matrix
Bool_tfIsEditableflag that geometry is editable
Bool_tfIsPaintingShapeflag for shape painting
Bool_tfIsRaytracingraytracing flag
TGeoVolume*fLastVolumelast drawn volume
Double_tfMat[9]view rotation matrix
Int_tfNVisNodesnumber of visible nodes
Int_tfNsegmentsnumber of segments approximating circles
TGeoOverlap*fOverlapcurrent overlap
Bool_tfPaintingOverlapslock overlaps painting
TGeoIteratorPlugin*fPluginUser iterator plugin for changing pain volume properties
Bool_tfTopVisibleset top volume visible
TGeoVolume*fTopVolumetop drawn volume
TStringfVisBranchdrawn branch
Int_tfVisLeveldepth for drawing
Bool_tfVisLocklock for adding visible volumes
Int_tfVisOptionglobal visualization option
TObjArray*fVisVolumeslist of visible volumes
TStringfVolInfovolume info

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGeoPainter(TGeoManager *manager)
-*-*Geometry painter default constructor
*-*                  ====================================
~TGeoPainter()
-*-*Geometry painter default destructor
*-*                  ===================================
void AddSize3D(Int_t numpoints, Int_t numsegs, Int_t numpolys)
--- Add numpoints, numsegs, numpolys to the global 3D size.
TVirtualGeoTrack * AddTrack(Int_t id, Int_t pdgcode, TObject* part)
 Create a primary TGeoTrack.
void AddTrackPoint(Double_t* point, Double_t* box, Bool_t reset = kFALSE)
 Average center of view of all painted tracklets and compute view box.
void BombTranslation(const Double_t* tr, Double_t* bombtr)
 get the new 'bombed' translation vector according current exploded view mode
void CheckBoundaryErrors(Int_t ntracks = 1000000, Double_t radius = -1.)
 Check pushes and pulls needed to cross the next boundary with respect to the
 position given by FindNextBoundary. If radius is not mentioned the full bounding
 box will be sampled.
void CheckBoundaryReference(Int_t icheck = -1)
 Check the boundary errors reference file created by CheckBoundaryErrors method.
 The shape for which the crossing failed is drawn with the starting point in red
 and the extrapolated point to boundary (+/- failing push/pull) in yellow.
void CheckGeometryFull(Bool_t checkoverlaps = kTRUE, Bool_t checkcrossings = kTRUE, Int_t nrays = 10000, const Double_t* vertex = NULL)
 Geometry checking method (see: TGeoManager::CheckGeometry())
void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const
 Geometry checking method (see TGeoChecker).
void CheckOverlaps(const TGeoVolume* vol, Double_t ovlp = 0.1, Option_t* option = "") const
 Check overlaps for the top volume of the geometry, within a limit OVLP.
void CheckPoint(Double_t x = 0, Double_t y = 0, Double_t z = 0, Option_t* option = "")
 check current point in the geometry
void ClearVisibleVolumes()
Clear the list of visible volumes
reset the kVisOnScreen bit for volumes previously in the list
void DefineColors() const
 Define 100 colors with increasing light intensities for each basic color (1-7)
 Register these colors at indexes starting with 1000.
Int_t GetColor(Int_t base, Float_t light) const
 Get index of a base color with given light intensity (0,1)
TGeoVolume * GetDrawnVolume() const
 Get currently drawn volume.
Int_t DistanceToPrimitiveVol(TGeoVolume* vol, Int_t px, Int_t py)
 compute the closest distance of approach from point px,py to a volume
void DefaultAngles()
 Set default angles for the current view.
void DefaultColors()
 Set default volume colors according to tracking media
Int_t CountNodes(TGeoVolume* vol, Int_t level) const
 Count number of visible nodes down to a given level.
Int_t CountVisibleNodes()
 Count total number of visible nodes.
void CheckEdit()
 Check if Ged library is loaded and load geometry editor classe.
void EditGeometry(Option_t* option = "")
 Start the geometry editor.
void Draw(Option_t* option = "")
 Draw method.
void DrawBatemanSol(TGeoBatemanSol* sol, Option_t* option = "")
 Draw the time evolution of a radionuclide.
void DrawVolume(TGeoVolume* vol, Option_t* option = "")
 Draw method.
void DrawShape(TGeoShape* shape, Option_t* option = "")
 Draw a shape.
void DrawOverlap(void* ovlp, Option_t* option = "")
 Draw an overlap.
void DrawOnly(Option_t* option = "")
 Draw only one volume.
void DrawCurrentPoint(Int_t color)
 Draw current point in the same view.
void DrawPanel()
void DrawPath(const char* path)
 Draw all volumes for a given path.
void EstimateCameraMove(Double_t tmin, Double_t tmax, Double_t* start, Double_t* end)
 Estimate camera movement between tmin and tmax for best track display
void ExecuteManagerEvent(TGeoManager* geom, Int_t event, Int_t px, Int_t py)
 Execute mouse actions on a given volume.
void ExecuteShapeEvent(TGeoShape* shape, Int_t event, Int_t px, Int_t py)
 Execute mouse actions on a given shape.
void ExecuteVolumeEvent(TGeoVolume* volume, Int_t event, Int_t px, Int_t py)
 Execute mouse actions on a given volume.
char * GetVolumeInfo(const TGeoVolume* volume, Int_t px, Int_t py) const
 Get some info about the current selected volume.
TGeoChecker * GetChecker()
 Create/return geometry checker.
void GetViewAngles(Double_t& longitude, Double_t& latitude, Double_t& psi)
 Get the current view angles.
void GrabFocus(Int_t nfr = 0, Double_t dlong = 0, Double_t dlat = 0, Double_t dpsi = 0)
 Move focus to current volume
TH2F * LegoPlot(Int_t ntheta = 60, Double_t themin = 0., Double_t themax = 180., Int_t nphi = 90, Double_t phimin = 0., Double_t phimax = 360., Double_t rmin = 0., Double_t rmax = 9999999, Option_t* option = "")
 Generate a lego plot fot the top volume, according to option.
void LocalToMasterVect(const Double_t* local, Double_t* master) const
 Convert a local vector according view rotation matrix
void ModifiedPad(Bool_t update = kFALSE) const
 Check if a pad and view are present and send signal "Modified" to pad.
void Paint(Option_t* option = "")
 Paint current geometry according to option.
void PaintOverlap(void* ovlp, Option_t* option = "")
 Paint an overlap.
void PaintNode(TGeoNode* node, Option_t* option = "", TGeoMatrix* global = 0)
 Paint recursively a node and its content accordind to visualization options.
void PaintVolume(TGeoVolume* vol, Option_t* option = "", TGeoMatrix* global = 0)
 Paint recursively a node and its content accordind to visualization options.
Bool_t PaintShape(const TGeoShape & shape, Option_t * option )
 Paint the supplied shape into the current 3D viewer
void PaintShape(TGeoShape *shape, Option_t *option)
 Paint an overlap.
void PaintPhysicalNode(TGeoPhysicalNode* node, Option_t* option = "")
 Paints a physical node associated with a path.
void PrintOverlaps() const
 Print overlaps (see TGeoChecker::PrintOverlaps())
void OpProgress(const char* opname, Long64_t current, Long64_t size, TStopwatch* watch = 0, Bool_t last = kFALSE, Bool_t refresh = kFALSE)
 Text progress bar.
void RandomPoints(const TGeoVolume* vol, Int_t npoints, Option_t* option = "")
 Draw random points in the bounding box of a volume.
void RandomRays(Int_t nrays, Double_t startx, Double_t starty, Double_t startz)
 Shoot nrays in the current drawn geometry
void Raytrace(Option_t* option = "")
 Raytrace current drawn geometry
TGeoNode * SamplePoints(Int_t npoints, Double_t& dist, Double_t epsil, const char* g3path)
 shoot npoints randomly in a box of 1E-5 arround current point.
 return minimum distance to points outside
void SetBombFactors(Double_t bombx = 1.3, Double_t bomby = 1.3, Double_t bombz = 1.3, Double_t bombr = 1.3)
--- Set cartesian and radial bomb factors for translations
void SetExplodedView(Int_t iopt = 0)
 set type of exploding view
void SetNsegments(Int_t nseg = 20)
 Set number of segments to approximate circles
void SetNmeshPoints(Int_t npoints)
 Set number of points to be generated on the shape outline when checking for overlaps.
void SetCheckedNode(TGeoNode* node)
 Select a node to be checked for overlaps. All overlaps not involving it will
 be ignored.
void SetVisLevel(Int_t level = 3)
 Set default level down to which visualization is performed
void SetTopVisible(Bool_t vis = kTRUE)
 Set top geometry volume as visible.
void SetVisOption(Int_t option = 0)
 set drawing mode :
 option=0 (default) all nodes drawn down to vislevel
 option=1           leaves and nodes at vislevel drawn
 option=2           path is drawn
Int_t ShapeDistancetoPrimitive(const TGeoShape* shape, Int_t numpoints, Int_t px, Int_t py) const
  Returns distance between point px,py on the pad an a shape.
void Test(Int_t npoints, Option_t* option)
 Check time of finding "Where am I" for n points.
void TestOverlaps(const char* path)
--- Geometry overlap checker based on sampling.
Bool_t TestVoxels(TGeoVolume* vol)
 Check voxels efficiency per volume.
void UnbombTranslation(const Double_t* tr, Double_t* bombtr)
 get the new 'unbombed' translation vector according current exploded view mode
Double_t Weight(Double_t precision, Option_t* option = "v")
 Compute weight [kg] of the current volume.
TGeoPainter(TGeoManager *manager)
void GetBombFactors(Double_t& bombx, Double_t& bomby, Double_t& bombz, Double_t& bombr) const
{bombx=fBombX; bomby=fBombY; bombz=fBombZ; bombr=fBombR;}
Int_t GetBombMode() const
{return fExplodedView;}
TGeoNode * GetCheckedNode()
{return fCheckedNode;}
const char * GetDrawPath() const
{return fVisBranch.Data();}
TGeoVolume * GetTopVolume() const
{return fTopVolume;}
Int_t GetVisLevel() const
{return fVisLevel;}
Int_t GetVisOption() const
{return fVisOption;}
Int_t GetNsegments() const
{return fNsegments;}
Double_t * GetViewBox()
{return &fCheckedBox[0];}
Bool_t IsExplodedView() const
{return ((fExplodedView==kGeoVisDefault)?kFALSE:kTRUE);}
Bool_t IsRaytracing() const
{return fIsRaytracing;}
Bool_t IsPaintingShape() const
void Lock(Bool_t flag = kTRUE)
{fVisLock = flag;}
void SetClippingShape(TGeoShape* shape)
{fClippingShape = shape;}
void SetGeoManager(TGeoManager* geom)
{fGeoManager=geom;}
void SetIteratorPlugin(TGeoIteratorPlugin* plugin)
{fPlugin = plugin; ModifiedPad();}
void SetRaytracing(Bool_t flag = kTRUE)
{fIsRaytracing = flag;}
void SetTopVolume(TGeoVolume* vol)
{fTopVolume = vol;}