68 return ConvertFrom(PrintExecutor::INNO_ANSI_TEMPLATE, tmpl.
data, tmpl);
78 return ConvertFrom(PrintExecutor::INNO_ILO_SID_TEMPLATE, tmpl.
GetData(), tmpl);
88 return ConvertFrom(PrintExecutor::INNO_ISO_NC_TEMPLATE, tmpl.
GetData(), tmpl);
100 if (!maxMinutiaeCount.has_value())
104 return ConvertFrom(PrintExecutor::INNO_ISO_CC_TEMPLATE, tmpl.
GetData(), tmpl);
114 return ConvertFrom(PrintExecutor::INNO_ISO_TEMPLATE, tmpl.
data, tmpl);
124 return ConvertFrom(PrintExecutor::INNO_TT_UNKNOWN_TYPE, tmpl.
icsTemplateData, tmpl);
134 return ConvertFrom(PrintExecutor::INNO_TT_UNKNOWN_TYPE, tmpl.
icsTemplateData, tmpl);
144 return ConvertFrom(PrintExecutor::INNO_TT_UNKNOWN_TYPE, tmpl.
GetICSRepresentation()->icsTemplateData, tmpl);
170 , primaryOrder(primarySortOrder)
171 , secondaryOrder(secondarySortOrder)
172 , maxMinutiaeCount(maximumMinutiaeCount)
181 : exec(std::move(executor))
202 int maximumMinutiaeCount,
205 : exec(std::move(executor))
206 , primaryOrder(primarySortOrder)
207 , secondaryOrder(secondarySortOrder)
208 , maxMinutiaeCount(maximumMinutiaeCount)
217 std::shared_ptr<PrintExecutor> exec;
218 std::optional<MinutiaSortOrder> primaryOrder;
219 std::optional<MinutiaSortOrder> secondaryOrder;
220 std::optional<int> maxMinutiaeCount;
222 template<
typename TemplateType>
223 [[nodiscard]]
ISOCCTemplate ConvertFrom(uint8_t templateType,
224 const std::vector<uint8_t>& input,
225 const TemplateType& tmpl)
const
227 if (maxMinutiaeCount.has_value())
230 auto iso = isoAdapter.Adapt(tmpl);
231 auto limitedIsoccData = LimitIsoTemplate(iso.data);
235 return ISOCCTemplate(ConvertData(templateType, input));
238 [[nodiscard]] std::vector<uint8_t> ConvertData(uint8_t templateType,
const std::vector<uint8_t>& input)
const
240 std::vector<uint8_t> data;
241 auto tmplAllocator = +[](
void* container,
size_t length) -> uint8_t*
247 std::vector<uint8_t>& vec = *
static_cast<std::vector<uint8_t>*
>(container);
251 exec->ConvertTemplates(templateType,
254 PrintExecutor::INNO_ISO_CC_TEMPLATE,
262 [[nodiscard]] std::vector<uint8_t> LimitIsoTemplate(
const std::vector<uint8_t>& input)
const
264 std::vector<uint8_t> data;
265 auto tmplAllocator = +[](
void* container,
size_t length) -> uint8_t*
271 std::vector<uint8_t>& vec = *
static_cast<std::vector<uint8_t>*
>(container);
276 exec->ConvertIsoToIsoCCTemplate(
279 maxMinutiaeCount.value_or(INT_MAX),
ANSI INCITS 378 print compliant template.
Definition ANSITemplate.h:28
const std::vector< uint8_t > data
Template data.
Definition ANSITemplate.h:31
Holds instance of PrintExecutor.
Definition PrintExecutor.h:1300
Print template in ICS format used for biometric operations.
Definition ICSTemplate.h:41
const std::vector< uint8_t > icsTemplateData
template data
Definition ICSTemplate.h:44
International Labour Organisation Seafarers Identity Document template.
Definition ILOSIDTemplate.h:24
std::vector< uint8_t > GetData() const
Provides template data.
Definition ILOSIDTemplate.h:30
ISOCCTemplateAdapter(std::shared_ptr< PrintExecutor > executor)
Creates ISOCCTemplateAdapter object.
Definition ISOCCTemplateAdapter.h:179
ISOCCTemplate Adapt(const ISONCTemplate &tmpl) const
Adapts ISONCTemplate to ISOCCTemplate.
Definition ISOCCTemplateAdapter.h:85
ISOCCTemplateAdapter(int maximumMinutiaeCount, MinutiaSortOrder primarySortOrder, MinutiaSortOrder secondarySortOrder)
Creates ISOCCTemplateAdapter object with minutiae modifications.
Definition ISOCCTemplateAdapter.h:165
ISOCCTemplate Adapt(const ISOTemplate &tmpl) const
Adapts ISOTemplate to ISOCCTemplate.
Definition ISOCCTemplateAdapter.h:111
ISOCCTemplate Adapt(const ExtractedPrint &tmpl) const
Adapts ExtractedPrint to ISOCCTemplate.
Definition ISOCCTemplateAdapter.h:131
ISOCCTemplate Adapt(const PrintTemplate &tmpl) const
Adapts PrintTemplate to ISOCCTemplate.
Definition ISOCCTemplateAdapter.h:141
ISOCCTemplate Adapt(const ISOCCTemplate &tmpl) const
Adapts ISOCCTemplate to ISOCCTemplate.
Definition ISOCCTemplateAdapter.h:97
ISOCCTemplateAdapter()
Creates ISOCCTemplateAdapter object with GlobalPrintExecutor used to execute template functionality.
Definition ISOCCTemplateAdapter.h:150
ISOCCTemplate Adapt(const ILOSIDTemplate &tmpl) const
Adapts ILOSIDTemplate to ISOCCTemplate.
Definition ISOCCTemplateAdapter.h:75
ISOCCTemplate Adapt(const ICSTemplate &tmpl) const
Adapts ICSTemplate to ISOCCTemplate.
Definition ISOCCTemplateAdapter.h:121
ISOCCTemplateAdapter(std::shared_ptr< PrintExecutor > executor, int maximumMinutiaeCount, MinutiaSortOrder primarySortOrder, MinutiaSortOrder secondarySortOrder)
Creates ISOCCTemplateAdapter object with minutiae limitations and given PrintExecutor.
Definition ISOCCTemplateAdapter.h:200
MinutiaSortOrder
Defines sort order of minutiae points in ISO CC template.
Definition ISOCCTemplateAdapter.h:36
@ Y_ASC
Cartesian y-coordinate is used for ordering, ascending order.
Definition ISOCCTemplateAdapter.h:52
@ Y_DESC
Cartesian y-coordinate is used for ordering, descending order.
Definition ISOCCTemplateAdapter.h:56
@ X_DESC
Cartesian x-coordinate is used for ordering, descending order.
Definition ISOCCTemplateAdapter.h:48
@ NONE
No ordering required.
Definition ISOCCTemplateAdapter.h:40
@ X_ASC
Cartesian x-coordinate is used for ordering, ascending order.
Definition ISOCCTemplateAdapter.h:44
ISOCCTemplate Adapt(const ANSITemplate &tmpl) const
Adapts ANSITemplate to ISOCCTemplate.
Definition ISOCCTemplateAdapter.h:65
ISO/IEC 19794-2:2005 template, template version 2.0, 3-byte format for minutiae (compact card encodin...
Definition ISOCCTemplate.h:22
std::vector< uint8_t > GetData() const
Provides template data.
Definition ISOCCTemplate.h:28
ISO/IEC 19794-2:2005 template, template version 2.0, 5-byte format for minutiae (normal card encoding...
Definition ISONCTemplate.h:22
std::vector< uint8_t > GetData() const
Provides template data.
Definition ISONCTemplate.h:28
Adapts Template to ISOTemplate.
Definition ISOTemplateAdapter.h:29
@ VERSION_2
ISO/IEC 19794-2:2005 template, template version 2.0, 6-byte format for minutiae.
Definition ISOTemplateAdapter.h:35
ISO/IEC 19794-2 print compliant template.
Definition ISOTemplate.h:28
const std::vector< uint8_t > data
Template data.
Definition ISOTemplate.h:31
Null argument is not allowed.
Definition EnrollmentException.h:156
Holds various biometric representation types for print.
Definition PrintTemplate.h:26
std::shared_ptr< ICSTemplate > GetICSRepresentation() const
Provides ICS (Innovatrics proprietary extracted template) representation of print.
Definition PrintTemplate.h:72