void Triangle::GenerateStrokes () { m_strokes.clear(); int numStrokes = 50 * (m_transform.scale.x + m_transform.scale.y) / 2; for (int i = 0; i < numStrokes; i++) { Vector2 pos(Volt::Random::Percent(), Volt::Random::Percent()); Volt::Color color = ColorAtPoint(pos); if (color.Intensity() == 0) { i--; continue; } Vector2 gradient = ColorGradientAtPoint(pos).GetPerpendicularRight(); BrushStroke stroke; stroke.transform.position = pos; stroke.transform.rotation = gradient.GetAngleDegrees(); stroke.transform.scale.Set(0.5, 0.5); stroke.transform.scale *= Volt::Random::RangeFloat(0.8, 1.3); stroke.color = color + Volt::Color::Random() * 0.2; m_strokes.push_back(stroke); } }