diff options
Diffstat (limited to 'src/gui/EdgeView.cpp')
-rw-r--r-- | src/gui/EdgeView.cpp | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/src/gui/EdgeView.cpp b/src/gui/EdgeView.cpp index 1853b08..afa8cfd 100644 --- a/src/gui/EdgeView.cpp +++ b/src/gui/EdgeView.cpp @@ -29,22 +29,22 @@ using Machina::URIs; /* probability colour stuff */ -#define RGB_TO_UINT(r,g,b) ((((guint)(r))<<16)|(((guint)(g))<<8)|((guint)(b))) -#define RGB_TO_RGBA(x,a) (((x) << 8) | ((((guint)a) & 0xff))) -#define RGBA_TO_UINT(r,g,b,a) RGB_TO_RGBA(RGB_TO_UINT(r,g,b), a) +#define RGB_TO_UINT(r, g, b) ((((guint)(r)) << 16) | (((guint)(g)) << 8) | ((guint)(b))) +#define RGB_TO_RGBA(x, a) (((x) << 8) | ((((guint)a) & 0xff))) +#define RGBA_TO_UINT(r, g, b, a) RGB_TO_RGBA(RGB_TO_UINT(r, g, b), a) -#define UINT_RGBA_R(x) (((uint32_t)(x))>>24) -#define UINT_RGBA_G(x) ((((uint32_t)(x))>>16)&0xff) -#define UINT_RGBA_B(x) ((((uint32_t)(x))>>8)&0xff) -#define UINT_RGBA_A(x) (((uint32_t)(x))&0xff) +#define UINT_RGBA_R(x) (((uint32_t)(x)) >> 24) +#define UINT_RGBA_G(x) ((((uint32_t)(x)) >> 16) & 0xff) +#define UINT_RGBA_B(x) ((((uint32_t)(x)) >> 8) & 0xff) +#define UINT_RGBA_A(x) (((uint32_t)(x)) & 0xff) -#define MONO_INTERPOLATE(v1, v2, t) ((int)rint((v2)*(t)+(v1)*(1-(t)))) +#define MONO_INTERPOLATE(v1, v2, t) ((int)rint((v2) * (t) + (v1) * (1 - (t)))) #define UINT_INTERPOLATE(c1, c2, t) \ - RGBA_TO_UINT( MONO_INTERPOLATE(UINT_RGBA_R(c1), UINT_RGBA_R(c2), t), \ - MONO_INTERPOLATE(UINT_RGBA_G(c1), UINT_RGBA_G(c2), t), \ - MONO_INTERPOLATE(UINT_RGBA_B(c1), UINT_RGBA_B(c2), t), \ - MONO_INTERPOLATE(UINT_RGBA_A(c1), UINT_RGBA_A(c2), t) ) + RGBA_TO_UINT(MONO_INTERPOLATE(UINT_RGBA_R(c1), UINT_RGBA_R(c2), t), \ + MONO_INTERPOLATE(UINT_RGBA_G(c1), UINT_RGBA_G(c2), t), \ + MONO_INTERPOLATE(UINT_RGBA_B(c1), UINT_RGBA_B(c2), t), \ + MONO_INTERPOLATE(UINT_RGBA_A(c1), UINT_RGBA_A(c2), t) ) inline static uint32_t edge_color(float prob) { @@ -52,10 +52,11 @@ inline static uint32_t edge_color(float prob) static const uint32_t mid = 0xFFFF44C0; static const uint32_t max = 0x44FF44C0; - if (prob <= 0.5) - return UINT_INTERPOLATE(min, mid, prob*2.0); - else - return UINT_INTERPOLATE(mid, max, (prob-0.5)*2.0); + if (prob <= 0.5) { + return UINT_INTERPOLATE(min, mid, prob * 2.0); + } else { + return UINT_INTERPOLATE(mid, max, (prob - 0.5) * 2.0); + } } /* end probability colour stuff */ @@ -88,7 +89,8 @@ double EdgeView::length_hint() const { NodeView* tail = dynamic_cast<NodeView*>(get_tail()); - return tail->node()->get(URIs::instance().machina_duration).get_float() * 10.0; + return tail->node()->get(URIs::instance().machina_duration).get_float() + * 10.0; } void @@ -126,6 +128,7 @@ EdgeView::on_event(GdkEvent* ev) void EdgeView::on_property(Machina::URIInt key, const Raul::Atom& value) { - if (key == URIs::instance().machina_probability) + if (key == URIs::instance().machina_probability) { set_color(edge_color(value.get_float())); + } } |