static bool pulse(QBrush& ref, bool pulse) { bool invert = false; auto col = ref.color(); auto alpha = col.alphaF(); if (pulse) { alpha += 0.02; if (alpha >= 1) { invert = true; alpha = 1; } col.setAlphaF(alpha); } else { alpha -= 0.02; if (alpha <= 0.5) { invert = true; alpha = 0.5; } col.setAlphaF(alpha); } ref.setColor(col); return invert; }
QVector<qreal> ColorGradient::bitsF(uint length) const { if (!isValid()) return QVector<qreal>(); auto bits = QVector<qreal>{}; for (auto i = 0u; i < length; ++i) { qreal position = (qreal)i / length; auto color = interpolateColor(position); bits << color.redF() << color.greenF() << color.blueF() << color.alphaF(); } return bits; }