Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TMarker3DBox.h
Go to the documentation of this file.
1// @(#)root/g3d:$Id$
2// Author: "Valery fine" 31/10/97
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11#ifndef ROOT_TMarker3DBox
12#define ROOT_TMarker3DBox
13
14
15////////////////////////////////////////////////////////////////////////////
16// //
17// TMarker3DBox //
18// //
19// Marker3DBox is a special 3-D marker designed for event display. //
20// It has the following parameters: //
21// fDx; half length in X //
22// fDy; half length in Y //
23// fDz; half length in Z //
24// fTranslation[3]; the coordinates of the center of the box //
25// fDirCos[3]; the direction cosinus defining the orientation //
26// fRefObject; A reference to an object //
27// //
28////////////////////////////////////////////////////////////////////////////
29
30#include "TObject.h"
31#include "TAttLine.h"
32#include "TAttFill.h"
33#include "TAtt3D.h"
34
35class TH1;
36
37class TMarker3DBox : public TObject, public TAttLine, public TAttFill,
38 public TAtt3D {
39protected:
40 Float_t fX; // X coordinate of center of box
41 Float_t fY; // Y coordinate of center of box
42 Float_t fZ; // Z coordinate of center of box
43 Float_t fDx; // half length in x
44 Float_t fDy; // half length in y
45 Float_t fDz; // half length in z
46
47 Float_t fTheta; // Angle of box z axis with respect to main Z axis
48 Float_t fPhi; // Angle of box x axis with respect to main Xaxis
49 TObject *fRefObject; // Pointer to an object
50
53
54 enum { kTemporary = BIT(23) }; // Use TObject::fBits to record if we are temporary
55
56public:
59 Float_t dx, Float_t dy, Float_t dz,
60 Float_t theta, Float_t phi);
61 ~TMarker3DBox() override;
62
63 Int_t DistancetoPrimitive(Int_t px, Int_t py) override;
64 void ExecuteEvent(Int_t event, Int_t px, Int_t py) override;
65 TObject *GetRefObject() const {return fRefObject;}
66 virtual void GetDirection(Float_t &theta, Float_t &phi) const {theta = fTheta; phi = fPhi;}
67 virtual void GetPosition(Float_t &x, Float_t &y, Float_t &z) const {x=fX; y=fY, z=fZ;}
68 virtual void GetSize(Float_t &dx, Float_t &dy, Float_t &dz) const {dx=fDx; dy=fDy; dz=fDz;}
69
70 void Paint(Option_t *option) override;
71 static void PaintH3(TH1 *h, Option_t *option);
72 void SavePrimitive(std::ostream &out, Option_t *option = "") override;
73 virtual void SetPoints(Double_t *buff) const;
74 virtual void SetDirection(Float_t theta, Float_t phi);
75 virtual void SetPosition(Float_t x, Float_t y, Float_t z);
76 virtual void SetSize(Float_t dx, Float_t dy, Float_t dz);
77 virtual void SetRefObject(TObject *obj = nullptr) {fRefObject = obj;}
78
79 ClassDefOverride(TMarker3DBox,2) //A special 3-D marker designed for event display
80};
81
82#endif
#define h(i)
Definition RSha256.hxx:106
int Int_t
Definition RtypesCore.h:45
float Float_t
Definition RtypesCore.h:57
double Double_t
Definition RtypesCore.h:59
const char Option_t
Definition RtypesCore.h:66
#define BIT(n)
Definition Rtypes.h:85
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t option
Use this attribute class when an object should have 3D capabilities.
Definition TAtt3D.h:19
Fill Area Attributes class.
Definition TAttFill.h:19
Line Attributes class.
Definition TAttLine.h:18
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:59
A special 3-D marker designed for event display.
virtual void SetPoints(Double_t *buff) const
Set points.
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
virtual void SetSize(Float_t dx, Float_t dy, Float_t dz)
Set size.
TMarker3DBox & operator=(const TMarker3DBox &)
assignment operator
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute distance from point px,py to a Marker3DBox.
static void PaintH3(TH1 *h, Option_t *option)
Paint 3-d histogram h with marker3dboxes.
~TMarker3DBox() override
Marker3DBox shape default destructor.
void Paint(Option_t *option) override
Paint marker 3D box.
virtual void GetDirection(Float_t &theta, Float_t &phi) const
TObject * GetRefObject() const
virtual void GetSize(Float_t &dx, Float_t &dy, Float_t &dz) const
virtual void SetDirection(Float_t theta, Float_t phi)
Set direction.
virtual void GetPosition(Float_t &x, Float_t &y, Float_t &z) const
virtual void SetPosition(Float_t x, Float_t y, Float_t z)
Set position.
TMarker3DBox()
Marker3DBox default constructor.
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive as a C++ statement(s) on output stream out.
virtual void SetRefObject(TObject *obj=nullptr)
Float_t fTheta
TObject * fRefObject
Mother of all ROOT objects.
Definition TObject.h:41
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17