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