16#ifndef ROOT7_RHistDrawable
17#define ROOT7_RHistDrawable
35namespace Experimental {
60 virtual bool Is3D()
const {
return false; }
74 std::unique_ptr<RDisplayItem>
item;
78 std::unique_ptr<RDrawableReply>
Process()
override
82 auto reply = std::make_unique<RReply>();
84 reply->item = hdraw->CreateHistDisplay(
GetContext());
101template <
int DIMENSIONS>
116 template <
class HIST>
119 fHistImpl = std::shared_ptr<HistImpl_t>(hist, hist->GetImpl());
141 template <
class HIST>
176 template <
class HIST>
205 bool Is3D() const final {
return true; }
210 template <
class HIST>
222 return std::make_shared<RHist1Drawable>(histimpl);
227 return std::make_shared<RHist1Drawable>(histimpl);
232 return std::make_shared<RHist1Drawable>(histimpl);
237 return std::make_shared<RHist1Drawable>(histimpl);
242 return std::make_shared<RHist2Drawable>(histimpl);
247 return std::make_shared<RHist2Drawable>(histimpl);
252 return std::make_shared<RHist2Drawable>(histimpl);
257 return std::make_shared<RHist2Drawable>(histimpl);
262 return std::make_shared<RHist3Drawable>(histimpl);
267 return std::make_shared<RHist3Drawable>(histimpl);
272 return std::make_shared<RHist3Drawable>(histimpl);
277 return std::make_shared<RHist3Drawable>(histimpl);
Base class for RHistImplBase that abstracts out the histogram's PRECISION.
Drawing fill attributes for different objects.
Drawing line attributes for different objects.
RAttrValue< EStyle > style
! marker style
Template class to access single value from drawable or other attributes.
Base class for replies on RDrawableRequest.
Base class for requests which can be submitted from the clients.
const RDrawable::RDisplayContext & GetContext() const
RDrawable * GetDrawable() const
Base class for drawable entities: objects that can be painted on a RPad.
virtual std::unique_ptr< RDisplayItem > Display(const RDisplayContext &)
Creates display item for drawable By default item contains drawable data itself.
RAttrValue< double > barwidth
! bar width
std::unique_ptr< RDisplayItem > CreateHistDisplay(const RDisplayContext &) override
RHist1Drawable & Marker()
RHist1Drawable & Lego(int kind=0)
RHist1Drawable(const std::shared_ptr< HIST > &hist)
RAttrValue< bool > secondy
! is draw second y axis for histogram
RHist1Drawable & Bar(double _offset, double _width, bool mode3d=false)
RAttrValue< bool > secondx
! is draw second x axis for histogram
RAttrValue< double > baroffset
! bar offset
RHist1Drawable & Error(int kind=0)
RAttrValue< bool > drawtext
! draw text
RHist2Drawable & Surf(int kind=0)
RHist2Drawable & Contour(int kind=0)
RHist2Drawable & Box(int kind=0)
RHist2Drawable & Lego(int kind=0)
RHist2Drawable(const std::shared_ptr< HIST > &hist)
std::unique_ptr< RDisplayItem > CreateHistDisplay(const RDisplayContext &) override
RAttrValue< bool > drawtext
! draw text
RHist2Drawable & Scatter()
std::unique_ptr< RDisplayItem > CreateHistDisplay(const RDisplayContext &) override
RHist3Drawable & Box(int kind=0)
RHist3Drawable(const std::shared_ptr< HIST > &hist)
RHist3Drawable & Scatter()
RHist3Drawable & Sphere(int kind=0)
std::unique_ptr< RDisplayItem > item
std::unique_ptr< RDrawableReply > Process() override
std::unique_ptr< RDisplayItem > Display(const RDisplayContext &ctxt) override
Creates display item for drawable By default item contains drawable data itself.
RAttrText text
! hist text attributes
std::string GetDrawKind() const
virtual std::unique_ptr< RDisplayItem > CreateHistDisplay(const RDisplayContext &)=0
RAttrMarker marker
! hist marker attributes
virtual bool Is3D() const
RAttrLine line
! hist line attributes
RAttrFill fill
! hist fill attributes
RAttrValue< bool > optimize
! optimize drawing
void PopulateMenu(RMenuItems &) override
bool IsFrameRequired() const final
void SetDrawKind(const std::string &kind, int sub=-1)
RAttrValue< std::string > fKind
! hist draw kind
RAttrValue< int > fSub
! hist draw sub kind
Internal::RIOShared< HistImpl_t > fHistImpl
I/O capable reference on histogram.
~RHistDrawable() override=default
std::shared_ptr< HistImpl_t > GetHist() const
void CollectShared(Internal::RIOSharedVector_t &vect) override
RHistDrawable(const std::shared_ptr< HIST > &hist)
std::vector< RIOSharedBase * > RIOSharedVector_t
auto GetDrawable(const std::shared_ptr< DRAWABLE > &drawable)
Central method to insert drawable in list of pad primitives By default drawable placed as is.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...