/usr/include/root/TVirtualGeoPainter.h is in libroot-geom-dev 5.34.30-0ubuntu8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | // @(#)root/geom:$Id$
// Author: Andrei Gheata 11/01/02
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TVirtualGeoPainter
#define ROOT_TVirtualGeoPainter
//////////////////////////////////////////////////////////////////////////
// //
// TVirtualGeoPainter //
// //
// Abstract base class for geometry painters //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TObject
#include "TObject.h"
#endif
class TGeoVolume;
class TGeoNode;
class TGeoShape;
class TGeoMatrix;
class TGeoHMatrix;
class TGeoManager;
class TVirtualGeoTrack;
class TParticle;
class TObjArray;
class TH2F;
class TStopwatch;
class TGeoBatemanSol;
class TGeoIteratorPlugin;
class TGeoPolygon;
class TVirtualGeoPainter : public TObject {
protected:
static TVirtualGeoPainter *fgGeoPainter; //Pointer to class painter
public:
enum EGeoVisLevel {
kGeoVisLevel = 0
};
enum EGeoVisOption {
kGeoVisDefault = 0, // default visualization - everything visible 3 levels down
kGeoVisLeaves = 1, // only last leaves are visible
kGeoVisOnly = 2, // only current volume is drawn
kGeoVisBranch = 3, // only a given branch is drawn
kGeoVisChanged = 4 // visibility changed
};
enum EGeoBombOption {
kGeoNoBomb = 0, // default - no bomb
kGeoBombXYZ = 1, // explode view in cartesian coordinates
kGeoBombCyl = 2, // explode view in cylindrical coordinates (R, Z)
kGeoBombSph = 3 // explode view in spherical coordinates (R)
};
public:
TVirtualGeoPainter(TGeoManager *manager);
virtual ~TVirtualGeoPainter();
virtual void AddSize3D(Int_t numpoints, Int_t numsegs, Int_t numpolys) = 0;
virtual TVirtualGeoTrack *AddTrack(Int_t id, Int_t pdgcode, TObject *particle) = 0;
virtual void AddTrackPoint(Double_t *point, Double_t *box, Bool_t reset=kFALSE) = 0;
virtual void BombTranslation(const Double_t *tr, Double_t *bombtr) = 0;
virtual void CheckPoint(Double_t x=0, Double_t y=0, Double_t z=0, Option_t *option="") = 0;
virtual void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option) = 0;
virtual void CheckBoundaryErrors(Int_t ntracks=1000000, Double_t radius=-1.) = 0;
virtual void CheckBoundaryReference(Int_t icheck=-1) = 0;
virtual void CheckGeometryFull(Bool_t checkoverlaps=kTRUE, Bool_t checkcrossings=kTRUE, Int_t nrays=10000, const Double_t *vertex=NULL) = 0;
virtual void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const = 0;
virtual void CheckOverlaps(const TGeoVolume *vol, Double_t ovlp=0.1, Option_t *option="") const = 0;
virtual Int_t CountVisibleNodes() = 0;
virtual void DefaultAngles() = 0;
virtual void DefaultColors() = 0;
virtual Int_t DistanceToPrimitiveVol(TGeoVolume *vol, Int_t px, Int_t py) = 0;
virtual void Draw(Option_t *option="") = 0;
virtual void DrawBatemanSol(TGeoBatemanSol *sol, Option_t *option="") = 0;
virtual void DrawShape(TGeoShape *shape, Option_t *option="") = 0;
virtual void DrawOnly(Option_t *option="") = 0;
virtual void DrawOverlap(void *ovlp, Option_t *option="") = 0;
virtual void DrawCurrentPoint(Int_t color) = 0;
virtual void DrawPanel() = 0;
virtual void DrawPath(const char *path, Option_t *option="") = 0;
virtual void DrawPolygon(const TGeoPolygon *poly) = 0;
virtual void DrawVolume(TGeoVolume *vol, Option_t *option="") = 0;
virtual void EditGeometry(Option_t *option="") = 0;
virtual void EstimateCameraMove(Double_t /*tmin*/, Double_t /*tmax*/, Double_t *, Double_t * ) {;}
virtual void ExecuteShapeEvent(TGeoShape *shape, Int_t event, Int_t px, Int_t py) = 0;
virtual void ExecuteManagerEvent(TGeoManager *geom, Int_t event, Int_t px, Int_t py) = 0;
virtual void ExecuteVolumeEvent(TGeoVolume *volume, Int_t event, Int_t px, Int_t py) = 0;
virtual Int_t GetColor(Int_t base, Float_t light) const = 0;
virtual Int_t GetNsegments() const = 0;
virtual void GetBombFactors(Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr) const = 0;
virtual Int_t GetBombMode() const = 0;
virtual const char *GetDrawPath() const = 0;
virtual TGeoVolume *GetDrawnVolume() const = 0;
virtual TGeoVolume *GetTopVolume() const = 0;
virtual void GetViewAngles(Double_t &/*longitude*/, Double_t &/*latitude*/, Double_t &/*psi*/) {;}
virtual Int_t GetVisLevel() const = 0;
virtual Int_t GetVisOption() const = 0;
virtual const char*GetVolumeInfo(const TGeoVolume *volume, Int_t px, Int_t py) const = 0;
virtual void GrabFocus(Int_t nfr=0, Double_t dlong=0, Double_t dlat=0, Double_t dpsi=0) =0;
virtual Double_t *GetViewBox() = 0;
virtual Bool_t IsPaintingShape() const = 0;
virtual Bool_t IsRaytracing() const = 0;
virtual Bool_t IsExplodedView() const = 0;
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="") = 0;
virtual void ModifiedPad(Bool_t update=kFALSE) const = 0;
virtual void OpProgress(const char *opname, Long64_t current, Long64_t size, TStopwatch *watch=0, Bool_t last=kFALSE, Bool_t refresh=kFALSE, const char *msg="") = 0;
virtual void Paint(Option_t *option="") = 0;
virtual void PaintNode(TGeoNode *node, Option_t *option="", TGeoMatrix* global=0) = 0;
virtual void PaintShape(TGeoShape *shape, Option_t *option="") = 0;
virtual void PaintOverlap(void *ovlp, Option_t *option="") = 0;
virtual void PrintOverlaps() const = 0;
virtual void PaintVolume(TGeoVolume *vol, Option_t *option="", TGeoMatrix* global=0) = 0;
virtual void RandomPoints(const TGeoVolume *vol, Int_t npoints, Option_t *option="") = 0;
virtual void RandomRays(Int_t nrays, Double_t startx, Double_t starty, Double_t startz, const char *target_vol, Bool_t check_norm) = 0;
virtual void Raytrace(Option_t *option="") = 0;
virtual TGeoNode *SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char* g3path) = 0;
virtual void SetBombFactors(Double_t bombx=1.3, Double_t bomby=1.3, Double_t bombz=1.3,
Double_t bombr=1.3) = 0;
virtual void SetClippingShape(TGeoShape *shape) = 0;
virtual void SetExplodedView(Int_t iopt=0) = 0;
virtual void SetGeoManager(TGeoManager *geom) = 0;
virtual void SetIteratorPlugin(TGeoIteratorPlugin *plugin) = 0;
virtual void SetCheckedNode(TGeoNode *node) = 0;
virtual void SetNsegments(Int_t nseg=20) = 0;
virtual void SetNmeshPoints(Int_t npoints) = 0;
virtual void SetRaytracing(Bool_t flag=kTRUE) = 0;
static TVirtualGeoPainter *GeoPainter();
static void SetPainter(const TVirtualGeoPainter *painter);
virtual void SetTopVisible(Bool_t vis=kTRUE) = 0;
virtual void SetTopVolume(TGeoVolume *vol) = 0;
virtual void SetVisLevel(Int_t level=3) = 0;
virtual void SetVisOption(Int_t option=0) = 0;
virtual Int_t ShapeDistancetoPrimitive(const TGeoShape *shape, Int_t numpoints, Int_t px, Int_t py) const = 0;
virtual void Test(Int_t npoints, Option_t *option) = 0;
virtual void TestOverlaps(const char *path) = 0;
virtual Bool_t TestVoxels(TGeoVolume *vol) = 0;
virtual void UnbombTranslation(const Double_t *tr, Double_t *bombtr) = 0;
virtual Double_t Weight(Double_t precision, Option_t *option="v") = 0;
ClassDef(TVirtualGeoPainter,0) //Abstract interface for geometry painters
};
#endif
|