PluginProbe ʕ •ᴥ•ʔ
WP 2FA – Two-factor authentication for WordPress / 4.0.0
WP 2FA – Two-factor authentication for WordPress v4.0.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 1 week ago DotsModule.php 1 week ago ModuleInterface.php 1 week ago RoundnessModule.php 1 week ago SquareModule.php 1 week ago index.php 1 week 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