68 Error(
"ctor",
"No geometry loaded");
118 gSize3D.numPoints += numpoints;
135 static Int_t npoints = 0;
147 for (i=0; i<3; i++)
xmin[i]=
xmax[i]=0;
152 for (i=0; i<3; i++) {
153 box[i] += ninv*(point[i]-
box[i]);
154 if (point[i]<
xmin[i])
xmin[i]=point[i];
155 if (point[i]>
xmax[i])
xmax[i]=point[i];
165 memcpy(bombtr, tr, 3*
sizeof(
Double_t));
275 static Int_t color = 0;
278 for (
auto icol=1; icol<10; ++icol)
288 using IntMap_t = std::map<Int_t, Int_t>;
289 constexpr
Int_t ncolors = 100;
292 static IntMap_t colmap;
295 auto it = colmap.find(base);
296 if (it != colmap.end())
return (it->second + light*(ncolors-1));
302 if (it != colmap.end())
return (it->second + light*(ncolors-1));
322 colmap[color] = color_map_idx;
323 return (color_map_idx + light*(ncolors-1));
340 const Int_t big = 9999;
341 const Int_t inaxis = 7;
342 const Int_t maxdist = 5;
346 if (!view)
return big;
356 if (px < puxmin - inaxis)
return big;
357 if (py > puymin + inaxis)
return big;
358 if (px > puxmax + inaxis)
return big;
359 if (py < puymax - inaxis)
return big;
362 gPad->SetSelected(view);
372 gPad->SetSelected(crt);
384 gPad->SetSelected(crt);
395 if ((puxmax+inaxis-px) < 40) {
396 if ((py-puymax+inaxis) < 40) {
408 gPad->SetSelected(volume);
436 else gPad->SetSelected(vol);
454 gPad->SetSelected(vol);
474 while ((daughter=next())) {
489 else gPad->SetSelected(vol);
513 else gPad->SetSelected(vol);
537 view->
SetView(-206,126,75,irep);
550 vol->
SetLineColor(vol->GetMaterial()->GetDefaultColor());
582 while ((daughter=next())) {
588 if (vis && level<=rlevel) count++;
596 if (vis && last) count++;
598 if (last) next.
Skip();
613 if (maxnodes <= 0 && top) {
627 for (
Int_t level = 1;level<20;level++) {
635 if (nnodes > maxnodes) {
657 if ((
h =
gROOT->GetPluginManager()->FindHandler(
"TGeoManagerEditor"))) {
658 if (
h->LoadPlugin() == -1)
return;
671 if (!option[0])
gPad->GetCanvas()->GetCanvasImp()->ShowEditor();
701 if (autorange) tlo = 0.;
705 for (i=0; i<ncoeff; i++) {
708 if (i < ncoeff-1) formula +=
"+";
709 if (lambda < lambdamin &&
710 lambda > 0.) lambdamin = lambda;
712 if (autorange) thi = 10./lambdamin;
734 Error(
"DrawPolygon",
"No vertices defined");
744 g1->
SetTitle(
Form(
"Polygon with %d vertices (outscribed %d)",nvert, nconv));
760 g2 =
new TGraph(nconv+1, xc,yc);
770 gROOT->MakeDefCanvas();
773 if (g2) g2->
Draw(
"LP");
799 gROOT->MakeDefCanvas();
812 if (has_pad)
gPad->Update();
824 gPad->GetViewer3D(option);
841 gROOT->MakeDefCanvas();
854 if (has_pad)
gPad->Update();
860 gPad->GetViewer3D(option);
871 if (!overlap)
return;
883 gROOT->MakeDefCanvas();
891 gPad->GetViewer3D(option);
900 if (has_pad)
gPad->Update();
926 gROOT->MakeDefCanvas();
941 if (has_pad)
gPad->Update();
956 if (!
gPad->GetView())
return;
997 while ((obj=next())) {
998 if (strcmp(obj->
ClassName(),
"TGeoTrack"))
continue;
1001 track->PaintCollect(tmin, start);
1004 if (!ntracks)
return;
1007 while ((obj=next())) {
1008 if (strcmp(obj->
ClassName(),
"TGeoTrack"))
continue;
1010 if (!track)
continue;
1011 track->PaintCollect(tmax, end);
1093 if (!
gPad)
return info;
1096 info =
"wrong overlapping flag";
1101 else ovtype =
"OVERLAP";
1142 printf(
"Woops!!!\n");
1151 Int_t nframes = nfr;
1154 if (nvols<1500) nframes=10;
1155 if (nvols<1000) nframes=20;
1156 if (nvols<200) nframes = 50;
1157 if (nvols<100) nframes = 100;
1169 return fChecker->
LegoPlot(ntheta, themin, themax, nphi, phimin, phimax, rmin, rmax, option);
1176 for (
Int_t i=0; i<3; i++)
1177 master[i] = -local[0]*
fMat[i]-local[1]*
fMat[i+3]-local[2]*
fMat[i+6];
1204 if (
gPad) is_padviewer = (!strcmp(
gPad->GetViewer3D()->ClassName(),
"TViewer3DPad"))?
kTRUE:
kFALSE;
1221 for (inode=0; inode<nnodes; inode++) {
1241 if (!overlap)
return;
1242 Int_t color, transparency;
1261 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1274 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1309 Int_t transparency = 0;
1312 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1327 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1367 Int_t line_color=0, line_width=0, line_style=0;
1368 while ((daughter=next())) {
1374 drawDaughters =
kTRUE;
1384 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1419 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1458 return addDaughters;
1476 viewer->
AddObject(buffer, &addDaughters);
1493 return addDaughters;
1514 Int_t i, col, wid, sty;
1544 for (i=1;i<=level; i++) {
1608 if (!
gPad ||
gPad->IsBatch())
return;
1649 for (
Int_t i=0; i<3; i++) cov[i] = 0.5*(min[i]+max[i]);
1651 for (
Int_t i=0; i<3; i++) cop[i] = cov[i] - dir[i]*dview;
1658 Int_t pxmin,pxmax, pymin,pymax;
1659 pxmin =
gPad->UtoAbsPixel(0);
1660 pxmax =
gPad->UtoAbsPixel(1);
1661 pymin =
gPad->VtoAbsPixel(1);
1662 pymax =
gPad->VtoAbsPixel(0);
1674 tosource[2] = -dir[2];
1678 Int_t base_color, color;
1684 Int_t ntotal = pxmax*pymax;
1688 for (px=pxmin; px<pxmax; px++) {
1689 for (py=pymin; py<pymax; py++) {
1695 xloc =
gPad->AbsPixeltoX(pxmin+pxmax-px);
1697 yloc =
gPad->AbsPixeltoY(pymin+pymax-py);
1699 modloc =
TMath::Sqrt(xloc*xloc+yloc*yloc+dproj*dproj);
1700 local[0] = xloc/modloc;
1701 local[1] = yloc/modloc;
1702 local[2] = dproj/modloc;
1725 if (stemin>1E10)
break;
1758 if (step>1E10)
break;
1763 if (steptot>stemax) {
1777 if (!nextnode)
continue;
1786 if (!done)
continue;
1791 for (
Int_t i=0; i<3; ++i) local[i] += 1.
E-8*dir[i];
1793 for (
Int_t i=0; i<3; ++i) local[i] += step*dir[i];
1798 if (!norm)
continue;
1800 calf = norm[0]*tosource[0]+norm[1]*tosource[1]+norm[2]*tosource[2];
1802 color =
GetColor(base_color, light);
1843 if ((ibomb<0) || (ibomb>3)) {
1844 Warning(
"SetExplodedView",
"exploded view can be 0-3");
1872 Warning(
"SetNsegments",
"number of segments should be > 2");
1911 if (
gPad->GetView()) {
1935 Warning(
"SetVisOption",
"wrong visualization option");
1979 const Int_t inaxis = 7;
1980 const Int_t maxdist = 5;
1981 const Int_t big = 9999;
1985 if (!(numpoints && view))
return dist;
1994 if (px < puxmin - inaxis)
return big;
1995 if (py > puymin + inaxis)
return big;
1996 if (px > puxmax + inaxis)
return big;
1997 if (py < puymax - inaxis)
return big;
1998 if ((puxmax+inaxis-px) < 40) {
2011 for (
Int_t i=0; i<numpoints; i++) {
2016 x1 =
gPad->XtoAbsPixel(xndc[0]);
2017 y1 =
gPad->YtoAbsPixel(xndc[1]);
2018 dpoint2 = (px-
x1)*(px-
x1) + (py-y1)*(py-y1);
2056 memcpy(bombtr, tr, 3*
sizeof(
Double_t));
virtual const char * GetName() const
Returns name of object.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
void TestOverlaps(const char *path)
Geometry overlap checker based on sampling.
double dist(Rotation3D const &r1, Rotation3D const &r2)
virtual void Test(Int_t npoints, Option_t *option)
Check time of finding "Where am I" for n points.
virtual void SetCheckedNode(TGeoNode *node)
Select a node to be checked for overlaps.
virtual TVirtualGeoTrack * AddTrack(Int_t id, Int_t pdgcode, TObject *part)
Create a primary TGeoTrack.
void DefineColors() const
Define 100 colors with increasing light intensities for each basic color (1-7) Register these colors ...
virtual Int_t GetColor(Int_t base, Float_t light) const
Get index of a base color with given light intensity (0,1)
TGeoNode * InitTrack(const Double_t *point, const Double_t *dir)
Initialize current point and current direction vector (normalized) in MARS.
void ResetAttBit(UInt_t f)
TGeoShape * fClippingShape
virtual 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 DoRestoreState()
Restore a backed-up state without affecting the cache stack.
void GetPath(TString &path) const
Returns the path for the current node.
Bool_t TestAttBit(UInt_t f) const
The manager class for any TGeo geometry.
virtual Bool_t PaintComposite(Option_t *option="") const
Paint this composite shape into the current 3D viewer Returns bool flag indicating if the caller shou...
virtual void Raytrace(Option_t *option="")
Raytrace current drawn geometry.
void Start(Bool_t reset=kTRUE)
Start the stopwatch.
void SetCurrentDirection(Double_t *dir)
Bool_t IsDrawingExtra() const
void SetUserPlugin(TGeoIteratorPlugin *plugin)
Set a plugin.
virtual void RandomPoints(const TGeoVolume *vol, Int_t npoints, Option_t *option="")
Draw random points in the bounding box of a volume.
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)=0
virtual void CheckBoundaryReference(Int_t icheck=-1)
Check the boundary errors reference file created by CheckBoundaryErrors method.
virtual void WCtoNDC(const Float_t *pw, Float_t *pn)=0
virtual void Clear(Option_t *option="")
Remove all objects from the array.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)=0
Computes distance from point (px,py) to the object.
virtual void DrawPolygon(const TGeoPolygon *poly)
Draw a polygon in 3D.
Geometrical transformation package.
virtual void Paint(Option_t *option="")
Paint current geometry according to option.
Visualization and tracking attributes for volumes and nodes.
virtual void ExecuteVolumeEvent(TGeoVolume *volume, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given volume.
virtual 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 CdUp()
Go one level up in geometry.
virtual void ProcessNode()=0
virtual void DrawOverlap(void *ovlp, Option_t *option="")
Draw an overlap.
virtual Double_t GetLatitude()=0
virtual void DrawPath(const char *path, Option_t *option="")
Draw all volumes for a given path.
virtual 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 FindNe...
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
virtual void SetAutoRange(Bool_t autorange=kTRUE)=0
virtual void PaintOverlap(void *ovlp, Option_t *option="")
Paint an overlap.
virtual 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.
virtual void ClearVisibleVolumes()
Clear the list of visible volumes reset the kVisOnScreen bit for volumes previously in the list...
TGeoElementRN * GetElement() const
virtual void AddTrackPoint(Double_t *point, Double_t *box, Bool_t reset=kFALSE)
Average center of view of all painted tracklets and compute view box.
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 Skip()
Stop iterating the current branch.
virtual void SetTopVisible(Bool_t vis=kTRUE)
Set top geometry volume as visible.
Bool_t IsExtrusion() const
void SetSelectedNode(TGeoNode *node)
void SetTopVolume(TGeoVolume *vol)
Set the top volume and corresponding node as starting point of the geometry.
An arbitrary polygon defined by vertices.
Matrix class used for computing global transformations Should NOT be used for node definition...
void MasterToLocal(const Double_t *master, Double_t *local) const
TGeoVolume * GetFirstVolume() const
void ToLower()
Change string to lower-case.
Bool_t IsNodeSelectable() const
virtual void Draw(Option_t *option="")
Draw this function with its current attributes.
virtual void SetTitle(const char *title="")
Set graph title.
void GetConvexVertices(Double_t *x, Double_t *y) const
Fill list of vertices of the convex outscribed polygon into provided arrays.
void GetVertices(Double_t *x, Double_t *y) const
Fill list of vertices into provided arrays.
TGeoPainter(TGeoManager *manager)
Default constructor.
virtual void DrawBatemanSol(TGeoBatemanSol *sol, Option_t *option="")
Draw the time evolution of a radionuclide.
virtual void SetMinimum(Double_t minimum=-1111)
Set the minimum value along Y for this function In case the function is already drawn, set also the minimum in the helper histogram.
virtual void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option)
Test for shape navigation methods.
virtual void Modify()
Change current line attributes if necessary.
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
void GetCoeff(Int_t i, Double_t &cn, Double_t &lambda) const
virtual void GetRGB(Float_t &r, Float_t &g, Float_t &b) const
Bool_t IsVisContainers() const
virtual void SetPerspective()=0
virtual void UnbombTranslation(const Double_t *tr, Double_t *bombtr)
Get the new 'unbombed' translation vector according current exploded view mode.
virtual void Draw(Option_t *chopt="")
Draw this graph with its current attributes.
Int_t GetVisLevel() const
Returns current depth to which geometry is drawn.
virtual Width_t GetLineWidth() const
Return the line width.
TGeoHMatrix * GetFirstMatrix() const
virtual 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())
virtual void AddSize3D(Int_t numpoints, Int_t numsegs, Int_t numpolys)
Add numpoints, numsegs, numpolys to the global 3D size.
Bool_t IsRaytracing() const
Check if the painter is currently ray-tracing the content of this volume.
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
virtual Style_t GetMarkerStyle() const
Return the marker style.
Int_t PushPath(Int_t startlevel=0)
Int_t GetNdaughters() const
void MasterToLocalVect(const Double_t *master, Double_t *local) const
void SetVisRaytrace(Bool_t flag=kTRUE)
void GetRange(Double_t &tmin, Double_t &tmax) const
virtual Style_t GetLineStyle() const
Return the line style.
virtual Double_t GetPsi()=0
virtual Bool_t Contains(const Double_t *point) const =0
virtual const char * ClassName() const
Returns name of class to which the object belongs.
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="")
Text progress bar.
void Stop()
Stop the stopwatch.
virtual 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.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
virtual void CheckPoint(Double_t x=0, Double_t y=0, Double_t z=0, Option_t *option="")
Check current point in the geometry.
virtual void PaintNode(TGeoNode *node, Option_t *option="", TGeoMatrix *global=0)
Paint recursively a node and its content according to visualization options.
void CheckOverlaps(const TGeoVolume *vol, Double_t ovlp=0.1, Option_t *option="")
Check illegal overlaps for volume VOL within a limit OVLP.
virtual void DrawVolume(TGeoVolume *vol, Option_t *option="")
Draw method.
void SetCurrentPoint(Double_t *point)
virtual void GetViewAngles(Double_t &longitude, Double_t &latitude, Double_t &psi)
Get the current view angles.
TGeoHMatrix * GetMatrix(Int_t level=-1) const
Return global matrix for node at LEVEL.
void SetMatrixReflection(Bool_t flag=kTRUE)
Double_t Concentration(Double_t time) const
Find concentration of the element at a given time.
virtual void SetNmeshPoints(Int_t npoints)
Set number of points to be generated on the shape outline when checking for overlaps.
Int_t CountNodes(TGeoVolume *vol, Int_t level) const
Count number of visible nodes down to a given level.
virtual Bool_t IsExplodedView() const
Bool_t IsOnScreen() const
check if this node is drawn. Assumes that this node is current
constexpr Double_t DegToRad()
virtual void RandomRays(Int_t nrays, Double_t startx, Double_t starty, Double_t startz, const char *target_vol=0, Bool_t check_norm=kFALSE)
Shoot nrays in the current drawn geometry.
Int_t GetMaxVisNodes() const
virtual Double_t GetDview() const =0
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
const TGeoMatrix * GetCurrentMatrix() const
Returns global matrix for current node.
virtual const char * GetVolumeInfo(const TGeoVolume *volume, Int_t px, Int_t py) const
Get some info about the current selected volume.
void SetTopName(const char *name)
Set the top name for path.
void Test(Int_t npoints, Option_t *option)
Check time of finding "Where am I" for n points.
virtual void DrawCurrentPoint(Int_t color)
Draw current point in the same view.
virtual Bool_t IsVisible() const
virtual Size_t GetMarkerSize() const
Return the marker size.
void LocalToMaster(const Double_t *local, Double_t *master) const
Abstract 3D shapes viewer.
void RandomRays(Int_t nrays, Double_t startx, Double_t starty, Double_t startz, const char *target_vol=0, Bool_t check_norm=kFALSE)
Randomly shoot nrays from point (startx,starty,startz) and plot intersections with surfaces for curre...
void SetOutside(Bool_t flag=kTRUE)
Int_t GetVisOption() const
Returns current depth to which geometry is drawn.
Base class for user-defined tracks attached to a geometry.
void SetNmeshPoints(Int_t npoints=1000)
Set number of points to be generated on the shape outline when checking for overlaps.
static void SetTransform(TGeoMatrix *matrix)
Set current transformation matrix that applies to shape.
TGeoNode * GetCurrentNode() const
virtual void TestOverlaps(const char *path)
Geometry overlap checker based on sampling.
virtual void SetPoints(Double_t *points) const =0
Class implementing all draw interfaces for a generic 3D viewer using TBuffer3D mechanism.
virtual void SetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t &irep)=0
virtual void GrabFocus(Int_t nfr=0, Double_t dlong=0, Double_t dlat=0, Double_t dpsi=0)
Move focus to current volume.
static void RGB2HLS(Float_t r, Float_t g, Float_t b, Float_t &h, Float_t &l, Float_t &s)
Static method to compute HLS from RGB.
Physical nodes are the actual 'touchable' objects in the geometry, representing a path of positioned ...
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Class handling Boolean composition of shapes.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Char_t GetTransparency() const
static void HLS2RGB(Float_t h, Float_t l, Float_t s, Float_t &r, Float_t &g, Float_t &b)
Static method to compute RGB from HLS.
virtual Double_t Weight(Double_t precision, Option_t *option="v")
Compute weight [kg] of the current volume.
Int_t GetNsegments() const
Get number of segments approximating circles.
virtual void DrawOnly(Option_t *option="")
Draw only one volume.
Bool_t TestVoxels(TGeoVolume *vol, Int_t npoints=1000000)
Returns optimal voxelization type for volume vol.
Base abstract class for all shapes.
virtual void PaintVolume(TGeoVolume *vol, Option_t *option="", TGeoMatrix *global=0)
Paint recursively a node and its content according to visualization options.
TGeoChecker * GetChecker()
Create/return geometry checker.
virtual void EditGeometry(Option_t *option="")
Start the geometry editor.
void Clear(Option_t *option="")
clear the data for this matrix
virtual void DefaultColors()
Set default volume colors according to tracking media.
TGeoNode * Step(Bool_t is_geom=kTRUE, Bool_t cross=kTRUE)
Make a rectilinear step of length fStep from current point (fPoint) on current direction (fDirection)...
virtual TGeoVolume * GetDrawnVolume() const
Get currently drawn volume.
virtual void ModifiedPad(Bool_t update=kFALSE) const
Check if a pad and view are present and send signal "Modified" to pad.
TGeoNode * FindNextBoundaryAndStep(Double_t stepmax=TGeoShape::Big(), Bool_t compsafe=kFALSE)
Compute distance to next boundary within STEPMAX.
virtual void Draw(Option_t *option="")
Draw method.
virtual TGeoNode * SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char *g3path)
Shoot npoints randomly in a box of 1E-5 around current point.
2-D histogram with a float per channel (see TH1 documentation)}
void SetStep(Double_t step)
virtual 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 FindNe...
Double_t * FindNormalFast()
Computes fast normal to next crossed boundary, assuming that the current point is close enough to the...
virtual Double_t GetDproj() const =0
virtual Bool_t IsComposite() const
void RandomPoints(TGeoVolume *vol, Int_t npoints, Option_t *option)
Draw random points in the bounding box of a volume.
static void ShowEditor()
Show the global pad editor. Static method.
void SetTransparency(Char_t transparency=0)
virtual const TBuffer3D & GetBuffer3D(Int_t reqSections, Bool_t localFrame) const
Stub implementation to avoid forcing implementation at this stage.
virtual void CheckBoundaryReference(Int_t icheck=-1)
Check the boundary errors reference file created by CheckBoundaryErrors method.
static void update(gsl_integration_workspace *workspace, double a1, double b1, double area1, double error1, double a2, double b2, double area2, double error2)
TGeoVolume * GetCurrentVolume() const
virtual Int_t AddObject(const TBuffer3D &buffer, Bool_t *addChildren=0)=0
Int_t GetEntriesFast() const
Bool_t IsVisDaughters() const
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
char * Form(const char *fmt,...)
TGeoHMatrix * GetCurrentMatrix() const
const Double_t * GetCurrentDirection() const
virtual void DefaultAngles()
Set default angles for the current view.
Bool_t SetRawSizes(UInt_t reqPnts, UInt_t reqPntsCapacity, UInt_t reqSegs, UInt_t reqSegsCapacity, UInt_t reqPols, UInt_t reqPolsCapacity)
Set kRaw tessellation section of buffer with supplied sizes.
Generic 3D primitive description class.
virtual void SetVisLevel(Int_t level=3)
Set default level down to which visualization is performed.
virtual Bool_t TestVoxels(TGeoVolume *vol)
Check voxels efficiency per volume.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
TGeoNode * GetTopNode() const
virtual void SetExplodedView(Int_t iopt=0)
Set type of exploding view.
void SetIterator(const TGeoIterator *iter)
virtual 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.
virtual void Draw(Option_t *option="")
Draws 3-D polymarker with its current attributes.
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const =0
virtual Double_t GetLongitude()=0
virtual void LocalToMaster(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
virtual void SetVisOption(Int_t option=0)
Set drawing mode :
Geometry checking package.
virtual Color_t GetLineColor() const
Return the line color.
virtual void SetMaximum(Double_t maximum=-1111)
Set the maximum value along Y for this function In case the function is already drawn, set also the maximum in the helper histogram.
virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const =0
Bool_t PaintShape(const TGeoShape &shape, Option_t *option) const
Paint the supplied shape into the current 3D viewer.
virtual void SetTitle(const char *title="")
Set function title if title has the form "fffffff;xxxx;yyyy", it is assumed that the function title i...
virtual Int_t SetNextPoint(Double_t x, Double_t y, Double_t z)
Set point following LastPoint to x, y, z.
virtual Bool_t cd(const char *path="")
Browse the tree of nodes starting from fTopNode according to pathname.
void LocalToMasterVect(const Double_t *local, Double_t *master) const
Convert a local vector according view rotation matrix.
void CheckEdit()
Check if Ged library is loaded and load geometry editor classe.
TGeoHMatrix * GetSecondMatrix() const
virtual void MoveFocus(Double_t *center, Double_t dx, Double_t dy, Double_t dz, Int_t nsteps=10, Double_t dlong=0, Double_t dlat=0, Double_t dpsi=0)=0
Bool_t IsVolAttributes() const
virtual void GetWindow(Double_t &u0, Double_t &v0, Double_t &du, Double_t &dv) const =0
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="")
Print current operation progress.
virtual Bool_t PreferLocalFrame() const =0
TObject * UncheckedAt(Int_t i) const
TGeoVolume * GetSecondVolume() const
static const double x1[5]
void PaintPhysicalNode(TGeoPhysicalNode *node, Option_t *option="")
Paints a physical node associated with a path.
virtual void PrintOverlaps() const
Print overlaps (see TGeoChecker::PrintOverlaps())
void DoBackupState()
Backup the current state without affecting the cache stack.
R__EXTERN TGeoManager * gGeoManager
virtual Int_t CountVisibleNodes()
Count total number of visible nodes.
Bool_t IsVisibleFull() const
TGeoVolume * GetVolume(Int_t level=-1) const
Return volume associated with node at LEVEL in the branch.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual ~TGeoPainter()
Default destructor.
void SetPaintVolume(TGeoVolume *vol)
void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option)
Test for shape navigation methods.
void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const
Shoot nrays with random directions from starting point (startx, starty, startz) in the reference fram...
void CdTop()
Make top level node the current node.
void CheckPoint(Double_t x=0, Double_t y=0, Double_t z=0, Option_t *option="")
Draw point (x,y,z) over the picture of the daughters of the volume containing this point...
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
static constexpr double s
TObjArray * GetListOfPhysicalNodes()
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
The color creation and management class.
TGeoIteratorPlugin * fPlugin
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.
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
Bool_t IsReflection() const
Bool_t IsVisLeaves() const
virtual void SetLineColor(Color_t lcolor)
Set the line color.
static TView * CreateView(Int_t system=1, const Double_t *rmin=0, const Double_t *rmax=0)
Create a concrete default 3-d view via the plug-in manager.
virtual void ExecuteManagerEvent(TGeoManager *geom, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given volume.
static TGeoMatrix * GetTransform()
Returns current transformation matrix that applies to shape.
void PrintOverlaps() const
Print the current list of overlaps held by the manager class.
Mother of all ROOT objects.
Double_t Weight(Double_t precision=0.01, Option_t *option="v")
Estimate weight of top level volume with a precision SIGMA(W)/W better than PRECISION.
Base class describing geometry overlaps.
you should not use this method at all Int_t Int_t z
TGeoNode * SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char *g3path)
shoot npoints randomly in a box of 1E-5 around current point.
void CheckGeometryFull(Bool_t checkoverlaps=kTRUE, Bool_t checkcrossings=kTRUE, Int_t nrays=10000, const Double_t *vertex=NULL)
Geometry checking.
Int_t GetBombMode() const
Abstract class for geometry painters.
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
static void SetPainter(const TVirtualGeoPainter *painter)
Static function to set an alternative histogram painter.
Class for user-defined tracks attached to a geometry.
Bool_t IsVisDaughters() const
virtual void DrawShape(TGeoShape *shape, Option_t *option="")
Draw a shape.
Short_t Max(Short_t a, Short_t b)
const Double_t * GetCurrentPoint() const
virtual void GetRange(Float_t *min, Float_t *max)=0
A Graph is a graphics object made of two arrays X and Y with npoints each.
TObjArray * GetListOfVolumes() const
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
virtual void SetViewChanged(Bool_t flag=kTRUE)=0
Int_t GetNdaughters() const
virtual void ExecuteShapeEvent(TGeoShape *shape, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given shape.
TGeoNode * GetMother(Int_t up=1) const
TPolyMarker3D * GetPolyMarker() const
static void InitializeColors()
Initialize colors used by the TCanvas based graphics (via TColor objects).
virtual Color_t GetMarkerColor() const
Return the marker color.
def normal(shape, name=None)
virtual void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const
Geometry checking method (see TGeoChecker).
virtual void BombTranslation(const Double_t *tr, Double_t *bombtr)
Get the new 'bombed' translation vector according current exploded view mode.
Double_t Sqrt(Double_t x)
TGeoVolume * GetTopVolume() const
TGeoManager * fGeoManager
TGeoShape * GetShape() const
Bool_t IsVisBranch() const
virtual void SetNsegments(Int_t nseg=20)
Set number of segments to approximate circles.
static Int_t CreateGradientColorTable(UInt_t Number, Double_t *Stops, Double_t *Red, Double_t *Green, Double_t *Blue, UInt_t NColors, Float_t alpha=1.)
Static function creating a color table with several connected linear gradients.
TGeoVolume * GetVolume() const
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
Double_t GetOverlap() const
virtual Bool_t IsPerspective() const =0
const char * Data() const
virtual Bool_t IsAssembly() const
Returns true if the volume is an assembly or a scaled assembly.
static constexpr double g