12 #ifndef ROOT_REveStraightLineSet
13 #define ROOT_REveStraightLineSet
28 namespace Experimental {
35 class REveStraightLineSet :
public REveElement,
36 public REveProjectable,
42 REveStraightLineSet(
const REveStraightLineSet&);
43 REveStraightLineSet& operator=(
const REveStraightLineSet&);
52 Line_t(Float_t x1, Float_t y1, Float_t z1,
53 Float_t x2, Float_t y2, Float_t z2) : fId(-1)
55 fV1[0] = x1, fV1[1] = y1, fV1[2] = z1;
56 fV2[0] = x2, fV2[1] = y2, fV2[2] = z2;
65 Marker_t(Float_t x, Float_t y, Float_t z, Int_t line_id) : fLineId(line_id)
67 fV[0] = x, fV[1] = y, fV[2] = z;
72 REveChunkManager fLinePlex;
73 REveChunkManager fMarkerPlex;
76 Bool_t fOwnMarkersIds;
83 Line_t *fLastLine{
nullptr};
86 REveStraightLineSet(
const std::string &n=
"StraightLineSet",
const std::string &t=
"");
87 virtual ~REveStraightLineSet() {}
89 void SetLineColor(Color_t col)
override { SetMainColor(col); }
91 Line_t *AddLine(Float_t x1, Float_t y1, Float_t z1, Float_t x2, Float_t y2, Float_t z2);
92 Line_t *AddLine(
const REveVector& p1,
const REveVector& p2);
93 Marker_t *AddMarker(Float_t x, Float_t y, Float_t z, Int_t line_id=-1);
94 Marker_t *AddMarker(
const REveVector& p, Int_t line_id=-1);
95 Marker_t *AddMarker(Int_t line_id, Float_t pos);
97 void SetLine(
int idx, Float_t x1, Float_t y1, Float_t z1, Float_t x2, Float_t y2, Float_t z2);
98 void SetLine(
int idx,
const REveVector& p1,
const REveVector& p2);
100 REveChunkManager &GetLinePlex() {
return fLinePlex; }
101 REveChunkManager &GetMarkerPlex() {
return fMarkerPlex; }
103 virtual Bool_t GetRnrMarkers() {
return fRnrMarkers; }
104 virtual Bool_t GetRnrLines() {
return fRnrLines; }
105 virtual Bool_t GetDepthTest() {
return fDepthTest; }
107 virtual void SetRnrMarkers(Bool_t x) { fRnrMarkers = x; }
108 virtual void SetRnrLines(Bool_t x) { fRnrLines = x; }
109 virtual void SetDepthTest(Bool_t x) { fDepthTest = x; }
111 void CopyVizParams(
const REveElement* el)
override;
112 void WriteVizParams(std::ostream& out,
const TString& var)
override;
114 TClass* ProjectedClass(
const REveProjection* p)
const override;
116 Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset)
override;
117 void BuildRenderData()
override;
119 void ComputeBBox()
override;
128 class REveStraightLineSetProjected :
public REveStraightLineSet,
132 REveStraightLineSetProjected(
const REveStraightLineSetProjected&);
133 REveStraightLineSetProjected& operator=(
const REveStraightLineSetProjected&);
136 void SetDepthLocal(Float_t d)
override;
139 REveStraightLineSetProjected();
140 virtual ~REveStraightLineSetProjected() {}
142 void SetProjection(REveProjectionManager* mng, REveProjectable* model)
override;
143 void UpdateProjection()
override;
144 REveElement* GetProjectedAsElement()
override {
return this; }