diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-12-15 12:06:53 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-12-15 12:06:53 -0500 |
commit | 9831006c8ee1b09d8d025e8aa85d8016d53c81c3 (patch) | |
tree | d4aa6324a41a38ec41f58c12909f58b48bb96941 | |
parent | 94b6dd7f87653ad41b4a6e6d37a5326472a66d51 (diff) |
add getters for SVAModifier
-rw-r--r-- | libs/canvas/canvas/colors.h | 17 | ||||
-rw-r--r-- | libs/canvas/colors.cc | 66 |
2 files changed, 43 insertions, 40 deletions
diff --git a/libs/canvas/canvas/colors.h b/libs/canvas/canvas/colors.h index 9bd8f89570..526eb991e2 100644 --- a/libs/canvas/canvas/colors.h +++ b/libs/canvas/canvas/colors.h @@ -43,17 +43,20 @@ struct LIBCANVAS_API HSV; class LIBCANVAS_API SVAModifier { - private: + public: enum Type { Add, Multiply, Assign }; - public: SVAModifier (std::string const &); - SVAModifier (Type t, double ss, double vv, double aa) : type (t), s (ss) , v (vv) , a (aa) {} - SVAModifier () : type (Add), s (0), v (0), a (0) {} /* no-op modifier */ + SVAModifier (Type t, double ss, double vv, double aa) : type (t), _s (ss) , _v (vv) , _a (aa) {} + SVAModifier () : type (Add), _s (0), _v (0), _a (0) {} /* no-op modifier */ + + double s() const { return _s; } + double v() const { return _v; } + double a() const { return _a; } HSV operator () (HSV& hsv) const; std::string to_string () const; @@ -61,9 +64,9 @@ class LIBCANVAS_API SVAModifier private: Type type; - double s; - double v; - double a; + double _s; + double _v; + double _a; }; struct LIBCANVAS_API HSV diff --git a/libs/canvas/colors.cc b/libs/canvas/colors.cc index 1ab3c6689b..b96c609a85 100644 --- a/libs/canvas/colors.cc +++ b/libs/canvas/colors.cc @@ -529,9 +529,9 @@ HSV::mod (SVAModifier const & svam) SVAModifier::SVAModifier (string const &str) : type (Add) - , s (0) - , v (0) - , a (0) + , _s (0) + , _v (0) + , _a (0) { from_string (str); } @@ -549,23 +549,23 @@ SVAModifier::from_string (string const & str) case '*': type = Multiply; /* no-op values for multiply */ - s = 1.0; - v = 1.0; - a = 1.0; + _s = 1.0; + _v = 1.0; + _a = 1.0; break; case '+': type = Add; /* no-op values for add */ - s = 0.0; - v = 0.0; - a = 0.0; + _s = 0.0; + _v = 0.0; + _a = 0.0; break; case '=': type = Assign; /* this will avoid assignment in operator() (see below) */ - s = -1.0; - v = -1.0; - a = -1.0; + _s = -1.0; + _v = -1.0; + _a = -1.0; break; default: throw failed_constructor (); @@ -576,11 +576,11 @@ SVAModifier::from_string (string const & str) while (ss) { ss >> mod; if ((pos = mod.find ("alpha:")) != string::npos) { - a = PBD::atof (mod.substr (pos+6)); + _a = PBD::atof (mod.substr (pos+6)); } else if ((pos = mod.find ("saturate:")) != string::npos) { - s = PBD::atof (mod.substr (pos+9)); + _s = PBD::atof (mod.substr (pos+9)); } else if ((pos = mod.find ("darkness:")) != string::npos) { - v = PBD::atof (mod.substr (pos+9)); + _v = PBD::atof (mod.substr (pos+9)); } else { throw failed_constructor (); } @@ -605,16 +605,16 @@ SVAModifier::to_string () const break; } - if (s > -1.0) { - ss << " saturate:" << s; + if (_s >= 0.0) { + ss << " saturate:" << _s; } - if (v > -1.0) { - ss << " darker:" << v; + if (_v >= 0.0) { + ss << " darker:" << _v; } - if (a > -1.0) { - ss << " alpha:" << a; + if (_a >= 0.0) { + ss << " alpha:" << _a; } return ss.str(); @@ -627,24 +627,24 @@ SVAModifier::operator () (HSV& hsv) const switch (type) { case Add: - r.s += s; - r.v += v; - r.a += a; + r.s += _s; + r.v += _v; + r.a += _a; break; case Multiply: - r.s *= s; - r.v *= v; - r.a *= a; + r.s *= _s; + r.v *= _v; + r.a *= _a; break; case Assign: - if (s > -1.0) { - r.s = s; + if (_s >= 0.0) { + r.s = _s; } - if (v > -1.0) { - r.v = v; + if (_v >= 0.) { + r.v = _v; } - if (a > -1.0) { - r.a = a; + if (_a >= 0.0) { + r.a = _a; } break; } |