99 fRefObject(m3d.fRefObject)
142 const Int_t numPoints = 8;
147 if (!view)
return dist;
148 const Int_t seg1[12] = {0,1,2,3,4,5,6,7,0,1,2,3};
149 const Int_t seg2[12] = {1,2,3,0,5,6,7,4,4,5,6,7};
153 Int_t i, i1, i2, dsegment;
156 for (i = 0; i < 12; i++) {
167 if (dsegment <
dist)
dist = dsegment;
185 if (
gPad->GetView())
gPad->GetView()->ExecuteRotateView(event, px, py);
213 if (!viewer3D)
return;
223 if (!buffer.
SetRawSizes(nbPnts, 3*nbPnts, nbSegs, 3*nbSegs, nbPols, 6*nbPols)) {
238 dlocal[0] = buffer.
fPnts[3*j];
239 dlocal[1] = buffer.
fPnts[3*j+1];
240 dlocal[2] = buffer.
fPnts[3*j+2];
242 buffer.
fPnts[3*j] = dmaster[0];
243 buffer.
fPnts[3*j+1] = dmaster[1];
244 buffer.
fPnts[3*j+2] = dmaster[2];
296 TAxis *xaxis =
h->GetXaxis();
297 TAxis *yaxis =
h->GetYaxis();
298 TAxis *zaxis =
h->GetZaxis();
300 wmin =
h->GetMinimum();
301 wmax =
h->GetMaximum();
306 gPad->Range(-1,-1,1,1);
323 m3.SetDirection(0,0);
324 m3.SetLineColor(
h->GetMarkerColor());
326 for (ix=xaxis->
GetFirst();ix<=xaxis->GetLast();ix++) {
327 xmin =
h->GetXaxis()->GetBinLowEdge(ix);
328 xmax =
xmin +
h->GetXaxis()->GetBinWidth(ix);
329 for (iy=yaxis->
GetFirst();iy<=yaxis->GetLast();iy++) {
330 ymin =
h->GetYaxis()->GetBinLowEdge(iy);
331 ymax =
ymin +
h->GetYaxis()->GetBinWidth(iy);
332 for (iz=zaxis->
GetFirst();iz<=zaxis->GetLast();iz++) {
333 zmin =
h->GetZaxis()->GetBinLowEdge(iz);
334 zmax = zmin +
h->GetZaxis()->GetBinWidth(iz);
335 bin =
h->GetBin(ix,iy,iz);
336 w =
h->GetBinContent(bin);
337 if (w < wmin)
continue;
338 if (w > wmax) w = wmax;
340 if (scale == 0)
continue;
358 out<<
" TMarker3DBox *";
360 out<<
"marker3DBox = new TMarker3DBox("<<
fX<<
","
367 <<
fPhi<<
");"<<std::endl;
372 out<<
" marker3DBox->Draw();"<<std::endl;
430 m[0] = costh * cosfi;
m[1] = -sinfi;
m[2] = sinth*cosfi;
431 m[3] = costh * sinfi;
m[4] = cosfi;
m[5] = sinth*sinfi;
432 m[6] = -sinth;
m[7] = 0;
m[8] = costh;
433 for (
Int_t i = 0; i < 8; i++) {
448void TMarker3DBox::Streamer(
TBuffer &R__b)
458 TObject::Streamer(R__b);
459 TAttLine::Streamer(R__b);
460 TAttFill::Streamer(R__b);
461 TAtt3D::Streamer(R__b);
static const double x2[5]
static const double x1[5]
R__EXTERN TGeometry * gGeometry
Binding & operator=(OUT(*fun)(void))
Use this attribute class when an object should have 3D capabilities.
Fill Area Attributes class.
virtual void Modify()
Change current fill area attributes if necessary.
virtual void SaveFillAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001)
Save fill attributes as C++ statement(s) on output stream out.
virtual Color_t GetLineColor() const
Return the line color.
virtual void Modify()
Change current line attributes if necessary.
Int_t DistancetoLine(Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
Compute distance from point px,py to a line.
virtual void SaveLineAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
Save line attributes as C++ statement(s) on output stream out.
Class to manage histogram axis.
virtual Double_t GetBinLowEdge(Int_t bin) const
Return low edge of bin.
Int_t GetLast() const
Return last bin on the axis i.e.
virtual Double_t GetBinUpEdge(Int_t bin) const
Return up edge of bin.
Int_t GetFirst() const
Return first bin on the axis i.e.
Generic 3D primitive description class.
Bool_t SectionsValid(UInt_t mask) const
void ClearSectionsValid()
Clear any sections marked valid.
void SetSectionsValid(UInt_t mask)
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.
Buffer base class used for serializing objects.
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
virtual Version_t ReadVersion(UInt_t *start=0, UInt_t *bcnt=0, const TClass *cl=0)=0
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss)=0
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
virtual void Local2Master(Double_t *local, Double_t *master)
Convert one point from local system to master reference system.
A special 3-D marker designed for event display.
virtual void SetPoints(Double_t *buff) const
Set points.
virtual void SetSize(Float_t dx, Float_t dy, Float_t dz)
Set size.
TMarker3DBox & operator=(const TMarker3DBox &)
assignment operator
static void PaintH3(TH1 *h, Option_t *option)
Paint 3-d histogram h with marker3dboxes.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute distance from point px,py to a Marker3DBox.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save primitive as a C++ statement(s) on output stream out.
virtual void SetDirection(Float_t theta, Float_t phi)
Set direction.
virtual void SetPosition(Float_t x, Float_t y, Float_t z)
Set position.
TMarker3DBox()
Marker3DBox default constructor.
virtual void Paint(Option_t *option)
Paint marker 3D box.
virtual ~TMarker3DBox()
Marker3DBox shape default destructor.
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute action corresponding to one event.
Mother of all ROOT objects.
TObject & operator=(const TObject &rhs)
TObject assignment operator.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void WCtoNDC(const Float_t *pw, Float_t *pn)=0
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 PadRange(Int_t rback)=0
virtual void SetRange(const Double_t *min, const Double_t *max)=0
Abstract 3D shapes viewer.
virtual Int_t AddObject(const TBuffer3D &buffer, Bool_t *addChildren=0)=0
double dist(Rotation3D const &r1, Rotation3D const &r2)
static constexpr double m3
LongDouble_t Power(LongDouble_t x, LongDouble_t y)