16#ifndef ROOT7_RHistDrawable
17#define ROOT7_RHistDrawable
27namespace Experimental {
29template <
int DIMENSIONS,
class PRECISION,
template <
int D_,
class P_>
class... STAT>
33template <
int DIMENSIONS>
34class RHistImplPrecisionAgnosticBase;
41template <
int DIMENSION>
62template <
class DERIVED>
75template <
int DIMENSIONS>
89 : fHistImpl(std::shared_ptr<HistImpl_t>(hist, hist->GetImpl())), fOpts(opts)
94 : fHistImpl(std::unique_ptr<HistImpl_t>(std::move(hist->TakeImpl()))), fOpts(opts)
98 void Paint(Internal::RPadPainter &pad)
final;
104extern template class RHistDrawableBase<RHistDrawable<1>>;
105extern template class RHistDrawableBase<RHistDrawable<2>>;
106extern template class RHistDrawableBase<RHistDrawable<3>>;
108extern template class RHistDrawable<1>;
109extern template class RHistDrawable<2>;
110extern template class RHistDrawable<3>;
Base class for RHistImplBase that abstracts out the histogram's PRECISION.
virtual ~RHistPainterBase()
static RHistPainterBase< DIMENSION > *& GetPainterPtr()
virtual void Paint(RDrawable &obj, const RHistDrawingOpts< DIMENSION > &opts, RPadPainter &pad)=0
Paint a RHist. All we need is access to its GetBinContent()
static RHistPainterBase< DIMENSION > * GetPainter()
Abstract interface for object painting on the pad/canvas.
Base class for drawable entities: objects that can be painted on a RPad.
void Execute(const std::string &) final
virtual ~RHistDrawableBase()
RHistDrawable(const std::shared_ptr< HIST > &hist, const RHistDrawingOpts< DIMENSIONS > &opts={})
RHistDrawable(std::unique_ptr< HIST > &&hist, const RHistDrawingOpts< DIMENSIONS > &opts={})
const RHistDrawingOpts< DIMENSIONS > & GetOptions() const
RHistDrawingOpts< DIMENSIONS > & GetOptions()
RHistDrawingOpts< DIMENSIONS > fOpts
Internal::TUniWeakPtr< HistImpl_t > fHistImpl
void LoadHistPainterLibrary()
Namespace for new ROOT classes and functions.