summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-12-15 12:06:53 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-12-15 12:06:53 -0500
commit9831006c8ee1b09d8d025e8aa85d8016d53c81c3 (patch)
treed4aa6324a41a38ec41f58c12909f58b48bb96941
parent94b6dd7f87653ad41b4a6e6d37a5326472a66d51 (diff)
add getters for SVAModifier
-rw-r--r--libs/canvas/canvas/colors.h17
-rw-r--r--libs/canvas/colors.cc66
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;
}