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>();
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>
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);
ROOT::Math::KahanSum< double > _offset
! Offset as KahanSum to avoid loss of precision
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
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
Base class for replies on RDrawableRequest.
Base class for requests which can be submitted from the clients.
const RDrawable::RDisplayContext & GetContext() 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...