12 #ifndef ROOT7_REveEllipsoid
13 #define ROOT7_REveEllipsoid
21 namespace Experimental {
27 class REveEllipsoid :
public REveStraightLineSet
29 friend class REveEllipsoidProjected;
32 REveEllipsoid(
const REveEllipsoid &);
33 REveEllipsoid &operator=(
const REveEllipsoid &);
41 void DrawArch(
float phiStart,
float phiEnd,
float phiStep, REveVector& v0, REveVector& v1, REveVector& v2);
44 REveEllipsoid(
const std::string &n =
"REveJetConeProjected",
const std::string& t =
"");
45 virtual ~REveEllipsoid() {};
47 virtual void Outline();
48 void SetBaseVectors(REveVector& v0, REveVector& v1, REveVector& v3);
49 void SetPhiStep(
float ps);
51 Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset)
override;
53 TClass *ProjectedClass(
const REveProjection *p)
const override;
60 class REveEllipsoidProjected :
public REveStraightLineSetProjected
63 REveEllipsoidProjected(
const REveEllipsoidProjected &);
64 REveEllipsoidProjected &operator=(
const REveEllipsoidProjected &);
66 void DrawArchProjected(
float phiStart,
float phiEnd,
float phiStep, REveVector& v0, REveVector& v1, REveVector& v2);
67 void GetSurfaceSize(REveVector& p1, REveVector& p2);
72 std::vector <REveVector> fArchPnts;
73 float GetEllipseSurface (
const REveVector& v1,
const REveVector& v2);
76 REveEllipsoidProjected(
const std::string &n =
"REveEllipsoidProjected",
const std::string& t =
"");
77 virtual ~REveEllipsoidProjected();
79 void BuildRenderData()
override;
81 Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset)
override;
83 virtual void OutlineProjected();
84 virtual void SetProjection(REveProjectionManager *mng, REveProjectable *model)
override;
85 void UpdateProjection()
override;
86 REveElement *GetProjectedAsElement()
override {
return this; }