Issues (459)

src/graph/RectPattern.php (1 issue)

Severity
1
<?php
2
3
/**
4
 * JPGraph v4.0.3
5
 */
6
7
namespace Amenadiel\JpGraph\Graph;
8
9
use Amenadiel\JpGraph\Util;
10
11
/**
12
 * @class RectPattern
13
 * // Base class for pattern hierarchi that is used to display patterned
14
 * // bands on the graph. Any subclass that doesn't override Stroke()
15
 * // must at least implement method DoPattern($aImg) which is responsible
16
 * // for drawing the pattern onto the graph.
17
 */
18
class RectPattern
19
{
20
    protected $color;
21
    protected $weight;
22
    protected $rect;
23
    protected $doframe = true;
24
    protected $linespacing; // Line spacing in pixels
25
    protected $iBackgroundColor = -1; // Default is no background fill
26
27
    public function __construct($aColor, $aWeight = 1)
28
    {
29
        $this->color  = $aColor;
30
        $this->weight = $aWeight;
31
    }
32
33
    public function SetBackground($aBackgroundColor)
34
    {
35
        $this->iBackgroundColor = $aBackgroundColor;
36
    }
37
38
    public function SetPos($aRect)
39
    {
40
        $this->rect = $aRect;
41
    }
42
43
    public function ShowFrame($aShow = true)
44
    {
45
        $this->doframe = $aShow;
46
    }
47
48
    public function SetDensity($aDens)
49
    {
50
        if ($aDens < 1 || $aDens > 100) {
51
            Util\JpGraphError::RaiseL(16001, $aDens);
52
        }
53
54
        //(" Desity for pattern must be between 1 and 100. (You tried $aDens)");
55
        // 1% corresponds to linespacing=50
56
        // 100 % corresponds to linespacing 1
57
        $this->linespacing = floor(((100 - $aDens) / 100.0) * 50) + 1;
58
    }
59
60
    public function Stroke($aImg)
61
    {
62
        if ($this->rect == null) {
63
            Util\JpGraphError::RaiseL(16002);
64
        }
65
66
        //(" No positions specified for pattern.");
67
68
        if (!(is_numeric($this->iBackgroundColor) && $this->iBackgroundColor == -1)) {
69
            $aImg->SetColor($this->iBackgroundColor);
70
            $aImg->FilledRectangle($this->rect->x, $this->rect->y, $this->rect->xe, $this->rect->ye);
71
        }
72
73
        $aImg->SetColor($this->color);
74
        $aImg->SetLineWeight($this->weight);
75
76
        // Virtual function implemented by subclass
77
        $this->DoPattern($aImg);
0 ignored issues
show
The method DoPattern() does not exist on Amenadiel\JpGraph\Graph\RectPattern. Maybe you want to declare this class abstract? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

77
        $this->/** @scrutinizer ignore-call */ 
78
               DoPattern($aImg);
Loading history...
78
79
        // Frame around the pattern area
80
        if ($this->doframe) {
81
            $aImg->Rectangle($this->rect->x, $this->rect->y, $this->rect->xe, $this->rect->ye);
82
        }
83
    }
84
}
85