PluginProbe ʕ •ᴥ•ʔ
WP 2FA – Two-factor authentication for WordPress / 2.9.0
WP 2FA – Two-factor authentication for WordPress v2.9.0
4.0.0 1.7.1 2.0.0 2.0.1 2.1.0 2.2.0 2.2.1 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.8.0 2.9.0 2.9.1 2.9.2 2.9.3 3.0.0 3.0.1 3.1.0 3.1.1 3.1.1.2 trunk 1.2.0 1.3.0 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.6.0 1.6.1 1.6.2 1.7.0
wp-2fa / includes / classes / bacon / bacon-qr-code / src / Renderer / Module / SquareModule.php
wp-2fa / includes / classes / bacon / bacon-qr-code / src / Renderer / Module Last commit date
EdgeIterator 11 months ago DotsModule.php 11 months ago ModuleInterface.php 11 months ago RoundnessModule.php 11 months ago SquareModule.php 11 months ago
SquareModule.php
40 lines
1 <?php
2
3 declare (strict_types=1);
4 namespace WP2FA_Vendor\BaconQrCode\Renderer\Module;
5
6 use WP2FA_Vendor\BaconQrCode\Encoder\ByteMatrix;
7 use WP2FA_Vendor\BaconQrCode\Renderer\Module\EdgeIterator\EdgeIterator;
8 use WP2FA_Vendor\BaconQrCode\Renderer\Path\Path;
9 /**
10 * Groups modules together to a single path.
11 */
12 final class SquareModule implements ModuleInterface
13 {
14 /**
15 * @var self|null
16 */
17 private static $instance;
18 private function __construct()
19 {
20 }
21 public static function instance() : self
22 {
23 return self::$instance ?: (self::$instance = new self());
24 }
25 public function createPath(ByteMatrix $matrix) : Path
26 {
27 $path = new Path();
28 foreach (new EdgeIterator($matrix) as $edge) {
29 $points = $edge->getSimplifiedPoints();
30 $length = \count($points);
31 $path = $path->move($points[0][0], $points[0][1]);
32 for ($i = 1; $i < $length; ++$i) {
33 $path = $path->line($points[$i][0], $points[$i][1]);
34 }
35 $path = $path->close();
36 }
37 return $path;
38 }
39 }
40