File indexing completed on 2025-01-18 10:10:47
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef ROOT7_RPadPos
0010 #define ROOT7_RPadPos
0011
0012 #include "ROOT/RPadExtent.hxx"
0013
0014 #include <array>
0015 #include <string>
0016
0017 namespace ROOT {
0018 namespace Experimental {
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 class RPadPos {
0029
0030 RPadLength fHoriz;
0031
0032 RPadLength fVert;
0033
0034 public:
0035
0036 RPadPos() = default;
0037
0038 RPadPos(const RPadLength& horiz, const RPadLength& vert) : RPadPos()
0039 {
0040 fHoriz = horiz;
0041 fVert = vert;
0042 }
0043
0044 RPadPos(const RPadExtent &rhs) : RPadPos()
0045 {
0046 fHoriz = rhs.Horiz();
0047 fVert = rhs.Vert();
0048 }
0049
0050 RPadLength &Horiz() { return fHoriz; }
0051 const RPadLength &Horiz() const { return fHoriz; }
0052
0053 RPadLength &Vert() { return fVert; }
0054 const RPadLength &Vert() const { return fVert; }
0055
0056
0057
0058 RPadPos &operator=(const RPadExtent &rhs)
0059 {
0060 fHoriz = rhs.Horiz();
0061 fVert = rhs.Vert();
0062 return *this;
0063 }
0064
0065
0066
0067 friend RPadPos operator+(RPadPos lhs, const RPadExtent &rhs)
0068 {
0069 return {lhs.fHoriz + rhs.Horiz(), lhs.fVert + rhs.Vert()};
0070 }
0071
0072
0073 friend RPadPos operator-(RPadPos lhs, const RPadExtent &rhs)
0074 {
0075 return {lhs.fHoriz - rhs.Horiz(), lhs.fVert - rhs.Vert()};
0076 }
0077
0078
0079 RPadPos &operator+=(const RPadExtent &rhs)
0080 {
0081 fHoriz += rhs.Horiz();
0082 fVert += rhs.Vert();
0083 return *this;
0084 };
0085
0086
0087 RPadPos &operator-=(const RPadExtent &rhs)
0088 {
0089 fHoriz -= rhs.Horiz();
0090 fVert -= rhs.Vert();
0091 return *this;
0092 };
0093
0094
0095
0096
0097
0098 struct ScaleFactor {
0099 double fHoriz;
0100 double fVert;
0101 };
0102
0103
0104
0105 RPadPos &operator*=(const ScaleFactor &scale)
0106 {
0107 fHoriz *= scale.fHoriz;
0108 fVert *= scale.fVert;
0109 return *this;
0110 };
0111 };
0112
0113 }
0114 }
0115
0116 #endif