summaryrefslogtreecommitdiff
path: root/app/ColorGenerator.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/ColorGenerator.php')
-rw-r--r--app/ColorGenerator.php137
1 files changed, 70 insertions, 67 deletions
diff --git a/app/ColorGenerator.php b/app/ColorGenerator.php
index e52521e7d2..673f6650c8 100644
--- a/app/ColorGenerator.php
+++ b/app/ColorGenerator.php
@@ -18,81 +18,84 @@ namespace Fisharebest\Webtrees;
/**
* Generate a range of colurs for the lifespan chart.
*/
-class ColorGenerator {
- /** @var int Current hue */
- private $hue;
+class ColorGenerator
+{
+ /** @var int Current hue */
+ private $hue;
- /** @var int Initial hue*/
- private $basehue;
+ /** @var int Initial hue */
+ private $basehue;
- /** @var int Saturation */
- private $saturation;
+ /** @var int Saturation */
+ private $saturation;
- /** @var int Lightness */
- private $lightness;
+ /** @var int Lightness */
+ private $lightness;
- /** @var int Initial lightness*/
- private $baselightness;
+ /** @var int Initial lightness */
+ private $baselightness;
- /** @var int Alpha transparancy */
- private $alpha;
+ /** @var int Alpha transparancy */
+ private $alpha;
- /** @var int Clockwise or anticlockwise color wheel */
- private $range;
+ /** @var int Clockwise or anticlockwise color wheel */
+ private $range;
- /**
- * Create a color generator.
- *
- * @param int $hue (0Deg = Red, 120Deg = green, 240Deg = blue)
- * @param int $saturation
- * @param int $lightness
- * @param int $alpha
- * @param int $range (sign determines direction. positive = clockwise, negative = anticlockwise)
- */
- public function __construct($hue, $saturation, $lightness, $alpha, $range) {
- $this->hue = $hue;
- $this->basehue = $hue;
- $this->saturation = $saturation;
- $this->lightness = $lightness;
- $this->baselightness = $lightness;
- $this->alpha = $alpha;
- $this->range = $range;
- }
+ /**
+ * Create a color generator.
+ *
+ * @param int $hue (0Deg = Red, 120Deg = green, 240Deg = blue)
+ * @param int $saturation
+ * @param int $lightness
+ * @param int $alpha
+ * @param int $range (sign determines direction. positive = clockwise, negative = anticlockwise)
+ */
+ public function __construct($hue, $saturation, $lightness, $alpha, $range)
+ {
+ $this->hue = $hue;
+ $this->basehue = $hue;
+ $this->saturation = $saturation;
+ $this->lightness = $lightness;
+ $this->baselightness = $lightness;
+ $this->alpha = $alpha;
+ $this->range = $range;
+ }
- /**
- * Function getNextColor
- *
- * $lightness cycles between $baselightness and 100% in $lightnessStep steps
- * $hue cycles on each complete $lightness cycle
- * between $basehue and $basehue + $range degrees in $hueStep degrees
- *
- * @param int $lightnessStep
- * @param int $hueStep
- *
- * @return string
- */
- public function getNextColor($lightnessStep = 10, $hueStep = 15) {
- $lightness = $this->lightness + $lightnessStep;
- $hue = $this->hue;
+ /**
+ * Function getNextColor
+ *
+ * $lightness cycles between $baselightness and 100% in $lightnessStep steps
+ * $hue cycles on each complete $lightness cycle
+ * between $basehue and $basehue + $range degrees in $hueStep degrees
+ *
+ * @param int $lightnessStep
+ * @param int $hueStep
+ *
+ * @return string
+ */
+ public function getNextColor($lightnessStep = 10, $hueStep = 15)
+ {
+ $lightness = $this->lightness + $lightnessStep;
+ $hue = $this->hue;
- if ($lightness >= 100) {
- $lightness = $this->baselightness;
- if ($this->range > 0) {
- $hue += $hueStep;
- } else {
- $hue -= $hueStep;
- }
- if (($hue - $this->basehue) * ($hue - ($this->basehue + $this->range)) >= 0) {
- $hue = $this->basehue;
- }
- $this->hue = $hue;
- }
- $this->lightness = $lightness;
+ if ($lightness >= 100) {
+ $lightness = $this->baselightness;
+ if ($this->range > 0) {
+ $hue += $hueStep;
+ } else {
+ $hue -= $hueStep;
+ }
+ if (($hue - $this->basehue) * ($hue - ($this->basehue + $this->range)) >= 0) {
+ $hue = $this->basehue;
+ }
+ $this->hue = $hue;
+ }
+ $this->lightness = $lightness;
- return sprintf('hsla(%s, %s%%, %s%%, %s)',
- $this->hue,
- $this->saturation,
- $this->lightness,
- $this->alpha);
- }
+ return sprintf('hsla(%s, %s%%, %s%%, %s)',
+ $this->hue,
+ $this->saturation,
+ $this->lightness,
+ $this->alpha);
+ }
}