21 namespace Experimental {
31 class RFrame :
public RDrawable {
36 std::vector<std::unique_ptr<RPadUserAxisBase>> fUserCoord;
43 RFrame() : RDrawable(
"frame")
49 explicit RFrame(std::vector<std::unique_ptr<RPadUserAxisBase>> &&coords);
52 void GrowToDimensions(
size_t nDimensions);
55 size_t GetNDimensions()
const {
return fUserCoord.size(); }
58 RPadUserAxisBase &GetUserAxis(
size_t dimension)
const {
return *fUserCoord[dimension]; }
61 void SetUserAxis(std::vector<std::unique_ptr<RPadUserAxisBase>> &&axes) { fUserCoord = std::move(axes); }
64 std::array<RPadLength::Normal, 2> UserToNormal(
const std::array<RPadLength::User, 2> &pos)
const
66 return {{fUserCoord[0]->ToNormal(pos[0]), fUserCoord[1]->ToNormal(pos[1])}};