Added ability to pass additional scale to RadialBlob.
This commit is contained in:
parent
526a816b7e
commit
c0e1dfcc8d
4 changed files with 6 additions and 6 deletions
|
|
@ -81,12 +81,12 @@ RadialBlob::RadialBlob(int n, float minScale, float minSpeed, float maxSpeed)
|
||||||
, _segments(n) {
|
, _segments(n) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void RadialBlob::paint(Painter &p, const QBrush &brush) {
|
void RadialBlob::paint(Painter &p, const QBrush &brush, float outerScale) {
|
||||||
auto path = QPainterPath();
|
auto path = QPainterPath();
|
||||||
auto m = QMatrix();
|
auto m = QMatrix();
|
||||||
|
|
||||||
p.save();
|
p.save();
|
||||||
const auto scale = _minScale + _scale * (1. - _minScale);
|
const auto scale = (_minScale + (1. - _minScale) * _scale) * outerScale;
|
||||||
if (scale != 1.) {
|
if (scale != 1.) {
|
||||||
p.scale(scale, scale);
|
p.scale(scale, scale);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ class RadialBlob final : public Blob {
|
||||||
public:
|
public:
|
||||||
RadialBlob(int n, float minScale, float minSpeed = 0, float maxSpeed = 0);
|
RadialBlob(int n, float minScale, float minSpeed = 0, float maxSpeed = 0);
|
||||||
|
|
||||||
void paint(Painter &p, const QBrush &brush);
|
void paint(Painter &p, const QBrush &brush, float outerScale = 1.);
|
||||||
void update(float level, float speedScale);
|
void update(float level, float speedScale);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ void Blobs::setLevel(float value) {
|
||||||
_levelValue.start(to);
|
_levelValue.start(to);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Blobs::paint(Painter &p, const QBrush &brush) {
|
void Blobs::paint(Painter &p, const QBrush &brush, float outerScale) {
|
||||||
const auto opacity = p.opacity();
|
const auto opacity = p.opacity();
|
||||||
for (auto i = 0; i < _blobs.size(); i++) {
|
for (auto i = 0; i < _blobs.size(); i++) {
|
||||||
_blobs[i].update(_levelValue.current(), _blobDatas[i].speedScale);
|
_blobs[i].update(_levelValue.current(), _blobDatas[i].speedScale);
|
||||||
|
|
@ -73,7 +73,7 @@ void Blobs::paint(Painter &p, const QBrush &brush) {
|
||||||
if (alpha != 1.) {
|
if (alpha != 1.) {
|
||||||
p.setOpacity(opacity * alpha);
|
p.setOpacity(opacity * alpha);
|
||||||
}
|
}
|
||||||
_blobs[i].paint(p, brush);
|
_blobs[i].paint(p, brush, outerScale);
|
||||||
if (alpha != 1.) {
|
if (alpha != 1.) {
|
||||||
p.setOpacity(opacity);
|
p.setOpacity(opacity);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ public:
|
||||||
Blob::Radiuses radiusesAt(int index);
|
Blob::Radiuses radiusesAt(int index);
|
||||||
|
|
||||||
void setLevel(float value);
|
void setLevel(float value);
|
||||||
void paint(Painter &p, const QBrush &brush);
|
void paint(Painter &p, const QBrush &brush, float outerScale = 1.);
|
||||||
void updateLevel(crl::time dt);
|
void updateLevel(crl::time dt);
|
||||||
|
|
||||||
[[nodiscard]] float maxRadius() const;
|
[[nodiscard]] float maxRadius() const;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue