Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TWebSnapshot.h
Go to the documentation of this file.
1// Author: Sergey Linev, GSI, 6/04/2017
2
3/*************************************************************************
4 * Copyright (C) 1995-2019, Rene Brun and Fons Rademakers. *
5 * All rights reserved. *
6 * *
7 * For the licensing terms see $ROOTSYS/LICENSE. *
8 * For the list of contributors see $ROOTSYS/README/CREDITS. *
9 *************************************************************************/
10
11#ifndef ROOT_TWebSnapshot
12#define ROOT_TWebSnapshot
13
14#include "TObject.h"
15
16#include <vector>
17#include <memory>
18#include <string>
19
20class TWebSnapshot : public TObject {
21
22protected:
23 std::string fObjectID; ///< object identifier
24 std::string fOption; ///< object draw option
25 Int_t fKind{0}; ///< kind of snapshots
26 TObject *fSnapshot{nullptr}; ///< snapshot data
27 Bool_t fOwner{kFALSE}; ///<! if objected owned
28
29 void SetKind(Int_t kind) { fKind = kind; }
30
31public:
32
33 enum {
34 kNone = 0, ///< dummy
35 kObject = 1, ///< object itself
36 kSVG = 2, ///< list of SVG primitives
37 kSubPad = 3, ///< subpad
38 kColors = 4, ///< list of ROOT colors + palette
39 kStyle = 5 ///< gStyle object
40 };
41
42 virtual ~TWebSnapshot();
43
44 void SetObjectIDAsPtr(void *ptr);
45 void SetObjectID(const std::string &id) { fObjectID = id; }
46 const char* GetObjectID() const { return fObjectID.c_str(); }
47
48 void SetOption(const std::string &opt) { fOption = opt; }
49
50 void SetSnapshot(Int_t kind, TObject *snapshot, Bool_t owner = kFALSE);
51 Int_t GetKind() const { return fKind; }
52 TObject *GetSnapshot() const { return fSnapshot; }
53
54 ClassDefOverride(TWebSnapshot,1) // Object painting snapshot, used for JSROOT
55};
56
57// =================================================================================
58
60protected:
61 bool fActive{false}; ///< true when pad is active
62 bool fReadOnly{true}; ///< when canvas or pad are in readonly mode
63 bool fSetObjectIds{true}; ///<! set objects ids
64 bool fWithoutPrimitives{false}; ///< true when primitives not send while there are no modifications
65 std::vector<std::unique_ptr<TWebSnapshot>> fPrimitives; ///< list of all primitives, drawn in the pad
66
67public:
68 TPadWebSnapshot(bool readonly = true, bool setids = true)
69 {
71 fReadOnly = readonly;
72 fSetObjectIds = setids;
73 }
74
75 void SetActive(bool on = true) { fActive = on; }
76
78
79 bool IsReadOnly() const { return fReadOnly; }
80
81 bool IsSetObjectIds() const { return fSetObjectIds; }
82
83 TWebSnapshot &NewPrimitive(TObject *obj = nullptr, const std::string &opt = "");
84
86
88
89 ClassDefOverride(TPadWebSnapshot, 2) // Pad painting snapshot, used for JSROOT
90};
91
92// =================================================================================
93
95protected:
96 std::string fScripts; ///< custom scripts to load
97 bool fHighlightConnect{false}; ///< does HighlightConnect has connection
98public:
99 TCanvasWebSnapshot(bool readonly = true, bool setids = true) : TPadWebSnapshot(readonly, setids) {}
100
101 void SetScripts(const std::string &src) { fScripts = src; }
102 const std::string &GetScripts() const { return fScripts; }
103
105 bool GetHighlightConnect() const { return fHighlightConnect; }
106
107 ClassDefOverride(TCanvasWebSnapshot, 3) // Canvas painting snapshot, used for JSROOT
108};
109
110
111#endif
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
std::string fScripts
custom scripts to load
bool fHighlightConnect
does HighlightConnect has connection
TCanvasWebSnapshot(bool readonly=true, bool setids=true)
const std::string & GetScripts() const
void SetScripts(const std::string &src)
bool GetHighlightConnect() const
void SetHighlightConnect(bool on=true)
Mother of all ROOT objects.
Definition TObject.h:41
TPadWebSnapshot & NewSubPad()
Create new entry for subpad.
std::vector< std::unique_ptr< TWebSnapshot > > fPrimitives
list of all primitives, drawn in the pad
TPadWebSnapshot(bool readonly=true, bool setids=true)
TWebSnapshot & NewSpecials()
Create new entry in list of primitives in the front.
bool fActive
true when pad is active
void SetWithoutPrimitives(bool on=true)
bool fSetObjectIds
! set objects ids
void SetActive(bool on=true)
TWebSnapshot & NewPrimitive(TObject *obj=nullptr, const std::string &opt="")
Create new entry in list of primitives.
bool IsSetObjectIds() const
bool fReadOnly
when canvas or pad are in readonly mode
bool IsReadOnly() const
bool fWithoutPrimitives
true when primitives not send while there are no modifications
Paint state of object to transfer to JavaScript side.
Bool_t fOwner
! if objected owned
void SetObjectIDAsPtr(void *ptr)
Use pointer to assign object id - TString::Hash.
void SetKind(Int_t kind)
virtual ~TWebSnapshot()
destructor
std::string fOption
object draw option
const char * GetObjectID() const
Int_t GetKind() const
Int_t fKind
kind of snapshots
void SetOption(const std::string &opt)
TObject * fSnapshot
snapshot data
void SetObjectID(const std::string &id)
void SetSnapshot(Int_t kind, TObject *snapshot, Bool_t owner=kFALSE)
SetUse pointer to assign object id - TString::Hash.
@ kStyle
gStyle object
@ kObject
object itself
@ kSVG
list of SVG primitives
@ kSubPad
subpad
@ kColors
list of ROOT colors + palette
std::string fObjectID
object identifier
TObject * GetSnapshot() const