19#include "ROOT/RDrawingAttr.hxx"
20#include "ROOT/RDrawingOptsBase.hxx"
24#include "ROOT/RPalette.hxx"
29namespace Experimental {
40 RDrawingAttr<RPadPos>
fPos{*
this,
"frame.pos", 0.1_normal, 0.1_normal};
42 RDrawingAttr<RPadExtent>
fSize{*
this,
"frame.size", 0.8_normal, 0.8_normal};
47 std::vector<std::unique_ptr<RPadUserAxisBase>>
fUserCoord;
66 explicit RFrame(std::vector<std::unique_ptr<RPadUserAxisBase>> &&coords,
const DrawingOpts &opts);
86 std::array<RPadLength::Normal, 2>
UserToNormal(
const std::array<RPadLength::User, 2> &pos)
const
RDrawingAttr< RPadExtent > fSize
Size of the frame in parent RPad coordinates.
RDrawingAttr< RPadPos > fPos
Position of the frame in parent RPad coordinates.
Holds a user coordinate system with a palette.
std::array< RPadLength::Normal, 2 > UserToNormal(const std::array< RPadLength::User, 2 > &pos) const
Convert user coordinates to normal coordinates.
void GrowToDimensions(size_t nDimensions)
Create nDimensions default axes for the user coordinate system.
RPadPos fPos
Offset with respect to parent RPad.
RPalette fPalette
Palette used to visualize user coordinates.
size_t GetNDimensions() const
Get the number of axes.
void SetUserAxis(std::vector< std::unique_ptr< RPadUserAxisBase > > &&axes)
Set the user coordinate system.
RPadExtent fSize
Size of the frame, in parent RPad coordinates.
std::vector< std::unique_ptr< RPadUserAxisBase > > fUserCoord
Mapping of user coordinates to normal coordinates, one entry per dimension.
RPadUserAxisBase & GetUserAxis(size_t dimension) const
Get the current user coordinate system for a given dimension.
RFrame(const DrawingOpts &opts)
Namespace for new ROOT classes and functions.
An extent / size (horizontal and vertical) in a RPad.
A position (horizontal and vertical) in a RPad.