77 fName =
"TPolyMarker3D";
85 fName =
"TPolyMarker3D";
103 fName =
"TPolyMarker3D";
127 fName =
"TPolyMarker3D";
150 tp3.TPolyMarker3D::Copy(*
this);
160 if (
fP)
delete []
fP;
169 p.TPolyMarker3D::Copy(*
this);
204 const Int_t inaxis = 7;
213 if (px < puxmin - inaxis)
return dist;
214 if (
py > puymin + inaxis)
return dist;
215 if (px > puxmax + inaxis)
return dist;
216 if (
py < puymax - inaxis)
return dist;
219 if (!view)
return dist;
228 if (u < gPad->GetUxmin() || u >
gPad->GetUxmax())
continue;
230 x1 =
gPad->XtoAbsPixel(u);
234 if (dpoint < dist) dist = dpoint;
255 newpolymarker->
fN =
n;
271 if (
gPad->GetView())
gPad->GetView()->ExecuteRotateView(event, px,
py);
280 std::cout <<
" TPolyMarker3D N=" <<
Size() <<
" Option="<<
option<<std::endl;
296 Error(
"Add",
"Attempt to add object of class: %s to a %s",pm->
ClassName(),this->ClassName());
299 npoints += pm->
Size();
324 if (
Size() <= 0)
return;
339 if (!viewer3D)
return;
364 dlocal[0] = buffer.
fPnts[3*j];
365 dlocal[1] = buffer.
fPnts[3*j+1];
366 dlocal[2] = buffer.
fPnts[3*j+2];
367 gGeometry->Local2Master(&dlocal[0],&dmaster[0]);
368 buffer.
fPnts[3*j] = dmaster[0];
369 buffer.
fPnts[3*j+1] = dmaster[1];
370 buffer.
fPnts[3*j+2] = dmaster[2];
394 const Int_t kMaxEntry = 100000;
395 Int_t in, bin, binx, biny, binz;
397 TAxis *xaxis =
h->GetXaxis();
398 TAxis *yaxis =
h->GetYaxis();
399 TAxis *zaxis =
h->GetZaxis();
401 for (binz=zaxis->
GetFirst();binz<=zaxis->GetLast();binz++) {
402 for (biny=yaxis->
GetFirst();biny<=yaxis->GetLast();biny++) {
403 for (binx=xaxis->
GetFirst();binx<=xaxis->GetLast();binx++) {
404 bin =
h->GetBin(binx,biny,binz);
405 entry +=
h->GetBinContent(bin);
414 if (entry > kMaxEntry) scale = kMaxEntry/
Double_t(entry);
419 gPad->Range(-1,-1,1,1);
432 if (entry == 0)
return;
443 for (binz=zaxis->
GetFirst();binz<=zaxis->GetLast();binz++) {
446 for (biny=yaxis->
GetFirst();biny<=yaxis->GetLast();biny++) {
449 for (binx=xaxis->
GetFirst();binx<=xaxis->GetLast();binx++) {
452 bin =
h->GetBin(binx,biny,binz);
453 ncounts =
Int_t(
h->GetBinContent(bin)*scale+0.5);
454 for (in=0;in<ncounts;in++) {
473 printf(
"TPolyMarker3D N=%d, Option=%s\n",
fN,
option);
479 printf(
" x[%d]=%g, y[%d]=%g, z[%d]=%g\n",
i,
fP[3*
i],
i,
fP[3*
i+1],
i,
fP[3*
i+2]);
494 out<<
" TPolyMarker3D *";
497 out<<
" pmarker3D->SetName("<<quote<<
GetName()<<quote<<
");"<<std::endl;
502 out<<
" pmarker3D->SetPoint("<<
i<<
","<<
fP[3*
i]<<
","<<
fP[3*
i+1]<<
","<<
fP[3*
i+2]<<
");"<<std::endl;
504 out<<
" pmarker3D->Draw();"<<std::endl;
538 if (!
fP ||
n >=
fN) {
572 if (
fP)
delete []
fP;
577 fP[3*
i+1] = p[3*
i+1];
578 fP[3*
i+2] = p[3*
i+2];
602 if (
fP)
delete []
fP;
625 if (R__v > 2)
b.ClassMember(
"TObject");
627 if (R__v > 2)
b.ClassMember(
"TAttMarker");
629 if (R__v > 2)
b.ClassMember(
"fN",
"Int_t");
637 if (R__v > 2)
b.ClassMember(
"fOption",
"TString");
639 if (R__v > 2)
b.ClassMember(
"fName",
"TString");
640 if (R__v > 1)
fName.Streamer(
b);
646 b.ClassMember(
"TObject");
648 b.ClassMember(
"TAttMarker");
650 b.ClassMember(
"fN",
"Int_t");
657 b.ClassMember(
"fOption",
"TString");
659 b.ClassMember(
"fName",
"TString");
662 b.SetByteCount(R__c,
kTRUE);
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t np
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t SetMarkerStyle
Option_t Option_t TPoint TPoint const char y1
R__EXTERN TGeometry * gGeometry
constexpr Int_t kDimension
R__EXTERN TRandom * gRandom
virtual void SaveMarkerAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t sizdef=1)
Save line attributes as C++ statement(s) on output stream out.
virtual void Modify()
Change current marker attributes if necessary.
virtual Style_t GetMarkerStyle() const
Return the marker style.
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
virtual Color_t GetMarkerColor() const
Return the marker color.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
void Copy(TAttMarker &attmarker) const
Copy this marker attributes to a new TAttMarker.
TAttMarker()
TAttMarker default constructor.
virtual void Streamer(TBuffer &)
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
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 GetBinWidth(Int_t bin) const
Return bin width.
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.
Collection abstract base class.
TH1 is the base class of all histogram classes in ROOT.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual void Streamer(TBuffer &)
Stream an object of class TObject.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Copy(TObject &object) const
Copy this to obj.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
TObject()
TObject constructor.
@ kCanDelete
if object in a list can be deleted
@ kMustCleanup
if object destructor must call RecursiveRemove()
static void PaintH3(TH1 *h, Option_t *option)
Paint 3-d histogram h with 3-d polymarkers.
virtual Int_t Merge(TCollection *list)
Merge polymarkers in the collection in this polymarker.
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
virtual void DrawPolyMarker(Int_t n, Float_t *p, Marker_t marker, Option_t *option="")
Draw this 3-D polymarker with new coordinates.
~TPolyMarker3D() override
3-D polymarker destructor.
void SetPoint(Int_t n, Double_t x, Double_t y, Double_t z)
Set point n to x, y, z.
const char * GetName() const override
Returns name of object.
virtual void GetPoint(Int_t n, Float_t &x, Float_t &y, Float_t &z) const
Fills the parameters x, y, z with the coordinate of the n-th point n must be between 0 and Size() - 1...
virtual void SetPolyMarker(Int_t n, Float_t *p, Marker_t marker, Option_t *option="")
Re-initialize polymarker with n points from p.
virtual Int_t Size() const
virtual void SetName(const char *name)
Change (i.e.
TPolyMarker3D & operator=(const TPolyMarker3D &)
assignment operator
void Copy(TObject &polymarker) const override
Copy polymarker to polymarker obj.
void Streamer(TBuffer &) override
Stream a 3-D polymarker object.
void ls(Option_t *option="") const override
List this 3-D polymarker.
virtual Float_t * GetP() const
virtual Int_t SetNextPoint(Double_t x, Double_t y, Double_t z)
Set point following LastPoint to x, y, z.
TClass * IsA() const override
void Paint(Option_t *option="") override
Paint a TPolyMarker3D.
void Print(Option_t *option="") const override
Print 3-D polymarker with its attributes on stdout.
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive as a C++ statement(s) on output stream.
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute distance from point px,py to a 3-D polymarker.
void Draw(Option_t *option="") override
Draws 3-D polymarker with its current attributes.
TPolyMarker3D()
3-D polymarker default constructor.
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
void ToLower()
Change string to lower-case.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual void WCtoNDC(const Float_t *pw, Float_t *pn)=0
static TView * CreateView(Int_t system=1, const Double_t *rmin=nullptr, const Double_t *rmax=nullptr)
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=nullptr)=0
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Double_t Sqrt(Double_t x)
Returns the square root of x.
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.