{
* Copyright 2007 ZXing authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* Original Author: Sean Owen
* Ported from ZXING Java Source: www.Redivivus.in (suraj.supekar@redivivus.in)
* Delphi Implementation by E.Spelt and K. Gossens
}
unit ZXing.QrCode.Internal.AlignmentPattern;
interface
uses ZXing.ResultPoint;
type
///
/// As we did for ResultPoint, we use an interfaced object to implement automatic deallocation
/// of TAligmnentPattern instances
/// the actual implementation of this interface is in unit ZXing.QrCode.Internal.AlignmentPatternImplementation
///
IAlignmentPattern = interface(IResultPoint)
['{8C0A5D01-9620-42B6-BE3E-9C40717B5B38}']
///
Determines if this alignment pattern "about equals" an alignment pattern at the stated
/// position and size -- meaning, it is at nearly the same center with nearly the same size.
///
function aboutEquals(const moduleSize, i, j: Single): Boolean;
///
/// Combines this object's current estimate of a finder pattern position and module size
/// with a new estimate. It returns a new {@code FinderPattern} containing an average of the two.
///
/// The i.
/// The j.
/// New size of the module.
///
function combineEstimate(const i, j, newModuleSize: Single): IAlignmentPattern;
end;
///
/// contains all static methods for using IAlignmentPatterns instances
///
TAlignmentPatternHelpers = class
///
/// IAlignmentPattern instances must be obtained by calling this function
///
class function CreateAlignmentPattern(const posX, posY, estimatedModuleSize: Single):IAlignmentPattern;
end;
implementation
uses ZXing.QrCode.Internal.AlignmentPatternImplementation;
{ TAlignmentPatternHelpers }
class function TAlignmentPatternHelpers.CreateAlignmentPattern(const posX, posY, estimatedModuleSize: Single):IAlignmentPattern;
begin
result := ZXing.QrCode.Internal.AlignmentPatternImplementation.NewAlignmentPattern(posX,posY,estimatedModuleSize);
end;
end.