Logo ROOT  
Reference Guide
REveEllipsoid.hxx
Go to the documentation of this file.
1 // @(#)root/eve7:$Id$
2 // Author: Matevz Tadel, Alja Tadel
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2019, 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 
12 #ifndef ROOT7_REveEllipsoid
13 #define ROOT7_REveEllipsoid
14 
15 #include <ROOT/REveShape.hxx>
16 #include <ROOT/REveVector.hxx>
19 
20 namespace ROOT {
21 namespace Experimental {
22 
23 //------------------------------------------------------------------------------
24 // REveEllipsoid
25 //------------------------------------------------------------------------------
26 
28 {
29  friend class REveEllipsoidProjected;
30 
31 private:
32  REveEllipsoid(const REveEllipsoid &) = delete;
34 
35 protected:
39 
40  float fPhiStep;
41  void DrawArch(float phiStart, float phiEnd, float phiStep, REveVector& v0, REveVector& v1, REveVector& v2);
42 
43 public:
44  REveEllipsoid(const std::string &n = "REveJetConeProjected", const std::string& t = "");
45  virtual ~REveEllipsoid() {};
46 
47  virtual void Outline();
49  void SetPhiStep(float ps);
50 
51  Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override;
52 
53  TClass *ProjectedClass(const REveProjection *p) const override;
54 };
55 
56 //------------------------------------------------------------------------------
57 // REveEllipsoidProjected
58 //------------------------------------------------------------------------------
59 
61 {
62 private:
65 
66  void DrawArchProjected(float phiStart, float phiEnd, float phiStep, REveVector& v0, REveVector& v1, REveVector& v2);
68 
71 
72  std::vector <REveVector> fArchPnts;
73  float GetEllipseSurface (const REveVector& v1, const REveVector& v2);
74 
75 public:
76  REveEllipsoidProjected(const std::string &n = "REveEllipsoidProjected", const std::string& t = "");
77  virtual ~REveEllipsoidProjected();
78 
79  void BuildRenderData() override;
80 
81  Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override;
82 
83  virtual void OutlineProjected();
84  virtual void SetProjection(REveProjectionManager *mng, REveProjectable *model) override;
85  void UpdateProjection() override;
86  REveElement *GetProjectedAsElement() override { return this; }
87 };
88 
89 } // namespace Experimental
90 } // namespace ROOT
91 
92 #endif
ROOT::Experimental::REveEllipsoidProjected::SetProjection
virtual void SetProjection(REveProjectionManager *mng, REveProjectable *model) override
This is virtual method from base-class REveProjected.
Definition: REveEllipsoid.cxx:230
n
const Int_t n
Definition: legend1.C:16
REveStraightLineSet.hxx
ROOT::Experimental::REveEllipsoid::~REveEllipsoid
virtual ~REveEllipsoid()
Definition: REveEllipsoid.hxx:45
v0
@ v0
Definition: rootcling_impl.cxx:3636
ROOT::Experimental::REveEllipsoidProjected::GetSurfaceSize
void GetSurfaceSize(REveVector &p1, REveVector &p2)
ROOT::Experimental::REveEllipsoidProjected::fMV0
REveVector fMV0
Definition: REveEllipsoid.hxx:69
ROOT::Experimental::REveEllipsoidProjected::fArchPnts
std::vector< REveVector > fArchPnts
Definition: REveEllipsoid.hxx:72
REveShape.hxx
ROOT::Experimental::REveEllipsoid::fV0
REveVector fV0
Definition: REveEllipsoid.hxx:36
ROOT::Experimental::REveEllipsoidProjected::OutlineProjected
virtual void OutlineProjected()
Find longest projection of axes and draw an arch.
Definition: REveEllipsoid.cxx:172
ROOT::Experimental::REveEllipsoidProjected::operator=
REveEllipsoidProjected & operator=(const REveEllipsoidProjected &)=delete
ROOT::Experimental::REveEllipsoid::fV1
REveVector fV1
Definition: REveEllipsoid.hxx:37
REveProjectionBases.hxx
ROOT::Experimental::REveEllipsoid::fPhiStep
float fPhiStep
Definition: REveEllipsoid.hxx:40
ROOT::Experimental::REveStraightLineSet
REveStraightLineSet Set of straight lines with optional markers along the lines.
Definition: REveStraightLineSet.hxx:42
ROOT::Experimental::REveEllipsoidProjected
Definition: REveEllipsoid.hxx:61
ROOT::Experimental::REveEllipsoidProjected::REveEllipsoidProjected
REveEllipsoidProjected(const REveEllipsoidProjected &)=delete
ROOT::Experimental::REveEllipsoidProjected::fMV1
REveVector fMV1
Definition: REveEllipsoid.hxx:70
Int_t
int Int_t
Definition: RtypesCore.h:45
TGeant4Unit::ps
static constexpr double ps
Definition: TGeant4SystemOfUnits.h:165
ROOT::Experimental::REveEllipsoidProjected::GetEllipseSurface
float GetEllipseSurface(const REveVector &v1, const REveVector &v2)
Get surface size of projected ellipse.
Definition: REveEllipsoid.cxx:146
ROOT::Experimental::REveEllipsoid::ProjectedClass
TClass * ProjectedClass(const REveProjection *p) const override
Virtual from REveProjectable, returns REveEllipsoidProjected class.
Definition: REveEllipsoid.cxx:85
ROOT::Experimental::REveEllipsoid::REveEllipsoid
REveEllipsoid(const REveEllipsoid &)=delete
ROOT::Experimental::REveElement
Definition: REveElement.hxx:41
ROOT::Experimental::REveVectorT< Float_t >
ROOT::Experimental::REveProjection
REveProjection Base for specific classes that implement non-linear projections.
Definition: REveProjections.hxx:30
ROOT::Experimental::REveEllipsoid::DrawArch
void DrawArch(float phiStart, float phiEnd, float phiStep, REveVector &v0, REveVector &v1, REveVector &v2)
Draw archade as straight line set.
Definition: REveEllipsoid.cxx:38
ROOT::Experimental::REveEllipsoidProjected::DrawArchProjected
void DrawArchProjected(float phiStart, float phiEnd, float phiStep, REveVector &v0, REveVector &v1, REveVector &v2)
Draw archade around base vectors.
Definition: REveEllipsoid.cxx:125
ROOT::Experimental::REveEllipsoid
Definition: REveEllipsoid.hxx:28
ROOT::Experimental::REveEllipsoid::SetPhiStep
void SetPhiStep(float ps)
Set size of phi step in archade drawing.
Definition: REveEllipsoid.cxx:56
ROOT::Experimental::REveProjectable
Definition: REveProjectionBases.hxx:38
ROOT::Experimental::REveEllipsoid::SetBaseVectors
void SetBaseVectors(REveVector &v0, REveVector &v1, REveVector &v3)
Three defining base vectors of ellipse.
Definition: REveEllipsoid.cxx:64
ROOT::Experimental::REveEllipsoid::fV2
REveVector fV2
Definition: REveEllipsoid.hxx:38
ROOT::Experimental::REveEllipsoid::WriteCoreJson
Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override
Fill core part of JSON representation.
Definition: REveEllipsoid.cxx:94
ROOT::Experimental::REveEllipsoidProjected::GetProjectedAsElement
REveElement * GetProjectedAsElement() override
Returns this projected dynamic-casted to REveElement.
Definition: REveEllipsoid.hxx:86
ROOT::Experimental::REveEllipsoid::Outline
virtual void Outline()
Draw archade around base vectors.
Definition: REveEllipsoid.cxx:74
ROOT::Experimental::REveEllipsoidProjected::~REveEllipsoidProjected
virtual ~REveEllipsoidProjected()
Destructor.
Definition: REveEllipsoid.cxx:118
v1
@ v1
Definition: rootcling_impl.cxx:3637
ROOT::Experimental::REveStraightLineSetProjected
REveStraightLineSetProjected Projected copy of a REveStraightLineSet.
Definition: REveStraightLineSet.hxx:132
TClass
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:80
v3
@ v3
Definition: rootcling_impl.cxx:3639
v2
@ v2
Definition: rootcling_impl.cxx:3638
REveVector.hxx
make_cnn_model.model
model
Definition: make_cnn_model.py:6
ROOT::Experimental::REveEllipsoidProjected::UpdateProjection
void UpdateProjection() override
Callback that actually performs the projection.
Definition: REveEllipsoid.cxx:240
ROOT::Experimental::REveEllipsoidProjected::WriteCoreJson
Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override
Fill core part of JSON representation.
Definition: REveEllipsoid.cxx:295
ROOT::Experimental::REveProjectionManager
REveProjectionManager Manager class for steering of projections and managing projected objects.
Definition: REveProjectionManager.hxx:30
ROOT
VSD Structures.
Definition: StringConv.hxx:21
ROOT::Experimental::REveEllipsoid::operator=
REveEllipsoid & operator=(const REveEllipsoid &)=delete
ROOT::Experimental::REveEllipsoidProjected::BuildRenderData
void BuildRenderData() override
Crates 3D point array for rendering.
Definition: REveEllipsoid.cxx:220
int