recognition/barcode-region-parameters.js

const _MwWrapper = require("../_mwbridge/_mw-wrapper.js");
const Quadrangle = require("./quadrangle");
const utils = require("../core/utils");

/**
 * Represents the recognized barcode's region and barcode angle
 * @example
 * //This sample shows how to get barcode Angle and bounding quadrangle values
 * let generator = new BarcodeGenerator(EncodeTypes.Code128, "12345");
 * generator.save("test.png");
 * let reader = new BarCodeReader("test.png", null,  [ DecodeType.CODE_39, DecodeType.CODE_128 ]);
 * let results = reader.readBarCodes();
 * for(let i = 0; i < results.length; i++)
 * {
 *    let result = results[i];
 *    console.log("BarCode CodeText: " + result.getCodeText());
 *    console.log("BarCode Angle: " + result.getRegion().getAngle());
 *    console.log("BarCode Quadrangle: " + result.getRegion().getQuadrangle());
 * }
 */
class BarCodeRegionParameters extends _MwWrapper
{
    quad;
    rect;
    points;

    constructor(javaclass)
    {
        super(javaclass);
        this._initializeWrapperMembers()
    }

    _initializeWrapperMembers()
    {
        this.quad = Quadrangle._fromMwObject(this.getJavaClass().getQuadrangleSync());
        this.rect = utils.fromJavaRectangle(this.getJavaClass().getRectangleSync());
        this.points = BarCodeRegionParameters.convertJavaPoints(this.getJavaClass().getPointsSync());
    }

    static convertJavaPoints(javaPoints)
    {
        let points = [];
        for (let i = 0; i < javaPoints.length; i++)
        {
            points[i] = new utils.fromJavaPoint(javaPoints[i]);
        }

        return points;
    }

    /**
     *  Gets Quadrangle bounding barcode region Value: Returns Quadrangle bounding barcode region
     */
    getQuadrangle()
    {
        return this.quad;
    }

    /**
     *  Gets the angle of the barcode (0-360). Value: The angle for barcode (0-360).
     */
    getAngle()
    {
        return this.getJavaClass().getAngleSync();
    }

    /**
     *  Gets Points array bounding barcode region Value: Returns Points array bounding barcode region
     */
    getPoints()
    {
        return this.points;
    }

    /**
     *  Gets Rectangle bounding barcode region Value: Returns Rectangle bounding barcode region
     */
    getRectangle()
    {
        return this.rect;
    }

    /**
     * Returns a value indicating whether this instance is equal to a specified BarCodeRegionParameters value.<br>
     *
     * @param obj An System.Object value to compare to this instance.<br>
     * @return true if obj has the same value as this instance; otherwise, false.
     */
    equals(obj)
    {
        return this.getJavaClass().equalsSync(obj.getJavaClass());
    }

    /**
     * Returns the hash code for this instance.<br>
     *
     * @return A 32-bit signed integer hash code.
     */
    hashCode()
    {
        return this.getJavaClass().hashCodeSync();
    }

    /**
     * Returns a human-readable string representation of this BarCodeRegionParameters.<br>
     *
     * @return A string that represents this BarCodeRegionParameters.
     */
    toString()
    {
        return this.getJavaClass().toStringSync();
    }
}
module.exports = BarCodeRegionParameters