library: libGeomPainter
#include "TGeoPainter.h"

TGeoPainter


class description - header file - source file
viewCVS header - viewCVS source

class TGeoPainter: public TVirtualGeoPainter

Inheritance Inherited Members Includes Libraries
Class Charts

Function Members (Methods)

Display options:
Show inherited
Show non-public
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)
voidCheckEdit()
virtual voidCheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const
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 = "")
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() const
virtual TObject*TObject::DrawClone(Option_t* option = "") const
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() const
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() const
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 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 = "") const
virtual voidTObject::SavePrimitive(ostream& 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 voidSetClippingShape(TGeoShape* shape)
virtual voidTObject::SetDrawOption(Option_t* option = "")
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetExplodedView(Int_t iopt = 0)
virtual voidSetGeoManager(TGeoManager* geom)
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_tfBombXbomb factor on X
Double_tfBombYbomb factor on Y
Double_tfBombZbomb factor on Z
Double_tfBombRbomb factor on radius (cyl or sph)
Double_tfCheckedBox[6]bounding box of checked node
Double_tfMat[9]view rotation matrix
Int_tfNsegmentsnumber of segments approximating circles
Int_tfNVisNodesnumber of visible nodes
Int_tfVisLeveldepth for drawing
Int_tfVisOptionglobal visualization option
Int_tfExplodedViewtype of exploding current view
Bool_tfVisLocklock for adding visible volumes
Bool_tfTopVisibleset top volume visible
Bool_tfPaintingOverlapslock overlaps painting
Bool_tfIsRaytracingraytracing flag
Bool_tfIsPaintingShapeflag for shape painting
TStringfVisBranchdrawn branch
TStringfVolInfovolume info
TGeoNode*fCheckedNodechecked node
TGeoOverlap*fOverlapcurrent overlap
TGeoHMatrix*fGlobalcurrent global matrix
TBuffer3D*fBufferbuffer used for painting
TGeoManager*fGeoManagergeometry to which applies
TGeoChecker*fCheckergeometry checker
TGeoShape*fClippingShapeclipping shape
TGeoVolume*fTopVolumetop drawn volume
TGeoVolume*fLastVolumelast drawn volume
TObjArray*fVisVolumeslist of visible volumes
Bool_tfIsEditableflag that geometry is editable

Class Description

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 *particle)
 Create a primary TGeoTrack.
void AddTrackPoint(Double_t *point, Double_t *box, Bool_t reset)
 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 CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz)
 Geometry checking method (see TGeoChecker).
void CheckOverlaps(const TGeoVolume *vol, Double_t ovlp, Option_t *option)
 Check overlaps for the top volume of the geometry, within a limit OVLP. 
void CheckPoint(Double_t x, Double_t y, Double_t z, 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()
 Define 100 colors with increasing light intensities for each basic color (1-7)
 Register these colors at indexes starting with 300.
Int_t GetColor(Int_t base, Float_t light)
 Get index of a base color with given light intensity (0,1)
TGeoVolume * GetDrawnVolume()
 Get currently drawn volume.
Int_t DistanceToPrimitiveVol(TGeoVolume *volume, 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 *volume, Int_t rlevel)
 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*/)
 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, Double_t dlong, Double_t dlat, Double_t dpsi)
 Move focus to current volume
TH2F * LegoPlot(Int_t ntheta, Double_t themin, Double_t themax, Int_t nphi, Double_t phimin, Double_t phimax, Double_t rmin, Double_t rmax, Option_t *option)
 Generate a lego plot fot the top volume, according to option.
void LocalToMasterVect(const Double_t *local, Double_t *master)
 Convert a local vector according view rotation matrix
void ModifiedPad(Bool_t update)
 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)
 Paint recursively a node and its content accordind to visualization options.
void PaintVolume(TGeoVolume *top, Option_t *option, TGeoMatrix* global)
 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()
 Print overlaps (see TGeoChecker::PrintOverlaps())
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, Double_t bomby, Double_t bombz, Double_t bombr)
--- Set cartesian and radial bomb factors for translations
void SetExplodedView(Int_t ibomb)
 set type of exploding view
void SetNsegments(Int_t nseg)
 Set number of segments to approximate circles
void SetVisLevel(Int_t level)
 Set default level down to which visualization is performed
void SetTopVisible(Bool_t vis)
 Set top geometry volume as visible.
void SetVisOption(Int_t option)
 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)
  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)
 Compute weight [kg] of the current volume.
TGeoPainter(TGeoManager *manager)
void GetBombFactors(Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr)
{bombx=fBombX; bomby=fBombY; bombz=fBombZ; bombr=fBombR;}
Int_t GetBombMode()
{return fExplodedView;}
TGeoNode * GetCheckedNode()
{return fCheckedNode;}
const char * GetDrawPath()
{return fVisBranch.Data();}
TGeoVolume * GetTopVolume()
{return fTopVolume;}
Int_t GetVisLevel()
{return fVisLevel;}
Int_t GetVisOption()
{return fVisOption;}
Int_t GetNsegments()
{return fNsegments;}
Double_t * GetViewBox()
{return &fCheckedBox[0];}
Bool_t IsExplodedView()
{return ((fExplodedView==kGeoVisDefault)?kFALSE:kTRUE);}
Bool_t IsRaytracing()
{return fIsRaytracing;}
Bool_t IsPaintingShape()
{return fIsPaintingShape;}
void Lock(Bool_t flag = kTRUE)
{fVisLock = flag;}
void SetClippingShape(TGeoShape *shape)
{fClippingShape = shape;}
void SetGeoManager(TGeoManager *geom)
{fGeoManager=geom;}
void SetRaytracing(Bool_t flag=kTRUE)
{fIsRaytracing = flag;}
void SetTopVolume(TGeoVolume *vol)
{fTopVolume = vol;}

Author: Andrei Gheata 05/03/02
Last update: root/geompainter:$Name: $:$Id: TGeoPainter.cxx,v 1.94 2006/10/20 08:38:43 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Class Hierarchy - Top of the page

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.