aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/chillerlan/php-qrcode/src/Detector/ResultPoint.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/chillerlan/php-qrcode/src/Detector/ResultPoint.php')
-rw-r--r--vendor/chillerlan/php-qrcode/src/Detector/ResultPoint.php73
1 files changed, 73 insertions, 0 deletions
diff --git a/vendor/chillerlan/php-qrcode/src/Detector/ResultPoint.php b/vendor/chillerlan/php-qrcode/src/Detector/ResultPoint.php
new file mode 100644
index 000000000..92997a746
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Detector/ResultPoint.php
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Class ResultPoint
+ *
+ * @created 17.01.2021
+ * @author ZXing Authors
+ * @author Smiley <smiley@chillerlan.net>
+ * @copyright 2021 Smiley
+ * @license Apache-2.0
+ */
+
+namespace chillerlan\QRCode\Detector;
+
+use function abs;
+
+/**
+ * Encapsulates a point of interest in an image containing a barcode. Typically, this
+ * would be the location of a finder pattern or the corner of the barcode, for example.
+ *
+ * @author Sean Owen
+ */
+abstract class ResultPoint{
+
+ protected float $x;
+ protected float $y;
+ protected float $estimatedModuleSize;
+
+ /**
+ *
+ */
+ public function __construct(float $x, float $y, float $estimatedModuleSize){
+ $this->x = $x;
+ $this->y = $y;
+ $this->estimatedModuleSize = $estimatedModuleSize;
+ }
+
+ /**
+ *
+ */
+ public function getX():float{
+ return $this->x;
+ }
+
+ /**
+ *
+ */
+ public function getY():float{
+ return $this->y;
+ }
+
+ /**
+ *
+ */
+ public function getEstimatedModuleSize():float{
+ return $this->estimatedModuleSize;
+ }
+
+ /**
+ * Determines if this finder pattern "about equals" a finder pattern at the stated
+ * position and size -- meaning, it is at nearly the same center with nearly the same size.
+ */
+ public function aboutEquals(float $moduleSize, float $i, float $j):bool{
+
+ if(abs($i - $this->y) <= $moduleSize && abs($j - $this->x) <= $moduleSize){
+ $moduleSizeDiff = abs($moduleSize - $this->estimatedModuleSize);
+
+ return $moduleSizeDiff <= 1.0 || $moduleSizeDiff <= $this->estimatedModuleSize;
+ }
+
+ return false;
+ }
+
+}